輸出ALV完整流程

1.定義一個SAP標(biāo)準(zhǔn)類型庫
TYPE-POOLS: SLIS.
2.定義一個LAYOUT式樣,和一個FIELDCAT字段格式,

DATA: G_F TYPE SLIS_T_FIELDCAT_ALV , "字段目錄內(nèi)表
       W_L TYPE SLIS_LAYOUT_ALV. "用于定義ALV表單的相關(guān)格式、屬性

3.如果選擇屏幕復(fù)選框參考了表
TABLES : EKKO, EKPO.
4.定義一個結(jié)構(gòu)

TYPES: BEGIN OF G_TY,
   BOX TYPE C,
   EKORG TYPE EKKO-EKORG,
   BSART TYPE EKKO-BSART,
   LIFNR TYPE EKKO-LIFNR,
   EBELN TYPE EKKO-EBELN,
 END OF G_TY.

5.定義表和工作區(qū)

DATA: G_TAB TYPE TABLE OF G_TY,
       W_TAB LIKE LINE OF G_TAB.   或者 
       W_TAB TYPEG_TY.

6.定義屏幕

SELECTION-SCREEN BEGIN OF BLOCK XYY WITH FRAME TITLE TEXT-001.
PARAMETERS P_VKORG TYPE VBAK-VKORG OBLIGATORY.
  SELECT-OPTIONS: S_VBELN FOR VBAK-VBELN,
                  S_AUART FOR  VBAK-AUART.
SELECTION-SCREEN END OF BLOCK XYY.

這里只定義了單選框(PARAMETERS)和復(fù)選框(SELECT-OPTIONS)。一個用TYPE,一個用FOR。表查詢會依照屏幕條件篩選數(shù)據(jù)。

7.初始化屏幕
INITIALIZATION.
加這個條件是告訴系統(tǒng)在這屏幕展示完,要查數(shù)據(jù),展示報(bào)表了。

8.按順序執(zhí)行

START-OF-SELECTION.
  PERFORM FRM_SELDATA.
  PERFORM FRM_WRITE .
END-OF-SELECTION.  

9.數(shù)據(jù)查詢實(shí)現(xiàn)PERFORM 方法

FORM FRM_SELDATA .
SELECT:
  EKKO~EKORG
  EKKO~BSART
  EKKO~LIFNR
  INTO CORRESPONDING FIELDS OF TABLE G_TAB
  FROM EKKO INNER JOIN EKPO ON EKKO~EBELN = EKPO~EBELN
  WHERE EKKO~EKORG IN P_EKORG
  AND EKKO~BSART IN P_BSART
  AND EKKO~LIFNR IN P_LIFNR
  AND EKKO~EBELN IN P_EBELN.
ENDFORM. "FRM_SELDATA

查詢的時(shí)候三個表以下可以用 INNER JOIN,否則就用內(nèi)表傳遞,一個表一個表的查,再傳遞。

10.實(shí)現(xiàn)ALV輸出

FORM FRM_WRITE .
   PERFORM LAYOUT.              "輸出樣式
   PERFORM INIT_FIELDCA.       "輸出屬性
   PERFORM LISTADO.                "展示
ENDFORM. " FRM_WRITE

(1)實(shí)現(xiàn)ALV輸出具體的方法:定義ALV樣式

FORM LAYOUT .
   W_L-BOX_FIELDNAME = 'BOX'.
   W_L-ZEBRA = 'X'.         "顏色間隔
  W_L-COLWIDTH_OPTIMIZE = 'X'.       "自適應(yīng)寬度
ENDFORM. " LAYOUT_19

(2)

FORM INIT_FIELDCA .
   CLEAR G_F.
  G_F-FIELDNAME = 'EKORG'. "必須為大寫
  G_F-SELTEXT_S  = '采購組織'.
  G_F-SELTEXT_M  = G_F-SELTEXT_S.
  G_F-SELTEXT_L  = G_F-SELTEXT_S.
   APPEND G_F.
