2011年3月30日 星期三

[ABAP] SAP List Viewer(ALV) 簡介與範例程式之一

Author : Fred Wang (http://fredwang.blogspot.com) Date : 2006/08/25
另外, SAP提供很好的範例程式, 直接供你複製, 我就 ALV技術的 sample programs 整理如下(七類) :
1. Simple list
- 超基本 : BALVSD02, BALVSD02_GRID, BALVSD02_SAVE 利用現有的資料結構作為欄位定義
- 基本 : BALVSD03, BALVSD04 程式中自訂欄位定義
- 完整 : BALVSD01, BALVSD11(*程式可以知道使用者選擇哪筆record), BALVST01, BALVST02, BALVEX01,BALVEX02

要注意, 這些程式最好用SE80去看, 因為有些GUI Status 為自訂的, 可從SAPLKKBL複製它的"STANDARD" GUI status到自己的程式, 再增刪需要與不需要的按鈕 
範例程式 Package: SLIS
2. Mini ALV List (function module使用方式與simple list看起來差不多)
- BCALV_MINIALV_SIMPLE (最簡單), BCALV_MINIALV

3. Block List
- BALVBT01, BALVBT02
BALVBT01 => 使用 REUSE_ALV_BLOCK_LIST_DISPLAY
搭配下列 Functions:
  REUSE_ALV_BLOCK_LIST_INIT
  REUSE_ALV_BLOCK_LIST_APPEND
  REUSE_ALV_BLOCK_LIST_HS_APPEND
  REUSE_ALV_BLOCK_LIST_DATA_GET
  REUSE_ALV_BLOCK_LIST_DATA_SET
  REUSE_ALV_BLOCK_LIST_REFRESH
  REUSE_ALV_BLOCK_STATUS_GET
BALVBT02 => 使用 REUSE_ALV_LIST_DISPLAY
利用 Event 的 END_OF_LIST 呼叫下一個 ALV List,這個方式可以正常的使用 Double click 功能。
4. Hierarchical-sequential list
- BALVHD01, BALVHD01_GROUP, BALVHT01

5. ALV Grid Control (用Grid control object, 採物件導向式的設計, 注意, 按鈕並不是在GUI status上)
- BCALV_GRID_DEMO, BCALV_GRID_*

6. ALV Tree Control
- BCALV_TREE_SIMPLE_DEMO, BCALV_TREE_DEMO, BCALV_TREE_*

7. Other ALV
- BCALV_TEST_*