




免费预览已结束,剩余1页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
(一)ALV_GRID添加自定义的按钮和响应命令 2009-04-29 10:37 我们在ALV的工具条上增加一些按钮来增加我们自定义的功能,当然也可以在GUI状态中增加,2种的处理方式是不一样的. 我们通过toolbar事件来增加按钮,然后通过user_command事件来实现我们自定义的功能. 在TOOLBAR事件里,我们把自定义的按钮加到参数e_object的表属性mt_toolbar中可以了.下面是一段示例代码:FORM handle_toolbar USING i_object TYPE REF TO cl_alv_event_toolbar_set. DATA: ls_toolbar TYPE stb_button. CLEAR ls_toolbar. MOVE 3 TO ls_toolbar-butn_type. APPEND ls_toolbar TO i_object-mt_toolbar. CLEAR ls_toolbar. MOVE PER TO ls_toolbar-function. MOVE icon_display_text TO ls_toolbar-icon. MOVE Passenger Info(201) TO ls_toolbar-quickinfo.MOVE Passenger Info(201) TO ls_toolbar-text. MOVE TO ls_toolbar-disabled. APPEND ls_toolbar TO i_object-mt_toolbar. CLEAR ls_toolbar. MOVE EXCH TO ls_toolbar-function. MOVE 2 TO ls_toolbar-butn_type. MOVE icon_calculation TO ls_toolbar-icon. MOVE Payment in other Curencies(202) TO ls_toolbar-quickinfo. MOVE TO ls_toolbar-text. MOVE TO ls_toolbar-disapbled. APPEND ls_toolbar TO i_object-mt_toolbar.ENDFORM.增加自定义按钮的结构如下:FieldDescriptionFUNCTION功能代码BUTN_TYPE按钮类型可用的按钮类型:0 Button(normal)1 Menu and default button2 Menu3 分割符4 Radio button5 Checkbox6 Menu entryICON按钮图标(可选)TEXT按钮文本(可选)QUICKINFO按钮的悬停文本(可选)DISABLED灰化在上面的代码例子里,我们增加了一个常规的按钮和一个含有菜单的按钮.通过把按钮的类型设置为1或者2,我们可以增加一个含有菜单的按钮,在事件menu_button还可以实现子菜单:FORM handle_menu_button USING i_object TYPE REF TO cl_ctmenuI_ucomm TYPE syucomm.CASE i_ucomm.WHEN EXCH.CALL METHOD i_object-add_function EXPORTING Fcode = EU Text = Euro.CALL METHOD i_object-add_function EXPORTING Fcode = TRL Text = Turkish Lira.ENDCASE.ENDFORM.为了实现这些自定义的按钮的功能,我们使用USER_COMMAND事件来处理.FORM handle_user_command USING i_ucomm TYPE syucomm.DATA lt_selected_rows TYPE lvc_t_rowid.DATA ls_selected_row TYPE lvc_s_roid.CALL METHOD gr_alvgrid-get_selected_rows IMPORTING Et_row_no = lt_selected_rows.READ TABLE lt_selected_rows INTO ls_selected_row INDEX 1.If sy-subrc ne 0. MESSAGE S000(su) WITH Select a row(203).ENDIF.CASE i_ucomm.WHEN CAR. READ TABLE gt_list INDEX ls_selected_row-row_id. IF sy-subrc = 0. CALL FUNCTION ZDISPLAY_CARRIER_INFO EXPORTING carrid = gt_list-carrid EXCEPTIONS carrier_not_found = 1 Oters = 2. ENDIF.WHEN EU. READ TABLE gt_list INDEX ls_selected_row-row_id. IF sy-subrc = 0. CALL FUNCTION ZPOPUP_CONV_CURR_ADD_DISPLAY EXPORTING monun = EU Quant = gt_list-paymentsum. ENDIF.ENDCASE.ENDFORM.我们通过方法get_selected_rows来获取选择的行.功能EXCH有2个子功能,所以我们不需要实现它.为了能显示ALV附加的一些功能,可以在ALV实例创建的时候调用set_toolbar_interactive方法. CALL METHOD gr_alv_grid-set_toolbar_interactive.(二)在alv_lst中加入按钮Add Button to ALV Toolbar with REUSE_ALV_LIST_DISPLAY How to add button to ALV toolbar using REUSE_ALV_LIST_DISPLAY? In the program which calls ALV using REUSE_ALV_LIST_DISPLAY, I have to add a new button. I saw the demo program BCALV_GRID_08, which is written using ABAP-Controls. In that example, the button is added using TOOLBAR event of cl_gui_alv_grid. Could you help me to implement the same logic using REUSE_ALV_LIST_DISPLAY parameters. you should copy the STANDARD GUI status from program SAPLKKBL using transaction SE90 -Programming SubObjects- Gui Status. Execute this transaction to get to next screen. select status using checkbox. click on GUI Status - Copy. Enter your Z program name and the name you what for this status - you can keep it as STANDARD to be simple. Then you can edit the new status to add or delete buttons. This will also bring in the standard SAP ALV functionality such as sorting/subtotaling etc. When you call REUSE_ALV_GRID_DISPLAY make sure you pass it the new status name. an example of one of mine: call function REUSE_ALV_GRID_DISPLAY EXPORTING i_callback_program = ZSDBOLST_REPORT i_callback_pf_status_set = STANDARD - i_callback_user_command = USER_COMMAND i_structure_name = I_BOLACT i_grid_title = BOL Action Report(031) is_layout = gs_layout it_fieldcat = gt_fieldcat i_save = A is_variant = v_variant TABLES t_outtab = i_bolact EXCEPTIONS program_error = 1 others = 2. I just tried the same procedure ,but my entire application toolbar disappeared and a lock icon appears next to the application toolbar in my copied pf-status. Could you advice what might have gone wrong ? As identified with the FMs help you can do the following. 1). Using SE80 (I think) you can copy a GUI status from one program to another. It mentions which one in the FMs help. 2). Create a form named like so: Code: * * Form Set_pf_status * Notes: Called by FM REUSE_ALV_GRID_DISPLAY * FORM set_pf_status USING rt_extab TYPE slis_t_extab. SET PF-STATUS ZSTANDARD. ENDFORM. Set_pf_status In the above case the GUI status copied was named ZSTANDARD and adjusted accordingly, adding and removing the desired buttons. A button was added called %DELETE. 3). Create the following report: Code: * * Form User_command * Notes: Called by FM REUSE_ALV_GRID_DISPLAY * Detects whether the icon/button for * Return Tag Deletion has been pressed. If it has then * detect whether any rows have been highlighted and then * set the delete flag. * FORM user_command USING r_ucomm LIKE sy-ucomm rs_selfield TYPE slis_selfield. DATA: li_count TYPE I. IF r_ucomm EQ %DELETE. LOOP AT %g00 WHERE mark EQ X. ADD 1 TO li_count. ENDLOOP. IF li_count GT 0. gc_delete_flag = X. r_ucomm = &F03. Back arraow ELSE. MESSAGE W000 WITH Please highlight the rows to be deleted!. ENDIF. ENDIF. ENDFORM. User_command As Ive added an extra button to indicate which records should be deleted I need to identify a form to be called to process when this button is chosen. Then when you call the ALV function you to specify the following extra details: Code: call function REUSE_ALV_GRID_DISPLAY exporting i_callback_program = gc_repid I_CALLBACK_PF_STATUS_SET = SET_PF_STATUS I_CALLBACK_USER_COMMAND = US
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 烟草项目调研分析
- 中国甲鱼养殖行业市场发展现状及发展趋势与投资分析研究报告(2024-2030)
- 2025年中国泵浦消防车行业发展监测及投资战略研究报告
- 经营厨具项目投资可行性研究分析报告(2024-2030版)
- 2025年中国佛灯行业市场发展前景及发展趋势与投资战略研究报告
- 2025年 云南省工业锅炉G1证考试练习题附答案
- 2025年 继电保护作业人员理论考试练习题附答案
- 中国环卫机械设备行业市场调查研究及发展战略规划报告
- 中国有线数字电视付费频道行业全景评估及投资规划建议报告
- 2025年中国紫菜行业市场深度分析及发展前景预测报告
- 米亚罗-孟屯河谷风景名胜区旅游基础设施建设项目环评报告
- 冲突管理与沟通技巧
- 滁州市第一人民医院医疗暂存间环保设施提升改造项目环境影响报告表
- 籍贯对照表完整版
- 警用无人机考试题库(全真题库)
- 中等职业学校英语课程标准(2020年版)(word精排版)
- 高边坡作业安全专项施工方案与高边坡安全专项施工方案汇编
- 医保业务知识题库
- 等级医院评审中应注意的迎评礼仪
- 吉林省长春市东北师大附中明珠学校2023年物理八年级第二学期期末统考模拟试题含解析
- LD 52-1994气瓶防震圈
评论
0/150
提交评论