ITPUB??ì3
ITPUB论坛 » SAP R/3 » 系统开发及跨应用设置 » [求助]怎么实现动态创建一个内表

标题: [求助]怎么实现动态创建一个内表
离线 xiangleifly
初级会员



精华贴数 0
个人空间 0
技术积分 48 (29475)
社区积分 0 (1026629)
注册日期 2006-7-24
论坛徽章:0
      
      

发表于 2007-9-5 12:22 
[求助]怎么实现动态创建一个内表

我现在遇到一个难题,动态创建内表

需求:
内表有固定的第1列   

BUKRS  

然后后面的列都是根据输入条件动态创建的,  比如:
输入period: 200701----200703
那么最后得到的内表结构应是:

BUKRS 0701  0702  0703

如果输入period: 200611----200704
那么得到结构:

BUKRS 0611  0612  0701  0702  0703  0704

请问有没有什么好的方法实现, 还有就是实现后怎么填充数据

谢谢


顶部
离线 sap_whittle
中级会员


精华贴数 0
个人空间 0
技术积分 565 (3644)
社区积分 0 (1310180)
注册日期 2007-3-18
论坛徽章:4
授权会员2008年新春纪念徽章生肖徽章2007版:猴ITPUB新首页上线纪念徽章  
      

发表于 2007-9-5 15:48 
这个不难吧?
CL_ALV_TABLE_CREATE=>CREATE_DYNAMIC_TABLE


__________________
把时髦的技术挂在嘴边,不如把过时的技术记在心里
砍刀:http://sapknife.cublog.cn
Jack:http://blog.csdn.net/CompassButton/
顶部
离线 jerry.cui
爱自己爱生活
SAP BW新手上路


精华贴数 0
个人空间 0
技术积分 391 (5099)
社区积分 6357 (246)
注册日期 2007-4-18
论坛徽章:8
      
      

发表于 2007-9-6 08:46 


QUOTE:
最初由 sap_whittle 发布
这个不难吧?
CL_ALV_TABLE_CREATE=>CREATE_DYNAMIC_TABLE


有没有例子发个上来看看?3KS


顶部
离线 xiangleifly
初级会员



精华贴数 0
个人空间 0
技术积分 48 (29475)
社区积分 0 (1026629)
注册日期 2006-7-24
论坛徽章:0
      
      

发表于 2007-9-11 23:47 
唉,终于解决了。
NND,头都大了, 构建内表结构不难, 难的就是往里面填充数据。
其实填充数据也很简单,只是我这个spec的需求有点BT,弄的我头昏脑胀


顶部
离线 xiangleifly
初级会员



精华贴数 0
个人空间 0
技术积分 48 (29475)
社区积分 0 (1026629)
注册日期 2006-7-24
论坛徽章:0
      
      

发表于 2007-9-11 23:49 
方法就是先构造一个普通的内表,把你所需要的结构的field name填充到这个内表,动态实现,这个简单吧, 然后call 一下那个方法CL_ALV_TABLE_CREATE=>CREATE_DYNAMIC_TABLE
然后就实现了,
就是把纵向变横向


顶部
离线 george524110



精华贴数 0
个人空间 0
技术积分 8 (123369)
社区积分 0 (1761770)
注册日期 2008-4-16
论坛徽章:0
      
      

发表于 2008-5-8 10:47 
我也遇见同样的问题,能否帮代码发上来 谢谢


顶部
离线 sorrowlich


精华贴数 0
个人空间 0
技术积分 2423 (663)
社区积分 348 (1794)
注册日期 2007-8-1
论坛徽章:10
      
      

发表于 2008-5-8 13:21 
回复 #6 george524110 的帖子

REPORT zmaschl_create_data_dynamic .

TYPE-POOLS: slis.

DATA: it_fcat TYPE slis_t_fieldcat_alv,
      is_fcat LIKE LINE OF it_fcat.
DATA: it_fieldcat TYPE lvc_t_fcat,
      is_fieldcat LIKE LINE OF it_fieldcat.
