实现方法
-
代码
CLASS lcl_events_receiver DEFINITION DEFERRED. TABLES: zmm_ap_po_head. TYPES: BEGIN OF ty_zmm_ap_po_head, box TYPE c. INCLUDE STRUCTURE zmm_ap_po_head. TYPES: END OF ty_zmm_ap_po_head. TYPES: BEGIN OF ty_zmm_ap_po_item, box TYPE c. INCLUDE STRUCTURE zmm_ap_po_item. TYPES: END OF ty_zmm_ap_po_item. DATA: sellist TYPE TABLE OF vimsellist, wa_sellist TYPE vimsellist. DATA: go_customer_container TYPE REF TO cl_gui_custom_container, go_split TYPE REF TO cl_gui_splitter_container, go_grid_head TYPE REF TO cl_gui_alv_grid, go_grid_item TYPE REF TO cl_gui_alv_grid. DATA: gt_zmm_ap_po_head TYPE TABLE OF ty_zmm_ap_po_head, gt_zmm_ap_po_item TYPE TABLE OF ty_zmm_ap_po_item. DATA: gr_table_head TYPE REF TO cl_salv_table, gr_table_item TYPE REF TO cl_salv_table. DATA: go_columns TYPE REF TO cl_salv_columns. DATA: gs_layout TYPE lvc_s_layo, "布局 gt_fieldcat TYPE lvc_t_fcat, "字段属性内表 gt_fieldcat_head TYPE lvc_t_fcat, "字段属性内表 gt_fieldcat_item TYPE lvc_t_fcat, "字段属性内表 gs_fieldcat TYPE lvc_s_fcat, gs_ui_func TYPE ui_func, "隐藏工具栏图标 gt_ui_func TYPE ui_functions, gv_col TYPE i. DATA: go_events_receiver TYPE REF TO lcl_events_receiver. CONSTANTS: lc_appid TYPE string VALUE 'dcfa5c7d-cef8-8837-a49f-6f1d92adf792'. *----------------------------------------------------------------------* * CLASS lcl_events_receiver DEFINITION *----------------------------------------------------------------------* * *----------------------------------------------------------------------* CLASS lcl_events_receiver DEFINITION . PUBLIC SECTION. "工具栏事件 METHODS toolbar FOR EVENT toolbar OF cl_gui_alv_grid IMPORTING e_object. "处理命令事件 METHODS user_command FOR EVENT user_command OF cl_gui_alv_grid IMPORTING e_ucomm. "数据改变事件 METHODS data_changed FOR EVENT data_changed OF cl_gui_alv_grid IMPORTING er_data_changed. METHODS data_changed_finished FOR EVENT data_changed_finished OF cl_gui_alv_grid IMPORTING e_modified. "单击事件 METHODS hotspot_click FOR EVENT hotspot_click OF cl_gui_alv_grid IMPORTING e_row_id e_column_id. "双击事件 METHODS double_click FOR EVENT double_click OF cl_gui_alv_grid IMPORTING e_row e_column. ENDCLASS. "LCL_EVENTS_RECEIVER DEFINITION "事件接收类实现 *----------------------------------------------------------------------* * CLASS LCL_EVENTS_RECEIVER IMPLEMENTATION *----------------------------------------------------------------------* * *----------------------------------------------------------------------* CLASS lcl_events_receiver IMPLEMENTATION. "工具栏事件实现 METHOD toolbar. PERFORM frm_toolbar USING e_object. ENDMETHOD. "TOOLBAR "处理命令事件实现 METHOD user_command. PERFORM frm_user_command USING e_ucomm. ENDMETHOD. "USER_COMMAND METHOD data_changed_finished . PERFORM frm_data_changed_finished USING e_modified . ENDMETHOD . "handle_data_changed_finished "数据改变事件实现 METHOD data_changed. * PERFORM frm_data_changed USING er_data_changed. ENDMETHOD. "DATA_CHANGED "单击事件实现 METHOD hotspot_click. * PERFORM frm_hotspot_click USING e_row_id e_column_id. ENDMETHOD. "HOTSPOT_CLICK "双击事件 METHOD double_click. * PERFORM frm_double_click USING e_row e_column. ENDMETHOD. "DOUBLE_CLICK ENDCLASS. "LCL_EVENTS_RECEIVER IMPLEMENTATION DEFINE marco_sellist. wa_sellist-viewfield = &1. wa_sellist-operator = &2. wa_sellist-value = &3. wa_sellist-and_or = &4. append wa_sellist to sellist. clear wa_sellist. END-OF-DEFINITION. DEFINE m_fieldcat. clear gs_fieldcat. gs_fieldcat-fieldname = &1. gs_fieldcat-ref_table = &2. gs_fieldcat-ref_field = &3. gs_fieldcat-scrtext_s = &4. gs_fieldcat-scrtext_m = &4. gs_fieldcat-scrtext_l = &4. gv_col = gv_col + 1. gs_fieldcat-col_pos = gv_col. if &1 eq 'BOX'. if &5 = 'X'. gs_fieldcat-edit = 'X'. endif. gs_fieldcat-checkbox = 'X'. endif. append gs_fieldcat to gt_fieldcat. END-OF-DEFINITION. SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001. PARAMETERS: p_sync TYPE c RADIOBUTTON GROUP g1 USER-COMMAND ucomm DEFAULT'X', p_send TYPE c RADIOBUTTON GROUP g1, p_reset TYPE c RADIOBUTTON GROUP g1, p_query TYPE c RADIOBUTTON GROUP g1. SELECTION-SCREEN END OF BLOCK b1. SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-002. PARAMETERS: p_fm1 TYPE c MODIF ID m1 DEFAULT'X' USER-COMMAND fm.", * p_fm2 TYPE c RADIOBUTTON GROUP g2 MODIF ID m1. SELECTION-SCREEN END OF BLOCK b2. SELECTION-SCREEN BEGIN OF BLOCK b3 WITH FRAME TITLE text-003. SELECT-OPTIONS: s1_ebeln FOR zmm_ap_po_head-ebeln MODIF ID m2, s1_bsart FOR zmm_ap_po_head-bsart MODIF ID m2, s1_bukrs FOR zmm_ap_po_head-bukrs MODIF ID m2, s1_lifnr FOR zmm_ap_po_head-lifnr MODIF ID m2, s1_zterm FOR zmm_ap_po_head-zterm MODIF ID m2, s1_aedat FOR zmm_ap_po_head-aedat MODIF ID m2, s1_ernam FOR zmm_ap_po_head-ernam MODIF ID m2, s1_loekz FOR zmm_ap_po_head-loekz MODIF ID m2, s1_zcdat FOR zmm_ap_po_head-zcdate MODIF ID m2, s1_zctim FOR zmm_ap_po_head-zctime MODIF ID m2, s1_type FOR zmm_ap_po_head-type MODIF ID m2, s1_msg FOR zmm_ap_po_head-message MODIF ID m2, s1_zupmo FOR zmm_ap_po_head-zupmod NO INTERVALS MODIF ID m3, s1_zupfl FOR zmm_ap_po_head-zupflg NO INTERVALS MODIF ID m4. PARAMETERS: p_max TYPE tbmaxsel MODIF ID mi OBLIGATORY DEFAULT 500. SELECTION-SCREEN END OF BLOCK b3. INITIALIZATION. AT SELECTION-SCREEN OUTPUT. LOOP AT SCREEN. IF p_fm1 = 'X'. IF p_query = 'X' AND screen-group1 = 'MI'. screen-active = 1. ELSEIF screen-group1 = 'MI'. screen-active = 0. ENDIF. CASE 'X'. WHEN p_sync. "后台同步 IF screen-group1 = 'M2' OR screen-group1 = 'M3' OR screen-group1 = 'M4'. screen-active = 0. ENDIF. WHEN p_reset. "重置传输标识 WHEN p_send. "手动同步 IF screen-group1 = 'M3'. screen-input = 0. ENDIF. WHEN p_query. "查询 WHEN OTHERS. ENDCASE. * ELSEIF p_fm2 = 'X'. * IF screen-group1 = 'M2' OR screen-group1 = 'M3'. * screen-active = 0. * ELSEIF p_query = 'X' AND screen-group1 = 'MI'. * screen-active = 1. * ELSEIF screen-group1 = 'MI'. * screen-active = 0. * ENDIF. ENDIF. MODIFY SCREEN. ENDLOOP. AT SELECTION-SCREEN. CASE sy-ucomm. WHEN 'UCOMM'. IF p_send = 'X'. s1_zupmo-sign = 'I'. s1_zupmo-option = 'EQ'. s1_zupmo-low = '2'. APPEND s1_zupmo. CLEAR: s1_zupfl,s1_zupfl[]. ELSEIF p_reset = 'X'. CLEAR: s1_zupfl,s1_zupfl[],s1_zupmo,s1_zupmo[]. ELSE. CLEAR: s1_zupmo,s1_zupmo[]. ENDIF. ENDCASE. PERFORM frm_check_author. START-OF-SELECTION. IF p_fm1 = 'X'. "采购订单业务 CASE 'X'. WHEN p_sync. "

博客介绍了相关实现方法,涉及Python开发语言,在Linux服务器环境下,与数据库交互,还提及命令模式。
最低0.47元/天 解锁文章
740

被折叠的 条评论
为什么被折叠?



