SearchHelp Listbox dialog
来源:互联网 发布:淘宝店铺被屏蔽怎么办 编辑:程序博客网 时间:2024/06/06 13:21
最近有点空闲时间,把搜索帮助 、下拉框 、程序计时的功能整理到了一起做成一个DEMO,供学习和工作使用。其中搜索帮助和下拉框有自动联动的效果,有个搜索帮助的函数和一前使用的不一样,还有计时的功能用到的时候比较少但是比较好玩。话不多说直接上干货。
选择屏幕按钮
源程序:
TYPE-POOLS: vrm,abap.DATA: go_time TYPE REF TO cl_gui_timer.PARAMETERS: p_01 RADIOBUTTON GROUP rg01 DEFAULT 'X' USER-COMMAND rg, p_02 RADIOBUTTON GROUP rg01, p_03 RADIOBUTTON GROUP rg01.SELECTION-SCREEN BEGIN OF BLOCK b1.SELECTION-SCREEN:BEGIN OF LINE.SELECTION-SCREEN: COMMENT 1(18) text-001 MODIF ID m01. "Shipping ConditionsPARAMETERS p_vsbed LIKE likp-vsbed MODIF ID m01.PARAMETERS p_vtext LIKE tvsbt-vtext MODIF ID m01.SELECTION-SCREEN POSITION 40 .SELECTION-SCREEN:END OF LINE.SELECTION-SCREEN END OF BLOCK b1.PARAMETER: p_werks TYPE t001w-werks AS LISTBOX VISIBLE LENGTH 4 MODIF ID m02 USER-COMMAND lb, p_name1 TYPE t001w-name1 MODIF ID m02.CLASS cl_event_handler DEFINITION. PUBLIC SECTION.***方法声明 METHODS : run_handler FOR EVENT finished OF cl_gui_timer.ENDCLASS. "cl_event_handler DEFINITIONCLASS cl_event_handler IMPLEMENTATION.***定时方法 METHOD run_handler. go_time->cancel( ). CALL METHOD cl_gui_cfw=>set_new_ok_code EXPORTING new_code = 'EXIT'. ENDMETHOD. "run_handlerENDCLASS. "cl_event_handler IMPLEMENTATIONDATA: go_handler TYPE REF TO cl_event_handler.INITIALIZATION.AT SELECTION-SCREEN OUTPUT. PERFORM frm_name1. PERFORM frm_modify_screen.AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_vsbed. PERFORM frm_f4_help .AT SELECTION-SCREEN ON p_werks. PERFORM frm_initial_listbox.AT SELECTION-SCREEN .START-OF-SELECTION. IF p_03 = 'X'. CALL SCREEN 9000 STARTING AT 20 10. ENDIF.*&---------------------------------------------------------------------**& Form FRM_F4_HELP*&---------------------------------------------------------------------** text*----------------------------------------------------------------------** --> p1 text* <-- p2 text*----------------------------------------------------------------------*FORM frm_f4_help . DATA: lv_value TYPE char4. DATA: lt_dynpro_values TYPE TABLE OF dynpread, ls_field TYPE dynpread. DATA: lt_field_tab TYPE TABLE OF help_value, ls_field_tab TYPE help_value. DATA: BEGIN OF ls_value, VALUE(100), END OF ls_value, lt_value LIKE TABLE OF ls_value. DATA: lt_tvsbt TYPE TABLE OF tvsbt, ls_tvsbt TYPE tvsbt. CLEAR:lt_value[]. SELECT * INTO TABLE lt_tvsbt FROM tvsbt WHERE spras EQ 'E'. LOOP AT lt_tvsbt INTO ls_tvsbt. CLEAR: ls_value. ls_value-value = ls_tvsbt-vsbed. APPEND ls_value TO lt_value. CLEAR: ls_value. ls_value-value = ls_tvsbt-vtext. APPEND ls_value TO lt_value. ENDLOOP. REFRESH lt_field_tab. ls_field_tab-tabname = 'TVSBT'. ls_field_tab-fieldname = 'VSBED'. ls_field_tab-selectflag = 'X'. APPEND ls_field_tab TO lt_field_tab. ls_field_tab-tabname = 'TVSBT'. ls_field_tab-fieldname = 'VTEXT'. ls_field_tab-selectflag = ' '. APPEND ls_field_tab TO lt_field_tab.* Popup zur Auswahl CALL FUNCTION 'HELP_VALUES_GET_WITH_TABLE' EXPORTING display = ' ' "等于 X 搜索帮助只显示不返回* FIELDNAME = 'VSBED'* TABNAME = 'TVSBT' IMPORTING select_value = lv_value TABLES fields = lt_field_tab valuetab = lt_value EXCEPTIONS field_not_in_ddic = 01 more_then_one_selectfield = 02 no_selectfield = 03. IF NOT lv_value IS INITIAL. p_vsbed = lv_value. ENDIF. READ TABLE lt_tvsbt INTO ls_tvsbt WITH KEY vsbed = p_vsbed. IF sy-subrc = 0. p_vtext = ls_tvsbt-vtext. ENDIF. CLEAR lt_dynpro_values[]. ls_field-fieldname = 'P_VTEXT' . ls_field-fieldvalue = p_vtext. APPEND ls_field TO lt_dynpro_values. CALL FUNCTION 'DYNP_VALUES_UPDATE' EXPORTING dyname = sy-cprog dynumb = sy-dynnr TABLES dynpfields = lt_dynpro_values.ENDFORM.*&---------------------------------------------------------------------**& Form FRM_INITIAL_LISTBOX*&---------------------------------------------------------------------** text*----------------------------------------------------------------------** --> p1 text* <-- p2 text*----------------------------------------------------------------------*FORM frm_initial_listbox . DATA: lt_values TYPE vrm_values, ls_values TYPE vrm_value. DATA: lt_werks TYPE TABLE OF t001w, ls_werks TYPE t001w. SELECT * INTO TABLE lt_werks UP TO 10 ROWS FROM t001w CLIENT SPECIFIED WHERE mandt = sy-mandt. LOOP AT lt_werks INTO ls_werks. ls_values-key = ls_werks-werks. APPEND ls_values TO lt_values. ENDLOOP. CALL FUNCTION 'VRM_SET_VALUES' EXPORTING id = 'P_WERKS' values = lt_values[] EXCEPTIONS id_illegal_name = 1 OTHERS = 2.ENDFORM.*&---------------------------------------------------------------------**& Form FRM_NAM1*&---------------------------------------------------------------------** text*----------------------------------------------------------------------** --> p1 text* <-- p2 text*----------------------------------------------------------------------*FORM frm_name1 . CHECK p_werks IS NOT INITIAL. CLEAR: p_name1. SELECT SINGLE name1 INTO p_name1 FROM t001w WHERE werks = p_werks.ENDFORM.*&---------------------------------------------------------------------**& Form FRM_MODIFY_SCREEN*&---------------------------------------------------------------------** text*----------------------------------------------------------------------** --> p1 text* <-- p2 text*----------------------------------------------------------------------*FORM frm_modify_screen . LOOP AT SCREEN. CASE abap_true. WHEN p_01. IF screen-group1 = 'M02'. screen-active = 0. ELSE. IF screen-name = 'P_VTEXT'. screen-input = 0. ENDIF. ENDIF. WHEN p_02. IF screen-group1 = 'M01'. screen-active = 0. ELSE. IF screen-name = 'P_NAME1'. screen-input = 0. ENDIF. ENDIF. WHEN p_03. IF screen-group1 IS NOT INITIAL. screen-active = 0. ENDIF. WHEN OTHERS. ENDCASE. MODIFY SCREEN. ENDLOOP.ENDFORM.*&---------------------------------------------------------------------**& Module STATUS_9000 OUTPUT*&---------------------------------------------------------------------** text*----------------------------------------------------------------------*MODULE status_9000 OUTPUT.* SET PF-STATUS 'xxxxxxxx'.* SET TITLEBAR 'xxx'.**创建定时刷新对象,类对象,进行固定时间监听 CREATE OBJECT go_time. CREATE OBJECT go_handler. SET HANDLER go_handler->run_handler FOR go_time. go_time->interval = 10. CALL METHOD go_time->run.ENDMODULE.*&---------------------------------------------------------------------**& Module USER_COMMAND_9000 INPUT*&---------------------------------------------------------------------** text*----------------------------------------------------------------------*MODULE user_command_9000 INPUT. CASE sy-ucomm. WHEN 'EXIT'. FREE go_time. FREE go_handler. LEAVE TO SCREEN 0. ENDCASE.ENDMODULE.
0 0
- SearchHelp Listbox dialog
- dialog module (3)Listbox下拉框动态赋值
- listbox
- listbox
- ListBox
- listbox
- Listbox
- listbox
- ListBox
- LISTBOX
- ListBox
- listbox
- Listbox
- listbox
- ListBox
- ListBox
- ListBox
- listbox
- 数据结构(五) 数组和广义表
- LeetCode_1 Two Sum(数据结构)
- 数码管与中断系统知识笔记
- UVA 10534最长上升子序列运用
- D3画个音乐播放器
- SearchHelp Listbox dialog
- request对象和response对象
- 装饰设计模式和继承之间的区别
- 远指针和近指针,巨指针
- AOP--Filter使用,过滤器和拦截器的区别
- Python中rpyc的使用简介
- Mac终端操作Mysql,以及Mysql的操作
- mybatis传入字符串进行比较
- 时间复杂度和空间复杂度