本教程介绍如何在SALV列上添加并处理热点hotspot。在大多数alv报表中,hotspot被用来标示有下钻报表的字段,比如能在销售订单号字段上下钻到VA03(销售订单显示)。

为了添加hotspot,具体需要以下步骤:

1,需要从SALV对象(CL_SALV_TABLE)得到CL_SALV_COLUMNS_TABLE的引用。CL_SALV_COLUMNS_TABLE是关于全部字段(column)的对象,由于hotspot是添加到某个具体的列上,所以还要get_column()方法得到单个列CL_SALV_COLUMN_TABLE的引用,这里用到类的强制转换‘?=’。

2,通过方法set_cell_type()为列设置hotspot

3,如果需要响应hotspot的点击,还需要设定对应事件on_link_click的handler

本实例在销售订单列上添加hotspot,单击hotspot探出信息框。

新的UML流程图如下:添加了两个方法,set_hotspot_vbeln()和on_link_click()

原始代码参照-->SALV教程1-创建简单SALV

添加热点(hotspot)

 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
*&---------------------------------------------------------------------*
*& 一个简单的通过类CL_SALV_TABLE生成SALV的例子
*&---------------------------------------------------------------------*
.
*
*----------------------------------------------------------------------*
*       CLASS lcl_report DEFINITION
*----------------------------------------------------------------------*
.
*
.
*
*   定义SALV输出内表
,
,
,
,
,
.
*
.
*
*   ALV reference
.
*
:
*     抽取数据
,
*
*     生成输出内容
.
*
*$*$*.....CODE_ADD_1 - Begin..................................1..*$*$*
*
* 定义private method来设定SALV不同特性
.
:
.
 
*   设置hotspot
:
.
*
*   Event Handler for HOTSPOT event
:
_table
IMPORTING
            row
.
*$*$*.....CODE_ADD_1 - End....................................1..*$*$*
 
 
*----------------------------------------------------------------------*
*       CLASS lcl_report IMPLEMENTATION
*----------------------------------------------------------------------*
* 类实现
.
*
.
*   抽取数据
vbeln
           erdat
           auart
           kunnr
_vbak
vbak
.
*
 
*.......................................................................
.
*   New ALV instance
*   We are calling the static Factory method which will give back
*   the ALV object reference.
*
* exception class
.
.
(
IMPORTING
_alv
CHANGING
.
.
.
*
*$*$*.....CODE_ADD_2 - Begin..................................2..*$*$*
*
*    In this area we will call the methods which will set the
*      different properties to the ALV
*   调用status设置方法
_status
CHANGING
.
 
*   Set Up the Hotspot & Event Handler
_vbeln
CHANGING
.
*$*$*.....CODE_ADD_2 - End....................................2..*$*$*
*
*   调用Display方法将数据输出到屏幕上
.
*
*
*$*$*.....CODE_ADD_3 - Begin..................................3..*$*$*
*
*    In this area we will implement the methods which are defined in
*      the class definition
* status设置方法实现
.
 
.
*   设置默认的标准状态栏
.
.
 
.
 
.
*
*...HotSpot
,
.
*
*   get Columns object
.
*
*   Get VBELN column
.
.
.
.
*
*   Set the HotSpot for VBELN Column
.
_type
EXPORTING
.
.
.
.
*
*...Events
.
*
*   all events
.
*
*   设定event handler
.
*
*
* Handles the UI on the VBELN (HotSpot)
.
*
.
*
*   取得销售订单
.
.
.
.
*
*$*$*.....CODE_ADD_3 - End....................................3..*$*$*
*
 
.
 
.
 
.
* 抽取数据
.
* 生成SALV
.

运行后,双击热点会弹出信息框。

添加热点(hotspot)

以上。

相关文章:

  • 2022-12-23
  • 2021-08-28
  • 2022-02-02
  • 2022-12-23
  • 2021-06-08
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2022-01-15
  • 2021-12-22
  • 2021-12-28
  • 2021-10-09
  • 2021-12-15
  • 2021-12-29
  • 2021-08-10
相关资源
相似解决方案