abap基本语法汇总(汇编)
ABAP基本语法

*简单内表操作
• • • • • • • • • • DATA: BEGIN OF line, "work area num TYPE i, sqr TYPE i, END OF line, "internal itab LIKE STANDARD TABLE OF line WITH KEY table_line. DO 5 TIMES . line-num = sy-index. line-sqr = sy-index ** 2. APPEND line TO itab.
语法概述
• • • • • • • ABAP基本语法特点 由各自独立的语句构成。 每个语句的第一个单词必须是ABAP关键字。 单词之间至少要用一个空格分隔。 每个语句结束必须要用句号。 支持分块缩进,便于阅读。 一个语句可以跨多个行,只要不遇到句号,就 认为是一个延续的语句。 • 可以把多个语句放在一行。
基本数据操作
包括:赋值,计算,输出 • 数据赋值用 move 和 = 两个等价 • clear数据还原 • describe语句得到这些属性长度 • data: source type i value 123,destination type i. • move source to destination. • write destination. 结构体的赋值 • 两个相同的结构体数据进行赋值操作 • move-corresponding source_struct to destination_struct. 算数运算+ ,—,*,/整除,取余,乘方 compute 计算 是abap中的关键字 • add y to x. • subtract y from x. • multiply x by y. • divide x by y.
ABAP语法完整版

SAP ABAP / 4 基础知识学习数据类型C :字符串D :日期型格式为YYYYMMDD 例:'1999/12/03'F : 浮点数长度为8I :整数N :数值组成的字符串如:011,'302'P : PACKED数用于小数点数值如:12.00542T : 时间格式为:HHMMSS 如:'14:03:00'X : 16进制数如:'1A03'*-------------------------------------------------------------------------------------* 变量声明DATA <F> [<Length>] <type> [<value>][decimals]<F> 变量名称<length><type> 变量类型及长度<value> 初值<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 <c> [<length>] <type> [<value>] [<decimals>]系统专用变量说明系统内部专门创建了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关键字则是用在指定资料型态。
一些ABAP编程的知识点整理