DATA: new_table TYPE REF TO data.
DATA: new_line  TYPE REF TO data.
FIELD-SYMBOLS: <l_table> TYPE ANY TABLE,
               <l_line>  TYPE ANY,
               <l_field> TYPE ANY.

* Build fieldcat
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
       EXPORTING
           i_structure_name = 'SYST'
       CHANGING
           ct_fieldcat      = it_fcat[].
   LOOP AT it_fcat INTO is_fcat WHERE NOT reptext_ddic IS initial.
        MOVE-CORRESPONDING is_fcat TO is_fieldcat.
        is_fieldcat-fieldname = is_fcat-fieldname.
        is_fieldcat-ref_field = is_fcat-fieldname.
        is_fieldcat-ref_table = is_fcat-ref_tabname.
        APPEND is_fieldcat TO it_fieldcat.
   ENDLOOP.

* Create a new Table
CALL METHOD cl_alv_table_create=>create_dynamic_table
       EXPORTING
        it_fieldcatalog = it_fieldcat
       IMPORTING
        ep_table        = new_table.

* Create a new Line with the same structure of the table.
ASSIGN new_table->* TO <l_table>.
CREATE DATA new_line LIKE LINE OF <l_table>.
ASSIGN new_line->* TO <l_line>.

* Test it...
   DO 30 TIMES.
      ASSIGN COMPONENT 'SUBRC' OF STRUCTURE <l_line> TO <l_field>.
      <l_field> = sy-index.
      INSERT <l_line> INTO TABLE <l_table>.
   ENDDO.

   LOOP AT <l_table> ASSIGNING <l_line>.
      ASSIGN COMPONENT 'SUBRC' OF STRUCTURE <l_line> TO <l_field>.
      WRITE <l_field>.
   ENDLOOP.


__________________
JEM7V
顶部
离线 tieshou444
忧郁的蓝色


精华贴数 0
个人空间 0
技术积分 1506 (1176)
社区积分 164 (2714)
注册日期 2008-3-5
论坛徽章:4
授权会员ERP板块每日发贴之星2008北京奥运纪念徽章:皮划艇静水2008北京奥运纪念徽章:跳水  
      

发表于 2008-5-9 08:52 
先顶再学习


__________________
SAP & ENGLISH
顶部
离线 virtual_hsu
中级会员



精华贴数 0
个人空间 0
技术积分 544 (3622)
社区积分 23 (7272)
注册日期 2002-7-24
论坛徽章:1
ITPUB新首页上线纪念徽章     
      

发表于 2008-5-20 19:03 
OK,我也来个吧,昨天刚研究的,用到RTTS
大概写个意思吧,程序就不写了,具体的解释看注释好了
TYPE-POOLS: abap.
*Table of components which was used to deposite all the columns of the target table.
data: lt_comps type abap_compdescr_tab.
DATA: l_structtype TYPE REF TO cl_abap_structdescr.
DATA: l_table TYPE REF TO cl_abap_tabledescr.
*workarea of the components table
field-symbols:<fs_comline> type line of abap_compdescr_tab.
*Set the properties of each column.
<fs_comline>-name = 'BUKRS'.
<fs_comline>-lenght = '4'.
<fs_comline>-typekind = 'C'.
*Append to the components table.
append <fs_comline> to lt_comps
                  .
                  .
                  .
*Create the linetype of the target table.
l_structtype ?= cl_abap_structdescr=>create( p_components = lt_comps ).

*Crteate the target table
l_table ?= cl_abap_tabledescr=>create( p_line_type = l_structtype ).

随意写的代码,还有很多不完善的地方,希望起到抛砖引玉的作用.


顶部
 
    


CopyRight 1999-2006 itpub.net All Right Reserved.
北京皓辰广域网络信息技术有限公司. 版权所有
E-mail:Webmaster@itpub.net
京ICP证:010037号 联系我们 法律顾问