不能得到输出。 没有语法错误,但是输出中没有数据

2020-08-18 21:48发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


报告zmanoj3。
 表格:vbap,makt。

 类型:ty开始,
           vbeln TYPE vbeln,
           posnr TYPE posnr,
           matnr TYPE matnr,
           麦芽类型麦芽,
         ty of ty。
 数据:它的类型表,
        wa TYPE TY。
 数据:num TYPE vbap-vbeln。

 带有标题标题文本001的b块的选择屏幕开始。
 SELECT-OPTIONS num1 FOR num。
 选择屏幕的结尾b。
 数据:it_fieldcat类型slis_t_fieldcat_alv,
       wa_fieldcat TYPE slis_fieldcat_alv,
       布局类型slis_layout_alv。


 DATA repid TYPE sy-repid。

 选择开始。

   SELECT vbeln,
          posnr,
          从vbap到表@DATA(gt_vbap)中的matnr
          在vbeln IN @ num1中。

   如果sy-subrc EQ 0。

     SELECT matnr,
            maktx从makt到@gt_vbap中所有条目的表@DATA(gt_makt)
            matnr EQ @ gt_vbap-matnr在哪里。
     将gt_vbap循环到INTO DATA(wa_vbap)中。
       使用键matnr = wa_vbap-matnr将表gt_makt读入DATA(wa_makt)。
     结局。

   万一。


   wa_fieldcat-fieldname ='vbeln'。
   wa_fieldcat-ref_tabname ='vbap'。
   wa_fieldcat-seltext_m ='会计凭证编号'。
   将wa_fieldcat附加到it_fieldcat。
   清除wa_fieldcat。

   wa_fieldcat-fieldname ='posnr'。
   wa_fieldcat-ref_tabname ='vbap'。
   wa_fieldcat-seltext_m ='文件编号'。
   将wa_fieldcat附加到it_fieldcat。
   清除wa_fieldcat。

   wa_fieldcat-fieldname ='matnr'。
   wa_fieldcat-ref_tabname ='vbap'。
   wa_fieldcat-seltext_m ='数字'。
   将wa_fieldcat附加到it_fieldcat。
   清除wa_fieldcat。

   wa_fieldcat-fieldname ='maktx'。
   wa_fieldcat-ref_tabname ='makt'。
   wa_fieldcat-seltext_m ='Accoun编号'。
   将wa_fieldcat附加到it_fieldcat。
   清除wa_fieldcat。

     通话功能'REUSE_ALV_GRID_DISPLAY'
     出口
       i_callback_program =快速
       i_grid_title ='会计凭证详细信息'
       it_fieldcat = it_fieldcat
     桌子
       t_outtab =它。

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


报告zmanoj3。
 表格:vbap,makt。

 类型:ty开始,
           vbeln TYPE vbeln,
           posnr TYPE posnr,
           matnr TYPE matnr,
           麦芽类型麦芽,
         ty of ty。
 数据:它的类型表,
        wa TYPE TY。
 数据:num TYPE vbap-vbeln。

 带有标题标题文本001的b块的选择屏幕开始。
 SELECT-OPTIONS num1 FOR num。
 选择屏幕的结尾b。
 数据:it_fieldcat类型slis_t_fieldcat_alv,
       wa_fieldcat TYPE slis_fieldcat_alv,
       布局类型slis_layout_alv。


 DATA repid TYPE sy-repid。

 选择开始。

   SELECT vbeln,
          posnr,
          从vbap到表@DATA(gt_vbap)中的matnr
          在vbeln IN @ num1中。

   如果sy-subrc EQ 0。

     SELECT matnr,
            maktx从makt到@gt_vbap中所有条目的表@DATA(gt_makt)
            matnr EQ @ gt_vbap-matnr在哪里。
     将gt_vbap循环到INTO DATA(wa_vbap)中。
       使用键matnr = wa_vbap-matnr将表gt_makt读入DATA(wa_makt)。
     结局。

   万一。


   wa_fieldcat-fieldname ='vbeln'。
   wa_fieldcat-ref_tabname ='vbap'。
   wa_fieldcat-seltext_m ='会计凭证编号'。
   将wa_fieldcat附加到it_fieldcat。
   清除wa_fieldcat。

   wa_fieldcat-fieldname ='posnr'。
   wa_fieldcat-ref_tabname ='vbap'。
   wa_fieldcat-seltext_m ='文件编号'。
   将wa_fieldcat附加到it_fieldcat。
   清除wa_fieldcat。

   wa_fieldcat-fieldname ='matnr'。
   wa_fieldcat-ref_tabname ='vbap'。
   wa_fieldcat-seltext_m ='数字'。
   将wa_fieldcat附加到it_fieldcat。
   清除wa_fieldcat。

   wa_fieldcat-fieldname ='maktx'。
   wa_fieldcat-ref_tabname ='makt'。
   wa_fieldcat-seltext_m ='Accoun编号'。
   将wa_fieldcat附加到it_fieldcat。
   清除wa_fieldcat。

     通话功能'REUSE_ALV_GRID_DISPLAY'
     出口
       i_callback_program =快速
       i_grid_title ='会计凭证详细信息'
       it_fieldcat = it_fieldcat
     桌子
       t_outtab =它。
付费偷看设置
发送
5条回答
Climb_Ma
1楼 · 2020-08-18 22:34.采纳回答

