ส่วนนี้ทำงานก่อนโปรแกรมเริ่ม ใช้เตรียมค่า parameter ที่รับมาจากเมนูหรือโปรแกรมอื่น
บทที่ 3 / 8
ส่วนจัดการโปรแกรม (Program Flow)
before.program, group, choice, field
3
/ 8
1
before.program — การเตรียมข้อมูลเริ่มต้น
before.program section
before.program:
if sel.parent.num.selected() > 0 then
import("sccoa003.ofbp", bpid.f)
import("sccoa003.ofbp", bpid.t)
import("sccoa003.coan", coan.f)
import("sccoa003.coan", coan.t)
else
bpid.t = "ZZZZZZZZZ"
endif
if isspace(bpid.t) then
bpid.t = "ZZZZZZZZZ"
endif
คำอธิบาย
ขั้นตอนการทำงาน:
sel.parent.num.selected()— ตรวจว่าผู้ใช้เลือกข้อมูลจากหน้าจอก่อนหน้ามากี่รายการimport("sccoa003.ofbp", bpid.f)— นำเข้าค่า Business Partner ID จากหน้าจอก่อนหน้ามาเก็บไว้เป็นช่วง (from-to)- ถ้าไม่ได้เลือกอะไร กำหนดค่า
"ZZZZZZZZZ"เป็นค่าสูงสุด เพื่อให้แสดงข้อมูลทั้งหมด isspace()— เช็คว่าค่าเป็นค่าว่างหรือไม่
2
choice section — การเลือกทำงาน
ส่วนนี้กำหนดปุ่มคำสั่งที่ผู้ใช้กดได้บนหน้าจอ
ส่วน choice — ปุ่มคำสั่ง
choice.cont.process:
on.choice:
execute(print.data)
choice.print.data:
on.choice:
if rprt_open() then
read.main.table()
rprt_close()
else
choice.again()
endif
คำอธิบาย
ใน LN 4GL มี 2 ปุ่มหลักที่ใช้:
choice.cont.process— ปุ่ม "Continue" (ดำเนินการต่อ) — จะเรียกprint.datachoice.print.data— ปุ่ม "Print" — เปิดรายงานด้วยrprt_open()แล้วอ่านข้อมูลด้วยread.main.table()
กระบวนการพิมพ์รายงาน
rprt_open() → read.main.table() → rprt_close()
นี่คือรูปแบบมาตรฐานของ LN สำหรับการสร้างรายงาน
3
field section — เมื่อค่าเปลี่ยน
ส่วนนี้กำหนดว่าเมื่อผู้ใช้เปลี่ยนค่าในช่องกรอกข้อมูล ให้ทำอะไร
ส่วน field — Event ตอนเปลี่ยนค่า
field.coan.f:
when.field.changes:
coan.t = coan.f
field.bpid.f:
when.field.changes:
bpid.t = bpid.f
คำอธิบาย
เมื่อผู้ใช้กรอกค่า:
- ถ้ากรอก COA Number (From) → ค่า COA Number (To) จะถูกตั้งเป็นค่าเดียวกันอัตโนมัติ
- ถ้ากรอก Business Partner (From) → ค่า Business Partner (To) จะถูกตั้งเป็นค่าเดียวกันอัตโนมัติ
นี่เป็น UX ที่ดี — ช่วยให้ผู้ใช้ที่ต้องการพิมพ์ COA ฉบับเดียว ไม่ต้องกรอกค่า To