ooalv自定义按钮单击双击列编辑切换的事件.docx

上传人:b****2 文档编号:11358532 上传时间:2023-05-31 格式:DOCX 页数:23 大小:158.25KB
下载 相关 举报
ooalv自定义按钮单击双击列编辑切换的事件.docx_第1页
第1页 / 共23页
ooalv自定义按钮单击双击列编辑切换的事件.docx_第2页
第2页 / 共23页
ooalv自定义按钮单击双击列编辑切换的事件.docx_第3页
第3页 / 共23页
ooalv自定义按钮单击双击列编辑切换的事件.docx_第4页
第4页 / 共23页
ooalv自定义按钮单击双击列编辑切换的事件.docx_第5页
第5页 / 共23页
ooalv自定义按钮单击双击列编辑切换的事件.docx_第6页
第6页 / 共23页
ooalv自定义按钮单击双击列编辑切换的事件.docx_第7页
第7页 / 共23页
ooalv自定义按钮单击双击列编辑切换的事件.docx_第8页
第8页 / 共23页
ooalv自定义按钮单击双击列编辑切换的事件.docx_第9页
第9页 / 共23页
ooalv自定义按钮单击双击列编辑切换的事件.docx_第10页
第10页 / 共23页
ooalv自定义按钮单击双击列编辑切换的事件.docx_第11页
第11页 / 共23页
ooalv自定义按钮单击双击列编辑切换的事件.docx_第12页
第12页 / 共23页
ooalv自定义按钮单击双击列编辑切换的事件.docx_第13页
第13页 / 共23页
ooalv自定义按钮单击双击列编辑切换的事件.docx_第14页
第14页 / 共23页
ooalv自定义按钮单击双击列编辑切换的事件.docx_第15页
第15页 / 共23页
ooalv自定义按钮单击双击列编辑切换的事件.docx_第16页
第16页 / 共23页
ooalv自定义按钮单击双击列编辑切换的事件.docx_第17页
第17页 / 共23页
ooalv自定义按钮单击双击列编辑切换的事件.docx_第18页
第18页 / 共23页
ooalv自定义按钮单击双击列编辑切换的事件.docx_第19页
第19页 / 共23页
ooalv自定义按钮单击双击列编辑切换的事件.docx_第20页
第20页 / 共23页
亲,该文档总共23页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

ooalv自定义按钮单击双击列编辑切换的事件.docx

《ooalv自定义按钮单击双击列编辑切换的事件.docx》由会员分享,可在线阅读,更多相关《ooalv自定义按钮单击双击列编辑切换的事件.docx(23页珍藏版)》请在冰点文库上搜索。

ooalv自定义按钮单击双击列编辑切换的事件.docx

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.*&——--—--—-——-—-----——-——-———-——--—--———-———---——-—-—----———-—

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2