第106章創(chuàng)建列表_第1頁
第106章創(chuàng)建列表_第2頁
第106章創(chuàng)建列表_第3頁
第106章創(chuàng)建列表_第4頁
第106章創(chuàng)建列表_第5頁
已閱讀5頁,還剩25頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、第六章 1創(chuàng)建列表概覽內(nèi)容標準列表標準列表示 例標準列表結(jié) 構(gòu)標準列表的 用戶界面自定義列表單個頁眉確定列表寬 度確定頁長定義頁腳多頁列表編程分頁單頁的標準 頁眉單頁頁長列表級的頁 寬在程序之內(nèi) 滾動列表頁面設(shè) 置定位輸出格式輸出特殊輸出格 式創(chuàng)建空行畫線、框架 和網(wǎng)格確定頁的哪 一部分可以 水平滾動列表是 ABAP/4 報表程序數(shù) 據(jù)的輸出媒 介。每個 ABAP/4 報表程序?qū)?其輸出數(shù)據(jù) 傳遞到直接 與該程序連 接的列表中 。每個程序 最多生成 21 個列表: 1 個基本列表 和 20 個輔助列表 。本節(jié)對創(chuàng) 建列表作一 般說明。也 就是說,此 處描述的大 部分語句適 用于基本列 表和輔助

2、列 表。缺省情 況下,系統(tǒng) 將報表的輸 出傳遞到基 本列表。大 多數(shù)情況下 ,報表僅有 基本列表。 因此,本節(jié) 中示例主要 處理基本列 表。關(guān)于如 何編程輔助 列表的詳細 信息,參見 交互式列表 (頁 Error! Not a valid link.) 。從 ABAP/4 程序之中, 既可以將列 表輸出到屏 幕也可以輸 出到 SAP 假脫機系統(tǒng) 。缺省情況 下,在屏幕 上顯示列表 。本節(jié)中的 所有示例都 使用該缺省 值。關(guān)于如 何打印列表 的詳細信息 ,參見 打印列表 (頁 Error! Not a valid link.) 。將數(shù)據(jù)寫入 列表的基本 ABAP/4 語句是 WRITE 語句。其

3、他 輸出語句是 ULINE 和 SKIP。 關(guān)于這三條 語句的詳細 信息,參見 將數(shù)據(jù)輸出到屏幕 (頁 41) 。下列主題說 明列表的結(jié) 構(gòu)和創(chuàng)建列 表時定義列 表格式的選 項:1標準列表如果 ABAP/4 報表只使用 WRITE、 SKIP 和 ULINE 輸出語句并 且不包含本 節(jié)后面所說 明的編輯語 句,則系統(tǒng) 將輸出傳遞 到標準列表 。完成數(shù)據(jù) 選擇之后在 該屏幕上顯 示列表。下列主題說 明1標準列表示 例 下面的輸出 屏幕顯示標 準列表:要創(chuàng)建該標 準列表,請 使用下面的 樣本報表。REPORT SAPMZTST.TABLES SPFLI.SKIP.ULINE AT /(62).SE

4、LECT * FROM SPFLI WHERE CONNID GE 0017 AND CONNID LE 0400. WRITE: / SY-VLINE, SPFLI-CONNID, SY-VLINE, (15) SPFLI-CITYFROM, 26 SY-VLINE, 31 SPFLI-CITYTO, 51 SY-VLINE, 62 SY-VLINE, / SY-VLINE, 8 SY-VLINE, SPFLI-DEPTIME UNDER SPFLI-CITYFROM, 26 SY-VLINE, SPFLI-ARRTIME UNDER SPFLI-CITYTO, 51 SY-VLINE, S

5、PFLI-FLTIME, SY-VLINE. ULINE AT /(62). ENDSELECT.WRITE: /10 'SAP * SAP * SAP * SAP * SAP * SAP', /19(43) 'Flight Information System', /19(43) 'International Connections'. SELECT 語句從數(shù)據(jù) 庫表格 SPFLI 讀取選定行 。在 SELECT 循環(huán)內(nèi), WRITE、 SKIP 和 ULINE 語句將工作 區(qū) SPFLI 的字段以及 水平和垂直 行輸出到該 列表。關(guān)于 所使用

6、的所 有 WRITE 選項的詳細 信息,參見 將數(shù)據(jù)輸出到屏幕 (頁 41) 。 創(chuàng)建和更改 列表及列表 頭 (頁 53) 對如何創(chuàng)建 列表和列標 題進行解釋 。關(guān)于該標準 列表結(jié)構(gòu)的 詳細信息, 參見 標準列表結(jié) 構(gòu) (頁 ) 。2標準列表結(jié) 構(gòu)下列主題提 供標準列表 結(jié)構(gòu)的信息 。 標準列表包 括有關(guān)標準列 表寬度的信 息,可在下 列主題中找 到:2標準頁眉標準頁眉至 少包括兩行 標準標題。 標準標題的 首行包含列 表表頭和頁 號。第二行 由水平線組 成。執(zhí)行程 序時,列表 表頭存儲在 系統(tǒng)字段 SY-TITLE 中。如果需 要,可以在 標準標題中 包括最多四 行列頭和另 一條水平線 。創(chuàng)

