เกริ่น: ในกรณีที่ต้องการทำแบบทดสอบให้ User ทำการเลือกคำตอบ ซึ่งคำตอบนั้นสามารถมีมากกว่า 1 ขึ้นอยู่กับทางข้อมูลใน Table หรือ Internal Table โดยระบบจะเก็บเฉพาะข้อมูลที่ถูกเลือก
พระเอกของงานนี้คือ read line sy-index field value <ตัวแปร>.
หน้า Sccreen


***************************************************** * Program : zreadcheckbox * * Title : การอ่านค่าจาก ตัวแปร checkbox พร้อม Easy Exampl * * Author : Todsapon Kumnuan (todsapon.com) * * Date created : 16.12.2009 * * R/3 Release : ECC5 * ***************************************************** REPORT zreadcheckbox MESSAGE-ID zz NO STANDARD PAGE HEADING.
ส่วนของ I N T E R N A L T A B L E
DATA: BEGIN OF t_webmail OCCURS 0, name(20) TYPE c, END OF t_webmail. DATA: BEGIN OF t_itab OCCURS 0, name(20) TYPE c, END OF t_itab.
ส่วนของ W O R K I N G S T O R A G E D A T A
DATA: w_select TYPE checkbox. DATA: w_name(20) TYPE c.
ส่วนของ S T A R T – O F – S E L E C T I O N
START-OF-SELECTION. *&lt;todsapon .com:นำข้อมูล webmail ลง Internal Table t_webmail: t_webmail-name = 'hotmail'. APPEND t_webmail. t_webmail-name = 'gmail'. APPEND t_webmail. t_webmail-name = 'yahoo'. APPEND t_webmail. WRITE: /5 'กรุณาเลือกบริการอีเมล์ที่ท่านใช้ สามารถเลือกได้มากกว่า 1'. ULINE. *&lt;todsapon .com:แสดงข้อมูลทั้งหมดใน Internal Table t_webmail โดยแสดงในรูปแบบ Checkbox: LOOP AT t_webmail. w_name = t_webmail-name. WRITE:/5 w_select AS CHECKBOX, 8 w_name. WRITE AT sy-linsz ''. ENDLOOP. *&lt;todsapon .com:กำหนดค่าเพื่อเลือกใช้ GUI LIST: SET PF-STATUS 'LIST'. *&lt;todsapon .com: กำหนดเงื่อนไขของคำสั่งของ GUI: AT USER-COMMAND. IF sy-ucomm = 'EXEC'. WHILE sy-subrc EQ 0 . CLEAR : w_select,w_name. *&lt;todsapon .com:อ่านค่าข้อมูลในรายการที่เลือก โดย sy-index เริ่มที่ 0 ถึง จำนวน checkbox: READ LINE sy-index FIELD VALUE w_select w_name. *&lt;todsapon .com:ตรวจสอบค่า ถ้าเจอให้ทำ: CHECK sy-subrc EQ 0. *&lt;todsapon .com:เอาเฉพาะ w_select ที่เป็น 'X': IF w_select = 'X'. t_itab-name = w_name. *&lt;todsapon .com:บันทึกข้อมูงลง Internal Table t_itab: APPEND t_itab. ENDIF. ENDWHILE. *&lt;todsapon .com:เลือกใช้ Form display_report: PERFORM display_report. ENDIF.
ส่วนของ S U B R O U T I N E S Form display_report.
FORM display_report. *&lt;todsapon .com:แสดงข้อมูลที่ได้เลือกออกหน้าจอ: WRITE: /5 'คุณได้ใช้บริการอีเมล์ดังนี้'. ULINE. SORT t_itab BY name. LOOP AT t_itab. WRITE /8 t_itab-name. ENDLOOP. ENDFORM. &quot;display_report





