SAP基础知识学习资料整理.docx

上传人:飞**** 文档编号:44038069 上传时间:2022-09-20 格式:DOCX 页数:37 大小:25.04KB
返回 下载 相关 举报
SAP基础知识学习资料整理.docx_第1页
第1页 / 共37页
SAP基础知识学习资料整理.docx_第2页
第2页 / 共37页
点击查看更多>>
资源描述

《SAP基础知识学习资料整理.docx》由会员分享,可在线阅读,更多相关《SAP基础知识学习资料整理.docx(37页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、数据类型C :字符串D :日期型 格式为 YYYYMMDD 例:1999/12/03F : 浮点数 长度为8I :整数N :数值组成的字符串 如:011,302P : PACKED数 用于小数点数值 如:12.00542T : 时间 格式为:HHMMSS 如:14:03:00X : 16进制数 如:1A03*-*变数宣告DATA decimals 变数名称 变数类型 及 长度 初值 小数位数exp:DATA : COUNTER TYPE P DECIMALS 3.NAME(10) TYPE C VALUE DELTA.S_DATE TYPE D VALUE 19991203.exp:DATA

2、: BEGIN OF PERSON,NAME(10) TYPE C,AGE TYPE I,WEIGHT TYPE DECIMALS 2,END OF PERSON.另外,有關DATA宣告的指令還有: CONSTANTS(宣告常數)、STATICS(臨時變數宣告).exp:CONSTANTS PI TYPE P DECIMALS 5 VALUE 3.14159.STATICS 敘述宣告的變數僅在目前的程式中使用, 結束後會自動釋放 語法: STATICS 系統專用變數說明系統內部專門創建了SYST這個STRUCTURE,里面的欄位存放系統變數,常用的系統變數有:SY-SUBRC : 系統執行某指

3、令后,表示執行成功与否的變數,0 表示成功SY-UNAME: 當前使用者登入SAP的USERNAME;SY-DATUM: 當前系統日期;SY-UZEIT: 當前系統時間;SY-TCODE: 當前執行程式的Transaction codeSY-INDEX : 當前LOOP循環過的次數SY-TABIX: 當前處理的是internal table 的第几筆SY-TMAXL: Internal table的總筆數SY-SROWS: 屏幕總行數;SY-SCOLS: 屏幕總列數;SY-MANDT: CLIENT NUMBERSY-VLINE: 畫豎線SY-ULINE: 畫橫線TYPE 敘述用來指定資料型態

4、或宣告自定資料型態Example:TYPES: BEGIN OF MYLIST,NAME(10) TYPE C,NUMBER TYPE I,END OF MYLIST.DATA LIST TYPE MYLIST.LIKE 敘述跟TYPE敘述使用格式相同, 如DATA TRANSCODE LIKE SY-TCODE.不同的是 LIKE 用在已有值的資料項, 如系統變數, 而TYPE敘述則是用在指定資料型態。*-*输出一. WRITE 語句ABAP/4用來在屏幕上輸出資料的指令是WRITE指令,例如:WRITE: USER NAME IS:, SY-UNAME.二. 指定屏幕輸出位置指定輸出位置的

5、語句格式為:WRITE: AT / () 資料項 其中: / : 在下一行輸出: 指定輸出的行號;():指定輸出位數(長度): 指定顯示格式參數,參數有:LEFT-JUSTIFIED 資料靠左對齊CENTERED 資料靠中間對齊RIGHT-JUSTIFIED 資料靠右對齊UNDER 正對在資料項的下面顯示NO-GAP 緊接著顯示,不留空格USING EDIT MASK : 使用內嵌子元顯示, 如 12:03:20USING NO EDIT MASK: 不使用內嵌子元NO-ZERO: 數字前面 0 的部分不顯示NO-SIGN: 不顯示正負號DECIMALS : 顯示 位小數EXPOENT : F

6、(浮點數)指數的值ROUND : 四舍五入至小數點后位CURRENCY : 幣別顯示DD/MM/YY : 日期顯示格式MM/DD/YY: YY/MM/DD: YY/DD/MMMM/DD/YYYY:DD/MM/YYYYYYYY/MM/DD:YYYY/DD/MM:例如1: WRITE: /10(6) ABCDEFGHIJK.輸出結果為: ABCDEF例如2: DATA: X TYPE I VALUE 11:20:30,A(5) TYPE C VALUE AB CDE.WRITE: / X USING EDIT MASK _:_:_.WRITE: / X USING EDIT MASK $_,_.W

7、RITE: / Y NO-GAP.輸出結果為:11:20:30$112,030ABCDEF例如3: DATA: LEN TYPE I VALUE 10,POS TYPE I VALUE 11,TEXT(10) VALUE 1234567890WRITE The text - appears in the text.WRITE AT POS(LEN) TEXT.WRITE TO 语句的基本 形式要将值(文 字)或源字 段内容写入 目标字段, 可以使用 WRITE TO 语句:语法WRITE TO .DATA: NUMBER TYPE F VALUE 4.3,TEXT(10),FLOAT TYPE

8、 F,PACK TYPE P DECIMALS 1.WRITE NUMBER.WRITE NUMBER TO TEXT EXPONENT 2.WRITE / TEXT.WRITE NUMBER TO FLOAT.WRITE / FLOAT.WRITE NUMBER TO PACK.WRITE / PACK.MOVE NUMBER TO PACK.WRITE / PACK.exp:DATA: NAME(10) VALUE SOURCE,SOURCE(10) VALUE Antony,TARGET(10).WRITE (NAME) TO TARGET.WRITE: TARGET.exp :DATA

9、: COUNTER TYPE I.COMPUTE COUNTER = COUNTER + 1.COUNTER = COUNTER + 1.ADD 1 TO COUNTER.在此,三条 运算语句进 行相同算术 运算输出屏幕上 的线和空行用下列语法 ,可以在输 出屏幕上生 成水平线:语法ULINE AT /().它等同于WRITE AT /() SY-ULINE.AT 后的格式规 范,与在 在屏幕上定 位 WRITE 输出 (页 28) 中为 WRITE 语句说明的 格式规范完 全一样。如果没有格 式规范,系 统则开始新 的一行,并 用水平线填 充该行。否 则,只按指 定输出水平 线。生成水平线

10、的另一种方 法,是在 WRITE 语句中键入 恰当数量的 连字符,如 下所示:WRITE AT /() -.垂直线用下列语法 ,可以在输 出屏幕上生 成垂直线:语法WRITE AT / SY-VLINE.或WRITE AT / |.空行用下列语法 ,可以在输 出屏幕上生 成空行:语法SKIP .该语句从当 前行开始, 在输出屏幕 上生成 个空行。如 果没有指定 的值,就输 出一个空行 。要将输出定 位在屏幕的 指定行上, 请使用:语法SKIP TO LINE .该语句允许 将输出位置 向上或向下 移动。四. 顯示圖示:語法: WRITE: AS SYMBOL.WRITE: AS ICON.例如

11、: INCLUDE .INCLUDE .WRITE: / Phone symbol:, SYM_PHONE AS SYMBOL.WRITE: / Alarm Icon:, ICON_VOICE_OUTPUT AS ICON.要查看系統所提供有那些符號及圖示,可選擇EDIT下的Insert Statement,選擇Write,接下來選擇要查看的群組,如SYMBOL 或ICON, 接下來按Display即可.*-*一. Internal Table 的宣告ABAP/4中的Internal Table是一种Data Structure,類似于其他語言中的STRUTURE,它可以由几個不同類型的欄位(

12、field)組成,用來表示具有不同屬性的某一事物,單獨一筆資料表示某個事物,多筆資料表示具有相同屬性的多個事物.Internal table 的定義有以下几种格式:格式一. DATA: BEGIN OF OCCURS , TYPE , TYPE , TYPE , END OF .語法:DATA OCCURS WITH HEADER LINEExample:DATA VECTOR TYPE I OCCURS 10 WITH HEADER LINE.格式二. TYPES: BEGIN OF , TYPE , TYPE , TYPE , END OF .TYPES TYPE OCCURS .格式三.

13、 DATA: BEGIN OF .INCLUDE STRUCTURE .DATA: END OF .DATA: LIKE OCCURS .exp:TYPES VECTOR TYPE I OCCURS 10.TYPES: BEGIN OF LINE,COLUMN1 TYPE I,COLUMN2 TYPE I,COLUMN3 TYPE I,END OF LINE.TYPES ITAB TYPE LINE OCCURS 10.TYPES: BEGIN OF DEEPLINE,TABLE1 TYPE VECTOR,TABLE2 TYPE ITAB,END OF DEEPLINE.TYPES DEEPT

14、ABLE TYPE DEEPLINE OCCURS 10.本示例创建 与上例相同 的内表数据 类型(VECTOR 和 ITAB) 。然后创建 数据类型 DEEPLINE 作为字段串 ,包含这些 内表作为组 件。通过该 字段串,数 据类型 DEEPTABLE 被创建为内 表。因此该 内表的元素 本身就是内 表。exp :TYPES: BEGIN OF LINE,COLUMN1 TYPE I,COLUMN2 TYPE I,COLUMN3 TYPE I,END OF LINE.TYPES ITAB TYPE LINE OCCURS 10.DATA TAB1 TYPE ITAB.DATA TAB2 L

15、IKE TAB1 WITH HEADER LINE.同 创建内表数 据类型 (页 99) 中所示,该 示例创建数 据类型 ITAB 作为内表。 通过使用 DATA 语句的 TYPE 参数引用 ITAB, 使数据对象 TAB1 与 ITAB 结构相同。 通过使用 DATA 语句的 LIKE 参数引用 TAB1, 使数据对象 TAB2 结构相同。 创建的 TAB2 带表头行。 因此,可以 在程序中使 用 TAB2-COLUMN1、 TAB2-COLUMN2 和 TAB2-COLUMN3 等定位表格 工作区域 TAB2。exp :DATA FLIGHT_TAB LIKE SFLIGHT OCCURS

16、 10.本示例创建 数据对象 FLIGHT_TAB, 其结构与数 据库表格 SFLIGHT 相同。本示例介绍 如何采用两 种不同的步 骤创建同一 内表。TYPES VECTOR_TYPE TYPE I OCCURS 10.DATA VECTOR TYPE VECTOR_TYPE WITH HEADER LINE.在 此创建一 个内表数据 类型 VECTOR_TYPE, 其行包含首 先创建的基 本类型 I 字段。然后 ,通过引用 VECTOR_TYPE 创建数据对 象 VECTOR。 通过使用 WITH HEADER LINE 选项还创建 表格工作区 域 VECTOR。 在这种情况 下,表格工

17、作区域包含 一种类型 I 字段,可以 通过名称 VECTOR 定位。DATA VECTOR TYPE I OCCURS 10 WITH HEADER LINE.在这种情况 下,通过直 接在 DATA 语句中使用 OCCURS 选项创建完 全一样的数 据类型 VECTOR。*-*1. TYPES type. 2. TYPES type(len).3. TYPES: BEGIN OF structype . END OF structype. 4. TYPES itabtype TYPE tabkind OF linetype LIKE tabkind OF lineobjWITH UNIQUE|

18、NON-UNIQUE keydef INITIAL SIZE n. 5. TYPES itabtype TYPE RANGE OF type.TYPES itabtype LIKE RANGE OF f. 6. TYPES itabtype TYPE linetype|LIKE lineobj OCCURS n. *-*APPEND LINE 格式:APPEND TO 举例一:(使用WORK AREA)DATA : BEGIN OF LINE,COL1 TYPE I,COL2 TYPE I,END OF LINE.DATA ITAB LIKE LINE OCCURS 10.DO 2 TIMES

19、.LINE-COL1 = SY-INDEX.LINE-COL2 = SY-INDEX * 2.APPEND LINE TO ITAB.ENDDO.LOOP AT ITAB INTO LINE.WRITE : / LINE-COL1,LINE-COL2.ENDLOOP.举例二 (不使用WORK AREA)DATA : BEGIN OF ITAB OCCURS 10,COL1 TYPE I,COL2 TYPE I,END OF ITAB.DO 2 TIMES.ITAB-COL1 = SY-INDEX.ITAB-COL2 = SY-INDEX * 2.APPEND ITAB.ENDDO.LOOP A

20、T ITAB.WRITE : / ITAB-COL1,ITAB-COL2.ENDLOOP.exp:DATA: BEGIN OF ITAB OCCURS 10,COL1 TYPE C,COL2 TYPE I,END OF ITAB.DO 3 TIMES.APPEND INITIAL LINE TO ITAB.ITAB-COL1 = SY-INDEX. ITAB-COL2 = SY-INDEX * 2.APPEND ITAB.ENDDO.LOOP AT ITAB.WRITE: / ITAB-COL1, ITAB-COL2.ENDLOOP.舉例三. (加入另一個Internal table的元素)格

21、式: APPEND LINES OF FROM TO TO .將的元素加入至中,可選取自至的范圍.APPEND LINES OF ITAB TO JTAB.COLLECT LINECOLLECT 指令也是將元素加入Internal table中,与APPEND 的區別是: COLLECT指令在非數值欄位相同的情況下,將數值欄位匯總.格式: COLLECT INTO DATA: BEGIN OF ITAB OCCURS 3,COL1(3) TYPE C,COL2 TYPE I,END OF ITAB.ITAB-COL1 = ABC. ITAB-COL2 = 10.COLLECT ITAB.ITA

22、B-COL1 = XYZ. ITAB-COL2 = 20.COLLECT ITAB.ITAB-COL1 = ABC. ITAB-COL2 = 80.COLLECT ITAB.此時, internal table中放的是2筆數据, 分別為:ITAB-COL1 ITAB-COL2ABC 90XYZ 20*-*INSERT LINE將元素插入在指定的internal table位置之前.格式: INSERT INTO INITIAL LINE INTO INDEX 或者: INSERT LINES OF FROM TO INTO INDEX 其中: 即work area,工作區中的元素.INITIA

23、L LINE INTO :插入一筆初始化的記錄.: internal tableINDEX : internal table 的記錄號.(新加入的元素放在此記錄前面)Example:DATA: BEGIN OF LINE,COL1 TYPE I,COL2 TYPE I,END OF LINE.DATA ITAB LIKE LINE OCCURS 10.DO 3 TIMES.LINE-COL1 = SY-INDEX *10.LINE-COL2 = SY-INDEX *20.APPEND LINE INTO ITAB.ENDDO.LINE-COL1=100.LINE-COL2=200.INSERT

24、 LINE INTO ITAB INDEX 2. 插入在位置2之前LOOP AT ITAB INTO LINE.WRITE: / SY-TABIX,LINE-COL1,LINE-COL2. SY-TABIX為Table位置ENDLOOP. 執行結果:1 10 202 100 200 插入的元素3 20 404 30 60插入另一Internal Table元素語法:INSERT LINES OF FROM TO TO INDEX 將的元素插入至中, 位置在 之前, 可選取自至的範圍Example:APPEND LINES OF ITAB TO JTAB INDEX 3.將ITAB所有元素插入J

25、TAB中, 位置在第三個元素之前*-*讀取internal table格式一: LOOP AT INTO FROM TO WHERE ENDLOOP.Example:LOOP AT ITAB INTO LINE WHERE COL1 100.WRITE: / SY-TABIX,LINE-COL1.ENDLOOP.僅讀取 COL1 100 的元素格式二:READ TABLE INTO INDEX / WITH KEY 舉例. (格式二)DATA: BEGIN OF ITAB OCCURS 10,COL1 TYPE I,COL2 TYPE I,END OF ITAB.DO 10 TIMES.ITA

26、B-COL1 = SY-INDEX.ITAB-COL2 = SY-INDEX * 2.APPEND ITAB.ENDDO.READ TABLE ITAB INDEX 3.(或者: READ TABLE ITAB WITH KEY COL1 = 3.)WRITE: / ITAB-COL1 = , ITAB-COL1, ITAB-COL2 = , ITAB-COL2.執行結果同樣是: ITAB-COL1 = 3ITAB-COL2 = 6.Example:READ TABLE ITAB INTO LINE INDEX 5讀取 ITAB的第5個元素資料, 放入 LINE的欄位中根據欄位內容尋找語法:R

27、EAD TABLE INTO Example:ITAB-COL1 = ABC.READ TABLE ITAB INTO LINE.找出ITAB 中 COL1 欄位內容是 ABC 的元素, 找到的值放入 LINE 中若找到 SY-SUBRC傳回0, 找不到則傳回 4, 必須宣告有 work area*-*修改internal table 中的值格式: MODIFY FROM INDEX TRANSPORTING WHERE 舉例一. READ TABLE ITAB INDEX 3.LINE-COL1 = 29.MODIFY ITAB FROM LINE TRANSPORTING COL1.將第三

28、筆記錄的COL1欄位的值修改為29.舉例二. T_SALARY - salary = 50.MODIFY T_SALARY TRANSPORTING salary WHERE birthday = 1999/12/06.DELETE internal table中的欄位格式: DELETE INDEX .或: DELETE FROM TO WHERE Internal table 排序 SORT BY 其中: 有DESCENDING 和ASCENDING, Default 為ASCENDING.: 為指定排序的欄位.Example: SORT ITAB DESCENDING BY COL2.將

29、 ITAB 根據 COL2欄位遞減排序*-*确定内表属 性如果在处理 过程中想知 道内表一共 包含多少行 ,或者想知 道定义的 OCCURS 参数的大小 ,请使用 DESCRIBE 语句,用法 如下:语法DESCRIBE TABLE LINES OCCURS .如果使用 LINES 参数,则将 填充行的数 量写入变量 。 如果使用 OCCURS 参数,则将 行的初始号 写入变量 。DATA: BEGIN OF LINE,COL1 TYPE I,COL2 TYPE I,END OF LINE.DATA ITAB LIKE LINE OCCURS 10.DATA: LIN TYPE I, OCC

30、TYPE I.DESCRIBE TABLE ITAB LINES LIN OCCURS OCC.WRITE: / LIN, OCC.DO 1000 TIMES.LINE-COL1 = SY-INDEX.LINE-COL2 = SY-INDEX * 2.APPEND LINE TO ITAB.ENDDO.DESCRIBE TABLE ITAB LINES LIN OCCURS OCC.WRITE: / LIN, OCC.其输出为:0 101.000 10在此创建内 表 ITAB。 在填充表格 前后执行 DESCRIBE 语句。更改 当前行号, 但无法更改 初始行号。*-*加總SUM.總和計算存放

31、与work area中,但只能在LOOP 中使用.例: LOOP AT ITAB INTO LINE.SUM.ENDLOOP.WRITE: / LINE-COL1, LINE-COL2.LINE-COL1 和 LINE-COL2 存數值總和初始化internal tableREFRESH . 清空中的值.使用在沒有 HEADER LINE 的 Internal Table中, 清除所有元素CLEAR . 清空的Header Line.使用在有 HEADER LINE 的 Internal Table中, 清除所有元素FREE . 釋放記憶体空間.釋放(Release) Internal Tab

32、le所佔的記憶體空間, 用在 REFRESH和 CLEAR指令之後将值重置为 默认值可以用 CLEAR 语句重置任 何数据对象 值,如下所 示:语法CLEAR .exp:DATA NUMBER TYPE I VALUE 10.WRITE NUMBER.CLEAR NUMBER.WRITE / NUMBER.输出为:100CLEAR 语句将字段 NUMBER 的内容从10 重置为默认 值 0。*-*添加字段 顺序并将结 果赋给另一 个字段语法ADD THEN UNTIL GIVING .如果 、 、 . 、 是在内存中 相同类型和 长度的等距 字段序列, 则进行求和 计算并将结 果赋给 添加字段

33、 顺序并将结 果添加到另 一个字段的 内容中语法ADD THEN UNTIL TO .该语句除了 将字段总和 添加到 的旧内容中 之外,与上 面语句的工 作方式相同 。有关其它相 似变体的信 息,参见有 关 ADD 语句的关键 字文档。DATA: BEGIN OF SERIES,N1 TYPE I VALUE 10,N2 TYPE I VALUE 20,N3 TYPE I VALUE 30,N4 TYPE I VALUE 40,N5 TYPE I VALUE 50,N6 TYPE I VALUE 60,END OF SERIES.DATA SUM TYPE I.ADD SERIES-N1 TH

34、EN SERIES-N2 UNTIL SERIES-N5 GIVING SUM.WRITE SUM.ADD SERIES-N2 THEN SERIES-N3 UNTIL SERIES-N6 TO SUM.WRITE / SUM.输出如下:150350在此,将 N1 到 N5 组件内容求 和并将其值 赋给字段 SUM。然 后,将 N2 到 N6组件求 和并将其添 加到 SUM 的值中。*-*屏幕輸入命令在ABAP/4中要從螢幕輸入變量, 使用的命令是 PARAMETERS 及SELECTION-OPTIONS: 1. PARAMETER: 輸入一個變量或欄位內容2. SELECTION-OPTI

35、ONS: 使用條件篩選畫面來輸入數据 PARAMETERS 指令基本的輸入命令, 類似如BASIC的INPUT命令, 但無法使用F格式(浮點數)語法:PARAMETERS DEFAULT LOWER CASEOBLIGATORY AS CHECKBOXRADIOBUTTON GROUP Example:PARAMETERS: NAME(8),AGE TYPE I,BIRTH TYPE D.執行結果: 在日期的輸入格式上為 MM/DD/YY , MM/DD/YYYY, MMDDYY或MMDDYYYY , 如輸入 020165表 1965年02月01日, 與02/01/65的輸入是一樣的, 日期輸

36、入範圍為西元1950年至2049年1. DEFAULT 設定輸入的預設值Example:PARAMETERS: COMPANY(20) DEFAULT DELTA,BIRTH TYPE D DEFAULT 19650201.2. LOWER CASEABAP/4預設是將字串輸入值自動轉換為大寫, 加上此參數會將輸入的資料轉成小寫, 3. OBLIGATORY強制要求輸入, 螢幕上會出現一個 ? , 使用者必須要輸入才可.4. AS CHECKBOX輸入 CHECKBOX的格式Example:PARAMETERS: TAX AS CHECKBOX DEFAULT X,NTD AS CHECKBO

37、X.執行結果:5. RADIOBUTTON GROUP 輸入 RADIO BUTTON GROUP 的方式Example:PARAMETERS: BOY RADIOBUTTON GROUP SEX DEFAULT X, GIRL RADIOBUTTON GROUP SEX.exp :TABLES SPLFI.PARAMETERS: LOW LIKE SPFLI-CARRID, HIGH LIKE SPFLI-CARRID.SELECT * FROM SPLFI WHERE CARRID BETWEEN LOW AND HIGH.ENDSELECT.*-*SELECTION-OPTIONSSEL

38、ECTION-OPTIONS所輸入的值實際上是放在internal table中的,該Internal table 有四個欄位,分別是:SIGN,OPTION,LOW,HIGH. 條件篩選檢查條件輸入畫面指令, 輸入條件後可配合SELECT指令自TABLE讀取符合條件的資料, 直接執行或放入 Internal Table中, 條件有四個參數:1. SIGN: I: 表篩選條件符合的資料E: 表篩選條件不符合的資料2. OPTION: 比較的條件符號EQ(等於),NE(不等於),GT(大於),LE(小於),CP(包含),NP(不包含)3. LOW: 最小值4. HIGH: 最大值語法:SELECTION-OPTIONS check-opt

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 工作报告

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