天天看點

REUSE_ALV_GRID_DISPLAY_LVC的使用

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.           

繼續閱讀