ITPUB??ì3
新一届的微软MVP评选已经开始,欢迎各位推荐!
ITPUB论坛 » SAP R/3 » 系统开发及跨应用设置 » 为什么我的这个abap程序不显示数据?

标题: 为什么我的这个abap程序不显示数据?
离线 nnlovehx
初级会员



精华贴数 0
个人空间 0
技术积分 74 (20767)
社区积分 0 (702341)
注册日期 2005-11-29
论坛徽章:0
      
      

发表于 2008-5-19 14:42 
为什么我的这个abap程序不显示数据?

tables: vbrk, vbrp.

data: begin of header1 occurs 0,
      vbeln like        vbrk-vbeln        ,
      fkart        like        vbrk-fkart        ,
      vkorg        like        vbrk-vkorg        ,
      vtweg        like        vbrk-vtweg        ,
      fkdat        like        vbrk-fkdat        ,
      gjahr        like        vbrk-gjahr        ,
end of header1.
data: begin of header2 occurs 0,
      vbeln like        vbrk-vbeln        ,
      fkart        like        vbrk-fkart        ,
      vkorg        like        vbrk-vkorg        ,
      vtweg        like        vbrk-vtweg        ,
      fkdat        like        vbrk-fkdat        ,
      gjahr        like        vbrk-gjahr        ,
      fkimg        like        vbrp-fkimg        ,
      lmeng        like        vbrp-lmeng        ,
      chayi type p,
end of header2.

SELECTION-SCREEN: BEGIN OF BLOCK PROG
                           WITH FRAME TITLE TEXT-001.
SELECT-OPTIONS xvbeln FOR vbrk-vbeln OBLIGATORY.
SELECTION-SCREEN:end of block prog.

select vbeln fkart
       vkorg vtweg
       fkdat gjahr
from vbrk
     into header1
     where vbeln = xvbeln.
endselect.
select vbeln fkimg
       lmeng
from vbrp
        into corresponding fields of header2
        where vbeln = xvbeln.
endselect.

write : / ,
        5 '开票凭证',
        20 '开票类型',
        30 '销售组织',
        40 '分销渠道',
        50 '发票日期',
        65 '会计年度',
        80 '已开发票量',
        100 '管理需求量',
        120 '差异'.

loop at header2.
read table header1 with key vbeln        =     header2-vbeln.
if sy-subrc = 0.
header1-fkart        =        header2-fkart.
header1-vkorg        =        header2-vkorg.
header1-vtweg        =        header2-vtweg.
header1-fkdat        =        header2-fkdat.
header1-gjahr        =        header2-gjahr.
endif.

  header2-chayi = header2-fkimg - header2-lmeng.
  write : / ,
            5  header2-vbeln,
            20 header2-fkart,
            30 header2-vkorg,
           40 header2-vtweg,
           50 header2-fkdat,
           65 header2-gjahr,
           70 header2-fkimg,
           90 header2-lmeng,
           105 header2-chayi.
endloop.


只看该作者    顶部
离线 rosefish


精华贴数 0
个人空间 0
技术积分 4062 (354)
社区积分 1744 (658)
注册日期 2004-9-30
论坛徽章:42
      
      

发表于 2008-5-19 15:02 
在select...endselect.内没有把数据append到内表

PS:不推荐在这种条件下用select...endselect.
直接用into table xxx和into corresponding fields of table xxx即可


只看该作者    顶部
离线 nnlovehx
初级会员



精华贴数 0
个人空间 0
技术积分 74 (20767)
社区积分 0 (702341)
注册日期 2005-11-29
论坛徽章:0
      
      

发表于 2008-5-19 15:08 
into corresponding fields of table header1
         from vbrk
         inner join vbrp
         on vbrk~vbeln = vbrp~vbeln
         where vbrk~vbeln in xvbeln.


只用一个内表,直接loop这种方式已经实现了,我在练习有多少种方式能实现这个功能,我能想到的应该还有LOOP嵌套LOOP和LOOP嵌套SELECT,谁知道还有什么方式?


只看该作者    顶部
离线 roczsm
一般会员



精华贴数 0
个人空间 0
技术积分 160 (11453)
社区积分 1 (40527)
注册日期 2006-3-6
论坛徽章:0
      
      

发表于 2008-5-20 12:31 
老大,看这句
SELECT-OPTIONS xvbeln FOR vbrk-vbeln OBLIGATORY.
这是一个内表,怎么能用=号呢
select vbeln fkimg
       lmeng
from vbrp
        into corresponding fields of header2
        where vbeln = xvbeln.

把等号变成IN


只看该作者    顶部
离线 sorrowlich


精华贴数 0
个人空间 0
技术积分 2399 (656)
社区积分 348 (1730)
注册日期 2007-8-1
论坛徽章:9
2008北京奥运纪念徽章:沙滩排球2008北京奥运纪念徽章:排球2008北京奥运纪念徽章:沙滩排球2008北京奥运纪念徽章:沙滩排球2008北京奥运纪念徽章:沙滩排球2008北京奥运纪念徽章:排球
2008北京奥运纪念徽章:沙滩排球     

发表于 2008-5-21 11:08 



__________________
JEM7V
只看该作者    顶部
离线 hallelujah
初级会员


精华贴数 0
个人空间 0
技术积分 234 (8215)
社区积分 1888 (625)
注册日期 2005-1-29
论坛徽章:2
2008年新春纪念徽章     
      

发表于 2008-5-23 22:45 
你crtl f2能过么???
多看看rang表


__________________
我是小H,请多多关照。
只看该作者    顶部
 
    

相关内容


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