采购返利报表问题记录

1. 小计的问题

这个报表需要搞一个小计功能,是按供应商添加的小计功能,这个小计找了好多天的例子,今天终于解决了。

这个小计,不需要代码直接在alv界面就可以手动操作的,但是,也可以在代码中实现【反正fs上这么要求了,就得这么写】

alv界面操作:

  1. 首先,要选中需要进行小计的两个字段【比如我要对这两个字段进行小计】
    

 

   2. 然后点击菜单栏上面的合计【总计旁边的那个就是小计,不过这个小计是需要先总计才能出来的】
    

 

  3. 点击小计,选择供应商编号【要注意,那个小计下边的要勾选上,不然没有用的】

    

 

  4. 点击对号,保存就好了。

代码中实现:

  首先要看一下,自己在  显示alv调用函数 模块调用的bapi是哪个,如果是REUSE_ALV_GRID_DISPLAY_LVC函数,可以点进来看看。

在导入中是有这个字段的:

 

 

双击他的关联类型

 

 

 

再双击进去,我们是可以看到这些字段的:

 

 

这些字段是我们需要用到的,在用这些字段之前,我们需要先创建一个表,来存放这些字段的值,定义的类型,就选择

 

 定义好字段之后,就需要赋值了:

 

 因为我是按照供应商编码进行小计,所以,这个fieldname 的值就是 “lifnr”,其他的字段,可以在表中看到。

最后,在函数调用的里面写上,就可以了:

 

 之所以要加上 :[] 是因为,我定义的是表,不是工作区,所以要加上这个。

2. 表维护,修改字段名称
  1. 首先生成表维护,打开生成表维护的界面

  2. 双击概述屏幕
  

 

   3. 点击元素清单 -> 文本/输入输出模板,找到需要修改的字段,在文本 I/O 字段列中修改要展示的名称,就好了【记得激活】。
    

 

     4. 建议字段还是创建数据元素,尽量不要复用【在字段描述不一样,但是别的属性一样的情况下,尽量不要复用,还是再创建一个数据元素的好】。

3. 给表维护建立事务码

  1. 事务代码还是se93,然后给表维护起一个事务代码,点击创建,选择使用参数的事务
    

 

   2. 填写
    ·

 4. 在选择界面添加按钮,点击按钮跳转到表维护界面

  1. 首先在选择屏幕这一块,写上这两行。【因为我是要两个按钮,所以要写两行】

  

 

   2. 在初始化这儿,写上对应的两条语句

  

 

   3. 在选择屏幕数据检查这儿,写上这段代码,然后,创建对应的那两个子例程。

     

 

  4. 这一步也是很关键的一步,就是调用一个函数,这个函数是  VIEW_MAINTENANCE_CALL,要注意:view_name的值是表名。
  

 

 


  这样就完成了。

5. 做假必输

  由于在选择界面设置了必输,点击按钮跳转的时候也会提示必须输入,但是跳转实际上就不需要输入,所以这里就需要做一个假必输,这个是从网上找到的解决办法:
  原文:https://blog.csdn.net/qq_40977705/article/details/103843131

  这个假必输很简单,就是在选择屏幕事件这一块,输入以下代码:
  

 

   这个要注意,screen_name的值,就是对应的名字,如果输入框是单值的话,直接就写名字就可以,但是如果是范围,就要写名字-low,或者-high,或者两个都写,用or连接。

  界面的显示做好了,但是此时还没完,此时直接运行是不会报错的,然后我们需要加下面这一段代码:
  

  这样就完成了。

6. 动态报表

  1. 由于需求中的月份的范围是不固定的,所以做出来的报表的月份也是不固定的,所以就必须搞成动态的报表。

  2. 首先,需要定义内表【我是有两个字段的,一个是每月的数量,一个是每月的金额,所以就有两个text】
  

  3. 然后要在gt_alv里面定义好1到12月的字段
  

 

  3. 设置默认值【我这边是需要设置默认值1-12】 

  

 

   4. 在get_date的form中赋值
  

 

   5. 最后就是展示的这里
  

 

   然后就完成了。

posted @ 2023-02-20 17:01  阿杰小子  阅读(65)  评论(0)    收藏  举报