一些ABAP编程的知识点整理【设置SAP打印机SET_PRINT_PARAMETERS】根据画面输入的打印机名称,在打印窗口弹出后,把打印设备自动设置为打印机名称参数对应的打印设备*&---------------------------------------------------------------------**& Form FRM_SET_PRINT_PARAMETERS*&---------------------------------------------------------------------** 報嶞偺僷儔儊乕僞偺愝掕*----------------------------------------------------------------------*FORM. FRM_SET_PRINT_PARAMETERS.DATA: LC_PDEST TYPE PRI_PARAMS-PDEST,LSTR_TSP03L TYPE TSP03L.* 在TSP03L设备表中找到打印机名称画面参数P_PRTID对应的打印设备PADEST* SELECT SINGLE ** INTO LSTR_TSP03L* FROM TSP03L* WHERE LNAME = P_PRTID.* IF SY-SUBRC EQ 0.* LC_PDEST = LSTR_TSP03L-PADEST.* ENDIF.* 把取道的打印设备PADEST设置到打印窗口项目中CALL FUNCTION 'SET_PRINT_PARAMETERS'EXPORTINGDESTINATION = LC_PDESTIMMEDIATELY = CNS_X.ENDFORM. "FRM_SET_PRINT_PARAMETERS【把内表以CSV文件格式输出】* 通过文件保存对话框得到需要保存文件的全路径LC_FULLPATH CALL METHOD CL_GUI_FRONTEND_SERVICES=>FILE_SAVE_DIALOG* EXPORTINGCHANGINGFILENAME = LC_FILENAMEPATH = LC_PATHFULLPATH = LC_FULLPATHEXCEPTIONSCNTL_ERROR = 1ERROR_NO_GUI = 2NOT_SUPPORTED_BY_GUI = 3others = 4.IF SY-SUBRC <> 0.MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNOWITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.ENDIF.IF LC_FILENAME IS NOT INITIAL.* 这个function是关键所在,可以把一个内表的一行的所有字段用‘;’分割,然后整合成一个string放到目标内表中LITAB_CON_LIST3CALL FUNCTION 'SAP_CONVERT_TO_CSV_FORMAT'EXPORTINGI_FIELD_SEPERATOR = CNS_COMMATABLESI_TAB_SAP_DATA = GITAB_LIST3CHANGINGI_TAB_CONVERTED_DATA = LITAB_CON_LIST3EXCEPTIONSCONVERSION_FAILED = 1OTHERS = 2.IF SY-SUBRC <> 0.MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNOWITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.ENDIF.* 可在此目标内表的头部加上必要的headerCONCATENATE TEXT-009 "姩掕壢栚TEXT-010 "姩掕壢栚柤TEXT-011 "婡擻椞堟柤TEXT-012 "慜寧孞墇TEXT-013 "庁曽嬥妟TEXT-014 "戄曽嬥妟TEXT-015 "梻寧孞墇INTO LC_HEADERSEPARATED BY CNS_COMMA.INSERT LC_HEADER INTO LITAB_CON_LIST3 INDEX 1.* 拿到全路径之后,直接download就okCALL FUNCTION 'GUI_DOWNLOAD'EXPORTINGFILENAME = LC_FULLPATHTABLESDATA_TAB = LITAB_CON_LIST3.ENDFORM. " FRM_FILE_DOWNLOAD【如何动态指派数字字段名assign】比如有12个字段,HSL01,HSL02,HSL03,HSL04,HSL05一直到HSL12如果我在选择画面上指定要累加04~08之间的字段,那assign就可以派上用场了由于和指针的作用类同,所以下面就叫它指针1.定义指针FIELD-SYMBOLS TYPE FAGLFLEXT-HSL01.2.使用方法:定义另一个lc_p指针数据,通过do循环的sy-index 进行一条条遍历这里比较重要的是要严格控制好选择画面上low值和high值对lc_p指针的界限DO.IF S_MONAT-HIGH IS NOT INITIAL.LC_P = S_MONAT-LOW + SY-INDEX - 1.IF LC_P > S_MONAT-HIGH.EXIT.ENDIF.ELSE.LC_P = S_MONAT-LOW.IF SY-INDEX = 2.EXIT.ENDIF.ENDIF.WRITE LC_P TO LC_NUM.PERFORM. FRM_CONVERT_ALPHA_INPUT CHANGING LC_NUM.CONCATENATE LC_NAME LC_NUM INTO LC_FIELD.ASSIGN (LC_FIELD) TO .IF LSTR_DATA3-DRCRK = CNS_S.LC_SSUM = LC_SSUM + .IF LSTR_DATA3-DRCRK = CNS_H.= * ( -1 ) .LC_HSUM = LC_HSUM + .ENDIF.CLEAR LC_FIELD.ENDDO.【range table 的最新定义方法】跟旧版本的ECC的range定义方法不同,现在改用如下的定义方法:R_RACCT2 TYPE RANGE OF CHAR2,R_RACCT3 TYPE RANGE OF CHAR3,R_RACCT31 TYPE RANGE OF CHAR3,LSTR_RACCT2 LIKE LINE OF R_RACCT2,LSTR_RACCT3 LIKE LINE OF R_RACCT3,LSTR_RACCT31 LIKE LINE OF R_RACCT31.* 儗儞僕42乣49LSTR_RACCT2-SIGN = CNS_I.LSTR_RACCT2-OPTION = CNS_BT.LSTR_RACCT2-LOW = CNS_42.LSTR_RACCT2-HIGH = CNS_49.APPEND LSTR_RACCT2 TO R_RACCT2.* 儗儞僕000乣512LSTR_RACCT3-SIGN = CNS_I.LSTR_RACCT3-OPTION = CNS_BT.LSTR_RACCT3-LOW = CNS_000.LSTR_RACCT3-HIGH = CNS_512.APPEND LSTR_RACCT3 TO R_RACCT3.* 儗儞僕522乣999LSTR_RACCT31-SIGN = CNS_I.LSTR_RACCT31-OPTION = CNS_BT.LSTR_RACCT31-LOW = CNS_522.LSTR_RACCT31-HIGH = CNS_999.APPEND LSTR_RACCT31 TO R_RACCT31.【如何在标准一览画面上加上自己的系统按钮】可以在top-of-page或者start-of-selection事件中定义:SET PF-STATUS 'ZS01'.这里的'ZS01'是自己定义的,双击它进去后就别有洞天了,可以自己定义系统按钮已经各种快捷键如果要选择标准的一览出力画面,首先进入菜单:補足->テンプレート调整在弹出的窗口中选择“一览ステータス”基本的关于一览的系统按钮都有了然后自己添加需要的按钮,在GUI模块中,找一个空白的输入框中输入该按钮的parameter ID,这个ID是在程序中用到的。
SAP ABAP基本语法介绍

