abap中 结构 和 工作区有什么区别
来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/09/03 16:31:02
abap中 结构 和 工作区有什么区别
结构是用SE11 来创建的
工作区是程序中处理的一个中间结果 只存放一条数据.
而定义工作区的时候可能会引用到结构
再问: Data : begin of stru_ztaly, Name(10) type c, …… End of stru_ztaly.“结构 DATA: T like stru_ztaly. "工作区 我还想请教一下就是 结构和内表的区别 ? 我们定义一个内表的时候后面加上with header line 在定义的时候同时生成一个同名的结构为什么不是说同名的工作区呢。搞的很混请大侠解释一下 谢谢。 这样也是可以定义结构的
再答: 结构是一种数据类型。内表是存放数据的。 比如 Data : begin of stru_ztaly, Name(10) type c, End of stru_ztaly.“结构 DATA: T like stru_ztaly. "工作区 stru_ztaly 是结构 只有程序在运行的时候 电脑内存存在这个结构不能存放数据 只能该程序引用 同时内表也存在可以存放数据 工作区只能存放一条数据 如果你用SE11创建结构,就一直都存在,每个程序都能引用! data: begin of gwa_tab1, num type num04,“学号 name1 type string,”姓名 end of gwa_tab1 data: begin of gwa_tab2, num type num04,“学号 fens type p,”分数 end of gwa_tab3. data: begin of gwa_tab3, num type num04,“学号 name1 type string,”姓名 fens type p,“分数 end of gwa_tab3. data: gwa_tab1 like table of gwa_tab1,"内表1 data: gwa_tab2 like table of gwa_tab2,"内表2 data: gwa_tab3 like table of gwa_tab3,"内表3 我现在把内表1和内表2的数据放到内表3中 loop at gt_tab1 into gwa_tab1. MOVE-CORRESPONDING gwa_tab1 to gwa_tab3."把相同的字段的值复制到gwa_tab3中 read table gwa_tab2 into gwa_tab2 with key num = gwa_tab1-num. if sy-subrc eq 0 gwa_tab3-fens = gwa_tab2-fens. endif. append gwa_tab3 to gt_tab3. endloop. 这样就把两个表中 的数据放到一个表中了
再问: 哦 谢谢 。我还想问一下就是 我们什么时候要用工作区什么时候又用结构呢。
再答: 你在定义工作区的时候要用结构 循环读取内表数据的时候要用工作区或者往内表添加数据的时候要用工作区 比如 data: begin of gwa_tab3, num type num04,“学号 name1 type string,”姓名 fens type p,“分数 end of gwa_tab3. 你用DATA 语法的话 gwa_tab3 就是一个工作区 types: begin of ty_tab3, num type num04,“学号 name1 type string,”姓名 fens type p,“分数 end of ty_tab3. 但是你如果用TYPES的 ty_TAB3就是一个结构 然后用DATA: GWA_TAB3 LIKE TY_TAB3 GWA_TAB3就是工作区了 例如 append gwa_tab3 to gt_tab3. 这里是往内表添加数据用到了GWA_TAB3 它是工作区 loop at gt_tab1 into gwa_tab1. 这里是循环读取内表GT_TAB1的数据用到GWA_TAB1 也是工作区
工作区是程序中处理的一个中间结果 只存放一条数据.
而定义工作区的时候可能会引用到结构
再问: Data : begin of stru_ztaly, Name(10) type c, …… End of stru_ztaly.“结构 DATA: T like stru_ztaly. "工作区 我还想请教一下就是 结构和内表的区别 ? 我们定义一个内表的时候后面加上with header line 在定义的时候同时生成一个同名的结构为什么不是说同名的工作区呢。搞的很混请大侠解释一下 谢谢。 这样也是可以定义结构的
再答: 结构是一种数据类型。内表是存放数据的。 比如 Data : begin of stru_ztaly, Name(10) type c, End of stru_ztaly.“结构 DATA: T like stru_ztaly. "工作区 stru_ztaly 是结构 只有程序在运行的时候 电脑内存存在这个结构不能存放数据 只能该程序引用 同时内表也存在可以存放数据 工作区只能存放一条数据 如果你用SE11创建结构,就一直都存在,每个程序都能引用! data: begin of gwa_tab1, num type num04,“学号 name1 type string,”姓名 end of gwa_tab1 data: begin of gwa_tab2, num type num04,“学号 fens type p,”分数 end of gwa_tab3. data: begin of gwa_tab3, num type num04,“学号 name1 type string,”姓名 fens type p,“分数 end of gwa_tab3. data: gwa_tab1 like table of gwa_tab1,"内表1 data: gwa_tab2 like table of gwa_tab2,"内表2 data: gwa_tab3 like table of gwa_tab3,"内表3 我现在把内表1和内表2的数据放到内表3中 loop at gt_tab1 into gwa_tab1. MOVE-CORRESPONDING gwa_tab1 to gwa_tab3."把相同的字段的值复制到gwa_tab3中 read table gwa_tab2 into gwa_tab2 with key num = gwa_tab1-num. if sy-subrc eq 0 gwa_tab3-fens = gwa_tab2-fens. endif. append gwa_tab3 to gt_tab3. endloop. 这样就把两个表中 的数据放到一个表中了
再问: 哦 谢谢 。我还想问一下就是 我们什么时候要用工作区什么时候又用结构呢。
再答: 你在定义工作区的时候要用结构 循环读取内表数据的时候要用工作区或者往内表添加数据的时候要用工作区 比如 data: begin of gwa_tab3, num type num04,“学号 name1 type string,”姓名 fens type p,“分数 end of gwa_tab3. 你用DATA 语法的话 gwa_tab3 就是一个工作区 types: begin of ty_tab3, num type num04,“学号 name1 type string,”姓名 fens type p,“分数 end of ty_tab3. 但是你如果用TYPES的 ty_TAB3就是一个结构 然后用DATA: GWA_TAB3 LIKE TY_TAB3 GWA_TAB3就是工作区了 例如 append gwa_tab3 to gt_tab3. 这里是往内表添加数据用到了GWA_TAB3 它是工作区 loop at gt_tab1 into gwa_tab1. 这里是循环读取内表GT_TAB1的数据用到GWA_TAB1 也是工作区