ALV呼叫的幾個函式

2022-03-14 09:22:54 字數 3883 閱讀 3180

轉alv的呼叫主要由以下幾個標準函式實現,所有函式的輸入輸出引數必須大寫,否則系統會出現異常中止,相關函式如下:

1)reuse_alv_fiendcatalog_merge:根據內錶結構返回fieldcat欄位結構資訊,其常用輸入輸出引數如下:

exporting項:

1.i_program_name:程式名稱。

2.i_internal_tabname:內錶名稱,必須為輸出內錶所自定義的structure名。

3.i_structure_name:直接參考資料字典中所定義的透明表名或structure名。

函式定義時i_internal_tabname或i_structure_name引數只需一項。

changing項:

ct_fieldcat:匯出fieldcat內錶資料。

2)reuse_alv_grid_display/reuse_alv_list_display:輸出alv報表,定義其為grid模式還是list模式,兩個函式的語法結構一樣,其常用輸入輸出引數如下:

export項:

1.i_callback_program:程式名稱。

2.is_layout:程式所定義的layout名稱。

3.i_grid_title:定義alv標題名。 

4.it_fieldcat:定義fieldcat資料。

5.it_events:定義alv輸出事件。

6.i_callback_pf_status_set:定義觸發工具欄定義,通常為乙個子程式。

7.i_callback_user_command:其對應值一般為子程式名,在對alv操作時觸發所定義子程式(如某表字段的雙擊事件)。

tables項(定義輸入內錶資料):

1.t_outtab:輸入所需顯示的內錶資料。

3)layout為一structure,其主要字段定義及屬性如下:

1.edit:設定alv是否為可編輯模式。

2.colwidth_optimize:將alv欄位寬度設定為最優化,按實際輸出內容寬度自動匹配。

3.no_vline:輸出alv**不顯示垂直格式。

4.no_uline_hs:輸出alv**不顯示水平格線。

5.info_fieldname:設定顏色屬性。

6.key_hotspot:設定關鍵字段熱點。

7.no_colname:是否顯示欄位名。

8.zebra:使alv**按斑馬線間隔條紋方式顯示,以便顯示效果更有美觀。

9.box_fieldname:設定alv**是否顯示選擇按鈕字段。

10.info_fieldname:用於設定alv輸出報表每一行的顏色,其引數為輸出內錶的欄位名稱,要注意的是使用該屬性需要同時在內表中定義乙個與該引數所定義欄位名相同的字段,例如:

layout-info_fieldname = 'color'.  

倘若其資料輸出內錶名為lt_out,則需要在該內錶增加一欄位「color」,並為其內表每行複製,顏色引數範圍c000~c999,例如:

lt_out-color = 'c012'.

4)fieldcat主要屬性介紹

1.key:將定義字段設定為key值。

2.icon:將定義欄位以icon的形式顯示。

3.checkbox:將定義欄位以checkbox的形式顯示。

4.just:定義字段對齊方式(r)right、(l)left、(c)center。

5.izero:將定義欄位以前導"0"的形式顯示。

6.no_sign:將定義字段符號設定為不顯示。

7.no_zero:定義字段是否顯示。

8.emphasize:設定欄位的顏色。

9.do_sum:對欄位進行彙總。

10.seltext_l/m/s:設定欄位名稱描述長/中/短。

11.ddictxt:設定字段顯示字串。

12.hotspot:設定字段是否有熱點(熱點字段顯示有下劃線)。

13.no_out:隱藏不需要的字段(no_out = 'x')。

1)reuse_alv_fiendcatalog_merge:根據內錶結構返回fieldcat欄位結構資訊,其常用輸入輸出引數如下:

exporting項:

1.i_program_name:程式名稱。

2.i_internal_tabname:內錶名稱,必須為輸出內錶所自定義的structure名。

3.i_structure_name:直接參考資料字典中所定義的透明表名或structure名。

函式定義時i_internal_tabname或i_structure_name引數只需一項。

changing項:

ct_fieldcat:匯出fieldcat內錶資料。

