ABAP ALV函數參數說明


1. 方法"set_table_for_first_display"的參數說明

_BUFFER_ACTIVE 如果方法調用是靜態的,可以設置這個標記,這表示,如果每次顯示ALV都是

相同的字段目錄.既然這樣,那么字段目錄會被放到一個特殊的緩存里,

這樣加速了ALV的顯示

I_STRUCTURE_NAME 輸出數據參考的數據字典的結構名,例如\'SFLIGHT\'.如果指定了這個參數,字段

目錄會自動生成,下面的參數IT_FIELDCATALOG不需要傳值.

IS_VARIANT 決定布局顯示的變式

I_SAVE 決定用戶是否可以保存變式:

\'X\' 只能保存全局變式

\'U\' 只能保存特定變式

\'A\' 都可以保存

SPACE 不可以保存變式

I_DEFAULT 決定用戶是否可以定義默認的布局:

\'X\' 可以定義默認布局,這個參數是默認的

SPACE 不可以定義默認布局

IS_LAYOUT 布局參數,傳遞布局控制的一些信息

IS_PRINT 后台打印屬性的參數

IT_SPECIAL_GROUPS 如果在字段目錄中,一些字段通過SP_GROUP被分組在一起.我們就必須為這些

組傳遞一個組的文本內表進去

IT_TOOLBAR_EXCLUDING 需要隱藏的標准的按鈕的內表

IT_HYPERLINK 為每個句柄分配了超連接的內表,LVC_S_HYPE中的HREF存放了超連接的地址,

HANDLE指定了句柄,使用這些句柄,你可以在GRID中使用超連接

IT_ALV_GRAPHICS 比較復雜,沒有用過,意思好象是可以在圖表中顯示ALV.

IT_OUTTAB 輸出數據存放的內表,數據都是存放在這個內表里

IT_FIELDCATALOG 字段目錄

IT_SORT 排序的標准

IT_FILTER 過濾的標准

 

2. 結構LVC_S_FCAT參數說明

1.字段目錄  [Field catalog]

       字段目錄是用來控制ALV顯示的網格中每個字段的屬性的,比如字段的順序,對齊方式,可編輯狀態,顏色,等等.

       常用的控制字段如下:(下面的示例將說明這些字段的使用,參考STRUCTURE LVC_S_FCAT)