C :字符串类型,定义变量时指定字符个数 N :数字字符串类型,定义变量时指定数值字符个数 X :字节序列类型,定义变量时指定字节数 P :组合数值类型,定义变量时指定长度和小数点后位数
9
数据类型:本地数据类型 可以使用这些基本类型来定义更完整和更复杂的本地数据 类型,但是它们只能作为当前程序的增强,这些定义可以 用TYPES 语句来实现。
22
OPEN SQL 它数据库无关并且保证了程序与数据库引擎无关
使用Open SQL 可以在不同的数据库系统上兼容或者可以更换不同 的数据库系统
完全集成在工作台中,并且提供了对SQL 语句的语法检 查 还允许R/3 系统使用数据缓冲区
23
OPEN SQL的目标数量及返回码 所有Open SQL 命令都提供了关于数据库操作执行成功还 是失败的返回消息。这个消息传输一个返回码给系统字段 sy-subrc。返回码‘0’ 通常意味着操作成功完成。所有其他 值意味着发生了错误。 系统字段sy-dbcnt 显示了刚才的数据库操作实际执行所影 响的记录数量。
哈希表
利用主键的哈希排序对数据记录进行快速访问,哈希表需要唯一主 键,而且只能使用键访问。如果内表非常大 而且希望用主键访问, 就用哈希表
20
创建内表
创建内表时,可以决定是想先用TYPES 语句创建内表数 据类型 ,然后再根据类型创建对应的数据对象(内表), 还可以直接使用 DATA 语句创建内表数据对象 。既可以 创建带表头行的内表数据对象,又可创建不带表头行的内 表数据对象。
操作内表22需要一个与内表行结构相同的工作区来处理内表append处理单条记录相同往内表的最后追加一条记录只能用于标准表insert向内表插入一条记录read把表的指定行拷贝到结构中loop遍历内表modify使用结构的内容重写表的指定行e删除表的指定行collect把结构中的内容累加到内表具有相同键的行上只有非键字段才执行累加并且只有非键字段都是数值的时候才能执行这个语句opensql23它数据库无关并且保证了程序与数据库引擎无关使用opensql可以在不同的数据库系统上兼容或者可以更换不同的数据库系统完全集成在工作台中并且提供了对sql语句的语法检还允许r3系统使用数据缓冲区opensql的目标数量及返回码24所有opensql命令都提供了关于数据库操作执行成功还是失败的返回消息
abap基本语法汇总

