ALV程式checkbox全選及取消全選
*&---------------------------------------------------------------------*
*& Report ZCTEST15
*&
*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
REPORT ZCTEST15 NO STANDARD PAGE HEADING.
TYPE-POOLS SLIS.
DEFINE MAC_FIELD.
CLEAR IW_FIELDCAT.
IW_FIELDCAT-COL_POS = &1.
IW_FIELDCAT-FIELDNAME = &2.
IW_FIELDCAT-SELTEXT_L = &3.
IW_FIELDCAT-INTLEN = &4.
IW_FIELDCAT-CHECKBOX = &5.
IW_FIELDCAT-EDIT = &6.
APPEND IW_FIELDCAT TO IT_FIELDCAT.
END-OF-DEFINITION.
TYPES:
BEGIN OF TY_DATA,
CHK TYPE C,
PARA1 TYPE CHAR10,
PARA2 TYPE CHAR10,
END OF TY_DATA.
DATA:
IT_DATA TYPE TABLE OF TY_DATA,
IW_DATA TYPE TY_DATA,
IT_EXCLUDE TYPE UI_FUNCTIONS,
IW_EXCLUDE TYPE UI_FUNC,
IW_LAYOUT TYPE SLIS_LAYOUT_ALV,
IT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,
IW_FIELDCAT TYPE SLIS_FIELDCAT_ALV.
DATA:
W_REPID TYPE SY-REPID VALUE SY-REPID,
it_ucomm TYPE TABLE OF sy-ucomm,
LIT_EXTAB TYPE SLIS_T_EXTAB.
PARAMETERS P TYPE C.
INITIALIZATION.
MAC_FIELD : '1' 'CHK' 'sel' '1' 'X' 'X',
'2' 'PARA1' 'para1' '10' SPACE SPACE,
'3' 'PARA2' 'para2' '10' SPACE SPACE.
IW_LAYOUT-COLWIDTH_OPTIMIZE = 'X'.
AT SELECTION-SCREEN OUTPUT.
* IW_LAYOUT-EDIT = 'X'.
*CUSTOMISING THE TOOLBARS OF THE SELECTION SCREEN
*WITH F8 BUTTON DISABLED
APPEND : 'PRIN' TO it_ucomm,
'SPOS' TO it_ucomm,
'ONLI' TO it_ucomm.
CALL FUNCTION 'RS_SET_SELSCREEN_STATUS'
EXPORTING
p_status = sy-pfkey
TABLES
p_exclude = it_ucomm.
START-OF-SELECTION.
DO 10 TIMES.
CLEAR IW_DATA.
IW_DATA-PARA1 = SY-INDEX.
IW_DATA-PARA2 = SY-INDEX * SY-INDEX.
APPEND IW_DATA TO IT_DATA.
ENDDO.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
IS_LAYOUT = IW_LAYOUT
IT_FIELDCAT = IT_FIELDCAT
I_CALLBACK_PROGRAM = W_REPID
I_CALLBACK_PF_STATUS_SET = 'F_STATUS'
I_CALLBACK_USER_COMMAND = 'FRM_USER_COMMAND'
TABLES
T_OUTTAB = IT_DATA
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
*&---------------------------------------------------------------------*
*& Form F_STATUS
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM F_STATUS USING LIT_EXTAB TYPE SLIS_T_EXTAB.
SET PF-STATUS 'STU_100' EXCLUDING '&AVE'.
ENDFORM. " F_STATUS
*&---------------------------------------------------------------------*
*& Form FRM_USER_COMMAND
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->UCOMM text
* -->SELFIELD text
*----------------------------------------------------------------------*
FORM FRM_USER_COMMAND USING UCOMM LIKE SY-UCOMM
SELFIELD TYPE SLIS_SELFIELD.
DATA:
TH_DATA LIKE LINE OF IT_DATA,
LW_GRID TYPE REF TO CL_GUI_ALV_GRID,
LW_VALID(1) TYPE C.
CASE UCOMM.
WHEN 'SELECT'.
SELFIELD-REFRESH = 'X'.
TH_DATA-CHK = 'X'.
MODIFY IT_DATA FROM TH_DATA
TRANSPORTING CHK
WHERE CHK = SPACE.
WHEN 'DESELECT'.
SELFIELD-REFRESH = 'X'.
TH_DATA-CHK = ' '.
MODIFY IT_DATA FROM TH_DATA
TRANSPORTING CHK
WHERE CHK = 'X'.
ENDCASE.
ENDFORM. " FRM_USER_COMMAND