您的位置:首页 > 其它

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: