โดย ppitaksu » พฤหัสฯ. มิ.ย. 11, 2020 7:03 am
จากประสบการณ์ใช้งานโดยตรง ผมประยุกต์ใช้ เช็ครับ QR โดยกำหนดเลขที่เช็คด้วยเอกสารต้นทางเช่น ลูกค้าจ่ายเงินโดยโอนเข้าธนาคาร00 จากเอกสาร HS6300001 ผมทำ เช็ครับ F7 QRHS6300001 สาขา สร้างชื่อสาขาธนาคารเป็น โอนเข้าบัญชี และ หรือ โอนเงินมือถือ เมื่อเป็นแบบนี้ การสอบทานจะเกิดขึ้นในฝ่ายขาย และฝ่ายการเงินธนาคาร โอกาสพลาดหรือตกหล่น ลงรายการไขว้ธนาคาร ลืมทำรายการจะน้อยลง ได้ผลดีครับ ในฝั่งเจ้าหนี้ เมื่อมีการจ่ายชำระหนี้ ผมก็ประยุุกต์ใช้ QPPS6300001 หรือ QPHP6300001 เลขเอกสารให้ใช้เอกสารต้นทาง เพื่อการเชื่อมโยงย้อนกลับ ผมจะปล่อยให้ QP พวกนี้ ค้างไว้ก่อน ไม่ผ่านเช็คจ่าย จนกว่าจะได้ใบเสร็จรับเงินมาครบ หรือได้รับการเซอร์วิสจนครบเงื่อนไขที่ชำระไว้ จึงจะทำการผ่านเช็ค สำหรับแบบฟอร์ม ผมใช้ NewRWT เงื่อนไข ที่ใช้ควบคุมการแสดงวิธีรับชำระหนี้ ผมสร้างตัวแปร ชื่อ byDetail ด้วยมี ค่าคำนวณ ดังนี้
.visible=IIF(substr(ARRCPCQ->CHQNUM,1,10)='QRHS',.f.,.t.)
by=@p_isrun( ARRCPCQ->CHQNUM, ZR, 1, 0)
chqnum= substr(ARRCPCQ->CHQNUM,3,12)
byDetail= by - '•#•' - chqnum
nq=nq+IIF(ARRCPCQ->CHQNUM='QR'.and.ARRCPCQ->CHQNUM#'QRHS',1,0)
โดยที่ nq ถูกกำหนด ใน INIT ให้ nq=0 เพื่อที่จะนำไปทดสอบค่าแสดง กล่อง checkbox ชำระเงินโดย ต่อไปในแบบฟอร์มครับ
ในฟอร์มฝ่ายเจ้าหนี้ PS หรือ HP
ใช้ตัวแปร Detail โดยมีค่าคำนวณ ดังนี้
DN= 'QP' + substr(APTRN->DOCNUM,1,2)
det=@p_isrun(APRCPCQ->CHQNUM, ZP, 1, 19)
Detail=IIF(substr(APRCPCQ->CHQNUM,1,10)=DN ,'โอนจ่ายเงินจากบัญชี',det)
nn=nn+1
โดยที่ nn กำหนดใน INIT ให้ nn=0 เป็นค่าเริ่มต้น ใช้เพื่อตรวจสอบ ว่ามีการคีย์รายการโอนเรียบร้อยหรือยังในส่วน Su เพื่อเทียบค่าว่าจะแสดงบรรทัด CheckBox ชำระด้วยเช็คหรือการโอน เพื่อให้กรอกรายละเอียด หรือไม่ต้องแสดง เพราะได้คีย์เรียบร้อยก่อนพิมพ์ใบสำคัญจ่ายแล้ว
ใน Su ที่ Obj checkbox ชำระด้วยเช็คหรือการโอน ตรวจสอบเงื่อนไข และตัดสินใจดังนี้
.visible=IIF(nn=0.AND.Cmplapp#'Y',.t.,.f.)
ถ้าเป็นเอกสาร HP ให้เปลี่ยนการทดสอบเงื่อนไข จาก DN='QP' ไปเป็น DN='HP' เป็นต้น
สำหรับ เอกสาร HS ที่ได้รับเงินโอน ถ้าเกิดประยุกต์ใช้ใน RE ผมจะเปลี่ยนเงื่อนไขคำนวณ โดย ทดสอบ
.visible=IIF(substr(ARRCPCQ->CHQNUM,1,10)='QRRE',.f.,.t.)
by=@p_isrun( ARRCPCQ->CHQNUM, ZR, 1, 0)
chqnum= substr(ARRCPCQ->CHQNUM,3,12)
byDetail= by - '•#•' - chqnum
nq=nq+IIF(ARRCPCQ->CHQNUM='QR'.and.ARRCPCQ->CHQNUM#'QRRE',1,0)
ที่ต้องยุ่งยากในการทดสอบตัวแปรทั้งหลายเหล่านี้ เป็นไปเพื่อให้การแสดงใบเสร็จรับเงิน หรือใบสำคัญจ่าย สอดคล้องกับ ลักษณะการโอน ซึ่งไม่ใช่เช็ครับ หรือ เช็คจ่ายล่วงหน้า แต่มันจำเป็นที่ต้องทำเป็นเช็คเพื่อ การโอนที่มีตัวกลาง เช็ครับ/เช็คจ่าย เป็นตัวพักเพื่อส่งต่องานไปในสายงานการเงินธนาคาร ช่วยให้ฝ่ายการเงินสามารถ ทำการตรวจสอบ เงินโอนเข้า โอนออกได้ละเอียดครบถ้วนทุกรายการ สอบยันกันได้
เงื่อนไขที่ให้ดูเป็นตัวอย่าง คุณจะต้องประยุกต์ อีกหลายองค์ประกอบเข้าด้วยกัน เพื่อให้แบบฟอร์ม แสดงค่าตามที่องค์กรคุณใช้งาน
แนวทางประยุกต์ใช้นี้ เป็น 1 ในแนวทางการทำงานในระบบ Express จากอีกหลายวิธีที่เลือกทำได้ อันนี้แล้วแต่ผู้บริหารระบบของคุณจะคิดสร้างสรรหาวิธีจัดระเบียบวิธีการทำงานให้ระบบอย่างไร เพียงเสนอไว้แบ่งปันเผื่อบางท่านอาจได้ประโยชน์จากเศษเสี้ยวความรู้นิดๆหน่อยที่ผมศึกษามาครับ