2)reuse_alv_grid_display/reuse_alv_list_display:輸出alv報表,定義其為grid模式還是list模式,兩個函式的語法結構一樣,其常用輸入輸出引數如下:

export項:

1.i_callback_program:程式名稱。

2.is_layout:程式所定義的layout名稱。

3.i_grid_title:定義alv標題名。 

4.it_fieldcat:定義fieldcat資料。

5.it_events:定義alv輸出事件。

6.i_callback_pf_status_set:定義觸發工具欄定義,通常為乙個子程式。

7.i_callback_user_command:其對應值一般為子程式名,在對alv操作時觸發所定義子程式(如某表字段的雙擊事件)。

tables項(定義輸入內錶資料):

1.t_outtab:輸入所需顯示的內錶資料。

3)layout為一structure,其主要字段定義及屬性如下:

1.edit:設定alv是否為可編輯模式。

2.colwidth_optimize:將alv欄位寬度設定為最優化,按實際輸出內容寬度自動匹配。

3.no_vline:輸出alv**不顯示垂直格式。

4.no_uline_hs:輸出alv**不顯示水平格線。

5.info_fieldname:設定顏色屬性。

6.key_hotspot:設定關鍵字段熱點。

7.no_colname:是否顯示欄位名。

8.zebra:使alv**按斑馬線間隔條紋方式顯示,以便顯示效果更有美觀。

9.box_fieldname:設定alv**是否顯示選擇按鈕字段。

10.info_fieldname:用於設定alv輸出報表每一行的顏色,其引數為輸出內錶的欄位名稱,要注意的是使用該屬性需要同時在內表中定義乙個與該引數所定義欄位名相同的字段,例如:

layout-info_fieldname = 'color'.  

倘若其資料輸出內錶名為lt_out,則需要在該內錶增加一欄位「color」,並為其內表每行複製,顏色引數範圍c000~c999,例如:

lt_out-color = 'c012'.

4)fieldcat主要屬性介紹

1.key:將定義字段設定為key值。

2.icon:將定義欄位以icon的形式顯示。

3.checkbox:將定義欄位以checkbox的形式顯示。

4.just:定義字段對齊方式(r)right、(l)left、(c)center。

5.izero:將定義欄位以前導"0"的形式顯示。

6.no_sign:將定義字段符號設定為不顯示。

7.no_zero:定義字段是否顯示。

8.emphasize:設定欄位的顏色。

9.do_sum:對欄位進行彙總。

10.seltext_l/m/s:設定欄位名稱描述長/中/短。

11.ddictxt:設定字段顯示字串。

12.hotspot:設定字段是否有熱點(熱點字段顯示有下劃線)。

13.no_out:隱藏不需要的字段(no_out = 'x')。

呼叫函式的ALV 物件導向的ALV設定帶選擇列

這個就是通過對應的選擇列,實現對alv資料的選擇,在呼叫函式的alv和物件導向的alv 實現方法存在差異,下面講兩者的方法 1 呼叫函式的alv。通過 slis layout alv box fieldname的字段來設定,這個欄位的值對應的是輸出內錶的 乙個欄位名字 專門用於標記選擇哪些列,選中的...

函式呼叫的幾個概念

左通過棧傳遞,被呼叫的函式在返回前清理傳送引數的記憶體棧,但不同的是函式名的修飾部分 關於函式名的修飾部分在後面將詳細說明 stdcall是pascal程式的預設呼叫方式,通常用於win32 api中,函式採用從右到左的壓棧方式,自己在退出時清空堆疊。vc將函式編譯後會在函式名前面加上下劃線字首,在...

函式呼叫的幾個概念

簡介 fastcall cdecl和 stdcall都是函式呼叫規範,規定了引數出入棧的順序和方法。被這些修飾關鍵字修飾的函式,其引數都是從右向左通過棧傳遞,被呼叫的函式在返回前清理傳送引數的記憶體棧,但不同的是函式名的修飾部分。如果通過vc 編寫的dll欲被其他語言編寫的程式呼叫,應將函式的呼叫方...