编制报告

2020-09-04 03:39发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)嗨, 我需要开发一个报告,我需...

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

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


嗨,

我需要开发一个报告,我需要在我自己的表中显示t001w,t001l,cepc,zmm_business table.zmm_business表中的werks,name1(工厂描述),lgort,lgobe,prctr字段,其中包含werks,lgort 首先,我需要从zmm_business表中检索werks,lgort,prctr字段的数据,然后与标准表结合以检索name1和lgobe字段以显示。 实际上我已经开始开发此报告,但是我没有显示name1(工厂描述)字段。请您提供一些指导以开发此报告。

致谢

bhavani

6条回答
我是小鹏鹏啊
2020-09-04 04:07

此程序有很多问题。

1。 TABLES命令已过时。 我猜它是因为SELECT-OPTIONS而被包括在内的,但是您不必为此使用TABLES,您只需声明各个变量即可用作参考。

2。 我全力以赴进行模块化,但是在这种情况下,数据读取被拆分为多个使用全局表的子例程。 在这种情况下,我觉得最好只使用一个主子例程来准备数据。 (当然,理想情况下,我们甚至不应该再使用子例程,而应使用类,但是,考虑到所有事情,那将是我最少的担心。)另外,DIS不是例程的描述性名称,请在以下位置使用更好的名称: 最少。

3。 选择选项S_LGORT和S_PRCTR不在程序中的任何地方使用。 要么删除它们,要么使用它们。

4。 除非您使用的是旧版本,否则请不要使用REUSE_ALV ... FM。 改用SALV(Google it),它所需的代码少得多,并且不需要整个字段目录逻辑。

5。 使用SELECT ... JOIN代替FOR ALL ENTRIES(FAE)。 例如,您正在使用主键字段(LGORT)从T001L读取数据,这是直接的内部联接。

6。 我在这里不了解某些业务逻辑。 WERKS是Z表中的字段。 T001W是工厂主表,其中WERKS是主键。 但您使用的是WHERE LIFNR = IT_T001L-LIFNR。 为什么? 同样,稍后在程序中,您仅从中获取名称字段。 任何查看该报告的人都会认为这是Z表中WERKS的名称。 利润中心的选择甚至更奇怪。 整个国家的所有P/C? 那不是很极端吗?

7。 前进到大循环-我也在这里迷路了。 您希望什么/如何准确显示在此报告上? 在使用FAE选择其他数据的情况下,我们通常会在主表上出现LOOP,就像您的情况一样,但是在从其他表中读取数据时,我们将使用一些WHERE条件。 相反,您拥有的是两个内部表中所有条目的两个无意义的LOOP,它们只是一遍又一遍地设置相同的变量。 使用此代码,您每次都会在表中得到相同的最后一个值。 这有什么意义呢? READ稍好一些(只是缺少sy-subrc检查),但是由于上面的愚蠢的LOOP,您的键值显然不正确。

但是一般来说,FAE在这里似乎是不必要的,您可以使用带有SELECT的一个SELECT直接将数据读取到"最终"表中。 (尽管不确定p/c数据,但是我再次怀疑这里的业务逻辑是不正确的。)

一周热门 更多>