พิมพ์บาร์โค้ดด้วยเครื่องพิมพ์ทั่วไป (BarcodePrintScreen)
จอจัดวางสติกเกอร์บาร์โค้ด EAN-13 ลงกระดาษ A4 (หรือขนาดที่กำหนดเอง) เป็นตารางดวง แล้วสั่งพิมพ์ผ่านหน้าต่างพิมพ์ของเบราว์เซอร์ หัวไฟล์อ้างโปรแกรมเดิม SMLInventoryControl/_itemBarcodePrint (รหัสเก่า 2.1.17) ข้อมูลรายการ/ราคา และการเก็บ "รูปแบบสติกเกอร์" อยู่ที่ Go (/api/process/barcode/print-items และ /format, BarcodePrintScreen.tsx:3-6) หน้านี้แค่จัดวางและพิมพ์ ดูตรรกะฝั่งเซิร์ฟเวอร์ที่ บาร์โค้ดสินค้า ส่วนลดบาร์โค้ด EAN13 และพิมพ์ป้าย (Barcode menus 2.1.7-2.1.17)
วิธีเปิด
เมนู 2020 "พิมพ์บาร์โค๊ดด้วยเครื่องพิมพ์ทั่วไป" (menu_ic_item_barcode_laser_print) ผูกที่ screenRegistry.tsx:340-347 (เปิดเป็นแท็บ) กลไกเมนูดู ทะเบียนหน้าจอและโครงเมนู (Screen registry & smlMenu) การกำหนดบาร์โค้ดก่อนพิมพ์ทำที่ กำหนดบาร์โค้ด เพิ่มบาร์โค้ดแบบเร็ว และตรวจบาร์โค้ด EAN13 (BarcodeSetupScreen, BarcodeFastAddScreen, Ean13CheckerScreen)
โครงจอ
- ซ้าย: รายการบาร์โค้ด (บาร์โค้ด, รหัส, ชื่อสินค้า, หน่วย) จาก
ic_inventory_barcodeเชื่อมic_inventoryค้นจากบาร์โค้ด/รหัส/ชื่อ จำกัด 500 แถว (:189-201) คลิกแถวเดียวเพิ่มบาร์โค้ดนั้นลงรายการพิมพ์ทันที (onSelect, ไม่ต้องกดปุ่ม) ถ้าบาร์โค้ดซ้ำกับที่อยู่ในรายการแล้วจะไม่เพิ่ม (:221-230) กลไกรายการดู รายการข้อมูล ค้นหา lookup และ dialog กลาง (SmlDataList / SmlLookupModal / SmlDialog) - ขวา หัวสรุป:
N รายการ · M ดวง · P หน้า - แถบปุ่ม: พิมพ์ (ปิดเมื่อจำนวนดวงรวมเป็น 0), เริ่มใหม่ทั้งหมด (ล้างรายการพิมพ์ ไม่แตะรูปแบบ), ปิดหน้าจอ
- กล่อง "รูปแบบสติกเกอร์", กล่อง "รายการที่จะพิมพ์" และพื้นที่ "ตัวอย่างก่อนพิมพ์" (ย่อ 60%)
รูปแบบสติกเกอร์ (Format, :57-63)
เลือกรูปแบบที่บันทึกไว้จากรายการ หรือใช้ค่าเริ่มต้น "A4 14x5" (14 แถว x 5 คอลัมน์ ดวงละ 4 x 2 ซม. ขอบซ้าย 0.2 ขอบบน 0.5 แสดงราคา/รหัสสินค้า/ชื่อหน่วยนับ ไม่พิมพ์เส้นขอบ)
| ช่อง | ความหมาย |
|---|---|
| รหัสรูปแบบ / ชื่อรูปแบบ | รหัสไม่เกิน 25 ตัว ตัวพิมพ์ใหญ่เสมอ; ต้องกรอกทั้งสองช่องจึงกดบันทึกรูปแบบได้ |
| เริ่มคอลัมน์ที่ / เริ่มแถวที่ | เว้นช่องบนหน้าแรกไว้ (ใช้กระดาษสติกเกอร์ที่ลอกใช้ไปบางดวงแล้ว) |
| หน่วยวัด | เซนติเมตร หรือ นิ้ว |
| จำนวนคอลัมน์ / จำนวนแถว | ดวงต่อหน้า = แถว x คอลัมน์ |
| ความกว้างดวง / ความสูงดวง / ขอบซ้าย / ขอบบน | ตามหน่วยวัดที่เลือก |
| ราคาที่แสดง | ราคาที่ 1-4 หรือ "ราคากลาง (สูตรราคา)" (ปิดเมื่อไม่ติ๊กแสดงราคา) |
| ชื่อบริษัท | เติมให้เองจาก erp_company_profile.company_name_1 ถ้ายังว่าง (:204-210) แก้ได้ |
| ติ๊ก | แสดงราคา · แสดงรหัสสินค้า · แสดงชื่อหน่วยนับ · พิมพ์เส้นขอบ · กำหนดขนาดกระดาษเอง (กว้าง x สูง, ค่าเริ่มต้น 21 x 29.7) |
- บันทึกรูปแบบ (ต้องมีสิทธิ์เพิ่ม) และ ลบรูปแบบ (ต้องมีสิทธิ์ลบ ถามยืนยัน
ลบรูปแบบ <รหัส> ?ปุ่มเปิดเมื่อรหัสนั้นมีอยู่จริง) เรียกPOST /api/process/barcode/formatด้วยaction = list | save | delete(:211-219) สำเร็จขึ้นบันทึกรูปแบบ <รหัส> แล้ว; ลบแล้วกลับไปค่าเริ่มต้นโดยคงชื่อบริษัทไว้
รายการที่จะพิมพ์
- ตาราง #, บาร์โค้ด, รหัสสินค้า, ชื่อสินค้า, หน่วยนับ, ราคา (ตามราคาที่เลือกในรูปแบบ), จำนวนดวง (ตัวเลขเต็ม ค่าเริ่มต้น 1), ปุ่มย้ายแถวขึ้น/ลง และถังขยะลบบรรทัด ตารางว่างขึ้น "ยังไม่มีรายการ"
- นำเข้าจากเอกสารกำหนดราคา: กรอกเลขที่เอกสาร (ตัวพิมพ์ใหญ่, Enter หรือปุ่ม นำเข้า) เรียก
print-itemsด้วย{docNo}เพิ่มทุกรายการของเอกสารนั้น (ต่างจากการคลิกซ้ายที่กันซ้ำ นำเข้าจากเอกสารไม่กันซ้ำ:221-230) ไม่พบขึ้น "ไม่พบบาร์โค้ด" - จำนวนดวง <= 0 หรือว่าง ถือเป็น 1 ดวงเสมอ (
stamps,:103, ตามพฤติกรรมโปรแกรมเดิม) - ราคาที่ผู้ใช้เลือกเป็น 0 จะใช้ราคาที่ 1 แทน (
labelPrice,:97-101) ดูที่มาของราคาที่ เครื่องมือหาราคาและแก้ราคา (Price engine / price center / modify price)
การจัดวางและการพิมพ์
- วางดวงเรียงตามคอลัมน์ในแถว ไปแถวถัดไป ไปหน้าถัดไป; หน้าแรกข้ามช่องตาม "เริ่มแถว/เริ่มคอลัมน์" (
layoutPages,:106-121) แต่ละดวงมีบรรทัดบน (ชื่อบริษัท : รหัสสินค้า), แถบบาร์โค้ด EAN-13 วาดเป็น SVG ในหน้าจอเอง (:73-95), ราคา (ราคา x/หน่วย) และชื่อสินค้า 2 บรรทัด (Sheet,:123-170) - เลขที่ไม่ใช่ EAN-13 (ไม่ครบ 13 หลักหรือมีตัวอักษร) ไม่ถูกวาดเป็นแถบ แสดงเลขตามด้วย "(ไม่ใช่ EAN-13)" ในดวงแทน ตามพฤติกรรมโปรแกรมเดิมที่พิมพ์ได้เฉพาะ EAN13 ใช้ กำหนดบาร์โค้ด เพิ่มบาร์โค้ดแบบเร็ว และตรวจบาร์โค้ด EAN13 (BarcodeSetupScreen, BarcodeFastAddScreen, Ean13CheckerScreen) (จอ 2019) ตรวจและแก้บาร์โค้ดผิดมาตรฐานก่อน
- ปุ่ม พิมพ์ เปิดหน้าต่างใหม่ 900 x 700 เขียน HTML ของตัวอย่างลงไป กำหนด
@pageเป็น A4 หรือขนาดกระดาษที่กำหนดเอง แล้วสั่งwindow.print()ถ้าเบราว์เซอร์บล็อก pop-up ขึ้น "เบราว์เซอร์บล็อกหน้าต่างพิมพ์ กรุณาอนุญาต Pop-up" (:235-250) - ไม่มีคีย์ลัด (Ctrl+S / Esc) ในจอนี้ ไม่ได้เรียก
useShortcuts
ตารางที่เกี่ยวข้อง
อ่าน บาร์โค้ดและราคาขายหน้าร้าน (ic_inventory_barcode), ทะเบียนสินค้า (ic_inventory), erp_company_profile — ข้อมูลบริษัท (แถวเดียว); ราคาที่พิมพ์มาจาก ส่วนลดตามบาร์โค้ด (ic_inventory_barcode_price) / ราคาขายสินค้าตามเงื่อนไข (ic_inventory_price) ตามที่เซิร์ฟเวอร์ส่งใน print-items รูปแบบสติกเกอร์เก็บที่ Go (ชื่อตารางไม่ปรากฏในโค้ดหน้าจอ)
ข้อควรระวัง
- พิมพ์ผ่านหน้าต่างเบราว์เซอร์เท่านั้น ไม่มีโหมดเครื่องพิมพ์สติกเกอร์ TSC/ZPL (คอมเมนต์
// ponytailที่:234) - ปรับตำแหน่งดวงได้ด้วยช่องขอบซ้าย/ขอบบนเท่านั้น (ไม่มีช่องปรับชดเชยแยกต่างหาก) ควรทดสอบพิมพ์บนกระดาษธรรมดาก่อนใช้กระดาษสติกเกอร์
- ชื่อหน้าจอและรหัสเมนูที่แสดงหัวจอมาจากข้อมูลเมนู ไม่ได้ฝังตายในจอ (
getMenuTextByName)
ที่มาในโค้ด
frontend/account/master/BarcodePrintScreen.tsx:57-64ค่าเริ่มต้น/ตัวเลือกราคา;:73-95EAN-13;:97-121ราคา/จำนวนดวง/จัดวาง;:123-170Sheet;:189-250โหลดรายการ/รูปแบบ/เพิ่มรายการ/พิมพ์;:265-หน้าจอfrontend/account/tabs/screenRegistry.tsx:340-347- ดูเพิ่ม: กำหนดส่วนลดตามบาร์โค้ด รายตัวและแบบเร็ว (BarcodeDiscountScreen, MultiBarcodeDiscountScreen) · ปรับราคาสินค้า นำเข้าไฟล์ราคาทั้งชุด (ModifyPriceScreen) · รายการจอข้อมูลหลักแบบตารางเดียว (IC_MASTER_CONFIGS) · สารบัญหน้าจอทั้งหมดของ SML Ai Account (ต้นไม้เมนู → หน้าจอ → โน้ต)