SAP必备基础语法.docx_第1页
SAP必备基础语法.docx_第2页
SAP必备基础语法.docx_第3页
SAP必备基础语法.docx_第4页
SAP必备基础语法.docx_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

ABAP基础知识数据类型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 : 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 : 系統執行某指令后,表示執行成功与否的變數,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 敘述用來指定資料型態或宣告自定資料型態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.二. 指定屏幕輸出位置指定輸出位置的語句格式為:WRITE: AT / () 資料項 其中: / : 在下一行輸出: 指定輸出的行號;():指定輸出位數(長度): 指定顯示格式參數,參數有:LEFT-JUSTIFIED 資料*左對齊CENTERED 資料*中間對齊RIGHT-JUSTIFIED 資料*右對齊UNDER 正對在資料項的下面顯示NO-GAP 緊接著顯示,不留空格USING EDIT MASK : 使用內嵌子元顯示, 如 12:03:20USING NO EDIT MASK: 不使用內嵌子元NO-ZER 數字前面 0 的部分不顯示NO-SIGN: 不顯示正負號DECIMALS : 顯示 位小數EXPOENT : F(浮點數)指數的值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 $_,_.WRITE: / 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 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: COUNTER TYPE I.COMPUTE COUNTER = COUNTER + 1.COUNTER = COUNTER + 1.ADD 1 TO COUNTER.在此,三条 运算语句进 行相同算术 运算输出屏幕上 的线和空行用下列语法 ,可以在输 出屏幕上生 成水平线:语法ULINE AT /().它等同于WRITE AT /() SY-ULINE.AT 后的格式规 范,与在 在屏幕上定 位 WRITE 输出 (页 28) 中为 WRITE 语句说明的 格式规范完 全一样。如果没有格 式规范,系 统则开始新 的一行,并 用水平线填 充该行。否 则,只按指 定输出水平 线。生成水平线 的另一种方 法,是在 WRITE 语句中键入 恰当数量的 连字符,如 下所示:WRITE AT /() -.垂直线用下列语法 ,可以在输 出屏幕上生 成垂直线:语法WRITE AT / SY-VLINE.或WRITE AT / |.空行用下列语法 ,可以在输 出屏幕上生 成空行:语法SKIP .该语句从当 前行开始, 在输出屏幕 上生成 个空行。如 果没有指定 的值,就输 出一个空行 。要将输出定 位在屏幕的 指定行上, 请使用:语法SKIP TO LINE .该语句允许 将输出位置 向上或向下 移动。2.使用條件式語法:UPDATE SET = WHERE 根據條件式異動符合條件式的記錄Example:UPDATE SPFLI SET NO=34051920COMPANY = DELTAWHERE TEL=4526107.*-*3. MODIFY 語法MODIFY FROM .根據 Primary Key 尋找資料檔中符合的記錄, 若找到則更新異動, 若找不到則新增記錄語法:MODIFY FROM Example:WA-NO=34051920.WA-COMPANY=DELTA.MODIFY SPFLI FROM WA.4. DELETE 語法DELETE FROM .或: DELETE WHERE 刪除資料檔的記錄1.使用 Primary Key語法: DELETE FROM Example:TABLES SPFLI.DATA WA LIKE SPFLI.WA-NO=34051920.WA-COMPANY=DELTA.DELETE SPFLI FROM WA.如 SPFLI 的 Primary Key是 NO, 則會找到 NO=34051920的記錄, 找到後將此筆刪除 2.使用條件式語法:DELETE FROM WHERE 根據條件式刪除符合條件式的記錄Example:DELETE FROM SPFLI WHERE AREA = AMERICAN.*-*5. DATABASE CURSORDatabase Cursor是一個資料庫暫存區, 將經SELECT指令讀取的記錄存放至此暫存區, 再由此暫存區放至Work Area中, 可減少資料庫讀取的次數.1.開啟 Database Cursor語法:OPEN CURSOR FOR SELECT WHERE Example:TABLES SPFLI.DATA: WA LIKE SPFLI,C1 TYPE CURSOR.OPEN CURSOR C1 FOR SELECT * FROM SPFLI WHERE AREA =TAIWAN.2.讀取 Database Cursor的資料存入 Work Area語法:FETCH NEXT CURSOR INTO Example:FETCH NEXT CURSOR C1 INTO WA.讀取下一筆Cursor位置的資料存入WA, 如果已無資料可讀, SY-SUBRC 0. 關閉 Database Cursor語法:CLOSE CURSOR Example:CLOSE CURSOR C1.*-*COMMIT WORK & ROLLBACK WORK要確定資料成功寫入資料庫,可使用COMMIT WORK指令,如: COMMIT WORK.相反的, 如果反悔要復原, 可使用 ROLLBACK WORK, 可復原在上個COMMIT WORK指令之後的資料, 如:ROLLBACK WORK.*-*使用NATIVE SQL指令語法格式:EXEC SQL PERFORMING 窗体顶端.ENDEXEC.舉例一.EXEC SQL.CREATE TABLE AVERI_CLNT (CLIENT CHAR(3) NOT NULL,ARG1 CHAR(3) NOT NULL,ARG2 CHAR(3) NOT NULL,FUNCTION CHAR(10) NOT NULL,PRIMARY KEY (CLIENT, ARG1, ARG2)ENDEXEC.舉例二.DATA: F1(3), F2(3), F3(3).F3 = 1 EXEC SQL.SELECT CLIENT, ARG1 INTO :F1, :F2 FROM AVERI_CLNTWHERE ARG2 = :F3ENDEXECPERFORMING 的使用:如果NATIVE SQL的SELECT命令執行結果是抓到多筆記錄,我們想要逐筆記錄處理時,就用PERFORMING 參數,這個FORM能被逐次調用.如果想中止調用,就用EXIT FORM SQL結束調用.例如:DATA: F1(3), F2(3), F3(3).F3 = 010EXEC SQL PERFORMING WRITE_AVERI_CLNT.SELECT CLIENT, ARG1 INTO :F1, :F2 FROM AVERI_CLNTWHERE ARG2 = :F3ENDEXEC.FORM WRITE_AVERI_CLNT.WRITE: / F1, F2.ENDFORM.DATA: BEGIN OF WA,NAME(8),AGE TYPE I,END OF WA.DATA F1 TYPE I.FI = 20.EXEC SQL PERFORMING OUTPUT.SELECT NAME,AGE INTO :WA FROM NAME_TABLE WHERE AGE = :F1.ENDEXEC.FORM OUTPUT.WRITE: / WA-NAME,WA-AGE.ENDFORM.注意:a. NATIVE SQL把TABLE中的MANDT(client)欄位當作一般欄位使用,所以在抓取資料時必須指定特定的Client;b. NATIVE SQL中的SELECT語句沒有CHECK權限的功能;c. 在登入SAP R/3系統時,我們已經自動与Database連接,所以在執行NATIVESQL時并不需要CONNECT語句;d. 一條NATIVE SQL語句可以以分號;結束,一般情況下是以句號.結束.e. 某些數据庫系統對TABLE名字和FIELD名字有大小寫區別,要正确書寫.f. 在NATIVE SQL中,雙引號不表示注釋.*-*结果语句條件述敘1. IF 述敘語法:IF .ELSEIF .ELSEIF .ELSE.ENDIF.(1).在每個判斷敘述之後要加上 .(2).在巢狀迥圈之中無法使用 ELSE 敘述, ELSE 敘述屬 IF 敘述Example:IF 3 8.WRITE / 3 is less than 8.ENDIF.2. CASE 敘述語法:CASE .WHEN .WHEN .WHEN OTHERS.ENDCASE.Example:S = A. CASE S.WHEN X.WRITE / String is X.WHEN OTHERS.WRITE / String is not X.ENDCASE.迥圈敘述1.計次迥圈語法:DO n TIMES VARYING FROM TO .ENDDO.Example:DO 2 TIMES.WRITE / X.ENDDO.執行結果:XXDO VARYING I FROM1 TO 10.S = S + I.ENDDO.WRITE: / ,1+2+3+10=,S執行結果: 1+2+3+10=552.條件迥圈語法:WHILE .ENDWHILEExample:I = 1.S=0.WHILE I = 10.S = S+I.I=I+1.ENDWHILE.WRITE: / 1+2+3+10=,S.執行結果為: 1+2+3+10=55迥圈控制敘述1. CONTINUE跳至迥圈的下一次Example:DO 3 TIMES.IF SY-INDEX = 2.CONTINUE.WRITE / SY-INDEX.ENDDO.執行結果: 132. CHECK CHECK 之後條件成立才繼續往下執行迥圈Example:DO 5 TIMES.CHECK SY-INDEX BETWEEN 2 AND 4.WRITE / SY-INDEX.ENDDO.執行結果:2343. EXIT跳離迥圈敘述Example:DO 10 TIMES.IF SY-INDEX = 4.EXIT.ENDIFWRITE / SY-INDEX.ENDDO.執行結果:123無窮迥圈DO .ENDDO.無窮迥圈必須配合 EXIT 敘述來執行*-*搜索字符串要搜索特定 模式的字符 串,请使用 SEARCH 语句,用法 如下:语法SEARCH FOR .该语句在字 段 中搜索 中的字符串 。如果成功 ,则将 SY-SUBRC 的返回代码 值设置为0并 将 SY-FDPOS 设置为字段 中该字符串 的偏移量。 否则将 SY-SUBRC 设置为4。搜索串 可为下列格 式之一:目 的搜 索 ( 任何字符顺 序)。忽略 尾部空格。. 搜 索 ,但是不忽 略尾部空格 。* 搜 索以 结尾的词。* 搜 索以 开始的词。单词之间用 空格、逗号 、句号、分 号、冒号、 问号、叹号 、括号、斜 杠、加号和 等号等分隔 。DATA STRING(30) VALUE This is a little sentence.WRITE: / Searched, SY-SUBRC, SY-FDPOS.ULINE /1(26).SEARCH STRING FOR X.WRITE: / X, SY-SUBRC UNDER SY-SUBRC,SY-FDPOS UNDER SY-FDPOS SEARCH STRING FOR itt .WRITE: / itt , SY-SUBRC UNDER SY-SUBRC,SY-FDPOS UNDER SY-FDPOS SEARCH STRING FOR .e .WRITE: / .e ., SY-SUBRC UNDER SY-SUBRC,SY-FDPOS UNDER SY-FDPOS.SEARCH STRING FOR *e.WRITE: / *e , SY-SUBRC UNDER SY-SUBRC,SY-FDPOS UNDER SY-FDPOS.SEARCH STRING FOR s*.WRITE: / s* , SY-SUBRC UNDER SY-SUBRC,SY-FDPOS UNDER SY-FDPOS.该过程的输 出如下:SEARCHED SY-SUBRC SY-FDPOSX 4 0itt 0 11.e . 0 15*e 0 10s* 0 17搜索字符字 段 的各种选项 () 如下ABBREVIATED在字段 中搜索包含 中指定字符 串的单词, 其中字符可 能被其它字 符隔开。单 词和字符串 的第一个字 母必须相同 。STARTING AT 在字段 中搜索从 开始的 。结果 SY-FDPOS 参照相对于 的偏移量而 不是字段的 开始。ENDING AT 在字段 搜索 直到位置 。AND MARK如果找到搜 索串,则将 搜索串中的 所有字符( 和使用 ABBREVIATED 时的所有字 符)转换为 大写形式。DATA: STRING(30) VALUE This is a fast first example.,POS TYPE I,OFF TYPE I.WRITE / STRING.SEARCH STRING FOR ft ABBREVIATED.WRITE: / SY-FDPOS:, SY-FDPOS.POS = SY-FDPOS + 2.SEARCH STRING FOR ft ABBREVIATED STARTING AT POS AND MARK.WRITE / STRING.WRITE: / SY-FDPOS:, SY-FDPOS.OFF = POS + SY-FDPOS -1.WRITE: / Off:, OFF.该过程的输 出如下:This is a fast first example.SY-FDPOS: 10This is a fast FIRST example.SY-FDPOS: 4Off: 15请注意,在 找到单词 fast 之后,为了 查找包含 ft的第 二个单词, 必须在偏移 量 SY-FDPOS 上加2,然 后从位置 POS 开始查找。 否则,会再 次找到单词 fast 。要获得 first 相对于字段 STRING 开始的偏移 量,从 POS 和 SY-FDPOS 计算。获得字符串 长度要决定字符 串到最后一 个字符而不 是 SPACE 的长度,请 使用内部函 数 STRLEN, 用法如下:语法COMPUTE = STRLEN( ).STRLEN 将操作数 作为字符数 据类型处理 ,而不考虑 其实际类型 。不进行转 换。关键字 COMPUTE 可选。有关 内部函数的 详细信息, 参见 使用数学函 数 (页 49) 。DATA: INT TYPE I,WORD1(20) VALUE 12345. WORD2(20).WORD3(20) VALUE 4 . INT = STRLEN( WORD1 ). WRITE INT.INT = STRLEN( WORD2 ). WRITE / INT.INT = STRLEN( WORD3 ). WRITE / INT.结果分别是 5,0 和 4。*-*Standard Report 一個典型的報表程式是由許多的程式區塊(Code Block)所組成,在區塊間最好能加上一些說明以利程式可讀性,一個典型的報表程式格式如下:* PROGRAM SOURCE HEADER : 說明程式名稱及目的* Program Name: * Description:* Date/Author: * Table Update:* Special Logic:* Include:*-* MODIFICATION LOG : 程式修改更新記錄 *-* ChangeDate Programmer Request Description*-* NEW PROGRAM*-* REPORT NAME : 宣告程式名稱及報表格式, *-*REPORT Z_NO STANDARD PAGE HEADINGMESSAGE-ID _ 所使用的MESSAGELINE-COUNT _ 每頁報表列數LINE-SIZE _. 每頁報表寬度* TABLE DESCRIPTION : 宣告程式會使用的TABLE*-*TABLES: * DATA : 宣告程式所使用的變數及自定型態*-*TYPES:DATA: * SELECTION SCREEN / OPTION / PARAMETER : 螢幕輸入報表篩選條件*-*SELECTION-SCREEN BEGIN OF BLOCK _SELECT-OPTIONS: SELECTION-SCREEN END OF BLOCK _* INITIALIZATION : 啟動程式開始執行, 如SELECT-OPTION及PARAMETER*-*INITIALIZATION.INCLUDE _.* AT START SELECTION : 輸入結束後啟動的區塊, 如按下*-*START-OF-SELECTION.SET PF-STATUS _. 指定報表執行時所用的 GUI-STATUS名稱PERFORM READ_DATA.PERFORM PROCESS_DATA.PERFORM PRINT_DATA.PERFORM PRINT_SUMMARY.* AT USER Commaand : 執行在GUI-STATUS中自定的命令*-*AT USER_COMMAND.* AT LINE SELECTION : 由在報表中按下或Double-Click啟動*-*AT LINE-SELECTION.* TOP OF PGAE : 每頁開始列印時執行, 用於定義報表表頭*-* END OF PAGE : 報表列印完最後一頁後啟動 *-*END-OF-PAGE * END OF SELECTION : 在結束列印資料後啟動, 如可用來印出USER輸入的條件*-*END-OF-SELECTION.INCLUDE _* FORM : 撰寫程式中所使用到的副程式*-* Read Data : 自TABLE讀取資料放入Internal Table*-*FORM READ_DATA.SELECT * FROM _INTO _WHERE _.IF SY-SUBRC = 0.ENDIF.APPEND _. 增加Internal Table元素ENDSELECT.ENDFORM.* Process Data : 處理Internal Table的資料, 如排序及彙總*-*FORM PROCESS_DATA.ENDFORM.* Print Data : 依序輸出 Internal Table的資料*-*FORM PRINT_DATA.ENDFORM.* Print Summary : 印出數值資料加總*-*FORM PRINT_SUMMARY.ENDFORM.* Include Program : 列出所含入的其它程式source code, 如副程式*-*INCLUDE _INCLUDE _ *-*REPORT rep. Additions: 1. . NO STANDARD PAGE HEADING 2. . LINE-SIZE col 3. . LINE-COUNT n(m)表单输出每页由n行,其中的m行作为页脚; 4. . MESSAGE-ID mid 消息对象5. . DEFINING DATABASE ldb 使用逻辑数据库,自动产生*事件块INITIALIZATIONAT SELECTION-SCREENSTART-OF-SELECTIONGETEND-OF-SELECTIONTOP-OF-PAGEEND-OF-PAGE*事件块的简单处理过程:*ABAP程序运行的时候,INITIALIZATION首先被调用;经过初始化的输入屏幕会显示在表示服务器;用户离开输入屏幕的时候,START-OF-SELCTION事件会被自动调用;结果数据会以列表的形式显示在第二个屏幕上;*源代码中的事件块顺序不影响它们的执行顺序*事件块编码规则(1)INITIALIZATION通常在此事件块中设定输入屏幕字段的初始值*事件块编码规则(2)AT SELECTION-SCREEN通常在此事件块中进行用户输入数据的合法性检查,发现错误则以消息的形式给出警示,直到用户输入正确的数值例如: AT SELECTION-SCREEN .IF P_DATE = SPACE .MESSAGE E001 .ENDIF.效果: 如果字段P_DATE为空,则程序会用消息001“日期字段不能为空!”来提示用户必须输入一个日期。而且输入屏幕会等待用户输入,知道该字段数值合法*事件块编码规则(3)START-OF-SELCTION通常在此事件中针对业务需求进行系统数据的查询例如:start-of-selection .perform get_data_for_oil .效果:在输入屏幕用户按下执行按钮后,子程序get_data_for_oil被执行, 在其中获得业务相关的数据存放到内表或者其它变量,这些数据在END-OF-SELECTION事件块中被输出*事件块编码规则(4)END-OF-SELCTION通常在此事件中进行结果清单的输出例如:end-of-selection .write : 23(1) sy-vline,24(20) tab-gas_plan right-justified ,效果:数据以清单的形式输出*事件块编码规则(5)GET从逻辑数据库中得到数据(较少用)TOP-OF-PAGE在此事件块中设计输出清单的页头TOP-OF-PAGEwrite : /1(240) 汽柴油日出厂情况表 centered .write : /20(8) 日期: ,29(10) s_date ,180(6) 单位: ,190(10) 吨 .*事件块编码规则(6)END-OF-PAGE在此事件中设定输出清单的页脚例如:END-OF-PAGE .Write : 制作人 , p_name .*-*比较所有的 字段类型要比较所有 的字段类型 ,可以在逻 辑表达式中 使用下列运 算符: 含 义EQ 等于= 等于NE 不 等于 不 等于 不 等于LT 小 于 小于LE 小 于等于 大于GE 大 于等于= 大 于等于窗体底端四. 顯示圖示:語法: WRITE: AS SYMBOL.WRITE: AS ICON.例如: 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,它可以由几個不同類型的欄位(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 .格式三. 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 DEEPTABLE 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 LIKE 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 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。 在这种情况 下,表格工作区域包含 一种类型 I 字段,可以 通过名称 VECTOR 定位。DATA VECTOR TYPE I OCCURS 10 WITH HEADER LINE.在这种情况 下,通过直 接在 DATA 语句中使用 OCCURS 选项创建完 全一样的数 据类型 VECTOR。*-*1. TYPES type. 2. TYPES type(len).3. TYP

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论