iT邦幫忙

2024 iThome 鐵人賽

DAY 8
0
佛心分享-IT 人自學之術

從0開始的ABAP之旅 系列 第 8

Day 08 ALV詳解(下) 報表顯示設定

  • 分享至 

  • xImage
  •  

大家好
今天是ALV介紹的最後一集,
上一集處理完資料與內表,
今天要來處理ALV 報表的顯示,

data:fields_tb type slis_t_fieldcat_alv with header line, " 定義內表用來存儲欄位目錄
     gs_layout type slis_layout_alv.  " 定義 ALV 的佈局設置
    

變數宣告

這邊要先來定義等等alv顯示要用到的變數

slis_t_fieldcat_alv 用來定義欄位的屬性

https://ithelp.ithome.com.tw/upload/images/20240922/20169147VDkRhv8IAH.png

slis_layout_alv 用來控制 ALV 報表的顯示外觀和格式

https://ithelp.ithome.com.tw/upload/images/20240922/20169147tzVq6chkJJ.png

定義宏

define: set_alv_field.
  clear: fields_tb.
  fields_tb-fieldname = &1.
  fields_tb-ref_fieldname = &2.
  fields_tb-ref_tabname   = &3.
  fields_tb-no_out        = &4.
  fields_tb-no_zero        = &5.
  if &5 = 'X'.
    fields_tb-decimals_out        = 0.
  endif.
  fields_tb-no_zero        = &5.
  fields_tb-fix_column = &6 .
  fields_tb-outputlen = &7.
  fields_tb-seltext_l = &8.
  fields_tb-seltext_m = &8.
  fields_tb-seltext_s = &8.
  fields_tb-emphasize = 'C300'.

  append fields_tb.
end-of-definition.

宏是 ABAP 編程中的一種結構化方式,允許開發人員在程式中多次使用相同的代碼,而不必反復撰寫。宏定義通常用於簡化重複的任務,例如填充表格、處理資料等。
因為ALV報表中要設定屬性的欄位有時候比較多,
用宏的話可以減少冗於的代碼。

  set_alv_field 'MATNR' '' '' '' '' '' '18' 'Material'.
  set_alv_field 'WERKS' '' '' '' '' '' '4' 'Plant'.
  set_alv_field 'DAYS' '' '' '' '' '' '4' 'Stock age '.

這段代碼意思就是填入我們要的屬性像是欄位名稱(內表中的)、長度、欄位標題等

最後就可以使用SAP標準的ALV Function

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
  EXPORTING
    it_fieldcat = fields_tb  " 欄位目錄
    is_layout   =  gs_layout    " ALV 佈局
  TABLES
    t_outtab    = t_itab. " 顯示的資料

以上就是今天分享的內容


上一篇
Day07 ALV 詳解 (中) 學ABAP順便學SQL 一舉兩得
下一篇
Day 09 3分鐘了解 SAP如何跟外部做資料交換
系列文
從0開始的ABAP之旅 30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言