7、建和更改 列表及列表 頭 (頁 53) 說明如何維 護列表和列 頭。而且, 顯示列表之 后,可以在 標準列表的 用戶界面中 調(diào)整這些表 頭(參見 修改列表和 列標題 (頁 ) )。標準頁眉的 寬度自動調(diào) 整到窗口寬 度。如果用戶垂 直滾動列表 ,則標準頁 眉保持可見 ,只滾動表 頭之下的列 表。如果用戶水 平滾動列表 ,則列表表 頭和頁號保 持可見。2標準頁輸出數(shù)據(jù)顯 示在頁眉之 下。標準列 表包含一個 動態(tài)長度的 單頁(內(nèi)部 限制: 60,000 行)。輸出 長度由當前 列表大小確 定。輸出屏幕包 括一個垂直 滾動條,允 許用戶滾動 頁長超過窗 口的列表。2標準列表的 寬度標準列表的 寬度取

8、決于 執(zhí)行報表時 的窗口寬度 。如果用戶 窗口小于或 等于標準窗 口大小,則 標準頁寬應(yīng) 符合標準窗 口寬度。用 戶可能必須 滾動列表才 能查看列表 的所有部件 。如果用戶 窗口超過標 準窗口寬度 ,則標準列 表的寬度符 合選定標準 窗口的寬度 ??傊?,標 準列表的寬 度至少與標 準窗口一樣 寬。標準窗 口的寬度取 決于操作系 統(tǒng)。輸出屏幕包 括允許用戶 滾動超過窗 口寬度部分 的水平滾動 條。2標準列表的 用戶界面標準列表的 輸出屏幕包 含 R/3 系統(tǒng)的標準 菜單欄和標 準工具欄。要滾動標準 列表,系統(tǒng) 提供滾動條 和功能“首 頁”、“上 一頁”、“ 下一頁”和 “末頁”。 要查找列表 中

9、某一模式 ,用戶可以 選擇“編輯 -> 查找.” 。用戶可以使 用下列特定 列表功能:2打印輸出列 表要打印屏幕 上顯示的列 表,用戶可 以選擇“列 表 -> 打印”。打印的標準 頁眉與顯示 的標準頁眉 不同,它還 包含當前日 期:打印 標準列表示 例 (頁 ) 中創(chuàng)建的標 準列表,其 結(jié)果為:12.01.1996 Example for Standard List 1- ID Departure from Arrival at Time of Departure Time Arrival Time Flight-+-+-+-+-+| 0017 | NEW YORK | SAN F

10、RANCISCO | | | 13:30:00 | 16:31:00 | 06:01:00 |+-+-+-+-+| 0064 | SAN FRANCISCO | NEW YORK | | | 09:00:00 | 17:21:00 | 05:21:00 |+-+-+-+-+| 0400 | FRANKFURT | NEW YORK | | | 10:10:00 | 11:34:00 | 08:24:00 |+-+-+-+-+| 0026 | FRANKFURT | NEW YORK | | | 08:30:00 | 09:50:00 | 08:20:00 |+-+-+-+-+ SAP * SA

11、P * SAP * SAP * SAP * SAP Flight Information System International Connections只有由于測 試原因需要 屏幕列表的 硬副本時, 才能使用本 打印方法。 關(guān)于如何打 印列表的詳 細信息,參 見 打印列表 (頁 Error! Not a valid link.) 。3保存列表要保存顯示 的列表,用 戶可以選擇 “列表 -> 保存”。出 現(xiàn)下列主題 :3將列表保存 在 SAPoffice 中當選擇“列 表 -> 保存 -> Office” 時,出現(xiàn)一 個對話框, 詢問用戶是 將顯示的列 表存儲在用 戶的 Of

12、fice 文件夾中還 是發(fā)送給另 一用戶。3將列表保存 在報告樹中當選擇“列 表 -> 保存 -> 報告樹”時 ,出現(xiàn)一個 對話框,詢 問用戶是否 將顯示的列 表保存在報 表樹的適當 分支中。3將列表作為 本地文件保 存在演示服 務(wù)器中選擇“列表 -> 保存 -> 文件”時, 出現(xiàn)一個對 話框,詢問 用戶是否將 顯示的列表 作為本地文 件保存,并 提供幾個格 式選項。格式選項為 : 不轉(zhuǎn)換: 系統(tǒng)將文件 存儲為文本 文件。 表格統(tǒng)計 : 系統(tǒng)在列之 間插入 tab 鍵。 RTF 格式: 系統(tǒng)存儲格 式化為文本 處理的數(shù)據(jù) 。如果用戶以 RTF 格式存儲 標準列表示 例

13、(頁 ) 中創(chuàng)建的標 準列表并且 使用能讀取 該格式的文 本處理程序 (如 MS WORD) 重新顯示, 則列表顯示 如下:4修改列表和 列標題通常,可以 列表和列標 題創(chuàng)建為文 本元素(參 見 創(chuàng)建和更改 列表及列表 頭 (頁 53) )。然而, 也可以在屏 幕上顯示列 表時修改這 些表頭。為 此,請選擇 “系統(tǒng) -> 列表 -> 列表頭”。 頁眉行現(xiàn)在 接受輸入:例如,使用 該功能將列 標題放置在 顯示列表的 列之上。保存更改。 系統(tǒng)將修改 后的列標題 另存為當前 登錄語言文 本池中程序 的文本元素 。關(guān)于文本 元素的詳細 信息,參見 處理文本摘 要 (頁 51) 。4自定義列