一数据类型和对象在ABAP中,可以使用与标准数据声明相似的语法处理数据类型,而与数据对象无关。
在程序中必须声明要使用的全部数据对象。
声明过程中,必须给数据对象分配属性,其中最重要的属性就是数据类型。
对算术运算的非整型结果(如分数)进行四舍五入,而不是截断。
类型 P 数据允许在小数点后有数字。
有效大小可以是从 1 到 16 字节的任何值。
将两个十进制数字压缩到一个字节,而最后一个字节包含一个数字和符号。
在小数点后最多允许 14 个数字。
1.3 确定数据对象的属性如果要查明数据对象的数据类型,或者要在程序的运行期间使用其属性,可使用DESCRI BE 语句。
语法如下:DESCRI BE FIELD<f> [LENGTH <l>] [TYPE <t> [COMPON ENTS<n>]][OUTPUT-LENGTH <o>] [DECIMA LS <d>][EDIT MASK <m>].将由语句的参数指定的数据对象<f>的属性写入参数后的变量。
DESCRI1.3.1 确定字段长度要确定数据对象的长度,利用DESCRIBEFIELD语句使用 LENGTH参数,如下所示:DESCRI BE FIELD<f> LENGTH <l>.系统读取字段<f>的长度,并将值写入字段<l>。
1.3.2确定数据类型要确定字段的数据类型,利用DESCRIBEFIELD语句使用 TYPE 参数,如下所示:DESCRI BE FIELD<f> TYPE <t> [COMPON ENTS<n>].系统读取字段<f>的数据类型,然后将值写入字段<t>。
abap 语法手册

abap 语法手册ABAP语法手册ABAP(Advanced Business Application Programming)是一种用于SAP软件开发的编程语言。
这份手册将介绍ABAP语言的基本语法和常用用法,为开发人员提供一个参考指南。
1. 数据类型和变量声明:ABAP支持多种数据类型,例如整数(INT),浮点数(FLOAT),字符串(STRING)和日期(DATE)。
变量声明可以通过关键字DATA进行,例如:DATA: my_integer TYPE i.DATA: my_string TYPE string.2. 控制结构:ABAP支持常见的控制结构,如条件语句(IF...ELSE...ENDIF)和循环语句(DO...ENDDO,WHILE...ENDWHILE)。
例如:IF my_integer > 10.WRITE: 'The value is greater than 10'.ELSE.WRITE: 'The value is less than or equal to 10'.ENDIF.3. 函数和方法:ABAP允许定义函数和方法来实现特定的功能。
函数可以通过关键字FUNCTION和ENDFUNCTION来定义,而方法可以通过关键字METHOD和ENDMETHOD来定义。
例如:FUNCTION my_function.WRITE: 'Hello, world!'.ENDFUNCTION.4. 数据表和内表:ABAP中的数据表可以通过关键字DATA和TABLE来声明,内表可以通过关键字INTERNAL TABLE和TYPES来声明。
例如:DATA: my_table TYPE TABLE OF my_structure.DATA: my_internal_table TYPE TABLE OF my_structure.5. 数据访问:ABAP提供了方便的数据访问方法,例如通过SELECT语句从数据库中检索数据,或者通过READ TABLE语句从内表中检索数据。
ABAP基本语法

ABAP基本语法目录1.表声明12.定义变量13.常用算术操作符:14.常用比较操作:15.赋值语句26.IF语句27.CASE语句28.DO语句29.WHILE语句210.从数据库中取数据集211.取出单行记录212.WRITE语句213.ULINE语句314.SKIP语句315.定义常量316.定义结构317.TYPES语句418.LIKE语句419.输入参数520.分块语句521.定义内表522.往内表中添加记录623.用LOOP读取内表数据624.用READ读取内表数据625.把数据库的记录读入内表626.CLEAR清空表头和表记录627.DELETE删除内表记录628.REFRESH删除内表记录629.FREE删除内表记录730.在内表中插入记录731.修改内表记录732.对内表进行排序733.内表的控制语句734.循环跳转语句735.常用系统变量836.子程序的定义837.子程序的调用838.子程序的参数传递839.常用事件840.跳出事件的方法9ABAP/4:Advanced Business Application Programming1.表声明Tables: 表名[,表名]. 声明多个表时可用逗号分隔当你声明了一个数据表的同时,系统也同时自动生成了一个和数据表同名的结构,结构的变量集等于数据表里面的字段。
2.定义变量Data: v1[(l)] [type t] [decimals d] [value 'xxx'].v1 是变量名。
(l) 是变量的长度。
t 是数据类型。
d 是小数位。
'xxx'是缺省值。
如:data num(10) type p decimals 3 value '1.12'.3.常用算术操作符:5.赋值语句total = 10.mess = 'this is a test!'.如果字符串中包括 ' 号,用 '' 进行付值,如:mess = 'this is a ''test''! '.6.IF语句if i = 2.write 'i 等于 2'.[else.write 'i 不等于 2'.]endif.7.CASE语句case i. 类似于VFP中的DO CASE语句when 1. write 'i = 1'.when 2. write 'i = 2'.[when others. write 'i <> 1 and i <> 2'.]endcase.8.DO语句do [n] times. 类似于VFP中的FOR语句[执行代码]enddo.9.WHILE语句while [条件]. 类似于VFP中的DO WHILE语句[执行语句]endwhile.10.从数据库中取数据集select * from 数据表 [where 条件].[操作语句]endselect.如:select * from t000 [where mandt < 200].write: / t000-mandt,t000-mtext.endselect.11.取出单行记录select single * from 数据表 [where 条件]. 注:仅取出符合条件的第一行记录select single 字段 from 数据表 into 变量 [where 条件].12.WRITE语句write: [/][定位][数据1][,[定位] [数据2]]……[/] 为插入一行空行,注意单独write一个[/]和在其它数据之前加 [/] 的效果是不一样的,单独的write[/]在插入空行后光标定位在空行的下面,在其它数据前加[/]在插入空行后光标定位于所插的空行。
abap基本语法汇总

