2008-6-24 16:45
digital200
ABAP中内表的occurs到底是什么意思?
大家好,虽然我做过一些牵扯到内表使用的报表,但是对这个概念真的不怎么清楚,
定义的时候经常写成:
data: begin of mytable occurs 0,
col1 type I,
col2 type I,
end of mytable.
data: mytable1 like mytable occurs 0 with header line.
有时候想occurs 是不是table的record的数目,但是,当我对一个有N条记录的table Describe的时候
occurs还是等于0,
另外对于找个header line 本人也是不很清楚,
所以现在有请教大家occurs 和header line 到底是什么意思 ?
2008-6-30 14:09
依旧是小猫儿
我也是初学者,就把我自己学过的给你解释一下吧。
occuers 是ABAP 3.0之前声明内表的关键字选项,貌似是指定内存。occurs <n>的话,<n> 是指定行的初 始号。将第 一行写入创建的内表后,就为指定行保留了内存。如果添加到内表中的行比 <n> 指定的要多 ,则自动扩展保留的内存。现在新版本都不建议都不使用这个关键字了
header line 是表工作区,我们通常都称表头行,内表是按行进行访问的 。必须使用某个工作区域作为与表格互相传输数据的接口。abap4中的内表可以分带表头行的内表和不带表头行的内表。
一般的abap基础资料里都有对工作区的详细解释,图文并茂比较好理解。不过我们现在都建议使用不带表头行的内表,再格外定义表工作区比较好。
.
2008-7-3 10:00
jimmie1978
楼上正解!国内项目的话程序中用带表头的内表还是比较多的,(是不是可以少写几行代码的原因??),但是外包项目的话很多都是禁止的,因为容易引起歧义。
2008-7-4 10:04
digital200
多谢二楼的朋友:依旧是小猫儿.
让我对这个有些了解,以前都不知道,
我以前只知道,如果加了occurs后,在下面这句就要加上'table'
select my_tableA Into corresponding fields of [color=Red]table[/color] mytableB
不知道大家有什么见解 ? 另外3楼朋友的问题不知道谁可以回答 ?
谢谢!
[[i] 本帖最后由 digital200 于 2008-7-4 10:06 编辑 [/i]]
2008-7-4 10:18
jimmie1978
所谓TABLE顾名思义就是表的概念,或者说你可以理解为存放多条数据的地方;没有TABLE的话默认为是存放单一条数据的地方,不知道这样的解释你是不是能够接受。。。
2008-7-8 12:06
VagrantLee
[quote]原帖由 [i]jimmie1978[/i] 于 2008-7-4 10:18 发表 [url=http://www.itpub.net/redirect.php?goto=findpost&pid=10851140&ptid=1011125][img]http://www.itpub.net/images/common/back.gif[/img][/url]
所谓TABLE顾名思义就是表的概念,或者说你可以理解为存放多条数据的地方;没有TABLE的话默认为是存放单一条数据的地方,不知道这样的解释你是不是能够接受。。。 [/quote]
:right:
页:
[1]

Powered by ITPUB论坛