'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
1,如果抛出是错误信息,而不是dump信息,可以直接根据错误提示,直接从业务角度解决。2,如果是抛出的是错误提示,你确实又想debug的话,那就双击错误的消息找到消息号,然后反查这个消息号在哪些程序中用到过,打上断点,然后重新进行前台 *** 作,即可调试3,如果是dump信息,可以单击debug按钮直接进到调试界面。ALV里面的no_zero可以控制列的前导零不显示,如果为0则不显示该列的值。但是ALV没有控制到具体单元格的功能,如果你要实现此需求,可以这样处理:在显示的内表中添加一个CHAR类型的列,如果数字不为0,则该列值为空;如果数字为0,则将该数值直接等过去。在ALV显示的时候显示该列而不要显示对应的数字列
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)