มาตรฐาน Engine รายงานกลาง (Global Report & Form Engine, JSON-First)
รายงานทุกตัวผ่าน UniversalReportScreen.tsx + report.go + report_pdf.go ให้ผลเหมือนกันทั้งหน้าจอและ PDF: แสดงครบ ไม่ตัดทิ้ง ตัวเลขไม่ปัดบรรทัด รองรับ 2 ภาษา และตัวออกแบบใช้ JSON/JSONB 100% (เลิก XML .frx/.xml)
กฎ/วิธีทำ
- ห้ามตัดข้อมูลทิ้ง — ห้าม
..หรือLIMITแฝง; ข้อความยาวตัดบรรทัดอัตโนมัติแบบไม่แยกสระ/วรรณยุกต์ (ตัดคำไทยใน PDF ไม่แยกสระ/วรรณยุกต์ และรายงานหลายชั้น (Thai Wrap, Multi-Level Report)) - ตัวเลขและวันที่
- ตัวเลขชิดขวา
text-right tabular-nums whitespace-nowrapห้ามปัดบรรทัด; ค่า0/0.00แสดงเป็นว่าง"" - วันที่
DD/MM/YYYYตามerp_option.year_typeทั้งหน้าจอและ PDF (ปีปฏิทิน พ.ศ./ค.ศ. และระบบ 2 ภาษา + Balloon Help (year_type, Bilingual)) - ยอดรวมท้ายรายงาน (Grand Total / Sub-total) เรียงแนวนอนบรรทัดเดียวและตรงคอลัมน์เป๊ะ
- ตัวเลขชิดขวา
- ความกว้างคอลัมน์ — ทุกคอลัมน์มี
widthPctรวม100.00%พร้อมปุ่ม↔(Auto-Fit) /↺(Reset); Auto-Fit วัดจากความยาวข้อมูลจริง (ไม่นับสระลอย/วรรณยุกต์) บีบคอลัมน์ตัวเลขให้กระชับ คืนพื้นที่ให้คอลัมน์ชื่อ (ฝั่งหน้าจอคือhandleAutoFitDataWidthsที่UniversalReportScreen.tsx:641) - เปิด/ปิดคอลัมน์ ปรับ % เปลี่ยนชื่อหัวคอลัมน์ แล้วบันทึกเป็นแม่แบบลงตาราง
erp_report_template(JSONB) ได้ทันที (report_template.go) - Live SQL Query Studio — ทุก API รายงานต้องคืน
executedSql(ExecutedSQLในreport.go:131) ให้หน้าจอแสดงในแท็บ SQL Query Studio เพื่อตรวจและแก้ SQL On-The-Fly - ซ่อนชื่อตัวแปร
_ในวงเล็บต่อท้ายหัวคอลัมน์/ป้ายช่องกรอก (กฎเดียวกับ ช่องกรอกมาตรฐานและกฎป้ายข้อความ (NumberBox, DateBox, CodeBox, LookupBox, ห้าม F1-F12)) - รายงานคลัง IC / ใบสั่ง SO-PO (
report_menu_ic.go,report_menu_so_po.go)- รายงานรายละเอียดเอกสารสินค้า และรายงานยอดคงเหลือ/ผลต่างตรวจนับ ต้องแสดง
หน่วยนับขนานกับจำนวนขนาน/ยอดคงเหลือขนานเสมอ (ดู หน่วยนับขนาน Serial และการดึงเอกสารอ้างอิง (Parallel Unit, Serial, Ref Document Import)) - ทุก
sopoSpec/icSpecผูกพารามิเตอร์$1..$7ผ่าน CTEprmครบ; aliasAS "..."ต้องตรงกับReportColumnMeta.Keyและไม่เกิน 63 bytes - ห้าม
SELECT *และLIMIT 50000ใน SQL รายงาน (ต้องผ่านTestSOPOSpecsWellFormed,TestICSpecsWellFormed)
- รายงานรายละเอียดเอกสารสินค้า และรายงานยอดคงเหลือ/ผลต่างตรวจนับ ต้องแสดง
- 2 ภาษาแยกอิสระ (ไทย / English / TH+EN) ผ่าน
data-independent-lang="true"— ดู ปีปฏิทิน พ.ศ./ค.ศ. และระบบ 2 ภาษา + Balloon Help (year_type, Bilingual) - JSON-First Designer —
FastReportDesignerScreen.tsxและFormDesignerScreen.tsxเก็บ JSON Schema ในform_designและerp_report_templateเท่านั้น
API (ตามที่ skill ระบุ)
POST /api/process/report/runbody{ menuKey, viewDetail, dateFrom, dateTo, fromCode, toCode, keyword, options }— handlerRunReportในprocess/handler.go:222(ตรวจแล้วเส้นทาง/process/report/runมีจริง)POST /api/process/report/pdfคืนไฟล์%PDF-1.4(binary) — วิธีตัดคำใน PDF ดู ตัดคำไทยใน PDF ไม่แยกสระ/วรรณยุกต์ และรายงานหลายชั้น (Thai Wrap, Multi-Level Report)
ตรวจสอบ
cd backend && go test ./internal/application/process -run "TestSOPO|TestIC"
ไฟล์ที่อ้างแต่ชื่อ/ที่ตั้งไม่ตรงโค้ดปัจจุบัน
- skill/KMS ใช้
frontend/account/reports/UniversalReportScreen.tsxและfrontend/account/tools/FastReportDesignerScreen.tsx— ที่ตั้งจริงคือfrontend/account/report/(เอกสารชี้โฟลเดอร์ผิด; ไฟล์UniversalReportScreen.tsx,GlobalReportPrintModal.tsx,FastReportDesignerScreen.tsx,FormDesignerScreen.tsxมีจริง) GlobalDocFormPrintModal.tsxอยู่ที่frontend/shared/components/- ฟังก์ชัน
cleanFieldDisplayLabel,visualRuneLen,autoFitColumns(ฝั่ง Go) ไม่พบในโค้ดปัจจุบัน (ไฟล์อ้างอิงไม่พบแล้ว)
ที่มา
docs/kms/KMS_SMLWORK_UX_REPORT_AUTH_MAP_STANDARDS.mdObjective ข้อ 4, Workflow §3.agents/skills/report-and-form-engine/SKILL.mdWorkflow 1–4, Config, LimitationAGENTS.mdกฎข้อ 12, 13, 21 (รายงานกลาง, JSON-First, 2 ภาษา)
ดูเพิ่ม
สารบัญมาตรฐานและกฎเหล็กของ SML Ai Account (Standards Overview) · ตัดคำไทยใน PDF ไม่แยกสระ/วรรณยุกต์ และรายงานหลายชั้น (Thai Wrap, Multi-Level Report) · ตารางกว้าง 100% ปุ่ม Auto-Fit ↔ / Reset ↺ และตัวเลขห้ามปัดบรรทัด (Grid Auto-Fit, Numeric nowrap) · ปีปฏิทิน พ.ศ./ค.ศ. และระบบ 2 ภาษา + Balloon Help (year_type, Bilingual) · ความถูกต้องของข้อมูล: เงิน ภาษี Transaction เดียว และ Rebuild (Data Integrity, big.Rat, ExecBatch) · ภาพรวม Backend Go ของ SML Ai Account (Backend overview) · ภาพรวมระบบบัญชี SML AI Account (Accounting Overview)