嗨Manoj,

您必须以 Philip Davy 将vbap和makt的数据合并到输出表" it"中 a>, Mateusz Adamus Sandra Rossi 已经告诉了我们。

我知道您是从ABAP开始的,但是您必须首先开始学习ABAP的基础知识。 如您所知,我已经在电报组中提供了此建议。

报告zmanoj3。
 表格:vbap,makt。
 类型:ty开始,
           vbeln TYPE vbeln,
           posnr TYPE posnr,
           matnr TYPE matnr,
           makt TYPE makt,具有以下字段的结构:mandt,matnr,spras,maktx,maktg
         ty of ty。
 数据:
   类型表
   wa TYPE TY。
 *数据:num TYPE vbap-vbeln。 没有必要。

 带有标题标题文本001的b块的选择屏幕开始。
 选择选项:
   num1 FOR vbap-vbeln。 您可以直接使用结构的字段,因为您在TABLES语句中使用了它
 选择屏幕的结尾b。
 数据:
   it_fieldcat TYPE slis_t_fieldcat_alv,
   wa_fieldcat类型slis_fieldcat_alv。
 *布局类型slis_layout_alv。 删除未使用的变量

 * DATA repid类型sy-repid。 删除未使用的变量

 选择开始。
   SELECT vbeln,
          posnr,
          从vbap到表@DATA(gt_vbap)中的matnr
          在vbeln IN @ num1中。
   如果sy-subrc EQ 0。
     SELECT matnr,
            maktx从makt到@gt_vbap中所有条目的表@DATA(gt_makt)
            matnr EQ @ gt_vbap-matnr在哪里。
     将gt_vbap循环到INTO DATA(wa_vbap)中。
       使用键matnr = wa_vbap-matnr将表gt_makt读入DATA(wa_makt)。
     结局。
   万一。

   wa_fieldcat-fieldname ='VBELN'。
   wa_fieldcat-ref_tabname ='VBAP'。
   wa_fieldcat-seltext_m ='会计凭证编号'。
   将wa_fieldcat附加到it_fieldcat。
   清除wa_fieldcat。

   wa_fieldcat-fieldname ='POSNR'。
   wa_fieldcat-ref_tabname ='VBAP'。
   wa_fieldcat-seltext_m ='文件编号'。
   将wa_fieldcat附加到it_fieldcat。
   清除wa_fieldcat。

   wa_fieldcat-fieldname ='MATNR'。
   wa_fieldcat-ref_tabname ='VBAP'。
   wa_fieldcat-seltext_m ='数字'。
   将wa_fieldcat附加到it_fieldcat。
   清除wa_fieldcat。

   wa-maktx = |不存在|。
   wa-makt-maktx ='存在'。
  
   "您的ty中没有MAKTX字段(请在此处查看我的评论)
   wa_fieldcat-fieldname ='MAKTX'。
   wa_fieldcat-ref_tabname ='MAKT'。
   wa_fieldcat-seltext_m ='Accoun编号'。
   将wa_fieldcat附加到it_fieldcat。
   清除wa_fieldcat。

   通话功能'REUSE_ALV_GRID_DISPLAY'
     出口
 * i_callback_program = repid如果您不填写repid,请不要使用它
       i_grid_title ='会计凭证详细信息'
       it_fieldcat = it_fieldcat
     桌子
       t_outtab =它。
 

我在您的代码中添加了一些注释,并注释掉了一些行。

将代码复制到编辑器中并尝试激活时,由于以下原因,您将收到错误消息:

 wa-maktx = |不存在|。

我希望这会帮助您继续学习。

问候
Stephan

d56caomao
2楼-- · 2020-08-18 22:31

请使用引号将这些字段转换为大写字母。

 wa_fieldcat-fieldname ='VBELN'。  

wa_fieldcat-ref_tabname ='VBAP'。

对每个字段都执行此操作。

Haoba3210
3楼-- · 2020-08-18 22:30

您好 Manoj Kumar

您的IT内部表为空。 您需要向其中添加一些记录。 您可以这样操作。

在gt_vbap INTO DATA(wa_vbap)中循环。
   在它的开头添加一行引用到DATA(ld_it)中。
   将wa_vbap移动到ld_it-> *

   使用键matnr = wa_vbap-matnr将表gt_makt读入DATA(wa_makt)。
   检查sy-subrc = 0。
   ld_it-> maktx = wa_makt-maktx。
 ENDLOOP。


问候,
Mateusz

PS:发表的评论 菲利普·戴维(Philip Davy)也有效。 您应该使用大写的字段名称。

PPS:您还需要更改结果类型。 添加字段MAKTX而不是MAKT。

 TYPES:类型的开始,
           vbeln TYPE vbeln,
           posnr TYPE posnr,
           matnr TYPE matnr,
           maktx TYPE maktx,
         结束。
CPLASF-自律
4楼-- · 2020-08-18 22:26

明显的错误。 输出为空,因为IT为空。 请在发布问题之前调试您的代码。

hengyuye
5楼-- · 2020-08-18 22:26

您好 Manoj Kumar

我尚未修复您的代码,以便您可以输出。 我提出了一些要点,让您自己找到解决方案。

您必须进行 Mateusz Adamus 在他的回答中提到的更改。 两者都实现,如果从vbap中选择了数据,您将得到输出。

问候
斯蒂芬

一周热门 更多>