ooalv自定义按钮单击双击列编辑切换的事件.docx
- 文档编号:24692754
- 上传时间:2023-05-31
- 格式:DOCX
- 页数:23
- 大小:158.25KB
ooalv自定义按钮单击双击列编辑切换的事件.docx
《ooalv自定义按钮单击双击列编辑切换的事件.docx》由会员分享,可在线阅读,更多相关《ooalv自定义按钮单击双击列编辑切换的事件.docx(23页珍藏版)》请在冰豆网上搜索。
ooalv自定义按钮单击双击列编辑切换的事件
1、需新建屏幕1001并画container:
’CONT1’
2、需新建屏幕1002并画container:
'CONT2'
3、定义屏幕1001、1002的ok_code和逻辑流
4、定义工具栏
程序代码:
1.TABLESt001w.
2.
3.TYPES:
BEGINOFtyp_t001w,
4. werks TYPEt001w—werks,
5. name1 TYPEt001w—name1,
6. werks2TYPEt001w-werks,
7. rowcolor TYPEchar10,
8. zcheckboxTYPEc, ”LAYOUT—CHECBOX = 'ZCHECKBOX'。
9.* zflag TYPEc, ”LAYOUT—BOX_FNAME='ZFLAG'.
10. zicon TYPEchar10,"LAYOUT—ICON ='ZICON' 图标需要显示的
11. ENDOFtyp_t001w.
12.
13.TYPES:
BEGINOFtyp_smf,
14. werks TYPEt001w-werks,
15. name1 TYPEt001w—name1,
16. ENDOFtyp_smf。
17.
18.DATA:
i_t001w TYPETABLEOFtyp_t001w,"””""第一次alv内表
19. i_detailTYPETABLEOFtyp_smf,”””"”单击ALV内表列ZICON显示的明细ALV内表
20. i_smf TYPETABLEOFtyp_smf。
”""”SF内表
21.
22.DATA:
fieldcatTYPElvc_t_fcat,
23. gridTYPEREFTOcl_gui_alv_grid, "alv控件名
24. grid2TYPEREFTOcl_gui_alv_grid, ”alv控件名
25. g_containerTYPEscrfnameVALUE’CONT1’,”重新定义本地容器对象名
26. g_container2TYPEscrfnameVALUE’CONT2',”重新定义本地容器对象名
27. is_layoutTYPElvc_s_layo,
28. ps_layoutTYPElvc_s_layo,
29. g_custom_containerTYPEREFTOcl_gui_custom_container,
30. g_custom_container2TYPEREFTOcl_gui_custom_container。
31.
32.DATA:
ui_functionsTYPEui_functions。
”隐藏按钮的内表
33.*********ALV上事件捕捉类
34.DATA:
gs_toolbarTYPEstb_button. "按钮
35.CLASSalv_event_receiverDEFINITIONDEFERRED."声明类对象
36.*—--—----—-—-—-—--—-—-—-—————--———---—-—-—-—-—————-——---—--—--——---——-—*
37.* CLASSalv_event_receiverDEFINITION
38.*—---——-----———--——-——-—-—-—--——--——-----——-—-—--—————-—-——-—-——-——-—-—*
39.*
40.*---—-—--——-——----————-——--—-——--———-—--—-------—------——--—-—-———————-*
41.CLASSalv_event_receiverDEFINITION. "声明类成员可见性
42. PUBLICSECTION. ”定义相关类成员可以被程序中的所有对象调用
43. CLASS—METHODS:
"静态方法
44. handle_toolbar ”初始化工具栏对象事件,如增加按钮并设定其属性
45. FOREVENTtoolbarOFcl_gui_alv_grid
46. IMPORTINGe_objecte_interactive,
47.
48. handle_menu_button "用于在下拉菜单中增加选项
49. FOREVENTmenu_buttonOFcl_gui_alv_grid
50. IMPORTINGe_objecte_ucomm,
51.
52. handle_user_command "工具栏中的按钮的单击事件
53. FOREVENTuser_commandOFcl_gui_alv_grid
54. IMPORTINGe_ucomm,
55.
56. handle_hotspot_click
57. FOREVENThotspot_clickOFcl_gui_alv_grid "屏幕中的单击事件,可以具体到某行某列,需要设置热点
58. IMPORTING e_row_ide_column_ides_row_no,
59.
60. handle_double_click
61. FOREVENTdouble_clickOFcl_gui_alv_grid "屏幕中的双击事件,可以具体到某行某列,即使设置热点也必须双击
62. IMPORTINGe_rowe_columnes_row_no。
63.ENDCLASS. ”alv_event_receiverDEFINITION
64.*&————-—--—-------—----——-----—--—————---—————---------—--——--—-————--—*
65.*& Class(Implementation) alv_event_receiver
66.*&-—-——----—-—-——--—--—-—-----——--—----------——-——-——-—-—---—---——————-*
67.* Text
68.*---——-——-——----——---—-—-----———--—-——-——-————--—--—---—————————-—---——*
69.CLASSalv_event_receiverIMPLEMENTATION. "实现类方法
70. METHODhandle_toolbar.
71. gs_toolbar-function= 'B_SUM’。
"为按钮分配功能码
72. gs_toolbar-icon = icon_display。
"为按钮分配图标
73. gs_toolbar—text = '总行数'. "为按钮分配文本
74. gs_toolbar-butn_type=’0'。
"定义按钮类型,不填时默认为0
75. APPENDgs_toolbarTOe_object—>mt_toolbar.”添加按钮到工具栏
76.
77. gs_toolbar—function= 'B_PRINT'. "为按钮分配功能码
78. gs_toolbar-icon = icon_import. ”为按钮分配图标
79. gs_toolbar-text = ’转储订单打印'。
”为按钮分配文本
80. gs_toolbar—checked =’X'.
81. gs_toolbar-butn_type='0'。
"定义按钮类型,不填时默认为0
82. APPENDgs_toolbarTOe_object-〉mt_toolbar。
"添加按钮到工具栏
83.
84. gs_toolbar—function= 'B_LIST’。
"为按钮分配功能码
85. gs_toolbar-quickinfo=’自定义下拉菜单'。
86. gs_toolbar—icon = icon_biw_report_view。
”为按钮分配图标
87. gs_toolbar—text = '下拉菜单’。
"为按钮分配文本
88. gs_toolbar-butn_type=’1’。
”定义按钮类型
89. APPENDgs_toolbarTOe_object—>mt_toolbar。
”添加按钮到工具栏
90.
91. gs_toolbar—function= ’B_EDIT’. ”为按钮分配功能码
92. gs_toolbar—icon = icon_change. "为按钮分配图标
93. gs_toolbar—text = '切换编辑状态'。
"为按钮分配文本
94. gs_toolbar—checked ='X'.
95. gs_toolbar-butn_type=’0’. "定义按钮类型,不填时默认为0
96. APPENDgs_toolbarTOe_object-〉mt_toolbar。
”添加按钮到工具栏
97. ENDMETHOD. "handle_toolbar
98. METHODhandle_menu_button。
99. IFe_ucomm='B_LIST’.
100. CALLMETHODe_object->add_function
101. EXPORTING
102. icon =icon_display
103. fcode='B_SUM’
104. text ='显示ALV总数’.
105. ENDIF.
106. ENDMETHOD。
”handle_menu_button
107. METHODhandle_user_command。
108. DATAsumTYPEi。
109. DATAtextTYPEstring.
110. DATA:
lwa_t001wLIKELINEOFi_t001w。
111. DATA:
lwa_smf LIKELINEOFi_smf.
112.
113. CASEe_ucomm.
114. WHEN ’B_SUM'.
115. DESCRIBETABLEi_t001w[]LINESsum.
116. text=sum。
117. CONCATENATE ’当前表格中数据的总行数:
’text INTOtext。
118. MESSAGE text TYPE’I'.”为何消息类型为E时运行时显示A类型,异常终止到初始界面
119. WHEN'B_PRINT'.
120. LOOPATi_t001w INTOlwa_t001wWHERE zcheckbox='X'。
121. lwa_smf-werks=lwa_t001w—werks.
122. lwa_smf—name1=lwa_t001w-name1。
123. APPEND lwa_smfTOi_smf。
124. CLEAR:
lwa_t001w,lwa_smf.
125. ENDLOOP.
126. IFi_smf[]ISINITIAL.
127. MESSAGE'请至少选择一行数据区打印!
'TYPE'E’."E类型消息会转化为A类型,很蛋疼,求破!
128. ELSE.
129. PERFORMfrm_print_data。
"这个没具体写.
130. ENDIF。
131. WHEN’B_EDIT’.
132. IFgrid-〉is_ready_for_input()EQ0.
133. CALLMETHODgrid—〉set_ready_for_input
134. EXPORTING
135. i_ready_for_input=1.
136. ELSE.
137. CALLMETHODgrid->set_ready_for_input
138. EXPORTING
139. i_ready_for_input=0.
140. ENDIF。
141. WHENOTHERS。
142. ENDCASE.
143. ENDMETHOD. "handle_user_command
144. "ALV内表展示处单击事件捕捉,需要设置热点对单击列字段
145. METHODhandle_hotspot_click.
146. DATA:
lwa_t001wLIKELINEOF i_t001w。
147. READTABLEi_t001wINTOlwa_t001wINDEXes_row_no-row_id.”判断行号
148. CASEe_column_id—fieldname.”判断列名
149. WHEN’NAME1'.
150. CALLTRANSACTION’ME51N'ANDSKIPFIRSTSCREEN。
"随便写的
151. WHEN’ZICON’。
"
152. SELECTwerks
153. name1
154. INTOTABLEi_detail
155. FROMt001w
156. WHEREwerks=lwa_t001w-werks2。
157. CLEARlwa_t001w。
158. IFsy—subrcNE0。
159. MESSAGE ’Noresultfinding!
'TYPE’I’.
160. ELSE。
161. CALLSCREEN1002.
162. ENDIF.
163. WHENOTHERS。
164. ENDCASE。
165.* MESSAGEi001(00)WITH'当前行:
’es_row_no—row_id’,航线代码:
’ls_lt001w—werks。
166. ENDMETHOD。
”handle_hotspot_click
167. ”ALV内表展示处双击击事件捕捉,如果设置热点双击不起作用
168. METHODhandle_double_click.
169. DATA:
lwa_t001wLIKELINEOFi_t001w.
170. READTABLEi_t001wINTOlwa_t001wINDEXes_row_no—row_id。
171. IFe_column-fieldname='WERKS’.
172. SETPARAMETERID'AUN’FIELDlwa_t001w-werks.
173. CALLTRANSACTION'VA03’ANDSKIPFIRSTSCREEN。
174. ENDIF。
175. ENDMETHOD. ”handle_double_click
176.
177.ENDCLASS。
"alv_event_receiver
178.START—OF-SELECTION。
179. CALLSCREEN1001。
180.
181.*&---—-—-——-—-———-—--------——-—-—------—-————-——--————--——--—-—---—----*
182.*& Module STATUS_1001 OUTPUT
183.*&———-—-——-———-—-—--——--—————-—-—--——-—--————————-———---———-——--————-——*
184.* text
185.*—------—-—-———-————--—----——----—--———------————---—-—--—---—-—-——-———*
186.MODULEstatus_1001OUTPUT.
187. SETPF—STATUS’T001’.
188.* SETTITLEBAR’xxx'。
189.ENDMODULE. ”STATUS_1001 OUTPUT
190.*&----—--——-———--————-————--—--—-—-—-—--——-—-——---—-—————-—-—----——--——*
191.*& Module USER_COMMAND_1001 INPUT
192.*&—-——--—-—----———-—-——-——-—————-——-—-—--——————--————-—--——----——-—-———*
193.* text
194.*-———-——-——---———----——-————--—--———--——-——--——--—---—-—--—---—--—--—--*
195.MODULEuser_command_1001INPUT。
196. FIELD—SYMBOLS〈field>TYPEtyp_t001w.
197. DATA:
iTYPEiVALUE0.
198. DATAok_codeTYPEsy—ucomm.
199. ok_code=sy—ucomm.
200. CLEARsy—ucomm。
201.
202. CASEok_code.
203. WHEN’BACK’。
204. LEAVETOSCREEN0。
205. WHEN’EDIT'。
206. IFgrid-〉is_ready_for_input()EQ0.
207. CALLMETHODgrid—〉set_ready_for_input
208. EXPORTING
209. i_ready_for_input=1.
210. ELSE。
211. CALLMETHODgrid—〉set_ready_for_input
212. EXPORTING
213. i_ready_for_input=0。
214. ENDIF.
215. WHEN’EXECU'。
216. SELECT*FROMt001w
217. INTOCORRESPONDINGFIELDSOFTABLEi_t001w.
218. LOOPAT i_t001w ASSIGNING〈field〉 .
219. 220. 〈field>-zicon =’@16@’. ”图标 221. ENDLOOP. 222. 223. IFg_custom_containerISINITIAL。 224. PERFORMexclude_tb_functionsCHANGINGui_functions.”隐藏某些按钮 225. PERFORMfrm_layout_set. 226. PERFORMfrm_fieldcat_set。 227. PERFORMalv_show. 228. ELSE。 229. CALLMETHODgrid->refresh_table_display."刷新 230. ENDIF。 231. WHENOTHERS. 232. ENDCASE. 233.ENDMODULE。 "USER_COMMAND_1001 INPUT 234.*&--————-—--—-—-—-——---——-———----——-—--——--——-——---——--——————---———-—-—* 235.*& Form ALV_SHOW 236.*&——--—--—-——-—-----——-——-———-——--—--———-———---——-—-—----———-—
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ooalv 自定义 按钮 单击 双击 编辑 切换 事件
![提示](https://static.bdocx.com/images/bang_tan.gif)