资源预览内容
第1页 / 共3页
第2页 / 共3页
第3页 / 共3页
亲,该文档总共3页全部预览完了,如果喜欢就下载吧!
资源描述
动态内表的创建和使用主要有以下几点:1. 动态内表的创建,首先要定义动态结构,然后再根据定义的动态结构利用系统一个标准的method:” cl_alv_table_create=create_dynamic_table“生成动态内表。2. 动态内表的赋值,遍历动态结构,获取指定的字段,然后给指定的字段赋值。3. 动态内表的读取显示,与赋值相似,遍历动态结构,获取指定的字段,然后读取对应字段的值。下面是具体的代码实例:定义所需的系统变量。FIELD-SYMBOLS: TYPE STANDARD TABLE, 动态内表TYPE ANY, 动态内表的工作区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 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.setstructrue通过 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 .ENDFORM. CREATE_DYNAMIC_TABLE给动态内表赋值:FORMsetdata .DATA: wa_new_lineTYPE REF TO data .DATA lv_tolTYPE wertv12 .CREATE DATAwa_new_line LIKE LINE OF .ASSIGN wa_new_line - *TO . ”让 代表指向动态内表的工作区LOOP AT gt_coep2 .CLEAR.READ TABLEit_structureINTO wa_structureINDEX 4. “获取 it_structure 的第四行,即动态内表的第四列ASSIGN COMPONENTwa_structure- fieldnameOF STRUCTURE TO . ”当 指向工作区中的第四个字段PERFORMremovezeroUSING gt_coep2 - kstar .=gt_coep2 - kstar. “通过给 field-symbol 赋值来达到给工作区中第四个字段赋值的作用。PERFORMaddzero USING gt_coep2 - kstar .READ TABLEit_structureINTO wa_structureINDEX 5.ASSIGN COMPONENTwa_structure- fieldnameOF STRUCTURE TO =gt_coep2 - txt50 .READ TABLEit_structureINTO wa_structureINDEX 6.ASSIGN COMPONENTwa_structure- fieldnameOF STRUCTURE TO PERFORMgetksttolUSING gt_coep2 - kstarlv_tol.= lv_tol.LOOP AT gt_coep1WHEREkstar= gt_coep2 - kstar .ASSIGN COMPONENTgt_coep1 - objnr6OF STRUCTURE TO .= gt_coep1 - wkgbtr .ENDLOOP.APPEND TO . ”将工作区中的数据append到动态内表中去ENDLOOP.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_structurelv_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 = .gs_fieldcat- seltext_m= p_txt .gs_fieldcat- fieldname= p_fname .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 FUNCTIONREUSE_ALV_GRID_DISPLAYEXPORTINGi_callback_program=sy- repidi_callback_pf_status_set=SET_STATUSi_structure_name=is_layoutit_fieldcatit_sortit_eventsTABLESt_outtabIFsy - subrc 0.ENDIF.ENDFORM.= gs_layout_alv= gt_fieldcat= gt_sort= gt_eventsIT_SORT = GT_SORT= . EXCUTE_REUSE_ALV_GRID_DISPLAY
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号