问题描述
现在有个需求,需要一个月里,按天输出数据,所以想弄个循环,小弟ABAP纯新手,现在有点小问题,ABAP中能不能实现Datastring1TypeCvalue"xxxx"Datastring2TypeCvalue"xxxx"Datastring3TypeCvalue"xxxx"....................................................Datastring30TypeCvalue"xxxx"转为Datalengthtypeivalue1Whilelength<30Datastring+itypecvalue"xxxxx"length=length+1EndWhile就像很多其他语言一样,或者用数组也行,谢谢
解决方案
本帖最后由 victor_armin 于 2011-11-23 12:19:06 编辑
解决方案二:
filedsymbol可以实现的
解决方案三:
data:lv_countertypei.field-symbols:<fs_data>.do30times.lv_counter=lv_counter+1.concatenate'string''lv_counter'into<fs_data>.输出<fs_data>.endo.
解决方案四:
不好意思说错了,<FS>必须用assign来赋值,你可以先把值赋给一个变量再assign给<fs>.
解决方案五:
呃,关键是Assign这句怎么写?例如,我们现在的内表是:data:beginofI_MMTBoccurs0,MATNRlikeMARA-MATNR,MTARTlikeMARA-MTART,MATKLlikeMARA-MATKL,MAKTXlikeMAKT-MAKTX,MFRPNlikeMARA-MFRPN,WERKSLIKEMARC-WERKS,JYSLlikeMARC-EISBE,"结余数量endofI_MMTB.现在其实是想增加一个月1-30天的具体结余数量,从JYSL01,JYSL02....到JYSL30...,就如同这样一个内表:data:beginofI_MMTBoccurs0,MATNRlikeMARA-MATNR,MTARTlikeMARA-MTART,MATKLlikeMARA-MATKL,MAKTXlikeMAKT-MAKTX,MFRPNlikeMARA-MFRPN,WERKSLIKEMARC-WERKS,JYSLlikeMARC-EISBE,"结余数量JYSL01likeMARC-EISBE,"1号结余数量JYSL02likeMARC-EISBE,"2号结余数量JYSL03likeMARC-EISBE,"3号结余数量....................................................JYSL01likeMARC-EISBE,"31号结余数量endofI_MMTB.请问如何Assign进去呢?谢谢。
解决方案六:
就是取表里面的JYSL01-JYSL30么?可以这样field-symbol:<fs_data>typeMARC-EISBE.data:lv_countertypenum2.data:lv_stringtypestring.do30times.lv_counter=lv_counter+1.concatenate'JYSL'lv_counterintolv_string."lv_string='JYSLXX'assigncomponentlv_stringofstructurei_mmtbto<fs_data>."<fs_data>就取到了1-30号的结余数量。输出:endo.field-symbol类似指针操作的是地址。
解决方案七:
回楼上的同学,不是取,取得话的确用的是指针的方法,问题是建内表的时候怎么弄啊...?这个帖子有段时间了,我最后就是从JYSL01-JYSL31这么在内表了写了31行的代码,自己看着都觉得挺傻的,但为了交差就那么交上去了,但是从提升自己能力的角度出发,还是想知道有没有办法能够用指针或者什么方式创建内表?
解决方案八:
define
解决方案九:
指针的方法
解决方案十:
指针能实现,但是我觉得试试用内表比较妥当,把所有数据赋值进内表,按照日期读取出出来。data:bengoftab,date(2)typec,data(200)typec,endoftab.