⚖️

貸借対照表

Balance Sheet

📈

損益計算書

Income Statement

💰

キャッシュフロー

Cash Flow Statement

🧮

試算表

Trial Balance

📋

仕訳帳

Journal Entries

✅ 試算表は借方・貸方が一致しており、バランスが取れています。

📊 収益構成

📈 月次推移

🔍 AI財務分析

💪 強み

  • • 売上総利益率が65.7%と高水準
  • • 流動比率が6.0倍で安全性良好
  • • 営業利益率が34.3%と優秀

⚠️ 注意点

  • • 固定費の比率が高い
  • • 売掛金の回転率要確認
  • • 設備投資の計画性

📈 改善提案

  • • 売上拡大による固定費効率化
  • • 売掛金管理の強化
  • • キャッシュフロー改善
`; const win = window.open('', '_blank'); if (!win) { showError('浏览器阻止了弹窗,请允许弹窗后重试'); return; } win.document.open(); win.document.write(html); win.document.close(); win.onload = () => { win.focus(); win.print(); }; showSuccess('已打开可打印版本,请在打印对话框中保存为PDF'); } catch (error) { console.error('PDF导出失败:', error); showError('PDF导出失败,请稍后重试'); } } function escapeHTML(value) { const text = value === undefined || value === null ? '' : String(value); return text .replace(/&/g, '&') .replace(//g, '>') .replace(/"/g, '"') .replace(/'/g, '''); } /** * 导出仕訳帳为Excel */ async function exportJournalToExcel() { try { const getAccountForExport = (entry, fieldType) => { const possibleFields = { debit: ['debit_account', 'debitAccount', 'account_debit', 'debit', 'dr_account'], credit: ['credit_account', 'creditAccount', 'account_credit', 'credit', 'cr_account'] }; for (const field of possibleFields[fieldType]) { if (entry && entry[field] && String(entry[field]).trim()) return String(entry[field]).trim(); } return ''; }; const formatDateForExport = (entry) => { const raw = (entry && (entry.entry_date || entry.date || entry.created_at)) || ''; const dateObj = new Date(raw); if (!Number.isFinite(dateObj.getTime())) return String(raw); const year = dateObj.getFullYear(); const month = String(dateObj.getMonth() + 1).padStart(2, '0'); const day = String(dateObj.getDate()).padStart(2, '0'); return `${year}-${month}-${day}`; }; const sourceEntries = Array.isArray(journalLoadedEntries) ? journalLoadedEntries : []; if (sourceEntries.length === 0) { showError('暂无可导出的仕訳帳数据'); return; } const rows = sourceEntries.map(entry => { const side = getEntrySideAmounts(entry); return [ formatDateForExport(entry), getAccountForExport(entry, 'debit'), getAccountForExport(entry, 'credit'), side.debit ? `¥${side.debit.toLocaleString()}` : '-', side.credit ? `¥${side.credit.toLocaleString()}` : '-', (entry && (entry.description || entry.summary)) ? String(entry.description || entry.summary) : '' ]; }); // 创建CSV内容 const headers = ['交易日期', '借方科目', '贷方科目', '借方金额', '贷方金额', '摘要']; const csvContent = [headers, ...rows].map(row => row.map(cell => `"${cell}"`).join(',') ).join('\n'); // 创建并下载文件 const blob = new Blob(['\ufeff' + csvContent], { type: 'text/csv;charset=utf-8;' }); const link = document.createElement('a'); link.href = URL.createObjectURL(blob); link.download = 'journal-entries-report.csv'; link.click(); showSuccess('Excel导出成功'); } catch (error) { console.error('Excel导出失败:', error); showError('Excel导出失败,请稍后重试'); } } /** * 打印仕訳帳报表 */ function printJournalReport() { const printContent = document.getElementById('journal-entries-report'); if (!printContent) return; const printWindow = window.open('', '_blank'); printWindow.document.write(` 仕訳帳报表 ${printContent.innerHTML} `); printWindow.document.close(); printWindow.print(); }