1. 程式人生 > >ALV簡介和Fieldcat與Layout相關引數屬性

ALV簡介和Fieldcat與Layout相關引數屬性

ALV(SAP List Viewer) 是SAP常用的螢幕顯示列表控制元件物件,通過傳遞資料內表方式顯示資料;

ALV顯示格式分為Grid 和 List兩種模式:

Grid模式有欄位選擇按鈕功能,允許使用者直接輸出格式,操作更為靈活;

List 模式則固定格式,應用於較嚴格的標準報表。

Grid Mode:

alv_grid_mode

alv_grid_mode

List Mode:

alv_list_mode

alv_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 函式用到的全域性變數:

1234567DATA: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函式用到的全域性變數:

1234567DATA: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

, Fieldcat 的型別為 slis_fieldcat_alv

REUSE_ALV_GRID_DISPLAY_LVC 的Layout 型別為 lvc_s_layo, Fieldcat 的型別為 lvc_s_fcat

其中,對於‘SLIS_’開頭的,可以在型別池 SLIS 中檢視,‘LVC_’開頭的可以在資料字典(SE11)中檢視。

SLIS 型別池中 slis_layout_alv 的定義:

slis_layout_alv

slis_layout_alv

SE11中,lvc_s_layo的定義:

lvc_s_layo

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_linesizeALV列表的最小寬度sy-linsz,取值10到250可選引數
max_linesizeALV列表的最大寬度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_tabnamebox_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螢幕
xifunckeyeXtended interaction(SAPQuery)
xidirecteXtended 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_FNAMEField name with exception coding
EXCP_ROLLN