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

下载本文档

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

文档简介

1、动态内表的创建和使用主要有以下几点:1. 动态内表的创建,首先要定义动态结构,然后再根据定义的动态结构利用系统一个标准的method:” cl_alv_table_create=>create_dynamic_table“生成动态内表。2. 动态内表的赋值,遍历动态结构,获取指定的字段,然后给指定的字段赋值。3. 动态内表的读取显示,与赋值相似,遍历动态结构,获取指定的字段,然后读取对应字段的值。下面是具体的代码实例:定义所需的系统变量。FIELD-SYMBOLS: <dyn_table>TYPE STANDARD TABLE, " 动态内表<dyn_wa&g

2、t;TYPE ANY, "动态内表的工作区<dyn_field>TYPE ANY."指向动态内表工作区某一字段的指针DATA: dy_tableTYPE REF TO data ,dy_lineTYPE REF TO data ,it_structureTYPE lvc_t_fcat, ” 存储动态内表列的内表,其中的每一行代表动态内表的一列。wa_structureTYPE lvc_s_fcat. “lvc_t_fact 的工作区。通过 lvc_t_fact构建动态内表的列:FORMsetstructrueUSING value ( p_fname) TYPE

3、 char6value ( p_col ) TYPE int4value ( p_tab ) TYPE char10value ( p_fld ) TYPE char6 .wa_structure - fieldname= p_fname. " 列名wa_structure - col_pos= p_col . “列的顺序wa_structure - ref_table= p_tab . ”参照表wa_structure - ref_field= p_fld . “参照字段APPENDwa_structureTO it_structure.ENDFORM."setstruc

4、true通过 lvc_t_fact构建创建动态内表给 dy_table :FORMcreate_dynamic_table.CALL METHODcl_alv_table_create=>create_dynamic_table " 类静态方法EXPORTINGit_fieldcatalog=it_structureIMPORTINGep_table= dy_table .ASSIGN dy_table -> * TO <dyn_table> .ENDFORM." CREATE_DYNAMIC_TABLE给动态内表赋值:FORMsetdata .DA

5、TA: wa_new_lineTYPE REF TO data .DATA lv_tolTYPE wertv12 .CREATE DATAwa_new_line LIKE LINE OF <dyn_table> .ASSIGN wa_new_line -> *TO <dyn_wa>. ”让 <dyn_wa>代表指向动态内表的工作区LOOP AT gt_coep2 .CLEAR<dyn_wa>.READ TABLEit_structureINTO wa_structureINDEX 4. “获取 it_structure 的第四行,即动态内表

6、的第四列ASSIGN COMPONENTwa_structure- fieldnameOF STRUCTURE<dyn_wa> TO <dyn_field> . ”当 <dyn_field>指向工作区中的第四个字段PERFORMremovezeroUSING gt_coep2 - kstar .<dyn_field>=gt_coep2 - kstar. “通过给 field-symbol 赋值来达到给工作区中第四个字段赋值的作用。PERFORMaddzero USING gt_coep2 - kstar .READ TABLEit_structu

7、reINTO wa_structureINDEX 5.ASSIGN COMPONENTwa_structure- fieldnameOF STRUCTURE<dyn_wa> TO <dyn_field><dyn_field>=gt_coep2 - txt50 .READ TABLEit_structureINTO wa_structureINDEX 6.ASSIGN COMPONENTwa_structure- fieldnameOF STRUCTURE<dyn_wa> TO <dyn_field>PERFORMgetksttolUS

8、ING gt_coep2 - kstarlv_tol.<dyn_field>= lv_tol.LOOP AT gt_coep1WHEREkstar= gt_coep2 - kstar .ASSIGN COMPONENTgt_coep1 - objnr6OF STRUCTURE<dyn_wa> TO <dyn_field>.<dyn_field>= gt_coep1 - wkgbtr .ENDLOOP.APPEND<dyn_wa> TO <dyn_table> . ”将工作区中的数据append到动态内表中去ENDLOOP.

9、ENDFORM.动态内表ALV展示时构建fieldcatalog,通过循环it_structure来实现。FORMbuild_fieldcat1.DATA:lv_name TYPE string,lv_fnameTYPE prctr,lv_sum,lv_key.CLEAR gt_fieldcat.LOOP AT it_structureINTO wa_structure.IFwa_structure- fieldname <>'MARK'.CLEAR lv_name .PERFORMfill_fieldcat1USING wa_structurewa_structu

10、relv_namelv_keylv_sum.- fieldname- col_posENDIF.ENDLOOP.ENDFORM."build_fieldcat1FORMfill_fieldcat1USING value ( p_fname)value ( p_col )value ( p_txt )value ( p_key )value ( p_sum).gs_fieldcat- tabname = '<dyn_table>'.gs_fieldcat- seltext_m= p_txt .gs_fieldcat- fieldname= p_fname .

11、gs_fieldcat- col_pos= p_col .gs_fieldcat- key = p_key .gs_fieldcat- do_sum = p_sum.APPENDgs_fieldcatTO gt_fieldcat.ENDFORM."fill_fieldcat1 ALV展示动态内表FORMexcute_alv_function1 .CALL FUNCTION'REUSE_ALV_GRID_DISPLAY'EXPORTINGi_callback_program=sy- repidi_callback_pf_status_set='SET_STATUS'i_structure_name='<dyn_wa>'is_layoutit_fieldcatit_sortit_eventsT

温馨提示

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

评论

0/150

提交评论