Download presentation
Presentation is loading. Please wait.
Published byΙάνθη Θεοδωρίδης Modified 5年之前
1
Report Programming Selection Screens 報表之Output格式設定 Detail list
單一欄位蒐尋、進階蒐尋 報表之Output格式設定 顏色設定、指定位置、行列長度 Detail list 建立Detail List 、參數傳遞
2
1. Selection Screens 允許user輸入所欲查詢的條件範圍,然後由database中讀出資料,再顯示出報表
可讓user根據以下方式,選擇input: 單一欄位蒐尋 進階蒐尋
3
1.1 單一欄位蒐尋 PARAMETERS 用來產生一個標準的 input field 語法: 範例:
PARAMETERS <name> TYPE <type> [lower case] PARAMETERS <name> TYPE <data object> [lower case] PARAMETERS <name> LIKE <data object> [lower case] 範例: PARAMETERS pa_car TYPE spfli-carrid. 大小寫有差
4
單一欄位蒐尋舉例 DATA wa_spfli TYPE spfli. PARAMETERS pa_car TYPE s_carr_id.
START-OF-SELECTION. SELECT carrid connid cityfrom cityto FROM spfli INTO CORRESPONDING FIELDS OF wa_spfli WHERE carrid = pa_car. WRITE :/ wa_spfli-carrid, wa_spfli-connid, wa_spfli-cityfrom,wa_spfli-cityto. ENDSELECT.
5
Maintaining Selection Texts
6
Maintaining Selection Texts (Cont.)
7
練習G 單一欄位蒐尋報表 (程式名稱zyy**_ex_g)
利用PARAMETERS statement設計一個selection screen 讓user輸入部門的ID 輸出(利用到START-OF-SELECTION)員工的ID、名字、class、性別、生日 Table 使用zyy**_EMP
8
練習G參考解答 REPORT zyyTC_EX_G . TABLES zyyTC_EMP.
PARAMETERS dep TYPE zyyTC_EMP-depid. START-OF-SELECTION. SELECT * FROM zyyTC_EMP INTO CORRESPONDING FIELDS OF zyyTC_EMP WHERE DEPID = dep. WRITE: / zyyTC_EMP. ENDSELECT.
9
1.2 進階蒐尋 SELECT-OPTIONS 可產生2個input fields 語法: 範例:
SELECT-OPTIONS <name> FOR <data object> 範例: SELECT-OPTIONS so_carr FOR spfli-carrid.
10
進階蒐尋舉例 DATA wa_spfli TYPE SPFLI.
SELECT-OPTIONS so_carr FOR wa_spfli-carrid. START-OF-SELECTION. SELECT carrid connid cityfrom FROM spfli INTO CORRESPONDING FIELDS OF wa_spfli WHERE carrid IN so_carr. WRITE: / wa_spfli-carrid, wa_spfli-connid, wa_spfli-cityfrom. ENDSELECT.
11
練習H 進階蒐尋報表 (程式名稱zyy**_ex_h)
同練習G,但改利用SELECI-OPTIONS statement設計一個selection screen。
12
練習H參考解答 REPORT zyyTC_EX_H . TABLES zyyTC_EMP.
SELECT-OPTIONS dep FOR zyyTC_EMP-depid. START-OF-SELECTION. SELECT * FROM zyyTC_EMP INTO CORRESPONDING FIELDS OF zyyTC_EMP WHERE DEPID IN dep. WRITE: / zyyTC_EMP. ENDSELECT.
13
2. 報表之Output格式設定 增進報表美觀之用 2.1 顏色設定 2.2 指定位置
語法: <data object> COLOR <color> <Color> 可設為:0, 1, 2, 3, 4, 5, 6, 7 或 Off (背景色) 例:wa_flight-carrid COLOR 3 2.2 指定位置 用來指定列印於何處,可用於排版對齊 例:WRITE : / 'id', 12(20) 'name'. 表示 name從第12行開始印,印20個字元
14
報表之Output格式設定 (Cont.) 2.3 行列長度:設定一頁的行列數
15
Page and Column Headers
16
Defining Line and Field Formats
17
Multilingual List Elements
18
練習I 報表美化 (程式名稱zyy**_ex_i) 同練習G,針對輸出之report做一些變化,如下圖。
19
練習I參考解答 REPORT zyyTC_EX_I . TABLES zyyTC_EMP.
PARAMETERS dep TYPE zyyTC_EMP-depid. START-OF-SELECTION. WRITE: / 1(12) 'EMP_ID' COLOR 3, 15(8) 'DEPID' COLOR 4, 30(18) 'NAME' COLOR 5, 50(18) 'ADDRESS' COLOR 6. SELECT * FROM zyyTC_EMP INTO CORRESPONDING FIELDS OF zyyTC_EMP WHERE DEPID = dep. WRITE: / 1(12) zyyTC_EMP-EMPID COLOR 1, 15(8) zyyTC_EMP-DEPID COLOR 1, 30(18) zyyTC_EMP-NAME COLOR 1, 50(18) zyyTC_EMP-ADDRESS COLOR 1. ENDSELECT.
20
3. Detail List 提供報表向下挖掘(Drill down)之查詢 可以讓 user 逐層往下點選資料閱讀。
21
3.1 建立Detail List 程式碼放在 AT LINE-SELECTION之event block中。 控制不同層處理動作之作法
藉由系統參數 sy-lsind 第一層時sy-lsind = 1,……….最多可至20層 利用 IF 來控制選擇層數
22
Detail List圖示
23
Detail List程式碼片段 REPORT …… ……………… AT LINE-SELECTION. IF sy-lsind = 1.
SELECT bookid customid custtype smoker ….. FROM sbook INTO CORRESPONDING FIELDS OF wa_sbook ……… WRITE :/ wa_sbook-bookid, wa_sbook-customid. ENDSELECT. IF sy-lsind = 2.
24
3.2 參數傳遞 亦即:保留欲傳給下層之參數 以HIDE關鍵字,來保留欲傳遞之data object
當AT LINE-SELECTION被呼叫時,存在HIDE區域的值會被insert into其所對應的data object
25
參數傳遞圖示
26
參數傳遞程式碼片段 REPORT……… START-OF-SELECTION.
SELECT * FROM spfli INTO wa_spfli. WRITE : / wa_spfli-carrid, wa_spfli-connid, wa_spfli-airpfrom,wa_spfli-airpto, wa_spfli-deptime. HIDE : wa_spfli-carrid, wa_spfli-connid. (下層蒐尋之基礎) ENDSELECT. AT LINE-SELECTION. WRITE: text-001,wa_spfli-carrid,wa_spfli-connid. ………
27
練習J Detail List (程式名稱zyy**_ex_j)
同練習G,再用AT LINE-SELECTION event往下做detail list:點選某一員工,可以往下看到與其class相同之所有員工之class、職稱、薪資、及使用貨幣種類 使用IF做層數的控制 Table用到zyy**_EMP、zyy**_WAG 且用 HIDE keyword把上一層的資料放入hide area
28
練習J參考解答 REPORT zyyTC_EX_J . TABLES zyyTC_EMP. TABLES zyyTC_WAG.
PARAMETERS dep TYPE zyyTC_EMP-depid. START-OF-SELECTION. SELECT * FROM zyyTC_EMP INTO CORRESPONDING FIELDS OF zyyTC_EMP WHERE DEPID = dep. WRITE: / zyyTC_EMP. HIDE: zyyTC_EMP-class. ENDSELECT.
29
練習J參考解答 (Cont.) AT LINE-SELECTION. IF sy-lsind = 1.
SELECT * FROM zyyTC_WAG INTO CORRESPONDING FIELDS OF zyyTC_WAG WHERE class = zyyTC_EMP-class. WRITE : / zyyTC_WAG. ENDSELECT. ENDIF.
Similar presentations