ABAP CODE:การอ่านค่าจาก ตัวแปร checkbox พร้อมตัวอย่างแบบ Easy Easy

เกริ่น: ในกรณีที่ต้องการทำแบบทดสอบให้ 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.

*&amp;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.
*&amp;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.

*&amp;lt;todsapon .com:กำหนดค่าเพื่อเลือกใช้ GUI LIST:
SET PF-STATUS 'LIST'.

*&amp;lt;todsapon .com: กำหนดเงื่อนไขของคำสั่งของ GUI:
AT USER-COMMAND.
IF sy-ucomm = 'EXEC'.
WHILE sy-subrc EQ 0 .
CLEAR : w_select,w_name.
*&amp;lt;todsapon .com:อ่านค่าข้อมูลในรายการที่เลือก โดย sy-index เริ่มที่ 0 ถึง จำนวน checkbox:
READ LINE sy-index FIELD VALUE w_select w_name.
*&amp;lt;todsapon .com:ตรวจสอบค่า ถ้าเจอให้ทำ:
CHECK sy-subrc EQ 0.
*&amp;lt;todsapon .com:เอาเฉพาะ w_select ที่เป็น 'X':
IF w_select = 'X'.
t_itab-name = w_name.
*&amp;lt;todsapon .com:บันทึกข้อมูงลง Internal Table t_itab:
APPEND t_itab.
ENDIF.

ENDWHILE.
*&amp;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. *&amp;lt;todsapon .com:แสดงข้อมูลที่ได้เลือกออกหน้าจอ:   WRITE: /5 'คุณได้ใช้บริการอีเมล์ดังนี้'.   ULINE.    SORT t_itab BY name.   LOOP AT t_itab.     WRITE /8 t_itab-name.   ENDLOOP. ENDFORM.                    &amp;quot;display_report