- 需求:
- 資料呈現來自於五個以上的table, ekko, ekpo, mseg, bkpf, bseg, lfa1. 並非一般header-detail型態.
- 報表呈現要以header-detail方式呈現.
d1
d2
h2
d1
d2
- 設計考量
- 因為需求1所以考量以外部abap program傳入一個完整internal table, 避免在smartforms中做查詢影響效能,否則一般而言, 可以傳入header table and detail table, 然後在顯示detail時, 使用key連結即可.
- 報表欄位中有金額數量欄位所以要特別做reference.
- 因為需求2所以使用Loop + Table混用.
- 實作
- 先用se11建立自己的custimized structure. 才可以透過abap program傳入smartforms.
- 在這個步驟中有幾點要注意, 如果使用的欄位中有金額或數量必須要設定reference 欄位.
- 另外就是在activate的同時會有warning, 所以請到Menu->其他->enhancement category->設定Can not be enhanced.
提幾個重點.
- 在使用者設定檔設定的參數可以用下列程式碼取得. GET PARAMETER ID 'BUK' FIELD lv_cocd.
- 首先是Global settings->Form Interface->表格要先做設定. 從外部傳進來的internal table要在此設定, 如果是其他type 則是在匯入設定.
- 再來是Global Definition->通用資料中設定 在報表中所會使用到的全域變數, 像是傳入的ITAB 為他設定一個Work Area使用的變數, 否則在顯示數字欄位時會有問題. 另外就是金額數量的欄位除了要在幣別數量設定參考欄位後, 該參考欄位也要設定在通用資料中, 以EKBE-WRBTR and EKBE-DMBTR為例, 需要參考EKBE-WAERS, 然後要將參考的欄位WAERS 設定在通用資料中, 如下圖:








沒有留言:
張貼留言