14、表可以修改標 準列表的結(jié) 構(gòu)并創(chuàng)建單 個結(jié)構(gòu)的列 表。使用 REPORT 語句選項以 及事件 TOP-OF-PAGE 和 END-OF-PAGE。 PROGRAM 語句與 REPORT 語句等價并 有相同的選 項??梢宰飨铝?修改:如果列表包 括幾頁,則 可以分別定 義每頁的結(jié) 構(gòu)。關(guān)于如 何進行這一 操作的詳細 信息,參見 多頁列表 (頁 ) 。4單個頁眉要分別定義 頁眉的格式 ,必須在緊 隨事件關(guān)鍵 字 TOP-OF-PAGE 的處理塊中 定義:語法TOP-OF-PAGE. WRITE: .TOP-OF-PAGE 事件在系統(tǒng) 開始處理列 表新頁時出 現(xiàn)。系統(tǒng)在 輸出新頁首 行之前處理 TO

15、P-OF-PAGE 后面的語句 。關(guān)于事件 和處理塊的 詳細信息, 參見 通過事件控制 ABAP/4 程序流 (頁 41) 。如果以后要 啟動實際列 表處理,記 住要通過使 用合適的事 件關(guān)鍵字, 例如 START-OF-SELECTION, 結(jié)束處理塊 (參見 定義處理塊 (頁 41) )。自定義頁眉 出現(xiàn)在標準 頁眉之下。 如果要取消 標準頁眉, 請使用 REPORT 語句的 NO STANDARD PAGE HEADING 選項:語法REPORT <rep> NO STANDARD PAGE HEADING.使用該語句 時,系統(tǒng)不 在報表 <rep> 列表頁上顯

16、示標準頁眉 。如果使用 TOP-OF-PAGE 定義單個頁 眉,則系統(tǒng) 就將其顯示 出來。垂直滾動時 ,自定義頁 眉與標準頁 眉一樣保持 可見。但是 ,自定義頁 眉包括正常 列表行,因 此不能自動 符合窗口寬 度。REPORT SAPMZTST NO STANDARD PAGE HEADING.TOP-OF-PAGE.WRITE: SY-TITLE, 40 'Page', SY-PAGNO.ULINE.WRITE: / 'SAP AG', 29 'Walldorf, ',SY-DATUM, / 'Neurottstr. 16',

17、/ '69190 Walldorf/Baden'.ULINE.START-OF-SELECTION.DO 5 TIMES. WRITE / SY-INDEX.ENDDO.報表程序不 使用標準頁 眉,而是使 用 TOP-OF-PAGE 之后的自定 義頁眉。要 顯式結(jié)束 TOP-OF-PAGE 處理塊,必 須指定事件 關(guān)鍵字 START-OF-SELECTION 。輸出如下 所示:自定義頁眉 包括六行。 程序標題來 自 SY-TITLE 系統(tǒng)字段, 頁號來自 SY-PAGNO。 自定義頁眉 與列表寬度 不等。5確定列表寬 度要確定輸出 列表的寬度 ,請使用 REPORT 語句的 L

