ABAP ALV 动态显示列
ALV已能显示一个内表数据,根据用户选择的条件不同,现ALV表格中有的整列内容为0或为空,如何在程序中动态地设置显示或隐藏这些列?即整列为0时,这一列不显示.注意:条件不...
ALV已能显示一个内表数据,根据用户选择的条件不同,现ALV表格中有的整列内容为0或为空,如何在程序中动态地设置显示或隐藏这些列?即整列为0时,这一列不显示.注意:条件不同时这一列可能又不为0. 则要显示.
read table gt_tab with key 列4 = 0 BINARY SEARCH. 这个好像不起作用呀,如果这一列中有的值为0,有的不是0,那么能搜索到, SY-SUBRC=0,则这一列就不显示了,我要的是只要有一个值不为0,那到这一列就要显示,只有整列为0,就不显示. 展开
read table gt_tab with key 列4 = 0 BINARY SEARCH. 这个好像不起作用呀,如果这一列中有的值为0,有的不是0,那么能搜索到, SY-SUBRC=0,则这一列就不显示了,我要的是只要有一个值不为0,那到这一列就要显示,只有整列为0,就不显示. 展开
展开全部
PERFORM F_INPUT_FIELDCAT USING:
'A' '列1',
'B' '列2',
'C' '列3'.
*如果不等于0就输出列4
sort gt_tab by 列4.
read table gt_tab with key 列4 = 0 BINARY SEARCH.
IF sy-subrc <> 0.
PERFORM F_INPUT_FIELDCAT USING 'D' '列4'.
endif.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'
EXPORTING
I_CALLBACK_PROGRAM = SY-REPID
IS_LAYOUT_LVC = WS_LAYOUT
IT_FIELDCAT_LVC = WS_FIELDCAT
TABLES
T_OUTTAB = GT_TAB
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2.
*&---------------------------------------------------------------------*
*& Form F_INPUT_FIELDCAT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->VALUE(P_FIELD) text
* -->VALUE(P_NAME) text
*----------------------------------------------------------------------*
FORM F_INPUT_FIELDCAT USING VALUE(P_FIELD)
VALUE(P_NAME).
DATA: ST_FIELDCAT TYPE LVC_S_FCAT.
ST_FIELDCAT-FIELDNAME = P_FIELD.
ST_FIELDCAT-SCRTEXT_M = P_NAME.
APPEND ST_FIELDCAT TO WS_FIELDCAT.
CLEAR ST_FIELDCAT.
ENDFORM. "F_INPUT_FIELDCAT
'A' '列1',
'B' '列2',
'C' '列3'.
*如果不等于0就输出列4
sort gt_tab by 列4.
read table gt_tab with key 列4 = 0 BINARY SEARCH.
IF sy-subrc <> 0.
PERFORM F_INPUT_FIELDCAT USING 'D' '列4'.
endif.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'
EXPORTING
I_CALLBACK_PROGRAM = SY-REPID
IS_LAYOUT_LVC = WS_LAYOUT
IT_FIELDCAT_LVC = WS_FIELDCAT
TABLES
T_OUTTAB = GT_TAB
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2.
*&---------------------------------------------------------------------*
*& Form F_INPUT_FIELDCAT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->VALUE(P_FIELD) text
* -->VALUE(P_NAME) text
*----------------------------------------------------------------------*
FORM F_INPUT_FIELDCAT USING VALUE(P_FIELD)
VALUE(P_NAME).
DATA: ST_FIELDCAT TYPE LVC_S_FCAT.
ST_FIELDCAT-FIELDNAME = P_FIELD.
ST_FIELDCAT-SCRTEXT_M = P_NAME.
APPEND ST_FIELDCAT TO WS_FIELDCAT.
CLEAR ST_FIELDCAT.
ENDFORM. "F_INPUT_FIELDCAT
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询