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.