18、INE-SIZE 選項。.語法REPORT <rep> LINE-SIZE <width>.該語句根據(jù) <width> 字符確定報 表 <rep> 輸出列表的 寬度。如果 將 <width> 設(shè)置為 0,則系統(tǒng) 使用標準列 表的寬度( 參見 標準列表的 寬度 (頁 ) )。一行最多可 包含 255 個字符。但 是,如果要 打印列表, 請記住大多 數(shù)打印機不 能打印超過 132 個字符的列 表。如果要 在創(chuàng)建時直 接打印列表 ,則頁寬必 須符合某種 現(xiàn)有打印格 式。否則, 系統(tǒng)就不能 打印該列表 (參見打印參數(shù) (頁 Error! No

19、t a valid link.)。 一定不要選 擇超過 132 字符的列表 寬度,除非 創(chuàng)建只用于 顯示的列表 。創(chuàng)建列表時 ,系統(tǒng)字段 SY-LINSZ 包含當前行 寬。要將列 表寬度調(diào)整 為當前窗口 寬度,參見 多頁列表 (頁 ) 。使用 ULINE 語句(不帶 AT 選項)創(chuàng)建 的水平線自 動適配自定 義列表寬度 。REPORT SAPMZTST LINE-SIZE 40.WRITE: 'SY-LINSZ:', SY-LINSZ.ULINE.DO 20 TIMES. WRITE SY-INDEX.ENDDO.程序創(chuàng)建下 列輸出:示例使用標 準頁眉。如 果將 LINE-SI

20、ZE 值從 40 替換為 60 ,則輸出如 下所示:標準頁眉和 下劃線自動 適配列表寬 度。5確定頁長要確定輸出 列表的頁長 ,請使用 REPORT 語句的 LINE-COUNT 選項。語法REPORT <rep> LINE-COUNT <length>(<n>).該語句用 <length> 行確定報表 <rep> 輸出列表的 頁長。如果 指定選項號 <n>,則 系統(tǒng)為頁腳 保留 <n> 行頁長。并 不將這些頁 腳行填寫到 END-OF-PAGE 事件中,而 是作為空行 顯示(參見 定義頁腳 (頁 ) )。如果

21、將 <length> 設(shè)置為 0 ,則系統(tǒng)使 用標準頁長 (參見 標準頁 (頁 ) )。要根據(jù) 當前窗口大 小調(diào)整頁長 ,參見 多頁列表 (頁 ) 。創(chuàng)建列表 時,系統(tǒng)字 段 SY-LINCT 包含每頁的 當前行數(shù)( 即 <n> 行或 0 代表標準頁 長度)。記住頁眉長 度是 <length> 的部件。因 此,對于列 表本身,只 能使用 <length> 減去頁眉長 度減去 <n> 行。如果 <length> 小于頁長度 ,則產(chǎn)生運 行錯誤。如果在列表 處理期間系 統(tǒng)到達為實 際列表提供 的區(qū)域的結(jié) 尾,則輸出 頁腳,如果

22、 有,插入一 些空格并且 啟動新頁。 插入的空格 屬于列表背 景并且不是 列表行。SY-PAGNO 系統(tǒng)字段總 包含當前頁 號。確定頁長時 ,應(yīng)記住下 列各項: 對于屏幕 輸出,請使 用標準頁長 以避免在屏 幕中間分頁 。 對于打印 列表,則根 據(jù)打印機要 求設(shè)置頁長 。應(yīng)采用對 任何頁長都 能產(chǎn)生合理 輸出的方式 書寫程序。 如果選擇現(xiàn) 有打印格式 之外的頁長 ,則不能在 創(chuàng)建時直接 打印。關(guān)于 打印格式的 詳細信息, 參見 打印列表 (頁 Error! Not a valid link.) 。 對于僅指 定頁面設(shè)置 的表格形式 的列表使用 固定長度規(guī) 格。在為此 類列表編寫 程序代碼之 前

23、,請檢查 能否使用預(yù) 定義的 SAPscript 表格。關(guān)于 表格的詳細 信息,參見 文檔樣式和頁面設(shè)置維護 (頁 Error! Not a valid link.) 。下列程序旨 在說明 LINE-COUNT 選項的用法 。因此在一 個屏上顯示 不同的列表 頁。REPORT SAPMZTST LINE-SIZE 40 LINE-COUNT 4.WRITE: 'SY-LINCT:', SY-LINCT.SKIP.DO 6 TIMES. WRITE / SY-INDEX.ENDDO.該程序?qū)㈨?長確定為四 行。使用標 準頁眉。假 定標準頁眉 包括兩行列 表表頭,則 輸出如下所 示

24、:列表包括四 頁,每頁四 行。每頁由 頁眉和兩行 實際列表組 成。應(yīng)注意 每頁結(jié)尾的 空格。6定義頁腳要定義頁腳 ,請使用 END-OF-PAGE 事件。在處 理列表頁時 ,如果系統(tǒng) 到達頁腳保 留行,或者 如果 RESERVE 語句觸發(fā)分 頁則該事件 發(fā)生(參見 條件分頁 定義行塊 (頁 ) )。在緊接 著 END-OF-PAGE 事件關(guān)鍵字 的處理塊中 填充頁腳的 行:語法END-OF-PAGE. WRITE: .如果為 REPORT 語句的 LINE-COUNT 選項中的腳 注保留行, 則系統(tǒng)只處 理緊接著 END-OF-PAGE 的處理塊( 參見 確定頁長 (頁 ) )。如果要以后 開

25、始處理實 際列表,記 住要通過使 用合適的事 件關(guān)鍵字, 例如 START-OF-SELECTION, 結(jié)束緊接著 END-OF-PAGE 的處理塊( 參見 定義處理塊 (頁 41) )。REPORT SAPMZTST LINE-SIZE 40 LINE-COUNT 6(2) NO STANDARD PAGE HEADING.TOP-OF-PAGE.WRITE: 'Page with Header and Footer'.ULINE AT /(27).END-OF-PAGE.ULINE.WRITE: /30 'Page', SY-PAGNO.START-OF-S

26、ELECTION.DO 6 TIMES. WRITE / SY-INDEX.ENDDO.該程序包括 三個處理塊 。關(guān)閉標準 頁眉。將頁 長設(shè)置為六 行,其中兩 行留作頁腳 。列表包括三 頁,每頁六 行。每頁由 自定義的兩 行頁眉、兩 行實際列表 和兩行頁腳 組成。頁腳 中顯示的當 前頁號來自 系統(tǒng)字段 SY-PAGNO 。7多頁列表如果在報表 中寫入列表 輸出頁的行 數(shù)超過在 REPORT 語句 LINE-COUNT 選項中定義 的行數(shù),則 系統(tǒng)自動創(chuàng) 建新頁(參 見 確定頁長 (頁 ) )。每個新 頁都包含為 報表定義的 頁眉和頁腳 (如果有的 話)。除自動分頁 外,可以使 用 NEW-PA

