ALV程序checkbox全选及取消全选
2011-11-08 22:59
411 查看
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 '&***E'.
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
*&---------------------------------------------------------------------*
*& 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 '&***E'.
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
相关文章推荐
- 提供 CheckBox 全选与取消全选程序
- checkbox的全选与取消全选
- 【经典】表格checkbox 全选与取消
- checkbox的全选与取消全选
- checkbox功能实现之全选、反选、取消
- js一键控制checkBox正反选以及随着变化取消全选状态
- jQuery--checkbox全选/取消全选
- ASP.NET jQuery 实例6 (实现CheckBoxList成员全选或全取消)
- js实现checkbox的全选/取消
- checkbox全选,取消全选
- 获取checkbox返回undefined,实现全选/取消
- DataGrid中CheckBox的全选/取消全选
- jQuery实现checkBox全选全取消
- checkbox全选/取消全选以及checkbox遍历jQuery实现代码
- 转:Javascript 控制 CheckBox 的全选与取消全选
- 比较全的JS checkbox全选、取消全选、删除功能代码
- jquery checkbox 全选 取消 demo
- jquery操作checkbox实现全选和取消全选
- jquery实现checkbox全选,反选,取消选择,对象存在
- DataGrid 的 全选/取消全选 控制(CheckBox)