03ABAP語法,A1-按輸入銷售訂單輸出銷售信息

圖3-A1 銷售訂單數(shù)據(jù)輸出

需求分析:

1、具體需求

本《按輸入銷售訂單輸出銷售信息》有如下需求:

  1. 程序的初始界面可以輸入銷售訂單信息,訂單號、產(chǎn)品編號、數(shù)量、價格、折扣率;
  2. 輸入后執(zhí)行將輸出輸入的銷售訂單信息;
  3. 根據(jù)輸入的數(shù)量、價格和折扣,得到銷售金額:數(shù)量*價格*(1-折扣);
  4. 將銷售數(shù)量和銷售金額的單位進行轉(zhuǎn)換,數(shù)量以斤為輸出,銷售金額以美元輸出。
2、開發(fā)分析

要達(dá)成本實踐目標(biāo),需要綜合ABAP的數(shù)據(jù)輸出實現(xiàn)方式:

  1. 輸入信息包括訂單號、數(shù)量、價格等是用戶輸入的界面字段,可以通過選擇字段PARAMETERS進行定義;
  2. 銷售金額、轉(zhuǎn)換后的數(shù)量、轉(zhuǎn)換后的金額,將會根據(jù)輸入的信息變動,如此可以在程序中定義為變量,以存儲及輸出要處理的數(shù)據(jù);
  3. 通過對數(shù)據(jù)的運算,包括加減乘除,計算出銷售金額、轉(zhuǎn)換后的數(shù)量等;
  4. 通過Write語句可以將數(shù)據(jù)輸出到屏幕,而在輸出時需要考慮每列數(shù)據(jù)輸出起始位置及所占字符長度;

實踐步驟:

本實踐通過程序編輯器(SE38)即可完成,編寫的代碼將有如下幾部分組成,按開發(fā)人員風(fēng)格不同,其組成部分并非強制一致。

No 部分 說明
1 程序聲明 聲明本程序執(zhí)行后是否包含標(biāo)準(zhǔn)標(biāo)題,數(shù)據(jù)輸出寬度和每頁的行數(shù)量為多少
2 對象定義 通過定義變量或常量等,以在程序執(zhí)行過程中計算和存儲臨時值
3 數(shù)據(jù)處理 根據(jù)需求對數(shù)據(jù)進行處理
4 文本元素 通過文本元素定義程序輸出時的文字內(nèi)容以及初始界面中的字段
5 輸出數(shù)據(jù) 將計算結(jié)果數(shù)據(jù)按要求輸出
1、程序聲明

程序聲明部分代碼如下:

REPORT  zu0301_num_cal.

本語句是對程序的定義,表明此程序代碼不是FUNCTION MODULE(功能函數(shù)),不是CLASS(類),而是可以執(zhí)行的可以輸出數(shù)據(jù)的此程序;這是對程序最基本的聲明,且必須存在的部分。

2、對象定義

對象定義部分代碼如下:

*****對象定義
DATA: oamount  TYPE f,                      "銷售金額
      qualityc TYPE p DECIMALS 1,           "公斤轉(zhuǎn)換為斤后的數(shù)量
      pricec   TYPE p DECIMALS 1,           "轉(zhuǎn)換為斤后的價格
      oamountc TYPE f,                      "轉(zhuǎn)換為美元后的銷售金額
      strng    TYPE string.                 "輸出信息

CONSTANTS crate TYPE p DECIMALS 4            "假設(shè)匯率為固定值,此處定義為常量
               VALUE '0.1512'.

PARAMETERS: orderno(6)  TYPE n,             "定義類型為N(數(shù)字字符)的訂單編號變量
            product(10) TYPE c,             "定義類型為C(字符)的產(chǎn)品編號變量
            quality     TYPE i DEFAULT 10,  "定義類型為I(整數(shù))默認(rèn)值為10的數(shù)量變量
            price(4)    TYPE p DECIMALS 2,  "定義類型為P(定點)小數(shù)位數(shù)2的數(shù)量變量
            discount(4) TYPE p DECIMALS 1.  "定義類型為P(定點)小數(shù)位數(shù)1的折扣變量

如上代碼,首先通過DATA定義在程序中要存儲和輸出數(shù)據(jù)的變量及其類型,包含:oamount(銷售金額,浮點小數(shù))、qualityc(斤數(shù)量,小數(shù)位數(shù)1的定點小數(shù))、pricec(斤價格,小數(shù)位數(shù)1的定點小數(shù))、oamountc(美元銷售金額,浮點小數(shù))。隨后通過CONSTANTS定義1個常量crate(匯率人民幣與美元匯率),此常量類型是4位小數(shù)的定點小數(shù),并將匯率賦值0.1512,通過此常量定義后表示在程序執(zhí)行過程中不需要改變。
然后,按需求通過PARAMETER定義初始界面中要輸入的訂單編號、產(chǎn)品編號、數(shù)量、價格、折扣率,并根據(jù)需要設(shè)置了其類型。

3、數(shù)據(jù)處理

通過字符處理、計算、得到各變量的值以進行下一步的程序處理:

*----------------------------------------------------------------------*
*****數(shù)值計算
oamount = quality * price
           * ( 1 - discount / 100 ).          "計算銷售金額
qualityc = quality * 2.                       "1公斤 = 2斤
pricec = price / 2.
oamountc = oamount * crate .                  "指定匯率為1人民幣=0.1512美元

*****輸入信息顯示
WRITE: /5 TEXT-001,                           "WRITE輸出數(shù)據(jù),/5 換行從第5位開始輸出
       /10 '訂單號:', 20 orderno,            "訂單號值從第20位開始輸出
       /10 '產(chǎn)  品:', 20 product,
       /10 '數(shù)  量:', 20(10) quality, '公斤',
       /10 '價  格:', 20(10) price,'元/公斤',
       /10 '折扣率:', 20(10) discount  && '%'  .  "%顯示效果 

注意運算符包括+、-、*、/還有括號等左右需要留空,不留空的話其意義不同,如不留空時,+在字符中為截取字符,-表示一個結(jié)構(gòu)包含的字段,/在WRITE中為換行。

4、文本元素

對如上部分代碼輸入并保存后,通過菜單“轉(zhuǎn)到”-->“文本元素”,設(shè)置文本符號(圖3-1)、標(biāo)題(圖3-2),以為后續(xù)輸出數(shù)據(jù)部分使用。

圖3- 1 程序的文本符號
圖3- 2 程序的選擇文本
5、輸出數(shù)據(jù)

根據(jù)要求,通過Write進行輸出。

*****輸出信息顯示
SKIP 1.                                      "空一行輸出
WRITE: /5 TEXT-002.
strng = oamount && ','.                      "通過&&合并金額(浮點型)和,
CONCATENATE TEXT-003 strng INTO strng.       "通過CONCATENATE合并多個字符到STRNG
WRITE: /10 strng.

strng = TEXT-005 && qualityc && '斤,'
        && TEXT-006 && pricec &&  '元/斤,'.
WRITE: /10 TEXT-004,
       /10 strng.

strng = TEXT-008 && oamountc && '美元。'.
WRITE: /10 TEXT-007,
       /10 strng.

如上通過WRITE語句進行數(shù)據(jù)的輸出,其中strng根據(jù)輸出的需求,進行了多次的賦值。
將如上4部分代碼按順序組合在一起,則是此開發(fā)實踐的完整實現(xiàn)代碼,輸入后可通過程序美化器自動編排,由此完成程序的開發(fā)。

本實踐小結(jié):

1、數(shù)據(jù)類型
2、對象定義
3、注釋
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容