一数据类型与对象在ABAP中,可以使用与标准数据声明相似得语法处理数据类型,而与数据对象无关。
在程序中必须声明要使用得全部数据对象。
声明过程中,必须给数据对象分配属性,其中最重要得属性就就是数据类型。
1、1 基本数据类型对算术运算得非整型结果(如分数)进行四舍五入,而不就是截断。
类型 P 数据允许在小数点后有数字。
有效大小可以就是从 1 到 16 字节得任何值。
将两个十进制数字压缩到一个字节,而最后一个字节包含一个数字与符号。
在小数点后最多允许 14 个数字。
1、2 系统定义得数据对象1、3 确定数据对象得属性如果要查明数据对象得数据类型,或者要在程序得运行期间使用其属性,可使用DESCRIBE 语句。
语法如下:DESCRIBE FIELD <f> [LENGTH <l>] [TYPE <t> [COMPONENTS <n>]][OUTPUT-LENGTH <o>] [DECIMALS <d>][EDIT MASK <m>]、将由语句得参数指定得数据对象<f>得属性写入参数后得变量。
DESCRIBE FIELDS 语句具有下列参数:1、3、1 确定字段长度要确定数据对象得长度,利用DESCRIBE FIELD 语句使用 LENGTH 参数,如下所示:DESCRIBE FIELD <f> LENGTH <l>、系统读取字段<f>得长度,并将值写入字段<l>。
1、3、2确定数据类型要确定字段得数据类型,利用DESCRIBE FIELD 语句使用 TYPE 参数,如下所示:DESCRIBE FIELD <f> TYPE <t> [COMPONENTS <n>]、系统读取字段<f>得数据类型,然后将值写入字段<t>。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一数据类型和对象在ABAP中,可以使用与标准数据声明相似的语法处理数据类型,而与数据对象无关。
在程序中必须声明要使用的全部数据对象。
声明过程中,必须给数据对象分配属性,其中最重要的属性就是数据类型。
1.1 基本数据类型对算术运算的非整型结果(如分数)进行四舍五入,而不是截断。
类型 P 数据允许在小数点后有数字。
有效大小可以是从 1 到 16 字节的任何值。
将两个十进制数字压缩到一个字节,而最后一个字节包含一个数字和符号。
在小数点后最多允许14 个数字。
1.2 系统定义的数据对象1.3 确定数据对象的属性如果要查明数据对象的数据类型,或者要在程序的运行期间使用其属性,可使用DESCRIBE 语句。
语法如下:DESCRIBE FIELD <f> [LENGTH <l>] [TYPE <t> [COMPONENTS <n>]][OUTPUT-LENGTH <o>] [DECIMALS <d>][EDIT MASK <m>].将由语句的参数指定的数据对象<f>的属性写入参数后的变量。
DESCRIBE FIELDS 语句具有下列参数:1.3.1 确定字段长度要确定数据对象的长度,利用DESCRIBE FIELD 语句使用 LENGTH 参数,如下所示:DESCRIBE FIELD <f> LENGTH <l>.系统读取字段<f>的长度,并将值写入字段<l>。
1.3.2确定数据类型要确定字段的数据类型,利用DESCRIBE FIELD 语句使用 TYPE 参数,如下所示:DESCRIBE FIELD <f> TYPE <t> [COMPONENTS <n>].系统读取字段<f>的数据类型,然后将值写入字段<t>。
除返回预定义数据类型 C、D、F、I、N、P、T 和 X 外,该语句还返回2 s 对于带前导符号的两字节整型2 b 对于无前导符号的一字节整型2 h 对于内表2 C 对于组件中没有嵌套结构的结构2 C 对于组件中至少有一个嵌套结构的结构1.3.3确定输出长度要确定字段的输出长度,利用 DESCRIBE FIELD 语句使用 OUTPUT-LENGTH 参数,如下所示:DESCRIBE FIELD <f> OUTPUT-LENGTH <o>.系统读取字段<f>的输出长度,并将值写入字段<o>。
1.3.4确定小数位若要确定类型P字段的小数位的个数,利用 DESCRIBE FIELD语句使用 DECIMALS参数,如下所示:DESCRIBE FIELD <f> DECIMALS <d>.系统读取字段<f>的小数个数,并将值写入字段<d>。
1.3.5 确定转换例程要确定 ABAP/4 词典中某字段的转换例程是否存在,如果存在,名称是什么,利用DESCRIBE FIELD 语句使用 EDIT MASK 参数,如下所示:DESCRIBE FIELD <f> EDIT MASK <m>.如果 ABAP/4 词典中字段<f>的转换例程存在,则系统将其写入字段<m>,然后将系统字段 SY-SUBRC 中的返回代码设为 0。
可以像下面所显示的那样,在 WRITE 语句中将字段<m>直接用作格式模板:WRITE <f> USING EDIT MASK <m>.如果字段<f>没有转换例程,则系统将返回代码设为 4。
二数据输出到屏幕2.1 在屏幕上定位Write输出通过制定字段名称前面的格式规范,可以在屏幕上定位 WRITE 语句的输出:WRITE AT [/][<pos>][(<len>)] <f>.此处3 斜线‘/’表示新的一行3 <pos>是最长为三位数字的数字或变量,表示在屏幕上的位置3 <len>是最长为三位数字的数字或变量,表示输出长度如果格式规范只包含直接值(即,不是变量),可以忽略关键字 AT。
2.2 格式化选项对 WRITE 语句,可以使用不同的格式化选项。
WRITE ....<f><选项>.(1)所有数据类型的格式化选项:(2)数字字段的格式化选项:(3)日期字段的格式化选项:2.3输出符号和图标使用下列语法,可以在屏幕上输出符号和 R/3 图标:WRITE <symbol-name> AS SYMBOL.WRITE <icon-name> AS ICON.符号和图标的名称(<符号名>和<图标名>)是定义系统的常量,这些常量在包含程序<SYMBOL>和<ICON>(尖括号是名称的一部分)中指定。
这些包含程序也包含符号和图标的简短说明。
输出符号和图标最简单的方法是使用语句结构。
要使符号和图标对程序可用,必须在程序中输入恰当的包含程序或更易理解的包含程序<LIST>。
2.4 输出线和空行(1)水平线用下列语法,可以在输出屏幕上生成水平线:ULINE [AT [/][<pos>][(<len>)]].它等同于WRITE [AT [/][<pos>][(<len>)]] SY-ULINE.AT 后的格式规范,与在屏幕上定位 WRITE 输出中为 WRITE 语句说明的格式规范完全一样。
如果没有格式规范,系统则开始新的一行,并用水平线填充该行。
否则,只按指定输出水平线。
生成水平线的另一种方法,是在 WRITE 语句中键入恰当数量的连字符,如下所示:WRITE [AT [/][<pos>][(<len>)]] '-----...'.(2)垂直线用下列语法,可以在输出屏幕上生成垂直线:WRITE [AT [/][<pos>]] SY-VLINE.或WRITE [AT [/][<pos>]] '|'.(3)空行用下列语法,可以在输出屏幕上生成空行:SKIP [<n>].该语句从当前行开始,在输出屏幕上生成<n>个空行。
如果没有指定<n>的值,就输出一个空行。
(4)要将输出定位在屏幕的指定行上,使用:SKIP TO LINE <n>.该语句允许将输出位置向上或向下移动。
2.5 将字段内容作为复选框输出使用下列语法,可以将字段的第一个字符,作为复选框输出到输出屏幕上:WRITE <f> AS CHECKBOX.如果字段<f>的第一个字符是一个“ X”,就显示复选框已填充。
如果字段<f>的第一个字符是 SPACE,就显示复选框为空。
该语句创建的复选框,默认状态是可输入的。
就是说,用户可以通过单击鼠标来填充它们或使其为空。
三赋值在 ABAP/4 中,可以在声明语句和操作语句中给数据对象赋值。
在声明语句中,将初始值赋给声明的数据对象。
为此,可以在 DATA、常量或 STATICS 语句中使用 VALUE 参数。
要在操作语句中给数据对象赋值,可以使用:6 MOVE 语句和 WRITE TO 语句,对应于赋值运算符(=)3.1用MOVE 赋值3.1.1 基本赋值操作要将值(文字)或源字段的内容赋给目标字段,可以使用 MOVE语句或赋值运算符(=)。
MOVE 语句的语法如下所示:MOVE <f1> TO <f2>.MOVE 语句将源字段<f1>的内容传送给目标字段<f2>。
<f1>可以是任何数据对象。
<f2>必须是变量,不能是文字或常量。
传送后,<f1>的内容保持不变。
赋值运算符(=)的语法如下所示:<f2> = <f1>.MOVE 语句和赋值运算符功能相同。
3.1.2 用指定偏移量赋值可以在每条 ABAP/4 语句中为基本数据类型指定偏移量和长度。
在这种情况下,MOVE 语句语法如下:MOVE <f1>[+<o1>][(<l1>)] TO <f2>[+<o2>][(<l2>)].将字段<f1>从<o1>+1 位置开始且长度为<l1>的段内容赋给字段<f2>,覆盖从<o2>+1 位置开始且长度为<l2>的段。
在 MOVE 语句中,所有偏移量和长度指定都可为变量。
3.1.3 在字符串组件之间赋值描述的 MOVE 语句赋值方法适用于基本数据对象和结构化数据对象。
另外,还有一种MOVE 语句变体,允许将源字段串组件内容复制到目标字段串组件中。
语法如下:MOVE-CORRESPONDING <string1> TO <string2>.该语句将字段串<string1>组件的内容赋给有相同名称的字段串<string2>组件。
对于每对名称,系统都执行 MOVE 语句,如下所示:MOVE STRING1-<component> TO STRING2-<component>.系统分别执行所有必要类型转换。
该处理不同于包括整个字段串的赋值。
在这种情况下,应用不兼容的字段串和基本字段所述的转换规则。
3.2 用WRITE TO 赋值要将值(文字)或源字段内容写入目标字段,可以使用 WRITE TO 语句:WRITE <f1> TO <f2> [<option>].WRITE TO 语句将源字段<f1>内容写入目标字段<f2>。
<f1>可以是任何数据对象,<f2>必须是变量,不能是文字或常量。
写入后,<f1>内容保持不变。
对于<option>,可以使用 WRITE 语句的所有格式化选项(UNDER 和 NO-GAP 除外)。
WRITE TO 语句总是检查用户主记录中的设置。
例如,这些设置指定是将小数点显示为句号(.),还是逗号(,)。
WRITE TO 语句并不遵循类型转换中所述的转换规则。
目标字段解释为类型 C 字段。