27、GE 和 RESERVE 語句顯式地 編碼分頁。 NEW-PAGE 語句的選項 允許分別設(shè) 置每頁格式 。也需要 NEW-PAGE 語句在程序 內(nèi)打印列表 (參見 打印列表 (頁 Error! Not a valid link.) )。下列主題說 明77編程分頁要編程無條 件的分頁, 請使用 NEW-PAGE 語句。要編程取決 于頁左邊空 行數(shù)的分頁 ,請使用 RESERVE 語句。7無條件分頁要在頁處理 期間觸發(fā)分 頁,請使用 NEW-PAGE 語句的基本 格式:語法NEW-PAGE.該語句 結(jié)束當前 頁。在新頁 上顯示所有 其他輸出。 如果輸出 寫入到當前 頁和 NEW-PAGE 之后的新

28、頁 ,則只開始 新頁。系統(tǒng) 然后將 SY-PAGNO 系統(tǒng)字段家 1。不能產(chǎn) 生空頁。 不能觸發(fā) END-OF-PAGE 事件。這意 味著即使定 義了頁腳, 系統(tǒng)也不輸 出。REPORT SAPMZTST LINE-SIZE 40.TOP-OF-PAGE.WRITE: 'TOP-OF-PAGE', SY-PAGNO.ULINE AT /(17).START-OF-SELECTION.DO 2 TIMES. WRITE / 'Loop:'. DO 3 TIMES. WRITE / SY-INDEX. ENDDO. NEW-PAGE.ENDDO.該樣本程序 使用列表

29、表 頭“標準頁 眉”定義為 文本元素的 標準頁眉和 自定義頁眉 。每頁都出 現(xiàn)兩個頁眉 。DO 循環(huán)兩次遇 到 NEW-PAGE 語句,但是 只執(zhí)行一次 分頁。在第 二條 NEW-PAGE 語句之后, 沒有輸出。8條件分頁 定義行塊要在少于某 一頁剩余行 數(shù)的條件下 執(zhí)行分頁, 請使用 RESERVE 語句:語法RESERVE <n> LINES.如果當前列 表頁的最后 輸出和頁腳 之間剩余的 自由行數(shù)少 于 <n>,則 該語句觸發(fā) 分頁。 <n> 可以是變量 。在開始新 頁之前,系 統(tǒng)處理 END-OF-PAGE 事件。只有 輸出寫入到 后續(xù)頁時, RES

30、ERVE 才生效。不 創(chuàng)建空頁。 RESERVE 語句就這樣 定義必須整 個輸出的行 塊。要查找 行塊可能有 的附加實際 效果,參見 將輸出定位 在行塊的首 行 (頁 ) 。REPORT SAPMZTST LINE-SIZE 40 LINE-COUNT 8(2).END-OF-PAGE.ULINE.START-OF-SELECTION.DO 4 TIMES. WRITE / SY-INDEX.ENDDO.DO 2 TIMES. WRITE / SY-INDEX.ENDDO.RESERVE 3 LINES.WRITE: / 'LINE 1', / 'LINE 2'

31、, / 'LINE 3'.該樣本程序 標準頁眉的 列表頭定義 為“標準頁 眉”。REPORT 語句將頁長 確定為八行 ,兩行用于 標準頁眉, 另外兩行為 頁腳保留。 頁腳包括水 平行和空行 。因此,輸 出的實際列 表,每頁留 下四行。第 一個 DO 循環(huán)填充這 四行,然后 發(fā)生 END-OF-PAGE 事件,其后 系統(tǒng)自動開 始新頁。在 第二個 DO 循環(huán)之后, 因為頁上剩 余的自由行 數(shù)少于三, 因此 RESERVE 語句觸發(fā) END-OF-PAGE 事件和分頁 。輸出如下 :第 3 頁的三行組 成行塊。8單頁的標準 頁眉標準頁眉包 括列表和列 標題(參見標準頁眉 (頁 )

32、.)。要影 響標準頁眉 這些組件的 表現(xiàn)形式, 請使用 NEW-PAGE 語句的下列 選項:語法NEW-PAGE NO-TITLE|WITH-TITLE NO-HEADING|WITH-HEADING.使用 NO-TITLE 或 WITH-TITLE 選項取消或 者在以后所 有頁上顯示 標準表頭。 基本列表的 缺省值為 WITH-TITLE, 輔助列表為 NO-TITLE。使用 NO-HEADING 或 WITH-HEADING 選項取消或 在以后所有 頁上顯示列 標題?;?列表的缺省 值為 WITH-HEADING, 輔助列表為 NO-HEADING。關(guān)于基本和 輔助列表的 詳細信息, 參

33、見 交互式列表 (頁 Error! Not a valid link.) 。即使使用 REPORT 語句的 NO STANDARD PAGE HEADING 選項取消標 準頁眉,也 能使用 WITH-TITLE 和 WITH-HEADING 激活單個組 件的顯示。因為 TOP-OF-PAGE 事件在新頁 上處理,所 以 NEW-PAGE 語句不能影 響在該事件 中定義的頁 眉顯示(參 見 單個頁眉 (頁 ) )。REPORT SAPMZTST LINE-SIZE 40.WRITE: 'Page', SY-PAGNO.NEW-PAGE NO-TITLE.WRITE: 'P

