1.override method ชื่อ dialogPostRun
- public void dialogPostRun(DialogRunbase _dialog)
- {
- ;
- super(_dialog);
- _dialog.dialogForm().formRun().controlMethodOverload(true);
- _dialog.dialogForm().formRun().controlMethodOverloadObject(this);
- }
2.หาชื่อของ control ที่ต้องการดักจับ event โดยเพิ่ม code เข้าไปด้านท้ายของ method dialog
ตัวอย่าง : หาชื่อ dialog ของ dialogDate (ปกติจะได้ชื่อ Fld1_1 _2 _3 ตามลำดับการสร้าง control)
- Object dialog()
- {
- ;
- dialog = super();
- dialogDate = dialog.addFieldValue(typeid(TransDate), transDate, "@SYS14475", "@SYS8449");
- dialogSpecification = dialog.addFieldValue(typeid(InventAdjustmentSpec), specification, "@SYS8956", "@SYS19204");
- dialogLedger = dialog.addFieldValue(typeid(NoYes), updateLedger, "@SYS17508", "@SYS28266");
- dialogNotes = dialog.addFieldValue(typeid(FreeTxt), freeTxt, "@SYS13887", "@SYS27801");
- info(dialogDate.name());
- Return dialog;
- }
3.สร้าง method สำหรับจับ event ของ control นั้น ๆ โดยใช้ ชื่อที่ได้จากข้อ 2 เช่น
- public void fld1_1_modified()
- {
- ;
- box::info("hi");
- }
เพิ่มเติม
ข้อ 3.สร้าง method สำหรับจับ event ของ control นั้น ๆ ต้องประกาศตัวแปรจับ control นั้นด้วย ไม่อย่างนั้นเวลาแก้ไขช่องนั่นไปแล้วจะแก้ไขอีก จะไม่ทำ Method modified
http://vardhan24.blogspot.com/2014/01/fld11modified-and-fld7lookup-on-dilaog.html
- public void Fld1_1_modified()
- {
- //Object control;
- FormStringControl control;
- control = dialog.formRun().controlCallingMethod();
- if(control.modified())
- {
- if( dialogDate.value() > today()){
- Box::stop("เลือกวันที่ไม่ถูกต้อง กรุณาตรวจสอบ !","ERROR");
- dialog.close();
- }
- }
- }
No comments:
Post a Comment