ABAP代码中用于调用ALV显示的子例程示例代码:
FORM FRM_DIS_ALV .
PERFORM FRM_SET_FIELDCAT ."设置字段目录(字段)
PERFORM FRM_GET_LAYOUT. "设置布局(行,列)
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'
EXPORTING
I_CALLBACK_PROGRAM = SY-REPID
IS_LAYOUT_LVC = WA_LAYOUT "布局变量
IT_FIELDCAT_LVC = WA_FIELDCAT[] "字段目录变量
I_SAVE = 'A'
TABLES
T_OUTTAB = ITAB_ALV[]
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2.
ENDFORM.
上述代码首先设置字段目录和布局,然后调用REUSE_ALV_GRID_DISPLAY_LVC方法,此方法是SAP提供的标准方法,用来以表格的形式显示内表中的数据。上述代码中EXPORTING和TABLES中的变量,都是输入参数。输入参数包括:布局WA_LAYOUT 、字段目录 WA_FIELDCAT 和内表ITAB_ALV。
执行子例程PERFORM FRM_SET_FIELDCAT ."设置字段目录(字段)
执行子例程PERFORM FRM_GET_LAYOUT. "设置布局(行,列)
下面是设置字段目录FIELDCAT的代码:
FORM FRM_SET_FIELDCAT .
PERFORM FIELDCAT_FUNC USING 'LIFNR' TEXT-001 '' '' 'ALPHA' 'X'. "供应商编码
PERFORM FIELDCAT_FUNC USING 'NAME1' TEXT-002 '' '' 'ALPHA' 'X'. "供应商名称
PERFORM FIELDCAT_FUNC USING 'BELNR' TEXT-003 '' '' 'ALPHA' 'X'. "物料凭证编码
PERFORM FIELDCAT_FUNC USING 'BWART' TEXT-004 '' '' 'ALPHA' 'X'. "移动类型
PERFORM FIELDCAT_FUNC USING 'EBELN' TEXT-005 '' '' 'ALPHA' 'X'. "采购凭证编码
PERFORM FIELDCAT_FUNC USING 'EBELP' TEXT-006 '' '' 'ALPHA' 'X'. "行项目
PERFORM FIELDCAT_FUNC USING 'WERKS' TEXT-007 '' '' 'ALPHA' 'X'. "工厂
PERFORM FIELDCAT_FUNC USING 'MATNR' TEXT-009 '' '' 'ALPHA' 'X'. "物料号
PERFORM FIELDCAT_FUNC USING 'TXZ01' TEXT-010 '' '' 'ALPHA' 'X'. "物料描述
ENDFORM.
FORM FIELDCAT_FUNC USING VALUE(LP_FIELDNAME) "字段名称
VALUE(LP_COLTEXT) "字段中文含义
VALUE(LP_EDIT) "
VALUE(LP_CHECKBOX) "
VALUE(LP_CONVEXIT) "
VALUE(LP_LZERO). "
CLEAR WT_FIELDCAT.
WA_FIELDCAT-FIELDNAME = LP_FIELDNAME."字段名
WA_FIELDCAT-COLTEXT = LP_COLTEXT. "字段中文名
WA_FIELDCAT-EDIT = LP_EDIT. "ALV 控制: 准备输入
WA_FIELDCAT-CHECKBOX = LP_CHECKBOX. "ALV 控制: 作为复选框输出
WA_FIELDCAT-CONVEXIT = LP_CONVEXIT. "转换例程
WA_FIELDCAT-LZERO = LP_LZERO. "ALV 控制: 输出前导零
APPEND WA_FIELDCAT.
ENDFORM.