CLEAR G_F.
G_F-FIELDNAME = 'TXZ01'.
G_F-SELTEXT_S  = '行文本'.
G_F-SELTEXT_M  = G_F-SELTEXT_S.
G_F-SELTEXT_L  = G_F-SELTEXT_S.
G_F-EDIT  = 'X' .
G_F-REF_FIELDNAME  = 'TXZ01'.  "參考字段名
G_F-REF_TABNAME    = 'EKPO'.   "參考表名
APPEND G_F.
ENDFORM. " INIT_FIELDCAT_19  

(3)輸出

FORM LISTADO .
   CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
      I_CALLBACK_PROGRAM = SY-REPID   "當(dāng)前程序名
     I_CALLBACK_USER_COMMAND    = 'USER_COMMAND' "自定義按鈕響應(yīng)事件
     I_CALLBACK_PF_STATUS_SET   = 'SET_PF_STATUS' "設(shè)置ALV的自定義按鈕
     IS_LAYOUT          = W_L "輸出樣式
     IT_FIELDCAT        = G_F[]  "字段定義描述表
"     I_CALLBACK_TOP_OF_PAGE = 'F_TOP_OF_PAGE'
     I_SAVE             = 'A'
       " I_SAVE有4個可選值: I_SAVE= '' --- 不能保存格式;
      " I_SAVE = 'X' --- 保存標(biāo)準(zhǔn)格式;
      " I_SAVE = 'U' --- 保存特定用戶格式;
      " I_SAVE = 'A' --- 保存標(biāo)準(zhǔn)格式和特定用戶格式。
   TABLES
      T_OUTTAB           = G_TAB   "內(nèi)表輸出名稱
   EXCEPTIONS
      PROGRAM_ERROR      = 1
      OTHERS             = 2.
   IF SY-SUBRC <> 0.
     MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
     WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
   ENDIF.
 ENDFORM. " LISTADO
 FORM SET_PF_STATUS USING RT_EXTAB TYPE SLIS_T_EXTAB.
   SET PF-STATUS 'STATUS' .
 ENDFORM.

11.寫USER_COMMAND的一個事件(這個作業(yè)要求實(shí)現(xiàn)更改數(shù)據(jù),點(diǎn)擊按鈕且保存成功)

FORM USER_COMMAND USING R_UCOMM LIKE SY-UCOMM
                         RS_SELFIELD TYPE SLIS_SELFIELD.
   DATA: GV_GRID TYPE REF TO CL_GUI_ALV_GRID.
   "刷新
  CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
     IMPORTING
       E_GRID = GV_GRID.
   CALL METHOD GV_GRID->CHECK_CHANGED_DATA.
    CASE R_UCOMM.
       WHEN 'SKIP'.
         IF SY-SUBRC = 0.
         ENDIF.
     ENDCASE.
 ENDFORM. "LISTADO
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 一、ALV是什么? ALV(SAP LIST VIEW)是一種比較美觀的報(bào)表顯示工具,具有網(wǎng)格顯示方式,有排序、篩...
    hitammy閱讀 8,883評論 0 5
  • 2017.11.11,在女兒過的第三個光棍節(jié)的日子,帶她去拍了三周歲紀(jì)念照。猛生想法,過幾年帶你和爸爸拍套婚紗照,...
    芯芯媽閱讀 299評論 0 0
  • “最怕一生碌碌無為,卻說平凡難能可貴?!焙苊馨?, 凌晨一點(diǎn)鐘,樓道的公廁里只有我一個人。不是失眠,是拉肚子…… ...
    韓可愛的李過兒閱讀 450評論 1 1
  • 愛吃,是一種態(tài)度,能吃,是一種樂趣,懂吃,是一種享受,會吃是一種學(xué)問,真正的生活者,源于對食物的無比熱愛。 同樣,...
    獨(dú)立行走的魚閱讀 2,516評論 23 40
  • 劉邦,一個流氓出身。卻成為中國歷史上第一個貧民皇帝,他的成功出乎很多人的意料,為何一個流氓能得道天下呢。 ...
    淚已干心已碎閱讀 511評論 0 2

友情鏈接更多精彩內(nèi)容