错误的abap 7.5循环

2020-08-18 20:12发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)大家好, 我没有在alv输出中...

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

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


大家好,

我没有在alv输出中获取这些字段数据...

VBELN,AUDAT,POSNR,MATNR,MEINS,MAKTX。 请检查代码。

报告zmanoj4。
 表格:kna1,vbak,vbap,makt。

 类型:ty开始,
           kunnr TYPE kunnr,
           name1 TYPE name1,
           vbeln TYPE vbeln,
           TYPE Audat,
           posnr TYPE posnr,
           matnr TYPE matnr,
           kwmeng TYPE kwmeng,
           类型,
           netwr TYPE netwr,
           maktx TYPE maktx,
         ty of ty。


 数据:它的类型表,
        wa TYPE TY。
 数据:it_fieldcat类型slis_t_fieldcat_alv,
       wa_fieldcat类型slis_fieldcat_alv。

 带有标题标题文本001的b1块的选择屏幕开始。
 参数p_num类型kna1-kunnr。
 块b的选择屏幕结束。

 选择开始。
   性能得到。
   执行广告
   执行。

 形式得到。
   选择kunnr,
          从kna1到表@DATA(it_knal)的name1
          在kunnr EQ @p_num处。

   如果sy-subrc EQ 0。
   SELECT vbeln,
            奥德
            kunnr从vbak到表@DATA(it_vbak)
            对于@it_knal中的所有条目
            在kunnr EQ @ it_knal-kunnr。
   万一。

   SELECT vbeln,
          posnr,
          matnr,
          w
          我的意思
          从vbap到表@DATA(it_vbap)中的netwr
          对于@it_vbak中的所有条目
          在哪里vbeln EQ @ it_vbak-vbeln。

   如果sy-subrc EQ 0。
     SELECT matnr,
            maktx从makt到表@DATA(it_makt)
            对于@it_vbap中的所有条目
            matnr EQ @ it_vbap-matnr在哪里。
   万一。


   循环到it_vbak INTO DATA(wa_vbak)。
     使用键vbeln = wa_vbak-vbeln将表it_vbap读入数据(wa_vbap)。
     使用键kunnr = wa_vbak-kunnr读取表it_​​knal到DATA(wa_knal)中。
     使用键matnr = wa_vbap-matnr读取表it_​​makt到DATA(wa_makt)中。
     附加wa_vbak。
   结局。
 ENDFORM。



 形式alv。
   wa_fieldcat-fieldname ='KUNNR'。
   wa_fieldcat-ref_tabname ='KNA1'。
   wa_fieldcat-seltext_m ='会计凭证编号'。
   将wa_fieldcat附加到it_fieldcat。
   清除wa_fieldcat。

   wa_fieldcat-fieldname ='NAME1'。
   wa_fieldcat-ref_tabname ='KNA1'。
   wa_fieldcat-seltext_m ='AccountDocument号'。
   将wa_fieldcat附加到it_fieldcat。
   清除wa_fieldcat。

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

   wa_fieldcat-fieldname ='AUDAT'。
   wa_fieldcat-ref_tabname ='VBAK'。
   wa_fieldcat-seltext_m ='AccounDocument号'。
   将wa_fieldcat附加到it_fieldcat。
   清除wa_fieldcat。


   wa_fieldcat-fieldname ='POSNR'。
   wa_fieldcat-ref_tabname ='VBAP'。
   wa_fieldcat-seltext_m ='Acing文档编号'。
   将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 ='KWMENG'。
   wa_fieldcat-ref_tabname ='VBAP'。
   wa_fieldcat-seltext_m ='Acing文档编号'。
   将wa_fieldcat附加到it_fieldcat。
   清除wa_fieldcat。


   wa_fieldcat-fieldname ='MEINS'。
   wa_fieldcat-ref_tabname ='VBAP'。
   wa_fieldcat-seltext_m ='Acing文档编号'。
   将wa_fieldcat附加到it_fieldcat。
   清除wa_fieldcat。


   wa_fieldcat-fieldname ='NETWR'。
   wa_fieldcat-ref_tabname ='VBAP'。
   wa_fieldcat-seltext_m ='AcingD'。
   将wa_fieldcat附加到it_fieldcat。
   清除wa_fieldcat。


   wa_fieldcat-fieldname ='MAKTX'。
   wa_fieldcat-ref_tabname ='MAKT'。
   wa_fieldcat-seltext_m ='Acing r'。
   将wa_fieldcat附加到it_fieldcat。
   清除wa_fieldcat。
 ENDFORM。

 形成。
   通话功能'REUSE_ALV_GRID_DISPLAY'
     出口
       i_grid_title ='会计凭证详细信息'
       it_fieldcat = it_fieldcat
     桌子
       t_outtab =它。
 ENDFORM。
5条回答
打个大熊猫
2020-08-18 21:09
< p> Manoj Kumar ,很高兴您现在又走了一步,但是仍有一些问题需要通过编码解决 我以及马特乌斯都提到过:

1。 如果从表VBAP中选择选项FOR ALL ENTRIES,请确保该表不是初始表,否则,将选择所有值:

如果it_vbak []不是INITIAL。  ",确保在使用FOR ALL ENTRIES时it_vbak不是初始的
       选择vbeln,posnr,matnr,kwmeng,meins,netwr
             从vbap到表@DATA(it_vbap)
             对于@it_vbak中的所有条目
             在哪里vbeln EQ @ it_vbak-vbeln。
 ENDIF。

2。 如果使用READ TABLE,请确保处理sy-subrc = 0或初始化字段,否则,如果缺少匹配项,则可能会以其他记录中的值结尾:

 APPEND wa  
CLEAR:wa,wa_vbak,wa_vbap,wa_makt。

3。 当前,您正在为客户选择所有可能的VBAK订单,以及为VBAK订单选择所有VBAP头寸,但是您没有将这些订单转移到ALV,这是故意的吗? 截至目前,您只需要从VBAK以及从VBAP到ALV的一个订单中选择一个"随机"匹配。 要解决此问题,您将不得不在it_vbak上做一个LOOP而不是在READ TABLE it_vbak上做同样的处理: 使用密钥kunnr = wa_knal-kunnr在it_vbak上输入数据(wa_vbak)。 用键vbeln = wa_vbak-vbeln循环到it_vbap INTO数据(wa_vbap)。 使用键matnr = wa_vbap-matnr读取表it_​​makt INTO数据(wa_makt)。 wa-kunnr = wa_vbak-kunnr。 wa-name1 = wa_knal-name1。 wa-vbeln = wa_vbap-vbeln。 wa-audat = wa_vbak-audat。 wa-posnr = wa_vbap-posnr。 wa-matnr = wa_makt-matnr。 wa-kwmeng = wa_vbap-kwmeng。 wa-meins = wa_vbap-meins。 wa-netwr = wa_vbap-netwr。 wa-maktx = wa_makt-maktx。 附加到它。 清除:wa,wa_makt。 结局。 结局。 ENDLOOP。

4。 当前,您从语言相关的描述表MAKT中选择没有首选语言的材料描述(例如SPRAS = sy-langu),因此将选择所有语言描述。 而且当您循环播放时,您也无法解决此问题,而且您也无法解决,因为您没有选择语言。

一周热门 更多>