โดย wee2tee » พุธ ก.ค. 23, 2014 10:33 pm
ตามที่คุณ suchai แนะนำไว้ถือว่าเข้าทางแล้วครับ ... ขอเพิ่มเติมข้อคิดเห็นนิดหน่อย ดังนี้ครับ
1. ~M: และ ~N: สามารถยุบรวมมาเขียนแค่บรรทัดเดียวได้ดังนี้ครับ (เช่นเดียวกันนะครับ สีแดงคือส่วนที่แก้ไข)
~N: 0, "ZZZ", "seqx", "seq=seq+IIF(STMAS->STKTYP='2',1,0); seqx=IIF(STMAS->STKTYP='2',seq,0)"
2. การเขียนในลักษณะนี้ เลขลำดับรายการจะรัน และ แสดง เฉพาะบรรทัดที่เป็นรหัสสินค้าชุดพิเศษเท่านั้นนะครับ หากมีสินค้าประเภทอื่นปะปนอยู่ด้วยในบิลเดียวกันนั้น รายการดังกล่าวก็จะถูกมองข้ามไป(คือไม่มีเลขลำดับให้รายการนั้น ๆ นั่นเอง)
3. เพื่อแก้ไขปัญหาที่กล่าวในข้อ 2 ก็อาจจะต้องเพิ่มขั้นตอนการคีย์รายการสักเล็กน้อย ดังนี้
- เมื่อคีย์รายการสินค้าประเภทอื่นที่ไม่ใช่สินค้าชุดพิเศษ(รวมถึงตัวลูกของชุดนั้น ๆ) ในจังหวะที่ Enter มาถึงช่องรายละเอียด(ชื่อสินค้า)ให้ทำการเคาะวรรค(space bar) 1 ครั้ง ให้เกิดช่องว่างอยู่ข้างหน้าชื่อของสินค้าซัก 1 เคาะ(หรือจะมากกว่านี้ก็ไม่เป็นไร) ข้อสำคัญจะต้องเคาะวรรคในขณะที่แป้นคีย์บอร์ดเป็นภาษาอังกฤษอยู่นะครับ
- สำหรับรายการสินค้าชุดพิเศษ หรือ ตัวลูกของชุดพิเศษนั้น ให้คีย์ไปตามปกติ ไม่ต้องเคาะวรรคเพิ่มเติมใด ๆ
- แก้ไขบรรทัด ~N: และ ~ARTICLE: ในส่วน [data spec] ให้เป็นตามนี้ (สีแดง คือส่วนที่แก้ไข)
~N: 0, "ZZZ", "seqx", "seq=seq+IIF(STMAS->STKTYP='2'.OR.substr(STCRD->STKDES,1,1)=' ',1,0); seqx=IIF(STMAS->STKTYP='2'.OR.substr(STCRD->STKDES,1,1)=' ',seq,0)"
~ARTICLE: 42, "", "article", "article = STCRD->STKCOD - '
แก้ไขล่าสุดโดย
wee2tee เมื่อ พฤหัสฯ. ก.ค. 24, 2014 11:08 am, แก้ไขแล้ว 1 ครั้ง