34、age', SY-PAGNO.NEW-PAGE NO-HEADING.WRITE: 'Page', SY-PAGNO.NEW-PAGE WITH-TITLE.WRITE: 'Page', SY-PAGNO.NEW-PAGE WITH-HEADING.WRITE: 'Page', SY-PAGNO.該程序創(chuàng)建 五頁,分別 帶有不同頁 眉。將列表 表頭標題文 本元素定義 為“標準頁 眉”,列標 題定義為“ 列”。第 1 和 5 頁包含完整 的標準頁眉 。第 2 頁沒有列表 表頭。在第 3 頁上,取消 整個頁眉。 在第 4 頁上,省略 列標題。

35、9單頁頁長要分別確定 每頁的頁長 ,請使用 NEW-PAGE 語句:語法NEW-PAGE LINE-COUNT <length>.該語句將后 續(xù)頁的頁長 確定為 <length>。 <length> 可以是變量 。如果將 <length> 設(shè)置為 0 ,則系統(tǒng)使 用標準頁長 (參見 標準頁 (頁 ) )。頁眉是 頁的部分因 此也是頁長 的部分。不能使用 NEW-PAGE 創(chuàng)建或更改 頁腳。將 REPORT 語句中定義 的頁腳(參 見 確定頁長 (頁 ) )保存為與 NEW-PAGE 語句無關(guān)。對于實際列 表輸出,<length> 減去

36、頁眉長 度即可。使用 NEW-PAGE 語句的 LINE-COUNT 選項時,請 參閱 確定頁長 (頁 ) 中的注意。要將頁長度 適配當前窗 口長度,請 將 <length> 設(shè)置為 SY-SROWS。 SY-SROWS 系統(tǒng)字段包 含當前窗口 的行數(shù)。REPORT SAPMZTST LINE-SIZE 40 LINE-COUNT 0(1).END-OF-PAGE.ULINE.START-OF-SELECTION.NEW-PAGE LINE-COUNT 5.DO 4 TIMES. WRITE / SY-INDEX.ENDDO.WRITE: / 'Next Loop:'

37、;.NEW-PAGE LINE-COUNT 6.DO 6 TIMES. WRITE / SY-INDEX.ENDDO.程序創(chuàng)建 5 頁,長度各 不相同。將 列表表頭文 本元素定義 為“標準頁 眉”。REPORT 語句為頁腳 每頁保留一 行。在 END-OF-PAGE 事件中將頁 腳定義為水 平行。第一 條 NEW-PAGE 語句將頁長 設(shè)置為 5,第二條 設(shè)置為 6。因為以前沒 有輸出寫入 列表,因此 第一條 NEW-PAGE 語句不開始 新頁。標準 頁眉每頁使 用兩行作為 列表表頭。 頁腳使用一 行。對于第 一個 DO 循環(huán),每頁 兩行可用于 WRITE 輸出。DO 循環(huán)內(nèi)的所 有分頁在列

38、表處理到達 頁眉時自動 發(fā)生。第二 條 NEW-PAGE 從第 3 頁到第 4 頁創(chuàng)建分頁 。這里不處 理 END-OF-PAGE 事件。對于 第二個 DO 循環(huán),每頁 三行可用于 WRITE 輸出。自動 再次分頁。 出現(xiàn)頁腳。REPORT SAPMZTST NO STANDARD PAGE HEADING LINE-SIZE 40 LINE-COUNT 0(2).TOP-OF-PAGE.WRITE: 'Top of Page', SY-PAGNO, 'SY-SROWS:', SY-SROWS.ULINE.END-OF-PAGE.ULINE.WRITE: 

39、9;End of Page', SY-PAGNO.START-OF-SELECTION.* NEW-PAGE LINE-COUNT SY-SROWS.DO 100 TIMES. WRITE / SY-INDEX.ENDDO.因為 NEW-PAGE 被標記為注 釋,所以該 程序創(chuàng)建沒 有結(jié)尾的單 頁:系統(tǒng)在當前 窗口中顯示 盡可能多的 行,即 12 行。在上面 的數(shù)字中, 12 行包含兩行 自定義表頭 行和 10 行實際列表 。在垂直滾 動時,頁眉 保持可見。 如果刪除 NEW-PAGE 語句前面的 星號并且保 持當前窗口 長度,則輸 出如下:根據(jù) SY-SROWS ,列表分為 幾頁,每

40、頁 12 行。12 行中兩行留 作頁眉,兩 行留作頁腳 。在該列表 中,用戶可 以使用“下 一頁”顯示 地滾動(例 如,到第 11頁):10列表級的頁 寬不能更改列 表級內(nèi)單個 頁寬。只能 更改新列表 級的所有頁 寬。為此, 請使用 NEW-PAGE 語句:語法NEW-PAGE LINE-SIZE <width>.從新頁開始 的所有列表 級寬度都為 <width> ,而不是 REPORT 語句中定義 的寬度。如 果將 <width> 設(shè)置為 0 ,則系統(tǒng)使 用標準列表 的寬度(參 見 標準列表的 寬度 (頁 ) )。如果將 <width> 設(shè)置為

