ALV簡介和Fieldcat與Layout相關引數屬性
ALV(SAP List Viewer) 是SAP常用的螢幕顯示列表控制元件物件,通過傳遞資料內表方式顯示資料;
ALV顯示格式分為Grid 和 List兩種模式:
Grid模式有欄位選擇按鈕功能,允許使用者直接輸出格式,操作更為靈活;
List 模式則固定格式,應用於較嚴格的標準報表。
Grid Mode:
List Mode:
輸出ALV的 有兩個:REUSE_ALV_GRID_DISPLAY 和 REUSE_ALV_GRID_DISPLAY_LVC
兩個函式都可以將資料用ALV的形式顯示出來,只是一些小部分有所不同。
2.1 在呼叫 ALV 函式前,需要引入一個型別池:SLIS
2.2 Layout和Fieldcat的定義
Layout 主要用於設定 ALV 的輸出格式,為 ALV 輸出的可選項;
Fieldcat 主要用於ALV的結構定義,包括具體的欄位及名稱、型別、格式等屬性,為 ALV 輸出的必選項。
在呼叫ALV之前,需要先定義Layout 和Fieldcat,他們同屬於型別池 SLIS:
其中,對於兩個ALV函式用到的全域性變數定義有所區別:
1) REUSE_ALV_GRID_DISPLAY 函式用到的全域性變數:
1234567 | DATA : wa_fieldcat TYPE slis_fieldcat_alv , " 相當於工作區 i_fieldcat TYPE slis_t_fieldcat_alv , " 存放輸出欄位名稱的列表 i_layout TYPE slis_layout_alv . " 負責整個ALV的全域性屬性 |
2) REUSE_ALV_GRID_DISPLAY_LVC函式用到的全域性變數:
1234567 | DATA : wa_fieldcat TYPE lvc_s_fcat , " 相當於工作區 i_fieldcat TYPE lvc_t_fcat , " 存放輸出欄位名稱的列表 i_layout TYPE lvc_s_layo . " 負責整個ALV的全域性屬性 |
可以看出:
REUSE_ALV_GRID_DISPLAY 的Layout 型別為 slis_layout_alv
REUSE_ALV_GRID_DISPLAY_LVC 的Layout 型別為 lvc_s_layo, Fieldcat 的型別為 lvc_s_fcat;
其中,對於‘SLIS_’開頭的,可以在型別池 SLIS 中檢視,‘LVC_’開頭的可以在資料字典(SE11)中檢視。
SLIS 型別池中 slis_layout_alv 的定義:
SE11中,lvc_s_layo的定義:
3.1 slis_fieldcat_alv 常用具體欄位欄位如下:
1) 公共部分
欄位名稱 | 描述 | 輸入值 | 備註 |
no_colhead(1) | 不顯示標題 | X-不顯示,space-顯示 | |
no_hotspot(1) | 標題不設熱點 | X-沒有,space-有 | |
zebra(1) | 使ALV表格按斑馬線間隔條碼方式顯示 | X-有,space-沒有 | |
no_vline(1) | 設定列間豎線 | X-不顯示,space-顯示 | |
no_hline(1) | 設定行間隔線 | X-不顯示,space-顯示 | |
cell_merge(1) | 設定是否壓域複製 | X-可複製,space-不可複製 | |
edit(1) | 設定所有單元格可編輯 | X-可編輯,space-不可編輯 | |
edit_mode(1) | 編輯模式 | ||
numc_sum(1) | 設定僅NUMC型別欄位進行總計 | X-僅Numc型別, space-不僅Numc型別 | |
no_input(1) | 不允許輸入,用於顯示狀態 | X-不允許,space-允許 | |
f2code | 設定觸發彈出詳細資訊視窗的功能碼 | sy-ucomm | ‘&ETA’ – 雙擊 |
no_keyfix (1) | 關鍵字不固定,可以隨滾動條滾動 | X-不固定,space-固定 | |
expand_all (1) | 展開所有的node | 對hierarchy ALV函式而言 | |
no_author (1) | 設定是否需要系統標準許可權檢查 | X-不需要,space-需要 |
2) ALV選單欄
欄位名稱 | 描述 | 輸入值 | 備註 |
def_status (1) | 預設選單狀態 | A顯示,space不顯示 | ‘A’ – 為顯示所有標準選單 |
item_text (20) | 選單按鈕文字 | ||
countfname (1) | lvc_fname |
3) 顯示選項
欄位名稱 | 描述 | 輸入值 | 備註 |
colwidth_optimize(1) | 優化列寬設定 | X-優化 | 預設:space |
no_min_linesize(1) | 設定不允許最小寬度 | X-不允許,space-允許 | 預設:space |
min_linesize | ALV列表的最小寬度 | sy-linsz,取值10到250 | 可選引數 |
max_linesize | ALV列表的最大寬度 | sy-linsz,可取值80-1020 | 預設值250 |
window_titlebar | 視窗標題 | sy-title | |
no_uline_hs(1) | 輸出ALV表不顯示水平格線 | X-不顯示,space-顯示 |
4) 紅綠燈顯示異常
欄位名稱 | 描述 | 輸入值 | 備註 |
lights_fieldname | 輸出內表中定義的欄位名,該欄位用來顯示狀態燈 | 1:red,2:yellow,3:green | |
lights_tabname | 輸出欄位的參考內表名稱 | ||
lights_rollname | 資料元素的名稱,在燈欄位按F1觸發 | ||
lights_condense | 對輸出的內表分類彙總的時候,小計行顯示狀態燈 | X |
5) 彙總合計
欄位名稱 | 描述 | 輸入值 | 備註 |
no_sumchoice (1) | 不能進行選擇總計 | ||
no_totalline (1) | 不能總計,但可以小計 | ||
no_subchoice (1) | 不能選擇小計,但可以總計 | ||
no_subtotals (1) | 不能小計,但可以總計 | ||
no_unit_splitting | 有單位欄位,不進行總計 | ||
totals_before_items | 總行將會顯示在最前面 | ||
totals_only (1) | 僅顯示合計 | ||
totals_text (60) | 合計,第一列顯示的文字 | ||
subtotals_text (60) | 總計和小計行,第一列顯示的文字 |
6) 互動
欄位名稱 | 描述 | 輸入值 | 備註 |
box_fieldname | 設定ALV表格是否顯示選擇按鈕欄位 | ||
box_tabname | box_fieldname 參考內表名稱 | ||
box_rollname | 下拉框按鈕名稱 | ||
expand_fieldname | ’展開’欄位名稱 | ||
hotspot_fieldname | 熱點欄位 | ||
confirmation_prompt | 退出ALV列表的確認對話方塊 | ||
key_hotspot (1) | 關鍵欄位作為熱點 | ||
flexible_key (1) | 關鍵欄位可以移動 | ||
group_buttons (1) | COL1 – COL5 按鈕組 | ||
get_selinfos (1) | 獲取選擇螢幕 | ||
group_change_edit (1) | 設定使用者新的按鈕組 | ||
no_scrolling(1) | 滾動條無效,清單不隨其滾動 | 僅list_alv有效 |
7) 明細視窗
欄位名稱 | 描述 | 輸入值 | 備註 |
detail_popup (1) | 行專案明細彈窗形式 | X-顯示,space-不顯示 | 對list_alv有效 |
detail_initial_lines(1) | 明細中同時顯示初始化行 | X-同時顯示,space-不顯示 | |
detail_titlebar | 明細視窗標題文字 | sy-title |
8) 顯示變式
欄位名稱 | 描述 | 輸入值 | 備註 |
header_text | 表頭按鈕 | ||
default_item (1) | 列表明細作為預設值 | X-啟用,space-不啟用 |
9) 顏色
欄位名稱 | 描述 | 輸入值 | 備註 |
info_fieldname | 用於設定ALV輸出報表每一行的顏色, 其引數為輸出內表的欄位名稱 | C000~C999 | 倘若其資料輸出內表名為LT_OUT,則需要在改內表增加一個欄位“COLOR”,併為內表每行賦值, LT_OUT-COLOR = ‘C500’ |
coltab_fieldname | 顏色值 |
10) 其他
欄位名稱 | 描述 | 輸入值 | 備註 |
list_append | 設定是否Call螢幕 | ||
xifunckey | eXtended interaction(SAPQuery) | ||
xidirect | eXtended INTeraction(SAPQuery) | ||
dtc_layout | 設定Tabstip的佈局格式配置 | DTC_S_LAYO | |
allow_switch_to_list | 設定從Grid模式轉換為List模式 |
3.2 lvc_s_layo常用具體欄位欄位如下:
1) 佈局控制(ALV_S_LAYO)
欄位名稱 | 描述 | 輸入值 | 備註 |
ZEBRA(1) | 使ALV表格按斑馬線間隔條碼方式顯示 | X-有,space-沒有 | |
EDIT(1) | 準備編輯 | X-可編輯,space-不可編輯 | |
EDIT_MODE(1) | 編輯模式 | ||
NO_KEYFIX(1) | 關鍵字不固定,可以隨滾動條滾動 | X-不固定,space-固定 | |
FRONTEND(1) | |||
LANGUAGE | 語言識別符號 | LANG | |
SMALLTITLE(1) | 標題大小 | ||
NO_HGRIDLN(1) | 是否隱藏水平網格線 | X-不顯示,space-顯示 | |
NO_VGRIDLN(1) | 是否隱藏垂直網格線 | X-不顯示,space-顯示 | |
NO_HEADERS(1) | 隱藏列擡頭 | X-不顯示,space-顯示 | |
NO_MERGING(1) | 禁用單元格合併 | ||
CWIDTH_OPT(1) | 自動優化列寬 | X-優化,space-不自動優化 | |
TOTALS_BEF(1) | 在個別記錄前總計輸出 | ||
NO_TOTARR(1) | 彙總行前顯示箭頭表示彙總 | ||
NO_TOTEXP(1) | 只顯示小計,不顯示總計 | ||
NO_F4(1) | 遮蔽F4搜尋幫助 | ||
COUNTFNAME | 內部表字段的欄位名稱 | LVC_FNAME |
2) 一般顯示選項(LVC_S_L001)
欄位名稱 | 描述 | 輸入值 | 備註 |
STYLEFNAME | 用來傳輸格表,以便把各顯示為按鈕 | LVC_FNAME |
3) 網格定製(LVC_S_L002)
欄位名稱 | 描述 | 輸入值 | 備註 |
NO_ROWMARK | 禁用行選擇 | ||
NO_TOOLBAR | 隱藏工具欄 | ||
GRID_TITLE | 標題欄文字 | ||
SEL_MODE(1) | 選擇模式 | A-選擇按鈕,space-空白 | “A”在最左端有選擇按鈕 |
BOX_FNAME | 內部表字段的欄位名稱 | ||
SGL_CLK_HD | 第一次點選列的頭的時候升序排列, 第二次點選的時候降序排列 |
4) 總計選項(LVC_S_L003)
欄位名稱 | 描述 | 輸入值 | 備註 |
NO_TOTLINE(1) | 不輸出總計行 | X-不輸出,space-輸出 | |
NUMC_TOTAL(1) | 禁止 NUMC 欄位總計 | X-禁止,space-不禁止 | |
NO_UTSPLIT(1) | 按單元拆分總計行 | X-不拆分,space-拆分 |
5) 例外(LVC_S_L004)
欄位名稱 | 描述 | 輸入值 | 備註 |
EXCP_FNAME | Field name with exception coding | ||
EXCP_ROLLN |