2008年(12)
分类:
2008-04-27 15:43:59
SAP开发的语言是ABAP(C/S模式),ABAP语言中没有数组, 它有内表, 就相当于其它语言的数组,我们平时开发都是与内表打交道,先说说内表的定义: DATA:itab_mseg LIKE TABLE OF mseg WITH HEADER LINE. 这个语句就是定义一个内表, 它的结构是mseg表的结果,它里面可以存放mseg表字段的数据。 在定义中, 我们使用到了WITH HEADER LINE 这个语句的意思是定义的这个内表的名字可以在操作内表时同时当作工作区使用, 例如: LOOP AT itab_mseg. WRITE: / itab_mseg-mblnr. " 输入凭证号 ENDLOOP. 在上面语句中 itab_mseg是内表的名称, 但在输入语句中 我们使用到了 itab_mseg ,这时itab_mseg就是工作区的名字了, 它是指用于操作数据时的一个名字。 在上面的定义中我们使用到了SAP自己的一个表就是mseg(物料凭证行项目表(MM Module))。 SAP的内表也可以自己定义自己用到的字段, 在定义中,我们可以先定义一个结构(Structure),再定义一个结构类型的内表, 或者直接定义一个工作区,再定义一个内表, 定义方式如下: 一、先定义一个结构: TYPES: BEGIN OF struc_material, 在这我们会看到,我们在定义内表时 使用的是TYPE TABLE OF 而不是 LIKE TABLE OF 因为我们使用的struc_material 是一个结构类型通过 TYPES定义的。 在这个定义中我说明一定 我们在定义名字 name 时是这样写的 name TYPE char(20), 还可以这样写 name(20) TYPE c. c 是字符类型 是 char 的简写。 二、先定义一个内表: DATA: BEGIN OF wa_material, 上面说到的都是很基本的东西, 在这简单说一下ABAP的注解:ABAP注解有2中一种是以“*”开头的,切记必须在行的开发第一个字符为 *, 令一种是 英文的 " 双引号 这种不要求必须在行开头第一个字符。 FORM f_get_salary USING f_pernr * 操作部分代码 ENDFORM. 还有一点比较重要的是,在ABAP开发中是不区分大小写的, 例如定一个变量 DATA: num TYPE i. 和 data: num type i. 是一样的, 但是有一个特殊情况例如, 在调用一个METHOD,FUNCTION 中 使用的名字和输入的参数是子过程(FORM)、方法(METHOD)、函数(FUNCTION)时是必须大写的,例如: 先说到这,慢慢再写,呵呵。 有不道之处,请网友指点,不胜感激! |