ALV报表入门
一 .什么是ALV
SAP提供一套ALV(Application List viewer.)的功能模塊,可以對輸出報表的樣式作修飾,提高報表輸出的可讀性和功能性,對于動態報表程序是一個很有效率的工具。一般的ALV報表有一個表頭,再加上表內容,并附加一些如排序,分類匯總,合計或下載為本地文件等預設功能。ALV報表顯示方式基本上有2種,一種是Grid方式,一種是List方式,分別調用不同的Function來實現。
二.ALV式樣
1. REUSE_ALV_GRID_DISPLAY
2. REUSE_ALV_LIST_DISPLAY
3.ALV工具欄
三.ALV函數的調用
當完成從數據庫抽取數據或上傳數據,并將數據存放到內部表(IT_ABC)后,開始調用下面的ALV函數模塊。
1.指定數據類型組
TYPE-POOLS: SLIS.
DATA:
IT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV, "ALV輸出項目編輯用
WA_FIELDCAT TYPE SLIS_FIELDCAT_ALV, "ALV輸出項目編輯用
WA_LAYOUT TYPE SLIS_LAYOUT_ALV. "ALV樣式設定用
2.調出函數模塊
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
IS_LAYOUT = WA_LAYOUT
IT_FIELDCAT = IT_FIELDCAT
TABLES
T_OUTTAB = IT_TAB.
......
3. 函數的各項說明
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
I_STRUCTURE_NAME = 已經存在SAP系統中的結構
IS_LAYOUT = 布局
IT_FIELDCAT = 自定義
IT_SORT = 對項目的一個排序
IT_EVENTS = 標題部分
......
四.使用ALV的注意事項
1.在ALV中,需要注意所有添加的需要顯示的列,都必須在相應的內表中有對應的字段,否則,只要使用合計或者分類匯總都會導致程序的崩潰。
2.在SAP ABAP程序中,字符串的大小寫很重要,在單引號包圍的字符串中,一般來說都應該用大寫,特別是在調用一些系統的方法時傳入字符串參數時,例如在ALV中,
Call Function ‘REUSE_ALV_GRID_DISPLAY’時,
傳入的下面的兩個參數:
i_callback_pf_status_set = ‘SET_PF_STATUS’
i_callback_user_command = ‘USER_COMMAND’
就必須使用大寫字符串,否則就會出現Perform_not_found的系統錯誤。
3.另外,傳入到ALV中的列對應的字段名稱也必須使用大寫字母,否則數據不會顯示出來。
五.相關參數說明
1.構造SLIS_FIELDCAT_ALV常用參數說明
CLEAR WA_FIELDCAT.
WA_FIELDCAT-FIELDNAME = ‘MTART‘. “指定從內表中的輸出的數據項目
WA_FIELDCAT-SELTEXT_L = ‘品目タイプ‘. “上面指定項目顯示時的名稱(長文本)
WA_FIELDCAT-SELTEXT_M = ‘品目タイプ‘. “上面指定項目顯示時的名稱(中文本)
WA_FIELDCAT-SELTEXT_S = ‘品目タイプ‘. “上面指定項目顯示時的名稱(短文本)
WA_FIELDCAT-REPTEXT_DDIC = ‘品目タイプ‘. “上面指定項目顯示時的名稱(定義文本)
WA_FIELDCAT-OUTPUTLEN = 15. “列的顯示寬度
WA_FIELDCAT-HOTSPOT = ‘X’. “設置熱點狀態
......
APPEND WA_FIELDCAT TO IT_FIELDCAT.
注意:有多少個項目列要顯示就要這樣向內部表IT_FIELDCAT中追加記錄多少次。
2.構造SLIS_LAYOUT_ALV常用參數說明
LAYOUT-ZEBRA = ‘X’. “斑馬線樣式
LAYOUT-COLWIDTH_OPTIMIZE = 'X'. “列寬度自動根據內容優化
LAYOUT-NO_COLHEAD = ‘X’. “列名稱不顯示
LAYOUT-NO_VLINE = ‘X’. “不表示區分用的垂直線
LAYOUT-EDIT = ‘X’. “列值可編輯,只用于GRID
LAYOUT-WINDOW_TITLEBAR = ‘ALV窗體的標題’. “一行
......
六.通常調用所使用參數
CALL FUNCTION'REUSE_ALV_LIST_DISPLAY'
EXPORTING
IT_FIELDCAT = IT_FIELDCAT "輸出項目列文本信息(表頭)
IS_LAYOUT = L_LAYOUT "輸出列表樣式信息
TABLES
T_OUTTAB = IT_ALVOUT "輸出的數據信息(明細)
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2.
另一種簡便的方法:
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_STRUCTURE_NAME = 'TY_OUT_FILE' "輸出項目列文本信息(表頭)
IS_LAYOUT = L_LAYOUT "輸出列表樣式信息
TABLES
T_OUTTAB = TAB_OUT_FILE "輸出的數據信息(明細)
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2.
注:TY_OUT_FILE構造必須是數據字典中已經存在的對象。
輸出項目繁多時,建議先在數據字典系統中創建構造,然后使用后一種調用方法,這樣可免去對輸出列表頭信息的繁瑣編輯處理,使代碼行也縮短。
總結
- 上一篇: iOS 14.3 隐藏项目:可通过指令激
- 下一篇: 怎么创建具有真实纹理的CG场景岩石?