05模塊化編程砰逻,A4-使用Include,輸出訂單列表數(shù)據2018-02-25

圖5-A4 使用Include輸出訂單列表

需求分析:

1泛鸟、具體需求

本《使用Include輸出訂單列表》有如下需求:

  1. 從訂單表中獲得訂單信息并按圖示輸出蝠咆;
  2. 訂單列表按訂單編號升序輸出,同時輸出訂單編號時不保留前導0北滥。

其中列表輸出效果如圖刚操。

圖5- 12 列表輸出效果

2、開發(fā)分析

要達成本實踐目標再芋,分析有如下:

  1. 此實踐也可以通過一般的方式在一個程序中實現(xiàn)頁眉和數(shù)據的輸出菊霜;
  2. 在本實踐中,將頁眉輸出通過Include(包含)程序進行定義济赎,如此此頁眉可在不同的程序中重復使用鉴逞。
圖5- 13 程序開發(fā)思路

實踐步驟:

本實踐將會需要建立2個程序,一個是要在其他程序中包含的Include程序司训,另一個是輸出列表數(shù)據的程序构捡;2個程序都可以通過程序編輯器(SE38)即可完成,編寫的代碼將有如下幾部分組成壳猜,按開發(fā)人員風格不同勾徽,其組成部分并非強制一致。

1统扳、建立Include

在程序編輯器的初始界面喘帚,輸入程序名稱(本實例為ZU0504_PAGE_HEADER)后畅姊,點擊創(chuàng)建,將會出現(xiàn)設定程序屬性的界面吹由,從界面中輸入標題涡匀,并選擇類型為“I INCLUDE程序”程序,如圖溉知,完成后點擊保存陨瘩。

圖5- 14 包含程序的類型設置

然后將進入源代碼編輯界面,詳細代碼如下:

*&---------------------------------------------------------------------*
*&  INCLUDE  ZU0504_PAGE_HEADER
*&---------------------------------------------------------------------*
TOP-OF-PAGE.
  WRITE:/5 '訂單列表', 60 '頁碼:', (3) sy-pagno.
  WRITE:/5(70) sy-uline.
  WRITE:/5(4) '序號', (8) '訂單編號',
          (8) '訂單日期', (6) '客戶',
          (20) '客戶名稱', (8) '城市', (8) '所在地區(qū)'.
  WRITE:/5(70) sy-uline.

如上代碼相當于把主程序中頁眉輸出部分的內容级乍,放到此Include中舌劳;在Include的源代碼中也可以使用主程序中的變量。

完成后激活玫荣,則建立了一個子程序甚淡。

2、程序聲明

新建一程序zu0504_order_list_include以完成本實踐需求捅厂,程序聲明部分的代碼如下:

REPORT zu0504_order_list_include NO STANDARD PAGE HEADING
      LINE-SIZE 100 LINE-COUNT 80.

通過如上代碼贯卦,設定了此程序輸出不使用標準頁眉,頁面寬度100個字符焙贷,頁面高度為80行撵割。

3、對象定義

對象定義部分的代碼如下:

*****對象定義
DATA:BEGIN OF order_list_stru,
       orderid      TYPE ztorders_h-orderid,
       orderdate    TYPE ztorders_h-orderdate,
       customerid   TYPE ztcustomer-customerid,
       customername TYPE ztcustomer-customername,
       city         TYPE ztcustomer-city,
       region       TYPE ztcustomer-region,
     END OF order_list_stru.

通過如上代碼定義了一個名稱為order_list_stru的結構辙芍,以在后續(xù)獲取和輸出數(shù)據部分中啡彬,存儲和輸出記錄的值。

4故硅、輸出頁眉

輸出頁眉部分的代碼如下:

*&----------------------------------------------------------------------*
*& 輸出頁眉
*&----------------------------------------------------------------------*
INCLUDE zu0504_page_header.

通過INCLUDE關鍵字庶灿,將INCLUDE程序zu0504_page_header包含到此程序中,由此實現(xiàn)頁眉的輸出吃衅。

5往踢、獲得和輸出數(shù)據

獲得和輸出數(shù)據部分的代碼如下:

*&----------------------------------------------------------------------*
*& START-OF-SELECTION
*&----------------------------------------------------------------------*
START-OF-SELECTION.
*****獲取和輸出訂單數(shù)據
  SELECT oh~orderid oh~orderdate ct~customerid ct~customername ct~city ct~region
         INTO order_list_stru
         FROM ( ztorders_h AS oh
                INNER JOIN ztcustomer AS ct ON ct~customerid = oh~customerid )
         ORDER BY orderid.
    SHIFT order_list_stru-orderid LEFT DELETING LEADING '0'.

    WRITE:/5(4) sy-dbcnt, (8) order_list_stru-orderid,
            (8) order_list_stru-orderdate, (6) order_list_stru-customerid,
            (20) order_list_stru-customername, (8) order_list_stru-city, 
            (8) order_list_stru-region.
  ENDSELECT.

如上代碼,通過SELECT關鍵字將數(shù)據從ztorders_h和ztcustomer中逐條獲取數(shù)據并存儲到結構order_list_stru中徘层,然后通過SHIFT關鍵字對訂單編號的前導0去除后峻呕,按需求通過WRITE輸出。

將如上2~5部分的代碼順序合并后惑灵,則得到本需求本程序的實現(xiàn)代碼山上。

本實踐小結:包含程序

包含(Include)程序也是一種ABAP程序,是類型為I的不可執(zhí)行的程序英支,作為代碼復用技術在SAP的應用也是非常廣泛。主要應用于:1)將大型程序分為不同的部分進行維護哮伟,2)多個程序中相同的代碼段干花;由此實現(xiàn)代碼的協(xié)同開發(fā)和提高代碼的質量和效率妄帘。

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市池凄,隨后出現(xiàn)的幾起案子抡驼,更是在濱河造成了極大的恐慌,老刑警劉巖肿仑,帶你破解...
    沈念sama閱讀 222,000評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件致盟,死亡現(xiàn)場離奇詭異,居然都是意外死亡尤慰,警方通過查閱死者的電腦和手機馏锡,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,745評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來伟端,“玉大人杯道,你說我怎么就攤上這事≡痱穑” “怎么了党巾?”我有些...
    開封第一講書人閱讀 168,561評論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長霜医。 經常有香客問我齿拂,道長,這世上最難降的妖魔是什么肴敛? 我笑而不...
    開封第一講書人閱讀 59,782評論 1 298
  • 正文 為了忘掉前任创肥,我火速辦了婚禮,結果婚禮上值朋,老公的妹妹穿的比我還像新娘叹侄。我一直安慰自己,他們只是感情好昨登,可當我...
    茶點故事閱讀 68,798評論 6 397
  • 文/花漫 我一把揭開白布趾代。 她就那樣靜靜地躺著,像睡著了一般丰辣。 火紅的嫁衣襯著肌膚如雪撒强。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,394評論 1 310
  • 那天笙什,我揣著相機與錄音飘哨,去河邊找鬼。 笑死琐凭,一個胖子當著我的面吹牛芽隆,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 40,952評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼胚吁,長吁一口氣:“原來是場噩夢啊……” “哼牙躺!你這毒婦竟也來了?” 一聲冷哼從身側響起腕扶,我...
    開封第一講書人閱讀 39,852評論 0 276
  • 序言:老撾萬榮一對情侶失蹤孽拷,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后半抱,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體脓恕,經...
    沈念sama閱讀 46,409評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,483評論 3 341
  • 正文 我和宋清朗相戀三年窿侈,在試婚紗的時候發(fā)現(xiàn)自己被綠了炼幔。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,615評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡棉磨,死狀恐怖江掩,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情乘瓤,我是刑警寧澤环形,帶...
    沈念sama閱讀 36,303評論 5 350
  • 正文 年R本政府宣布,位于F島的核電站衙傀,受9級特大地震影響抬吟,放射性物質發(fā)生泄漏。R本人自食惡果不足惜统抬,卻給世界環(huán)境...
    茶點故事閱讀 41,979評論 3 334
  • 文/蒙蒙 一火本、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧聪建,春花似錦钙畔、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,470評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至挥下,卻和暖如春揍魂,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背棚瘟。 一陣腳步聲響...
    開封第一講書人閱讀 33,571評論 1 272
  • 我被黑心中介騙來泰國打工现斋, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人偎蘸。 一個月前我還...
    沈念sama閱讀 49,041評論 3 377
  • 正文 我出身青樓庄蹋,卻偏偏與公主長得像瞬内,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子蔓肯,可洞房花燭夜當晚...
    茶點故事閱讀 45,630評論 2 359

推薦閱讀更多精彩內容