点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)大家好, 我没有在alv输出中...
点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)大家好, 我没有在alv输出中...
加入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。
您好 Manoj Kumar
您不会将信息从源内部表移动到结果内部表。 这就是为什么您没有在ALV中获得价值的原因。
您可以使用移动对应或逐字段。 视情况而定。
此外,仅当VBAK SELECT返回任何结果时,才应在VBAP表上执行SELECT。
您可以这样做,也可以简单地退出GET过程,因为其中一个KNA1/VBAK SELECT语句都不返回结果,因为所有其他语句都依赖于这些结果。/p>
这样,代码更易于阅读和理解。
此外,最好将IT_VBAP,IT_MAKT和IT_KNA1定义为排序的内部表,因为 在LOOP中从这些表中读取数据。 将它们定义为排序类型(TYPE SORTED TABLE OF),并使用用于读取的键,可以使报表的性能更好。
此致
Mateusz
一周热门 更多>