41、 SY-SCOLS, 則可以使新 列表級的寬 度適配窗口 寬度,即使 該窗口小于 標準窗口。 SY-SCOLS 系統(tǒng)字段包 含當前窗口 一行的字符 數(shù)。在列表級之 內(nèi),即下頁 不是新列表 級的開始, 則系統(tǒng)忽略 LINE-SIZE 選項。關(guān)于如何創(chuàng) 建新列表級 的詳細信息 ,參見 交互式列表 (頁 Error! Not a valid link.) 。11在程序之內(nèi) 滾動在程序之內(nèi) ,可以垂直 和水平滾動 列表。使用 SCROLL 關(guān)鍵字。例 如,如果要 滾動到某頁 以響應(yīng)用戶 輸入,則從 程序內(nèi)滾動 就很有意義 。SCROLL 語句只對完 成的列表生 效。如果在 列表的第一 條輸出語句 之前

42、使用該 語句,則不 影響該列表 。如果在列 表的第一條 輸出語句之 后使用 SCROLL, 則影響整個 列表,包括 以后的所有 輸出語句。在每條 SCROLL 語句之后, 可以查詢 SY-SUBRC 以查看系統(tǒng) 是否成功。 如果系統(tǒng)成 功滾動則 SY-SUBRC 為 0 ;如果滾動 不可能則為 4 ,因為其超 過列表邊界 。如果正在 使用幾個列 表級,則 SY-SUBRC 也可能是 8,表明指 定的列表級 不存在(參 見 滾換 列表 (頁 Error! Not a valid link.) )。 SCROLL 語句允許垂直滾動水平滾動11通過窗口滾 動窗口要以當前窗 口大小垂直 滾動列表并 且

43、與頁長無 關(guān),請使用 這條語句:語法SCROLL LIST FORWARD|BACKWARD INDEX <idx>.不帶 INDEX 選項時,該 語句以當前 窗口大小向 前或向后滾 動當前列表 。使用 INDEX 選項時,系 統(tǒng)以列表級 <idx> 滾動列表。 關(guān)于在列表 級中滾動的 詳細信息, 參見 滾動交互式列表 (頁 Error! Not a valid link.) 。REPORT SAPMZTST NO STANDARD PAGE HEADING LINE-SIZE 40.TOP-OF-PAGE.WRITE: 'Top of Page', S

44、Y-PAGNO, 'SY-SROWS:', SY-SROWS.ULINE.START-OF-SELECTION.DO 100 TIMES. WRITE / SY-INDEX.ENDDO.DO 3 TIMES. SCROLL LIST FORWARD.ENDDO.該報表創(chuàng)建 沒有結(jié)尾頁 的列表。在 DO 循環(huán)之內(nèi), 系統(tǒng)三次 SCROLL 語句。如果 當前窗口為 12 行(存儲在 SY-SROWS 中),則程 序輸出如下 :應(yīng)注意,實 際列表是以 SY-SROWS 減去表頭行 數(shù)進行滾動 。用戶可以 繼續(xù)朝兩個 方向滾動。11按頁滾動要按頁滾動 列表,即按 頁長垂直滾 動列表,S

45、CROLL 語句提供下 列選項:滾動到某頁要滾動到某 頁,請使用 SCROLL 語句的 TO 選項:語法SCROLL LIST TO FIRST PAGE | LAST PAGE | PAGE <pag> INDEX <idx> LINE <lin>.不用 INDEX 選項,語句 將當前列表 滾動到首頁 、尾頁或 <pag> 頁。使用 INDEX 選項,則系 統(tǒng)滾動列表 級 <idx> 的列表。關(guān) 于列表級的 詳細信息, 參見 交互式列表 (頁 Error! Not a valid link.) 。使用 LINE 選項時,系 統(tǒng)顯示從

46、實 際列表的 <lin> 行開始滾動 的頁。不包 括頁眉行。按頁數(shù)滾動要按頁數(shù)滾 動列表,請 使用 SCROLL 語句的下列 選項:語法SCROLL LIST FORWARD | BACKWARD <n> PAGES INDEX <idx>.不用 INDEX 選項時,語 句向前或向 后滾動 <n> 頁。如上所 述,INDEX 選項參考某 一列表級。REPORT SAPMZTST NO STANDARD PAGE HEADING LINE-SIZE 40 LINE-COUNT 8(2).DATA: PAG TYPE I VALUE 15, LIN

47、TYPE I VALUE 4.TOP-OF-PAGE.WRITE: 'Top of Page', SY-PAGNO.ULINE.END-OF-PAGE.ULINE.WRITE: 'End of Page', SY-PAGNO.START-OF-SELECTION.DO 100 TIMES. DO 4 TIMES. WRITE / SY-INDEX. ENDDO.ENDDO.SCROLL LIST TO PAGE PAG LINE LIN.該程序創(chuàng)建 100 頁的列表, 每頁 8 行。每頁四 行用于頁眉 和頁腳。因 為 SCROLL 語句,該程 序的輸出如 下:列

48、表從第 15 頁開始顯示 。由于 LINE 選項,實際 列表的前三 行滾動到頁 眉以下。12滾動到列表 的頁邊緣要水平滾到 列表的左或 右頁邊緣, 請使用 SCROLL 語句的下列 選項:語法SCROLL LIST LEFT | RIGHT INDEX <idx>.不用 INDEX 選項時,語 句滾動到當 前列表的左 或右頁邊緣 。使用 INDEX 選項時,系 統(tǒng)滾動列表 級 <idx> 的列表。關(guān) 于列表級的 詳細信息, 參見 交互式列表 (頁 Error! Not a valid link.) 。REPORT SAPMZTST NO STANDARD PAGE HE

