同一ALV报表上有多个热点

2020-08-13 18:08发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)您好,有人可以在同一ALV报告中...

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

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


您好,
有人可以在同一ALV报告中为多个热点字段提供一个代码示例吗?

这会很简单,但会有些卡住,
非常感谢

6条回答
zZ12138
2020-08-13 18:43

这就是使用简单ALV(CL_SALV_TABLE)的方式。

使用ALV列表查看器(CL_GUI_ALV_GRID),它可以正常工作。 您可以订阅事件HOTSPOT_CLICK,该事件具有行和列的参数(E_ROW_ID/ES_ROW_NO,E_COLUMN_ID)。 处理事件时,这些参数使您知道按下了哪个单元格。

CL_SALV_TABLE的概述:

  1. 声明类" CL_SALV_EVENTS_TABLE"的事件" LINK_CLICK"的方法(例如on_link_click)
  2. 订阅ALV对象的事件
  3. 将列定义为HOTSPOTS(' ALV对象的超链接)
  4. 调用该事件并将其传递到已声明的方法(on_link_click)时,参数ROW和COLUMN将使您知道已单击了哪个单元格

详细信息:

1。 为类" CL_SALV_EVENTS_TABLE"的事件" LINK_CLICK"声明一个方法(例如on_link_click)

 CLASS lcl_application DEFINITION FINAL。

   公共部分。

     CLASS_METHODS on_link_click事件链接_click of cl_salv_events_table IMPORTING行列。

   " ...

 ENDCLASS。

2。 订阅ALV对象的事件
3。 将列定义为ALV对象的HOTSPOTS("超链接")

 DATA my_alv类型引用至cl_salv_table。

 数据lr_column类型参考cl_salv_column_table。
 数据lr_columns类型参考cl_salv_columns_table。
 数据lr_events类型参考cl_salv_events_table。

 设置ALV
 cl_salv_table =>工厂(正在导入r_salv_table = my_alv
                         更改t_table = my_table。

 " ...

 " 2订阅ALV对象的事件
 lr_events = my_alv-> get_event()。
 设置处理程序lcl_application => on_link_click FOR lr_events。

 " ...

 " 3.将列定义为ALV对象的HOTSPOTS("超链接")
 lr_columns = my_alv-> get_columns()。

 lr_column?= lr_columns-> get_column('MYCOL1')。
 lr_column-> set_cell_type(if_salv_c_cell_type => hotspot)。

 lr_column?= lr_columns-> get_column('MYCOL2')。
 lr_column-> set_cell_type(if_salv_c_cell_type => hotspot)。

 " ...

 "显示ALV
 my_alv-> display()。
 

4。 当事件被调用并传递给已声明的方法(on_link_click)时,参数ROW和COLUMN将使您知道已单击了哪个单元格,而使用ROW则将知道在这种情况下该怎么做。

  CLASS lcl_application

   " ...

   方法on_link_click。
    行
    栏

     READ TABLE my_table ASSIGNING FIELD-SYMBOL()INDEX行。
     将结构的ASSIGN COMPONENT列分配到FIELD-SYMBOL()。

     CASE栏。
       当" MYCOL1"时。
         " ...
       当" MYCOL2"时。
         " ...
     结束。

   终结法。

 ENDCLASS。

(我省略了对异常的处理,以使必要的编码更加明显。)

一周热门 更多>