abap 动态生成内表

abap 动态生成内表

ID:13458525

大小:40.00 KB

页数:6页

时间:2018-07-22

abap 动态生成内表_第1页
abap 动态生成内表_第2页
abap 动态生成内表_第3页
abap 动态生成内表_第4页
abap 动态生成内表_第5页
资源描述:

《abap 动态生成内表》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、ABAP动态生成内表的几种方法最近要写个程序,既有更新的,也有删除的,需要涉及到很多系统表,如果一个表一个表进行更新或者删除太慢了,于是就想通过创建动态内表来实现这些功能,在网上找了一些资料,经过多次尝试,终于测试成功了。网上讲述的创建动态内表的方法大致有两种。我做了一下测试,源代码附后。在这里提醒大家一点,在做动态更新程序的时候,要注意两点:1.使用modify(p_tabname)from.的时候,一定要确定要更新的字段是不是系统表的关键字段,如果是关键字段的话,需要先删除这条记录,delet

2、e (p_tabname)from.再进行modify,因为modify进行更新的时候如果不存在就新增,这点一定要注意。2.如果使用UPDATE进行更新,对于非主键字段的改变还是可以的,但是对于主键字段,只能用MODIFY了。直接对SAP数据做UPDATE和MODIFY是很危险的,不到万不得已,最好不要做这些操作。如果万一出问题,会很严重的。这里就不用更新和删除程序作为测试程序了,直接做一个动态内表ALV显示的测试程序,道理和更新与删除差不多,希望对有这方面需求的朋友有所帮助!3.最近从同事程序中

3、发现另一种创建动态内表的简便方法,附3中为测试代码。觉得这个方法更简单些……附1:REPORTZCL_TEST026.TYPE-POOLS:abap.PARAMETERSp_nameTYPEtabname.DATAlt_tableTYPETABLEOFdfies."字段结构表DATAls_tableTYPEdfies.DATAlr_strucTYPEREFTOcl_abap_structdescr.DATAlr_tableTYPEREFTOcl_abap_tabledescr.DATAlr_typeTYPEREF

4、TOcl_abap_typedescr.DATAlr_dataTYPEREFTOcl_abap_datadescr.DATAlt_compTYPEabap_component_tab.DATAls_compLIKELINEOFlt_comp.DATAdyn_waTYPEREFTOdata.DATAdyn_tableTYPEREFTOdata.DATAl_stringTYPEstring.FIELD-SYMBOLS:TYPESTANDARDTABLE,TYPEANY.*1.获取

5、表中的字段结构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_tabl

6、e-tabname'-'ls_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-msgtyNU

7、MBERsy-msgnoWITHsy-msgv1sy-msgv2sy-msgv3sy-msgv4.ENDIF.ls_comp-type?=lr_type.APPENDls_compTOlt_comp.CLEARls_comp.ENDLOOP.*根据字段目录创建动态结构类型CALLMETHODcl_abap_structdescr=>createEXPORTINGp_components=lt_compRECEIVINGp_result=lr_struc.*根据动态结构创建动态内表类型CALLMETHODcl_ab

8、ap_tabledescr=>createEXPORTINGp_line_type=lr_strucRECEIVINGp_result=lr_table.*参照动态结构类型和动态内表类型创建内表与工作区CREATEDATAdyn_waTYPEHANDLElr_struc.CREATEDATAdyn_tableTYPEHANDLElr_table.*指定内表与工作区到字段符

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。