2 ROW_POS ALV 控制輸出行 (內部使用 

3 COL_POS ALV 控制輸出列 列的位置,第幾列,例如1,2,…..

4 FIELDNAME ALV 控制內部表字段的字段名稱 字段名稱

5 TABNAME LVC 標簽名稱 表名,如果是內表,是1

6 CURRENCY ALV 控制貨幣單位  

7 CFIELDNAME ALV 控制參考的當前單位的字段名稱  

8 QUANTITY ALV 控制計量單位  

9 QFIELDNAME ALV 控制參考計量單位的字段名稱  

10 IFIELDNAME ALV 控制內部表字段的字段名稱  

11 ROUND ALV 控制: ROUND 值  

12 EXPONENT ALV 控制:流動表示的指數  

13 KEY ALV 控制關鍵字段 關鍵字段,前面變藍色

14 KEY_SEL ALV 控制可以被隱藏的關鍵列 可以被隱藏的關鍵列

15 ICON ALV 控制作為圖標輸出 此列作為圖標輸出

16 SYMBOL ALV 控制輸出作為符號  

17 CHECKBOX ALV 控制作為復選框輸出 復選框輸出

18 JUST ALV 控制對齊 對齊方式:

\'R\': right justified

\'L\': left justified

\'C\': centered

19 LZERO ALV 控制輸出前導零 X\'

20 NO_SIGN ALV 控制:輸出抑制符號 X\',不輸出符號

21 NO_ZERO ALV 控制為輸出隱藏零 X\',隱藏0

22 NO_CONVEXT ALV 控制不考慮輸出的轉換退出  

23 EDIT_MASK ALV 控制為輸出編輯掩碼 格式

24 EMPHASIZE ALV 控制帶有顏色的高亮列 列的顏色

25 FIX_COLUMN ALV 控制固定列  

26 DO_SUM ALV 控制總計列值 X\',合計

ALV_GRID介紹二(2)

27 NO_SUM ALV 控制沒有總計列值 X\' ,沒有合計

28 NO_OUT ALV 控制列沒有輸出 X\' ,隱藏此列

29 TECH ALV 控制技術字段 X\'.也是隱藏,但是有點不一樣

30 OUTPUTLEN ALV 控制列的字符寬度 輸出的長度

31 CONVEXIT 轉換例程  

32 SELTEXT ALV 控制對話功能的列標識符  

33 TOOLTIP ALV 控制列抬頭的工具提示  

34 ROLLNAME ALV 控制: F1 幫助的數據元素  

35 DATATYPE ABAP 字典中的數據類型 ABAP 字典中的數據類型

36 INTTYPE ABAP 數據類型(C,D,N,...) ABAP 數據類型(C,D,N,...)

37 INTLEN 以字節計的內部長度 內容的長度

38 LOWERCASE 允許/不允許小寫字母 X\' 允許大小寫

39 REPTEXT 標題  

40 HIER_LEVEL ALV 控制內部使用  

41 REPREP ALV 控制價值是補充/補充接口的選擇標准 

42 DOMNAME 定義域名  

43 SP_GROUP 組代碼  

44 HOTSPOT ALV 控制單擊敏感 X\',下面出現下划線,響應單擊

45 DFIELDNAME ALV 控制數據庫中列組的字段名稱  

46 COL_ID ALV 控制ID  

47 F4AVAILABL 字段有輸入幫助嗎 X\'.此列有搜索幫助

48 AUTO_VALUE ALV 控制自動復制值  

49 CHECKTABLE 表名  

50 VALEXI 固定值存在  

51 WEB_FIELD ALV 控制內部表字段的字段名稱  

52 HREF_HNDL 自然數 熱點連接的句柄

53 STYLE ALV 控制樣式 下面有例子會介紹,比如PUSHBUTTION

54 STYLE2 ALV 控制樣式  

55 STYLE3 ALV 控制樣式  

56 STYLE4 ALV 控制樣式  

57 DRDN_HNDL 自然數 下拉的句柄

58 DRDN_FIELD ALV 控制內部表字段的字段名稱 下拉的字段

59 NO_MERGING 字符字段長度 相同的值不合並

60 H_FTYPE ALV 樹控制功能類型 (總計,平均,最大.最小, ...)  

61 COL_OPT 可選列優化的條目  

62 NO_INIT_CH 字符字段長度  

63 DRDN_ALIAS 字符字段長度  

64 REF_FIELD ALV 控制內部表字段的參考字段名稱  

65 REF_TABLE ALV 控制內部表字段的參考表名稱  

66 TXT_FIELD ALV 控制內部表字段的字段名稱  

67 ROUNDFIELD ALV 控制帶有 ROUND 說明的字段名稱 

68 DECIMALS_O ALV 控制輸出小數位的編號  

69 DECMLFIELD ALV 控制帶有 DECIMALS 說明的字段名稱 

70 DD_OUTLEN ALV 控制輸出字符長度  

71 DECIMALS 小數點后的位數 設置小數的位數

72 COLTEXT ALV 控制列標題 列標題

73 SCRTEXT_L 長字段標簽  

74 SCRTEXT_M 中字段標簽  

75 SCRTEXT_S 短字段標簽  

76 COLDDICTXT ALV 控制確定 DDIC 文本參考 

77 SELDDICTXT ALV 控制確定 DDIC 文本參考 

78 TIPDDICTXT ALV 控制確定 DDIC 文本參考 

79 EDIT ALV 控制准備輸入 輸出狀態.\'X\'可輸入

80 TECH_COL ALV 控制內部使用  

81 TECH_FORM ALV 控制內部使用  

82 TECH_COMP ALV 控制內部使用  

83 HIER_CPOS ALV 控制層次列位置  

84 H_COL_KEY 樹控制列名稱/項目名稱  

85 H_SELECT 標識是否可以選擇樹控制中的列  

86 DD_ROLL 數據元素 (語義域 

87 DRAGDROPID ALV 控制&放處理拖放對象 

88 MAC 字符字段長度  

89 INDX_FIELD 自然數  

90 INDX_CFIEL 自然數  

91 INDX_QFIEL 自然數  

92 INDX_IFIEL 自然數  

93 INDX_ROUND 自然數  

94 INDX_DECML 自然數  

95 GET_STYLE 字符字段長度  

96 MARK 字符字段長度  

3. 結構LVC_S_LAYO參數說明(ALV 控制布局結構)

布局是用來控制整個ALV的一個布局,比如ALV的標題,是否可編輯,行顏色,列顏色。參照ALV的控制結構[LVC_S_LAYO],以后的例子我將詳細介紹如何設置行顏色和列顏色.

   詳細的結構說明

  字段名 描述  Value range

CWIDTH_OPT 最優化寬度 SPACE, \'X\'

SMALLTITLE 小標題,如果設置了這個字段,

則標題與列標題大小一樣 SPACE, \'X\'

GRID_TITLE 標題,在網格和工具條之間 最長70個字符

NO_HEADERS 如果被設置,列標題隱藏 SPACE, \'X\'

NO_HGRIDLN 隱藏水平線 SPACE, \'X\'

NO_MERGING 禁用單元格合並 SPACE, \'X\'

NO_ROWMARK 如果被設置,選擇列在選擇模式

DA的時候隱藏 SPACE, \'X\'

NO_TOOLBAR 隱藏工具條 SPACE, \'X\'

NO_VGRIDLN 隱藏垂直線 SPACE, \'X\'

SEL_MODE 選擇模式 SPACE, \'A\', \'B\', \'C\', \'D\'

SPACE 等同於參考默認設置

\'A\' 行和列的選擇,無法選擇單元格 多行,多列 用戶可以使用最左邊的選擇按鈕來選擇多行

\'B\' 單選,不可以多選行,不可以多選單元格 多行,多列  

\'C\' 多選,可以多選行,不可以多選單元格 多行,多列  

\'D\' 單元格的選擇,可以多選單元格 多行,多列,任何單元格多選 用戶可以使用最左邊的選擇按鈕來選擇多行

EXCP_CONDS 合計例外 SPACE, \'X\'

EXCP_FNAME 字段名稱帶有例外編碼 最長30個字符

EXCP_LED 例外作為 LED SPACE, \'X\'

EXCP_ROLLN 例外文檔的數據元素 SPACE, \'X\'

CTAB_FNAME 帶有復雜單元格顏色編碼的字段名稱 最長30個字符

INFO_FNAME 帶有簡單行彩色代碼的字段名稱 最長30個字符

ZEBRA 可選行顏色,如果設置了,出現了間隔色帶 SPACE, \'X\'

NO_TOTLINE 沒有總計 SPACE, \'X\'

NUMC_TOTAL 可以對NUMC字段進行合計 SPACE, \'X\'

TOTALS_BEF 總計輸出在第一行,小計在新的值之前 SPACE, \'X\'

STYLEFNAME 設置單元格,比如PUSHBUTTON 最長30個字符

4. ALV的一些功能

功能一:在第一次顯示以后,修改字段目錄和布局.

 在運行的時候,很有可能需要在顯示之后,需要設置一個新的布局或者字段目錄.有下面這些方法去實現.

   字段目錄 :    get_frontend_fieldcatalog

                set_frontend_fieldcatalog

   布局:         get_frontend_layout

                set_frontend_layout

   使用這些方法,你在執行的任何時候,可以獲取這些內容,然后修改他們.

 

DATA ls_fcat TYPE lvc_s_fcat .

DATA lt_fcat TYPE lvc_t_fcat .

DATA ls_layout TYPE lvc_s_layo .

CALL METHOD gr_alvgrid->get_frontend_fieldcatalog

  IMPORTING

    et_fieldcatalog = lt_fcat[] .

 LOOP AT lt_fcat INTO ls_fcat .

   IF ls_fcat-fieldname = \'PAYMENTSUM\' .

     ls_fcat-no_out = space .

     MODIFY lt_fcat FROM ls_fcat .

   ENDIF .

 ENDLOOP .

CALL METHOD gr_alvgrid->set_frontend_fieldcatalog

   EXPORTING

     it_fieldcatalog = lt_fcat[] .

 

CALL METHOD gr_alvgrid->get_frontend_layout

  IMPORTING

    es_layout = ls_layout .

   ls_layout-grid_title = \'Flights (with Payment Sums)\' .

CALL METHOD gr_alvgrid->set_frontend_layout

  EXPORTING

is_layout = ls_layout .

功能二:設置排序條件

有時候我們需要使用到數據的排序.這個可以通過填充參考結構LVC_T_SORT創建的內表來實現,這個內表中包含了排序的標准.可以傳遞給set_table_for_first_display這個方法的IT_SORT參數來初始化一個排序.

FORM prepare_sort_table CHANGING pt_sort TYPE lvc_t_sort .

     DATA ls_sort TYPE lvc_s_sort .

     ls_sort-spos = \'1\' .

     ls_sort-fieldname = \'CARRID\' .

     ls_sort-up = \'X\' . "A to Z

     ls_sort-down = space .

     APPEND ls_sort TO pt_sort .

     ls_sort-spos = \'2\' .

     ls_sort-fieldname = \'SEATSOCC\' .

     ls_sort-up = space .

     ls_sort-down = \'X\' . "Z to A

     APPEND ls_sort TO pt_sort .

ENDFORM. " prepare_sort_table

 這有2點特別的說明:

    1.如果這邊排序的字段名,不存在於字段目錄中,那將出現DUMP.

    2.排序以后,垂直的網格中,如果出現相同的內容,就會合並,如果要避免,請在布局中設置"no_merging""X" .

  可以通過使用方法“get_sort_criteria” “set_sort_criteria”來獲取和設置排序的標准.

功能三:設置過濾(和排序類似)

ALV的標准按鈕中已經有過濾的功能,我們也可以在初始顯示的時候就設置過濾條件.我們需要把過濾條件填充到參考表類型"LVC_T_FILT"創建的內表中.過濾條件是類似一個RANGES結構的.然后把這個內表傳遞給方法"SET_TABLE_FOR_FIRST_DISPLAY"中的參數"IT_FILTER"

 

FORM prepare_filter_table CHANGING pt_filt TYPE lvc_t_filt .

     DATA ls_filt TYPE lvc_s_filt .

     ls_filt-fieldname = \'FLDATE\' .

     ls_filt-sign = \'E\' .

     ls_filt-option = \'BT\' .

     ls_filt-low = \'20030101\' .

     ls_filt-high = \'20031231\' .

     APPEND ls_filt TO pt_filt .

ENDFORM. " preparefiltertable

    我們可以使用"get_filter_criteria" "set_filter_criteria"來獲取過濾條件和設置過濾條件.

注意

  1.如果你設置了ALV是可編輯的,可能會覆蓋你在布局中選擇方式的設置的.

  2.設置了選擇方式以后,我們可以使用很多方法來獲取用戶的選擇.比如"GET_SELECTED_CELLS","GET_SELECTED_CELLS_ID","GET_SELECTED_ROWS","GET_SELECTED_COLUMNS"

  3.在執行PAI以后,用戶所選擇的單元格,行或者列可能丟失.你可以在PBO,使用對應的SET方法來恢復這些選擇.


 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM