ABAP动态内表使用的例子_第1页
ABAP动态内表使用的例子_第2页
ABAP动态内表使用的例子_第3页
ABAP动态内表使用的例子_第4页
ABAP动态内表使用的例子_第5页
全文预览已结束

下载本文档

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

文档简介

1、关键技巧:1, 创建动态内表:a, 动态内表的结构的定义.动态内表表结构的定义必须使用表结构与 table type: lvc_t_fcat一样的内表.一般情况下,我们都内表的所有列定义成字符型.b, 根据表结构生成内表.系统提供了一个标准的method来产生动态表,使用方法如下:2, 动态内表的赋值:a, 获取指定的字段b, 给指定的字段赋值3, 读取动态内表的值:a, 获取指定的字段b, 读取指定的字段值REPORT  zdyn_test.FIELD-SYMBOLS: <dyn_table> TYPE STANDARD

2、 TABLE,               <dyn_wa>,               <dyn_field>.DATA: dy_table TYPE REF TO data,   

3、   dy_line  TYPE REF TO data,      it_structure TYPE lvc_t_fcat,      wa_structure TYPE lvc_s_fcat.START-OF-SELECTION.  PERFORM create_structure.  "&#

4、160;定义内表的结构  PERFORM create_dynamic_table.  " 按照定义的内表结构,产生一个内表  PERFORM write_data_to_dyntable.  " 向动态内表中写数  PERFORM output_dyntable_data.   " 从动态内表中取数,并写到屏幕*&-*&   &#

5、160;  Form  create_structure*&-*FORM create_structure .  wa_structure-fieldname = 'COL1'.  " 第一列列名  wa_structure-col_pos   = 1.       " 表示第一列&#

6、160;- 可心省略,默认情况下,第一行对应到生产内表的第一列,如果指定,则按指定的列顺序生成内表  wa_structure-inttype = 'C'.       " 数据类型  wa_structure-intlen = 6.          " 长度  

7、;APPEND wa_structure TO it_structure.  wa_structure-fieldname = 'COL2'.  " 第二列列名  wa_structure-col_pos   = 2.       " 表示第二列- 可心省略,默认情况下,第一行对应到生产内表的第一列,如果指定,则

8、按指定的列顺序生成内表  wa_structure-inttype = 'C'.       " 数据类型  wa_structure-intlen = 6.          " 长度  APPEND wa_structure TO it_s

9、tructure.  wa_structure-fieldname = 'COL3'.  " 第三列名  wa_structure-col_pos   = 3.       " 表示第三列 - 可心省略,默认情况下,第一行对应到生产内表的第一列,如果指定,则按指定的列顺序生成内表  wa_structure-in

10、ttype = 'C'.       " 数据类型  wa_structure-intlen = 6.          " 长度  APPEND wa_structure TO it_structure.ENDFORM.   

11、60;                " create_structure*&-*&      Form  create_dynamic_table*&-*FORM create_dynamic_table .  CALL METHOD cl_alv_ta

12、ble_create=>create_dynamic_table    EXPORTING      it_fieldcatalog = it_structure    IMPORTING      ep_table        = dy_table.  ASS

13、IGN dy_table->* TO <dyn_table>.    " 用表类型指针 <dyn_table> 指向 数据对象的内容.ENDFORM.                    " create_dynamic_tab

14、le*&-*&      Form  write_data_to_dyntable*&-*FORM write_data_to_dyntable .  DATA:wa_new_line TYPE REF TO data.  DATA:i TYPE n.  DATA:j TYPE n.  CREATE DA

15、TA wa_new_line LIKE LINE OF <dyn_table>.  " 建立一个与动态内表结构相同的数据对象,且数据对象为是一个结构  ASSIGN wa_new_line->* TO <dyn_wa>.  " 用<dyn_wa>指针指向该结构  DO 3 TIMES.    i&

16、#160;= i + 1.    CLEAR j.    LOOP AT it_structure INTO wa_structure.      j = j + 1.      ASSIGN COMPONENT wa_structure-fieldname&

17、#160;OF STRUCTURE <dyn_wa> TO <dyn_field>.  " 用指针 <dyn_field>指向工作区<dyn_wa>中的一个字段,字段名为wa_structure-fieldname.      CONCATENATE i j INTO <dyn_field>.    

18、0;                                         " 给指针指向的字段赋值    ENDLOO

19、P.    APPEND <dyn_wa> TO <dyn_table>.  ENDDO.ENDFORM.                    " write_data_to_dyntable*&-*&    

20、;  Form  output_dyntable_data*&-*FORM output_dyntable_data .  LOOP AT it_structure INTO wa_structure.    WRITE: wa_structure-fieldname(5).  ENDLOOP.  LOOP AT <dyn_table> INTO <dyn_wa>

温馨提示

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

评论

0/150

提交评论