#faq#menu#screen#navigation
รหัสเมนู (เช่น 2.1.7 หรือ 4013) คือหน้าจอไหน
ตอบสั้น: ทุกเมนูใบ (หน้าจอ) มีรหัส 2 แบบที่ระบบคำนวณจากไฟล์ smlMenu.json ตอนเริ่มโปรแกรม: รหัส 4 หลัก (code, เช่น 2007) และรหัสแบบจุด (legacyCode, เช่น 2.1.7) ทั้งคู่คือหน้าเดียวกัน — 2.1.7 = 2007 = "สินค้าชุด" (menu_ic_item_set) รหัสไม่ได้ตายตัว ถ้ามีเมนูถูกซ่อน/เพิ่ม เลขจะเลื่อน
รายละเอียด
- หลักแรกของรหัส 4 หลักคือหมวดหลัก (1 เริ่มต้น, 2 สินค้า, 3 ซื้อ, 4 ขาย, 5 เจ้าหนี้, 6 ลูกหนี้, 7 เงินสด/ธนาคาร, 8 ค่าเสื่อม, 9 บัญชี) ส่วน 3 หลักท้ายคือลำดับเมนูใบภายในหมวดนั้น นับต่อเนื่องข้ามโฟลเดอร์ย่อย (
smlMenu.ts:101-124); รหัสแบบจุดคือตำแหน่งในต้นไม้เมนู ส่วนโฟลเดอร์มีรหัสเป็นช่วง เช่น 1106-1109 (:112-119) - ก่อนนับ ระบบตัดเมนูที่ไม่อยู่ในเวอร์ชัน (
tagไม่มี&13&) และเมนูที่ติด&hide&ออกก่อน แล้วค่อยนับใหม่ (smlMenu.ts:44-71,:140-168,:182-184) จึงเลขขึ้นกับเมนูที่มองเห็นจริง - ตัวอย่างที่คำนวณได้ตามเมนูปัจจุบัน:
| จุด | รหัส 4 หลัก | หน้าจอ (name) |
|---|---|---|
| 1.1.1 / 1.1.2 | 1001 / 1002 | กำหนดรายละเอียดบริษัท / กำหนดข้อเลือกพิเศษต่างๆ (menu_company_profile / menu_option) |
| 1.1.12 | 1012 | กำหนดรูปแบบเลขที่เอกสาร (menu_setup_doc_format) |
| 1.9 / 1.10 | 1093 / 1094 | สร้าง/แก้ไขแบบฟอร์ม / ออกแบบรายงาน |
| 1.12.1 | 1106 | เปลี่ยนรหัสสินค้า (menu_change_code_item) |
| 2.1.1 / 2.1.7 | 2001 / 2007 | ข้อมูลสินค้า / สินค้าชุด |
| 3.1 / 3.3 / 3.11 | 3001 / 3003 / 3011 | ใบเสนอซื้อ (PR) / ใบสั่งซื้อ (PO) / ซื้อสินค้า-ตั้งหนี้ซื้อ |
| 4.1 / 4.13 / 4.14 | 4001 / 4013 / 4014 | ใบเสนอราคาขาย / ขายสินค้า-บริการ / รับคืน-ลดหนี้ขาย |
| 6.1.1 / 6.9 | 6001 / 6019 | กำหนดลูกหนี้ / รับชำระหนี้-ออกใบเสร็จ |
| 9.1.1 | 9001 | รายละเอียดผังบัญชี (menu_chart_of_account) |
- จากชื่อเมนู (
name) ไปเป็นหน้าจอ:registerAllMenusเดินเมนูใบทุกตัวแล้วสร้างหน้าจอ (screenRegistry.tsx:1382-1402) โดยเลือกตามลำดับ — หน้าจอที่ลงทะเบียนเองในBASE_SCREENS→ หน้าจอข้อมูลหลัก (IC_MASTER_CONFIGS,:1012-1019) → เอกสารในTRANS_MENU_MAP(frontend/account/tabs/transMenuMap.ts) (:1025,:1076) → หน้าจอประมวลผล (:1067+) → ที่เหลือตกไปเป็นหน้ารายงานตามหมวด (:1330-1372) - เมนูที่ยังไม่พอร์ตจากโปรแกรมเดิมแสดงหน้า placeholder
not_ported(screenRegistry.tsx:1116-1118) - เลขเมนูปรากฏเป็นป้ายบนแท็บ (
TabWorkspace.tsx:1368-1377) และหัวหน้าจอเอกสาร (UniversalTransScreen.tsx:3174) ใช้getMenuCodeByName(name, fallback)(smlMenu.ts:238) - ตัวอย่างหน้าจอ 2007: ข้อมูลสินค้าชุดอยู่ที่
ic_inventoryเงื่อนไขitem_type = 3(masterDetailSchemas.ts:336-343)
ข้อควรระวัง
- รหัสฝังเก่าในโค้ดไม่ตรงรหัสที่คำนวณ: schema สินค้าชุดเขียน
menuCode: "2.1.17"(masterDetailSchemas.ts:338) และBASE_SCREENSใส่ "1.12"/"1.13" ให้แบบฟอร์ม/ออกแบบรายงาน (screenRegistry.tsx:192-212) แต่ถูกทับด้วยรหัสที่คำนวณ (:1057-1060) — เลขในตำราเก่าจึงอาจไม่ตรง ให้ยึดเลขที่เห็นบนแท็บ - อย่าฝังเลขเมนูไว้ในเอกสาร/สคริปต์ ให้อ้างด้วยชื่อ
name
ดูเพิ่ม
- ทะเบียนหน้าจอและโครงเมนู (Screen registry & smlMenu)
- พื้นที่ทำงานแบบแท็บ MDI และสิทธิ์จอ (TabWorkspace)
- ชื่อเมนูจากไฟล์เมนู SML ฝังในไบนารี (Menu Title / smlMenu.json)
- พิมพ์เอกสารออกมาเป็นฟอร์มยังไง แล้วปรับแบบฟอร์มพิมพ์ได้ที่ไหน
- เลขที่เอกสารรันอย่างไร ตั้งรูปแบบเลขที่ที่ไหน
- เริ่มใช้บริษัท/ฐานข้อมูลใหม่ ต้องตั้งข้อมูลหลักอะไรบ้างก่อนบันทึกเอกสารได้
ที่มาในโค้ด
frontend/src/config/smlMenu.ts:44-71,:101-124,:140-168,:182-184,:238-240frontend/src/config/smlMenu.json(ชื่อ/ลำดับเมนู)frontend/account/tabs/screenRegistry.tsx:1012-1019,:1057-1060,:1067-1076,:1116,:1330-1372,:1382-1402frontend/account/tabs/TabWorkspace.tsx:1368-1377frontend/account/transaction/UniversalTransScreen.tsx:3174frontend/src/config/schemas/masterDetailSchemas.ts:336-343