49、ADING LINE-SIZE 200.TOP-OF-PAGE.WRITE: AT 161 'Top of Page', SY-PAGNO, 'SY-SCOLS:', SY-SCOLS.ULINE.START-OF-SELECTION.DO 200 TIMES. WRITE SY-INDEX.ENDDO.SCROLL LIST RIGHT.該程序?qū)挾?為 200 的一頁列表 。如果當前 窗口寬度( 存儲在 SY-SCOLS 中)等于 40 ,則程序輸 出如下:列表顯示滾 動到右頁邊 邊緣。用戶 現(xiàn)在可以使 用滾動條滾 動到左邊。13按列滾動要按列水平 滾動列表,

50、 SCROLL 語句提供幾 個選項。在 此情況下, 一列意味著 列表行一個 字符。滾動到某列要滾動到某 列,請使用 SCROLL 語句的 TO COLUMN 選項:語法SCROLL LIST TO COLUMN <col> INDEX <idx>.不用 INDEX 選項時,系 統(tǒng)顯示從列 <col> 開始的當前 列。使用 INDEX 選項時,系 統(tǒng)滾動列表 級 <idx> 的列表。關(guān) 于列表級的 詳細信息, 參見 交互式列表 (頁 Error! Not a valid link.) 。按列數(shù)滾動要按某一列 數(shù)滾動列表 ,請使用 SCROLL 語句

51、的下列 選項:語法SCROLL LIST LEFT | RIGHT BY <n> PLACES INDEX <idx>.不用 INDEX 選項時,系 統(tǒng)按 <n> 列將當前列 表滾動到左 邊或右邊。 如上所述, INDEX 選項參考特 定的列表級 。REPORT SAPMZTST NO STANDARD PAGE HEADING LINE-SIZE 200.TOP-OF-PAGE.WRITE: AT 161 'Top of Page', SY-PAGNO, 'SY-SCOLS:', SY-SCOLS.ULINE.START-O

52、F-SELECTION.DO 200 TIMES. WRITE SY-INDEX.ENDDO.SCROLL LIST TO COLUMN 178.該程序創(chuàng)建 寬度為 200 的一頁列表 。如果當前 窗口寬度( 存儲在 SY-SCOLS 中)等于 40 ,則程序輸 出如下:從 178 列開始顯示 列表。用戶 可以滾動到 列表左邊。13列表頁面設(shè) 置列表頁面設(shè) 置確定如何 組織列表顯 示以便容易 讀取。頁面 信息量大小 并不重要, 重要的是信 息的表現(xiàn)方 式。人眼更 易于處理小 塊信息。因 此,將包含 新信息塊的 列或行與前 面的塊從視 覺上分開也 同等重要。 設(shè)置列表頁 面時,應(yīng)該 使用幾個空

53、行或垂直行 以將各欄分 開。在輸出 包含新信息 項的行之前 ,應(yīng)畫一空 行或下劃線 。下列主題說 明 ABAP/4 為設(shè)置列表 頁面提供多 種功能。14定位輸出可以在當前 頁的任意位 置定位 WRITE 和 ULINE 語句的輸出 。緊接著位 置規(guī)格的 WRITE、 SKIP、 或 ULINE 語句可以覆 蓋現(xiàn)有輸出 。對于當前 輸出位置, 參閱系統(tǒng)字 段 SY-COLNO( 用于當前列 ) SY-LINNO( 用于當前行 )可以使用系 統(tǒng)字段在頁 上引導。ABAP/4 提供一些關(guān) 鍵字以更改 絕對和相對 輸出位置。 參見下列主 題:SAP 允許只讀取 系統(tǒng)字段 SY-COLNO 和 SY-L

54、INNO。 因此,要定 位輸出,只 能使用這些 主題中說明 的語句。不 要通過直接 給系統(tǒng)字段 賦值來定位 輸出。在那 種情況下, SAP 不能保證系 統(tǒng)字段的內(nèi) 容,因為這 樣賦值不觸 發(fā)合理性檢 查。即使現(xiàn) 在,也可將 列號賦給頁 外的 SY-COLNO, 但這樣做毫 無意義。14絕對定位指定絕對位 置之后,將 后續(xù)輸出寫 入在固定行 和列開始的 屏幕。14水平定位要指定水平 輸出位置, ABAP/4 提供兩種方 法:WRITE 和 ULINE 語句的 AT 選項(參見 在屏幕上 位 WRITE 輸出 (頁 44) )以及 POSITION 語句。POSITION 語句的語法 為:語句POSITION <col>.該語句將水 平輸出位置 和 SY-COLNO 系統(tǒng)字段設(shè) 置為 <col>。 如果 <col> 超出頁面之 外,則忽略 后續(xù)輸出語 句。系統(tǒng)將 POSITION 語句或使用 AT 格式化的 WRITE 語句的輸出 寫入指定位 置,不管是 否有足夠空 間。超出該 行的輸出部 分被截斷。 其他 WRITE 輸出在下一 行開始。14垂直定位如下指定垂 直輸出位置 :語法SKIP TO LINE <n>.該語句將垂 直輸出位置 和 SY-LINNO

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論