ALV拆分器的排序问题

2020-08-19 00:52发布

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

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


我的ALV报告,双击标题后,将显示订单项。

当我尝试按标题排序时,双击(在标题上),它没有显示正确的订单项(图片)。

表格SORT。

 数据:无类型I值1。

   如果G_GRID_LEFT不是INITIAL。 显示的<<<< SPOS FIELDNAME的值

     清除gt_sort。

     GS_SORT-SPOS = NO。

     GS_SORT-FIELDNAME ='EBELN'。

     GS_SORT-DOWN ='X'。

     将GS_SORT附加到GT_SORT。


   ELSEIF g_grid_right不是INITIAL。  <<<在调试过程中,由于ebeln是关键字段,因此跳过了这一部分

     清除gt_sort。

     GS_SORT-SPOS = NO。

     GS_SORT-FIELDNAME ='EBELN'。

     GS_SORT-DOWN ='X'。

     将GS_SORT附加到GT_SORT。

   万一。


 ENDFORM。

(标题和订单项之间的)采购单据号共享相同的密钥,当右击项目双击时,应显示相关的采购单据项目详细信息(如在将SORT添加到程序中之前所示)

程序: https://www.mediafire.com /file/v0tlqnarkogm1ov/ALV_Program.docx/file

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

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


我的ALV报告,双击标题后,将显示订单项。

当我尝试按标题排序时,双击(在标题上),它没有显示正确的订单项(图片)。

表格SORT。

 数据:无类型I值1。

   如果G_GRID_LEFT不是INITIAL。 显示的<<<< SPOS FIELDNAME的值

     清除gt_sort。

     GS_SORT-SPOS = NO。

     GS_SORT-FIELDNAME ='EBELN'。

     GS_SORT-DOWN ='X'。

     将GS_SORT附加到GT_SORT。


   ELSEIF g_grid_right不是INITIAL。  <<<在调试过程中,由于ebeln是关键字段,因此跳过了这一部分

     清除gt_sort。

     GS_SORT-SPOS = NO。

     GS_SORT-FIELDNAME ='EBELN'。

     GS_SORT-DOWN ='X'。

     将GS_SORT附加到GT_SORT。

   万一。


 ENDFORM。

(标题和订单项之间的)采购单据号共享相同的密钥,当右击项目双击时,应显示相关的采购单据项目详细信息(如在将SORT添加到程序中之前所示)

程序: https://www.mediafire.com /file/v0tlqnarkogm1ov/ALV_Program.docx/file

付费偷看设置
发送
5条回答
梦想连接
1楼-- · 2020-08-19 01:15

您好 AS

问题是您正在从DB再次将数据读取到LT_ZHEADER内部 表。 这样做时,您将失去在ALV中完成的排序,因此读取带有索引的记录会给您不正确的结果。

在您的类中创建一个实例变量,例如AT_ZHEADER(for属性 ),并且在加载程序时仅一次将PO数据读入表中。

对项目执行相同的操作。

这样,您的程序将运行得更快(不会重复多次) 数据库读取),您不必在每种方法中都刷新数据。

删除数据库刷新后,您还应该获得正确的HANDLE_DOUBLE_CLICK方法结果。

希望

致谢,

Mateusz

Baoming ROSE
2楼-- · 2020-08-19 01:13

调试结果显示为检索错误的行(从deb1.png到deb3.png3)

jovirus
3楼-- · 2020-08-19 01:23

为什么使用E_ROW-INDEX访问除左ALV之外的另一个内部表? 正常情况下,读取的行与左ALV中的行不对应。

读取表GT_ZHEADER索引e_row-index INTO LS_ZHEADER。
蓋茨
4楼-- · 2020-08-19 01:20
# p #

感谢您纠正,它现在正在运行。

5楼-- · 2020-08-19 01:36

您好 AS

是的,您无法执行此操作,因为实例变量需要对象实例才能退出。 如果没有对象的实例,则为此对象(在类中)定义的实例变量也将不存在。

但是,根据您的情况,可以定义AT_ZHEADER和AT_ZITEMS

我敦促阅读有关实例和静态属性/方法的信息,例如本文: https://help.sap.com/doc/abapdocu_752_index_htm/7.52/zh-CN/abenclass_attributes.htm

此致

Mateusz

一周热门 更多>