云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

网站服务器_云服务器做网站_排行榜

小七 141 0

我为什么用ALV-tree?

要求将多个订单(属于同一个发货方)合并到一个交货单中。ALV-tree似乎是层次结构的最佳选择,Ship-to-Party是父节点,物联网网关,而orders与Ship-to-Party相同,是子节点。如果你想看到一个简单的ALV树报告,你可以参考我之前的文章。在这篇文章中,我试图展示一些小的代码更改是如何增强ALV tree报告的,并使其更加友好。

下面是我所做的一些增强:

展开/折叠,选择/取消选择所有节点。如果未创建传递,请导航到创建的传递/显示错误日志出现错误时有复位按钮

1。用于展开/折叠所有节点和选择/取消选择所有节点的选项

使用以下按钮创建自定义GUI状态(ZSTATUS)

创建ALV树的实例(go\ U树)。此时表(gt\u final1)需要为空。

展开和折叠按钮触发事件后的\u SALV\u功能。

选择和取消选择按钮触发事件添加的\u功能

我们为它们创建了两种方法(以及我们以前创建的ON\u LINK \u CLICK方法)

方法:ON\u LINK \u CLICK for event LINK \u CLICK事件树导入columnname节点\键,

开启\用户\命令用于添加事件\功能cl\ U salv\ U事件导入e\u salv\u函数,

在\u salv\u函数之后重塑事件的\u树cl\ U salv\ U事件正在导入e\u salv\u功能。

我们现在需要注册这些事件

当用户单击选择/取消选择所有按钮时,触发\u user\u命令上的方法。其思想是在所有节点上循环,找到一个复选框,然后选择/取消选择它们。您可以发现,淘客怎么做,在类别CL\u SALV\u ITEM的属性中,checkbox的值为3

当用户单击展开/折叠按钮时,将触发重塑树的方法。

这是订单组合屏幕的外观

注意:要了解如何添加标题以及如何添加节点以提供分层显示,请参阅步骤2第四步:

一旦用户点击折叠按钮,我们可以看到订单数量栏的值0000,如下所示(因为订单数量类型为QUAN,初始值为0000)

为了解决这个问题,我们可以在最终结构中再添加一个字符类型的字段,并使用WRITE语句将Order Qty actual字段中的值传递给character字段。

接下来我们需要隐藏actual Order Qty列,将新character列重命名为'Order Qty',并将其中的值向右对齐。为此,我们可以使用类CL\u SALV\u COLUMNS的以下方法:

SET\u VISIBLE设置\u技术设置中文本设置长文本设置校准

2。导航到已创建的交付并显示错误日志如果未创建交付

为了创建交付,我们使用BAPI\U OUTB\U delivery\U create\U SLS

问题和解决错误日志显示

来自BAPI的返回表

上述BAPI发送回自定义报表的返回表有一堆消息(它是可以创建错误消息和传递的成功消息)。但是,风控大数据,仅仅读取表不可能知道哪个消息对应于哪个顺序。

这是调试中返回表的外观。

为了显示错误日志,风控大数据,我们需要知道错误消息和相应的顺序。为了解决这个问题,我们实现了一个BAdI,并使用了BAPI的Extension out结构。

调试BAPI

在BAPI内部进行了一点调试,很明显正在调用FM SHP\u DELIVERY\u CREATE\u FROM\u SLS来创建交货,这个FM导出了两个表:

LT\u ITEMS\u out-为其创建交货的订单列表

LT\u VBFS-list对于未创建交货的订单,以及错误消息类和编号

实现BAdI和使用扩展输出

我们实现了BAdI,并从BAdI中的LT\u VBFS

代码填写了扩展输出结构:

在报告中,我们现在有错误和订单号。使用扩展输出结构

交货创建方法(仅对上一篇文章中的方法做了一些更改)

如果为订单创建了交货,我们将节点设置为绿色并显示交货。单击交付,我们导航到交付。

如果没有创建交付,我们将节点设置为红色,并提供一个按钮来显示错误日志。

对于点击链接的方法,我们现在需要检查用户点击交付创建按钮的内容,错误日志按钮或交货本身。

报告的工作示例:

订单100000002的第30项出现问题,因此无法交货

步骤1:用户单击交货创建按钮

步骤2:输出。如果您点击Delivery 200000001,大数据发展前景,您将导航到Delivery note(VL03N)

第3步:点击Display Error Log

3。能够在出现错误时重置,并解决订单内的错误

随着上面所做的更改,我试图使此报告更友好一些。下面是更改的摘要(没有任何代码片段-我留给读者作为练习)。

这个按钮不是交付创建,而是称为模拟。单击此按钮时,其名称将更改为Delivery Creation。BAPI创建传递,但我们不执行提交工作,也不在输出中显示传递。如果出现错误,我们仍然会显示错误日志。我们还在Sales Order列的Ship to节点上显示了一个Reset按钮。如果没有错误,就不会有重置按钮

用户现在有两个选择:-

这篇文章的目的是显示,只要几行代码,报告输出似乎比以前的版本好得多。

我希望这篇博客文章可以帮助你一些类似的要求,或者它给你提供了使用ALV树的新想法。

请让我看看我知道在评论中,如果你喜欢的职位,或如果你有一些建议,我可以使报告更方便用户。