




下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、ABAP动态生成内表的几种方法1. 使用modify(p_tabname)from<dyn_wa>.的时候,一定要确定要更新的字段是不是系统表的关键字段,如果是关键字段的话,需要先删除这条记录,delete(p_tabname)from<dyn_wa>.再进行modify,因为modify进行更新的时候如果不存在就新增,这点一定要注意。2. 如果使用UPDATES行更新,对于非主键字段的改变还是可以的,但是对于主键字段,只能用MODIFYT。直接对SAP数据做UPDAT和MODIFY是很危险的,不到万不得已,最好不要做这些操作。如果万一出问题,会很严重的。这里就不用更新
2、和删除程序作为测试程序了,直接做一个动态内表ALV显示的测试程序,道理和更新与删除差不多,希望对有这方面需求的朋友有所帮助!3. 最近从同事程序中发现另一种创建动态内表的简便方法,附3中为测试代码觉得这个方法更简单些附1:REPORTZCL_TEST026.TYPE-POOLS:abap.PARAMETERSp_nameTYPEtabname.DATAlt_tableTYPETABLEOFdfies."字段结构表DATAls_tableTYPEdfies.DATAlr_strucTYPEREFTOcl_abap_structdescr.DATAlr_tableTYPEREFTOcl_
3、abap_tabledescr.DATAlr_typeTYPEREFTOcl_abap_typedescr.DATAlr_dataTYPEREFTOcl_abap_datadescr.DATAlt_compTYPEabap_component_tab.DATAls_compLIKELINEOFlt_comp.DATAdyn_waTYPEREFTOdata.DATAdyn_tableTYPEREFTOdata.DATAl_stringTYPEstring.FIELD-SYMBOLS:<dyn_table>TYPESTANDARDTABLE,<dyn_wa>TYPEANY.
4、*1.获取表中的字段结构CALLFUNCTION'DDIF_NAMETAB_GET'EXPORTINGtabname=p_nameTABLESdfies_tab=lt_tableEXCEPTIONSnot_found=1OTHERS=2.IFsy-subrc<>0.MESSAGEIDsy-msgidTYPEsy-msgtyNUMBERsy-msgnoWITHsy-msgv1sy-msgv2sy-msgv3sy-msgv4.ENDIF.LOOPATlt_tableINTOls_table.CONCATENATEls_table-tabname'-'ls
5、_table-fieldnameINTOl_string.ls_comp-name=ls_table-fieldname.*读取字段类型CALLMETHODcl_abap_datadescr=>describe_by_nameEXPORTINGp_name=l_stringRECEIVINGp_descr_ref=lr_typeEXCEPTIONStype_not_found=1OTHERS=2.IFsy-subrc<>0.MESSAGEIDsy-msgidTYPEsy-msgtyNUMBERsy-msgnoWITHsy-msgv1sy-msgv2sy-msgv3sy-msg
6、v4.ENDIF.ls_comp-type?=lr_type.APPENDls_compTOlt_comp.CLEARls_comp.ENDLOOP.*根据字段目录创建动态结构类型CALLMETHODcl_abap_structdescr=>createEXPORTINGp_components=lt_compRECEIVINGp_result=lr_struc.*根据动态结构创建动态内表类型CALLMETHODcl_abap_tabledescr=>createEXPORTINGp_line_type=lr_strucRECEIVINGp_result=lr_table.*参照动
7、态结构类型和动态内表类型创建内表与工作区CREATEDATAdyn_waTYPEHANDLElr_struc.CREATEDATAdyn_tableTYPEHANDLElr_table.指定内表与工作区到字段符号ASSIGNdyn_wa->*TO<dyn_wa>.ASSIGNdyn_table->*TO<dyn_table>.*从动态表中取数到动态内表中SELECT*INTOCORRESPONDINGFIELDSOFTABLE<dyn_table>UPTO100ROWSFROM(p_name).*显示内表中的数据CALLFUNCTION'
8、REUSE_ALV_GRID_DISPLAY'EXPORTINGi_structure_name=p_nameTABLESt_outtab=<dyn_table>EXCEPTIONSprogram_error=1OTHERS=2.IFsy-subrc<>0.MESSAGEIDsy-msgidTYPEsy-msgtyNUMBERsy-msgnoWITHsy-msgv1sy-msgv2sy-msgv3sy-msgv4.ENDIF.附2:REPORTZCL_TEST027.TYPE-POOLS:abap.PARAMETERSp_nameTYPEtabname.DATA
9、:d_refTYPEREFTOdata,lt_alv_catTYPETABLEOFlvc_s_fcat,ls_alv_catLIKELINEOFlt_alv_cat.DATA:lt_tableLIKETABLEOFdntab.DATA:ls_tableTYPEdntab.FIELD-SYMBOLS:<dyn_table>TYPEtable,<dyn_wa>TYPEANY,<dyn_field>TYPEANY.*取出表结构的字段目录CALLFUNCTION'NAMETAB_GET'EXPORTINGlangu=sy-langutabname=p
10、_nameTABLESnametab=lt_tableEXCEPTIONSno_texts_found=1.*根据取出的字段目录生成参考字段目录LOOPATlt_tableINTOls_table.ls_alv_cat-fieldname=ls_table-fieldname.ls_alv_cat-ref_table=p_name.ls_alv_cat-ref_field=ls_table-fieldname.APPENDls_alv_catTOlt_alv_cat.CLEARls_alv_cat.ENDLOOP.*内表创建CALLMETHODcl_alv_table_create=>c
11、reate_dynamic_tableEXPORTINGit_fieldcatalog=lt_alv_catIMPORTINGep_table=d_ref.*指定生成的内表到字段符号ASSIGNd_ref->从动态表中取数到动态内表中SELECT*INTOCORRESPONDINGFIELDSOFTABLE<dyn_table>UPTO100TO<dyn_table>.ROWSFROM(p_name).*显示内表中的数据CALLFUNCTION'REUSE_ALV_GRID_DISPLAY'EXPORTINGi_structure_name=p_n
12、ameTABLESt_outtab=<dyn_table>EXCEPTIONSprogram_error=1OTHERS=2.IFsy-subrc<>0.MESSAGEIDsy-msgidTYPEsy-msgtyNUMBERsy-msgnoWITHsy-msgv1sy-msgv2sy-msgv3sy-msgv4.ENDIF.附3:REPORTZCL_TEST028.PARAMETERSp_nameTYPEtabname.DATA:dyn_tableTYPEREFTOdata.DATA:dyn_waTYPEREFTOdata.FIELD-SYMBOLS:<dyn_t
13、able>TYPEtable,<dyn_wa>TYPEANY.*创建动态表结构CREATEDATAdyn_tableTYPETABLEOF(p_name).*创建动态内表ASSIGNdyn_table->创建动态工作区结构CREATEDATAdyn_waLIKELINEOF<dyn_table>.TO<dyn_table>.创建动态工作区ASSIGNdyn_wa->*TO<dyn_wa>.*从动态表中取数到动态内表中SELECT*INTOCORRESPONDINGFIELDSOFTABLE<dyn_table>UPTO100ROWSFROM(p_name).*对取出数据进行处理LOOPAT<dyn_table>assigning<dyn_wa>."内表数据处理ASSIGNCOMPONENT'KBSTAT'OFSTRUCTURE<dyn_wa>TO<kbstat>.ASSIGNCOMPONENT'KFRST'OFSTRUCTURE<dyn_wa>TO<kfrst>.ENDLOOP.*显示内表中的数据CALLFUNCTION'REUSE_ALV_GR
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2030年中国轿车市场竞争格局及发展趋势分析报告
- 2025-2030年中国超市货架行业竞争格局及发展规模分析报告(权威版)
- 2025-2030年中国蘑菇型提取罐行业十三五规划与发展前景分析报告
- 2025-2030年中国花粉市场运行态势及发展潜力分析报告
- 2025-2030年中国竹地板行业十三五规划及发展建议分析报告
- 2025年陕西省安全员考试题库及答案
- 柳州铁道职业技术学院《数据结构基础》2023-2024学年第二学期期末试卷
- 湖南工艺美术职业学院《广告史》2023-2024学年第二学期期末试卷
- 湘潭大学《生物制品营销》2023-2024学年第二学期期末试卷
- 2025甘肃省安全员-C证考试(专职安全员)题库附答案
- 2024年A特种设备相关管理考试题库及答案
- 数字化智能化园区建设水平评价标准(征求意见稿)
- 外研版(三起点)小学英语三年级下册全册同步练习(含答案)
- 幼儿园 《十个人快乐大搬家》绘本
- 农村建房清包工合同协议书
- (新版)电工三级-职业技能等级认定考试题库(学生用)
- 人美版四年级上册美术(全册)教案
- 《学前儿童健康教育(第2版)》全套教学课件
- 《妇幼保健学》课件-第一章 绪论
- 《高性能树脂》课件
- 《烹饪美学》课件-项目二 烹饪色彩
评论
0/150
提交评论