当前位置: 首页 > news >正文

【ABAP】 从无到有 新建一个Webdynpro程序

、新建WDA 可从SE80在web dynpro 组件下 创建 并按例以下操作

2、插入窗口

3、相关功能

3-1、展示消息

 

DATA:lo_api_controller  TYPE REF TO if_wd_controller,lo_message_handler TYPE REF TO if_wd_message_manager.lo_api_controller ?= wd_this->wd_get_api( ).lo_message_handler = lo_api_controller->get_message_manager( ).LOOP AT it_return INTO DATA(lw_return).CALL METHOD lo_message_handler->report_t100_messageEXPORTINGmsgid = lw_return-idmsgno = lw_return-numbermsgty = lw_return-typep1    = lw_return-message_v1p2    = lw_return-message_v2p3    = lw_return-message_v3p4    = lw_return-message_v4.ENDLOOP.IF iv_msg IS NOT INITIAL.CALL METHOD lo_message_handler->report_t100_messageEXPORTINGmsgid = '00'msgno = '398'msgty = iv_msgtyp1    = CONV syst_msgv( iv_msg ).ENDIF.

 

3-2弹窗

 

DATA lo_window_manager TYPE REF TO if_wd_window_manager.lo_window_manager = wd_this->wd_get_api( )->get_window_manager( ).wd_this->go_pop_win = lo_window_manager->create_window(window_name            = iv_window_namemessage_display_mode   = if_wd_window=>co_msg_display_mode_allmessage_type           = if_wd_window=>co_msg_type_nonedefault_button         = if_wd_window=>co_button_noneclose_in_any_case      = abap_false).IFiv_width IS NOT INITIAL ANDiv_height IS NOT INITIAL.wd_this->go_pop_win->set_window_size( width = iv_width height = iv_height ).ENDIF.wd_this->go_pop_win->set_window_title( iv_title ).wd_this->go_pop_win->open( ).

4、可编辑或只读等的操作

  DATA lo_nd_available TYPE REF TO if_wd_context_node.DATA lo_el_available TYPE REF TO if_wd_context_element.DATA ls_available TYPE wd_this->element_available.DATA lo_button TYPE REF TO cl_wd_toolbar_button.DATA view      TYPE REF TO if_wd_view.DATA lo_nd_detail TYPE REF TO if_wd_context_node.DATA lo_el_detail TYPE REF TO if_wd_context_element.DATA ls_detail TYPE wd_this->element_fpo_alv.DATA lv_text TYPE string.****
**      edit (绑定选择屏幕文本)    ‘'X'.   "可编辑
**      on1  (绑定删除)            'X'.   "可使用
**      on2  (绑定编辑/保存/提交)  'X'.   "可使用
**      on3  (绑定过账)            'X'.   "可使用
****lo_nd_detail = wd_context->get_child_node( name = wd_this->wdctx_fpo_alv ).lo_el_detail = lo_nd_detail->get_element( ).view ?= wd_this->wd_get_api( ).lo_button ?= view->get_element( id = 'BTN_EDIT').lo_nd_available = wd_context->get_child_node( name = wd_this->wdctx_available ).lo_el_available = lo_nd_available->get_element( ).CASEl_way .WHEN '01'."第一次进入屏幕IF wd_comp_controller->gv_ztype = 'C'."新建ls_available-edit = ''.ls_available-on1 = 'X'.ls_available-on2 = 'X'.ls_available-on3 = ' '.ELSE.CASEwd_comp_controller->gw_zsmm0332-ztjzt.WHEN 'A'."新建ls_available-edit = 'X'.ls_available-on1 = 'X'.ls_available-on2 = 'X'.ls_available-on3 = ' '.WHEN 'B'."提交ls_available-edit = 'X'.ls_available-on1 = ' '.ls_available-on2 = ' '.ls_available-on3 = ' '.WHEN 'C'."过账关闭ls_available-edit = 'X'.ls_available-on1 = ' '.ls_available-on2 = ' '.ls_available-on3 = 'X'.WHEN OTHERS.ENDCASE.ENDIF.wd_comp_controller->gv_read = 'X'.WHEN '02' ."编辑按钮IFwd_comp_controller->gv_read = 'X'.lo_button->set_image_source('~Icon/Edit').lo_button->set_text( wd_assist->if_wd_component_assistance~get_text( key = 'A02') ).lo_button->set_tooltip( wd_assist->if_wd_component_assistance~get_text( key = 'A02') ).CASEwd_comp_controller->gw_zsmm0332-ztjzt.WHEN 'A'."新建ls_available-edit = ' '.ls_available-on1 = 'X'.ls_available-on2 = 'X'.ls_available-on3 = ' '.WHEN 'B'."提交ls_available-edit = 'X'.ls_available-on1 = ' '.ls_available-on2 = ' '.ls_available-on3 = ' '.WHEN 'C'."过账关闭ls_available-edit = ' '.ls_available-on1 = ' '.ls_available-on2 = ' '.ls_available-on3 = 'X'.WHEN OTHERS.ls_available-edit = 'X'.ls_available-on1 = ' '.ls_available-on2 = 'X'.ls_available-on3 = ' '.ENDCASE.wd_comp_controller->gv_read = ' '.ELSE.lo_button->set_image_source('~Icon/Display').lo_button->set_text( wd_assist->if_wd_component_assistance~get_text( key = 'A01' ) ).lo_button->set_tooltip( wd_assist->if_wd_component_assistance~get_text( key = 'A01' ) ).CASE wd_comp_controller->gw_zsmm0332-ztjzt.WHEN 'A'.ls_available-edit = 'X'.ls_available-on1 = 'X'.ls_available-on2 = 'X'.ls_available-on3 = ' '.WHEN 'B'.ls_available-edit = 'X'.ls_available-on1 = ' '.ls_available-on2 = ' '.ls_available-on3 = ' '.WHEN 'C'.ls_available-edit = ' '.ls_available-on1 = ' '.ls_available-on2 = ' '.ls_available-on3 = 'X'.WHEN OTHERS.ls_available-edit = ' '.ls_available-on1 = 'X'.ls_available-on2 = 'X'.ls_available-on3 = ' '.ENDCASE.wd_comp_controller->gv_read = 'X'.ENDIF.WHEN '03' ."保存ls_available-edit = 'X'.ls_available-on1 = 'X'.ls_available-on2 = 'X'.ls_available-on3 = ' '.wd_comp_controller->gv_read = 'X'.WHEN '04'."提交ls_available-edit = 'X'.ls_available-on1 = ' '.ls_available-on2 = ' '.ls_available-on3 = ' '.wd_comp_controller->gv_read = 'X'.WHEN '05'. "过账ls_available-edit = 'X'.ls_available-on1 = ' '.ls_available-on2 = ' '.ls_available-on3 = ' '.wd_comp_controller->gv_read = 'X'.WHEN OTHERS.ENDCASE.lo_el_available->set_static_attributes( static_attributes = ls_available ).
1、搜索帮助
1、搜索帮助
***<!----------------------------------- F4输入结构TYPES:BEGIN OF lty_stru_input,werks TYPE werks_d,lgort TYPE lgort_d,matnr TYPE matnr,lifnr TYPE lifnr,
*          charg  TYPE charg_d,
*          field1 TYPE string,END OF lty_stru_input.
*        ls_search_input TYPE lty_stru_input.
***<!----------------------------------- F4输出结构TYPES: BEGIN OF lty_stru_list,werks TYPE werks_d,lgort TYPE lgort_d,matnr TYPE matnr,lifnr TYPE lifnr,charg TYPE charg_d,clabs TYPE zremnum,
*           column1 TYPE string,END OF lty_stru_list.
*         lt_select_list TYPE STANDARD TABLE OF lty_stru_list.
***<!------------------------------------批次返回结构DATA:BEGIN OF lw_batch,werks TYPE werks_d,lgort TYPE lgort_d,matnr TYPE matnr,charg TYPE charg_d,clabs TYPE zremnum,END OF lw_batch,lt_batch LIKE TABLE OF lw_batch.
DATA:lv_msg  TYPE bapi_msg,lv_type TYPE    bapi_mtype.
***<!----------------------------------- F4所需结构DATA: ls_text         TYPE wdr_name_value,lt_label_texts  TYPE wdr_name_value_list,lt_column_texts TYPE wdr_name_value_list,lv_window_title TYPE string,lv_table_header TYPE string,ls_search_input TYPE lty_stru_input,lw_select_list  TYPE lty_stru_list,lt_select_list  TYPE STANDARD TABLE OF lty_stru_list..
FIELD-SYMBOLS: <ls_query_params> TYPE lty_stru_input,<ls_selection>    TYPE lty_stru_list.
DATA:lo_nd_fpo_alv TYPE REF TO if_wd_context_node,lo_el_fpo_alv TYPE REF TO if_wd_context_element.
DATA:lo_nd_fpo_sel TYPE REF TO if_wd_context_node,lo_el_fpo_sel TYPE REF TO if_wd_context_element.DATA lt_select_ovs TYPE wd_this->elements_charg_f4.DATA ls_fpo_sel TYPE wd_this->element_fpo_sel.
DATA:ls_alv TYPE wd_this->element_fpo_alv,lt_alv TYPE wd_this->elements_fpo_alv.
DATA:lv_lifnr TYPE wd_this->element_fpo_sel-lifnr,lv_lgort TYPE wd_this->element_fpo_sel-lgort,lv_werks TYPE wd_this->element_fpo_sel-werks.
lo_nd_fpo_alv = wd_context->get_child_node( name = wd_this->wdctx_fpo_alv ).lo_nd_fpo_alv->get_static_attributes_table( IMPORTING table = lt_alv ).
lo_nd_fpo_sel = wd_context->get_child_node( name = wd_this->wdctx_fpo_sel ).lo_el_fpo_sel = lo_nd_fpo_sel->get_element( ).
CLEAR:lv_lifnr,lv_werks,lv_lgort.lo_el_fpo_sel->get_attribute( EXPORTING name = `LIFNR` IMPORTING value = lv_lifnr ).lo_el_fpo_sel->get_attribute( EXPORTING name = `LGORT` IMPORTING value = lv_lgort ).lo_el_fpo_sel->get_attribute( EXPORTING name = `WERKS` IMPORTING value = lv_werks ).
CASEovs_callback_object->phase_indicator.
WHEN if_wd_ovs=>co_phase_0.     "实例化F4窗口lt_label_texts[]  = VALUE #( ( name = 'WERKS' value = wd_assist->if_wd_component_assistance~get_text( key = 'M06' ) )( name = 'LGORT' value = wd_assist->if_wd_component_assistance~get_text( key = 'M10' ) )( name = 'MATNR' value = wd_assist->if_wd_component_assistance~get_text( key = 'M03' ) )( name = 'LIFNR' value = wd_assist->if_wd_component_assistance~get_text( key = 'V01' ) )).lt_column_texts[] = VALUE #( ( name = 'WERKS' value = wd_assist->if_wd_component_assistance~get_text( key = 'M06' ) )( name = 'LGORT' value = wd_assist->if_wd_component_assistance~get_text( key = 'M10' ) )( name = 'MATNR' value = wd_assist->if_wd_component_assistance~get_text( key = 'M03' ) )( name = 'LIFNR' value = wd_assist->if_wd_component_assistance~get_text( key = 'V01' ) )( name = 'CHARG' value = wd_assist->if_wd_component_assistance~get_text( key = 'Y07' ) )( name = 'CLABS' value = wd_assist->if_wd_component_assistance~get_text( key = '017' ) )).
ovs_callback_object->set_configuration( label_texts  = lt_label_textscolumn_texts = lt_column_textswindow_title = lv_window_titletable_header = lv_table_header).
WHEN if_wd_ovs=>co_phase_1.    "实例化搜索框
*      ovs_callback_object->context_element->get_static_attributes( IMPORTING static_attributes = ls_search_input ).
*      ovs_callback_object->set_input_structure( input = ls_search_input ).
WHEN if_wd_ovs=>co_phase_2.    "实例化取值
DATA(lv_index) = ovs_callback_object->context_element->get_index( ).
*   获取 RFC 名字SELECT SINGLE * INTO @DATA(lw_zrfc) FROM zrfc WHERE to_system = 'ERP' AND function  = ''.
READ TABLE lt_alv INTO DATA(lw_alv) INDEX lv_index.IF sy-subrc = 0.
CALL FUNCTION 'ZRFC_SNC_ERP_RTV_GET_CHARG' DESTINATION lw_zrfc-rfc_nameEXPORTINGi_werks            = lv_werksi_lgort            = lv_lgorti_matnr            = lw_alv-matnri_lifnr            = lv_lifnrIMPORTINGe_msg              = lv_msge_type             = lv_typeTABLESt_batch            = lt_batchEXCEPTIONSrfc_external_abort = 1OTHERS             = 2.LOOP AT lt_batch INTO lw_batch.MOVE-CORRESPONDING lw_batch TO lw_select_list.lw_select_list-lifnr = lv_lifnr.APPEND lw_select_list TO lt_select_list.CLEAR:lw_batch,lw_select_list."lv_lifnr,lv_werks,lv_lgort.ENDLOOP.
ENDIF.
ovs_callback_object->set_output_table( output = lt_select_list ).
WHEN if_wd_ovs=>co_phase_3."将值塞入ALV中
*   apply result
IF ovs_callback_object->selection IS NOT BOUND.
******** TODO exception handlingENDIF.
ASSIGN ovs_callback_object->selection->* TO <ls_selection>.IF <ls_selection> IS ASSIGNED.ovs_callback_object->context_element->set_attribute(name  = `CHARG`value = <ls_selection>-charg  ).
*        ovs_callback_object->context_element->set_attribute(
*                               name  = `LGOBE`
*                               value = <ls_selection>-lgobe ).
ENDIF.ENDCASE.
2、ALV相关
*<!-----组件DATA: lo_cmp_usage           TYPE REF TO if_wd_component_usage,lo_interfacecontroller TYPE REF TO iwci_salv_wd_table,lo_nd_alv              TYPE REF TO if_wd_context_node,lo_config_table        TYPE REF TO cl_salv_wd_config_table,lo_column_settings     TYPE REF TO if_salv_wd_column_settings,lo_field_settings      TYPE REF TO if_salv_wd_field_settings,lo_functions_set       TYPE REF TO if_salv_wd_function_settings.
DATA:lr_dorpdown TYPE REF TO cl_salv_wd_uie_dropdown_by_key.
lo_cmp_usage =   wd_this->wd_cpuse_main_alv( ).IFlo_cmp_usage->has_active_component( ) IS INITIAL.lo_cmp_usage->create_component( ).ENDIF.
*<!-----界面lo_interfacecontroller =   wd_this->wd_cpifc_main_alv( ).
*<!-----获取nodelo_nd_alv = wd_context->get_child_node( name = wd_this->wdctx_main_alv ).
*<!-----alv与node绑定lo_interfacecontroller->set_data( r_node_data = lo_nd_alv ).
*<!-----获取节点组lo_config_table = lo_interfacecontroller->get_model( ).
*<!-----隐藏打印版本lo_config_table->if_salv_wd_std_functions~set_pdf_allowed( '').
*<!-----所有字段100%显示
*  lo_config_table->if_salv_wd_table_settings~set_grid_mode( '00').
*  lo_config_table->if_salv_wd_table_settings~set_visible_row_count( 20).
*  lo_config_table->if_salv_wd_table_settings~set_scrollable_col_count( '10')."滚动列
*  lo_config_table->if_salv_wd_table_settings~set_width( '100%' )."设置宽度
*  lo_config_table->if_salv_wd_table_settings~set_selection_mode( value = cl_wd_table=>e_selection_mode-multi_no_lead ).
*  lo_config_table->if_salv_wd_table_settings~set_cell_action_event_enabled( value = abap_true ).
*<!-----设置行样式lo_column_settings ?= lo_config_table.lo_field_settings ?= lo_config_table.lo_functions_set ?= lo_config_table.
lo_config_table->if_salv_wd_table_settings~set_read_only( abap_false ).lo_config_table->if_salv_wd_table_settings~set_cell_action_event_enabled( abap_true ).
*
*  lo_config_table->if_salv_wd_table_settings~set_selection_mode( '08').
*  lo_config_table->if_salv_wd_table_settings~set_scrollable_col_count( '15').
*  lo_config_table->if_salv_wd_table_settings~set_visible_row_count( '10').
lo_config_table->if_salv_wd_std_functions~set_edit_check_available( abap_false ).lo_config_table->if_salv_wd_std_functions~set_edit_append_row_allowed( abap_false ).lo_config_table->if_salv_wd_std_functions~set_edit_insert_row_allowed( abap_false ).lo_config_table->if_salv_wd_std_functions~set_edit_delete_row_allowed( abap_false ).
*<!-----Alv列设置DATA: lt_columns       TYPE salv_wd_t_column_ref,lr_column_header TYPE REF TO cl_salv_wd_column_header,lr_link          TYPE REF TO cl_salv_wd_uie_link_to_action,lr_drop_bykey    TYPE REF TO cl_salv_wd_uie_dropdown_by_key,lr_function      TYPE REF TO cl_salv_wd_function,lr_button        TYPE REF TO cl_salv_wd_fe_button,lo_input         TYPE REF TO cl_salv_wd_uie_input_field.
lt_columns = lo_column_settings->get_columns( ).LOOP AT lt_columns INTO DATA(ls_column).lr_column_header = ls_column-r_column->get_header( ).lr_column_header->set_ddic_binding_field( if_salv_wd_c_column_settings=>ddic_bind_none ).
CREATE OBJECTlo_input EXPORTING value_fieldname = ls_column-id.
CASEls_column-id.WHEN 'ZREFN'.lr_column_header->set_text( value = wd_assist->if_wd_component_assistance~get_text('M01') ).
CREATE OBJECTlo_input EXPORTING value_fieldname = ls_column-id.lr_link = NEW#( ).CREATE OBJECTlr_link.lr_link->set_text_fieldname( ls_column-id ).ls_column-r_column->set_cell_editor( lr_link ).
WHEN 'ZREPO'.lr_column_header->set_text( value = wd_assist->if_wd_component_assistance~get_text('M02') ).lo_input->set_read_only( abap_false ).WHEN 'MATNR'.lr_column_header->set_text( value = wd_assist->if_wd_component_assistance~get_text('M03') ).WHEN 'MENGE'.lr_column_header->set_text( value = wd_assist->if_wd_component_assistance~get_text('M04') ).lo_input->set_length( 4).WHEN 'WERKS'.lr_column_header->set_text( value = wd_assist->if_wd_component_assistance~get_text('M06') ).WHEN 'NAME1'.lr_column_header->set_text( value = wd_assist->if_wd_component_assistance~get_text('M07') ).WHEN 'YCK_MENGE'.lr_column_header->set_text( value = wd_assist->if_wd_component_assistance~get_text('M08') ).lo_input->set_length( 4).WHEN 'ZCDATE'.lr_column_header->set_text( value = wd_assist->if_wd_component_assistance~get_text('M09') ).WHEN 'LGORT'.lr_column_header->set_text( value = wd_assist->if_wd_component_assistance~get_text('M10') ).WHEN 'CHARG'.lr_column_header->set_text( value = wd_assist->if_wd_component_assistance~get_text('M11') ).WHEN 'ZTJZT'.lr_column_header->set_text( value = wd_assist->if_wd_component_assistance~get_text('M12') ).WHEN 'ZRVTYY'.lr_column_header->set_text( value = wd_assist->if_wd_component_assistance~get_text('M13') ).lo_input->set_length( 8).WHEN 'ZRTVYY_N'.lr_column_header->set_text( value = wd_assist->if_wd_component_assistance~get_text('M14') ).lo_input->set_length( 8).WHEN 'ZCNAME'.lr_column_header->set_text( value = wd_assist->if_wd_component_assistance~get_text('M15') ).WHEN 'TELENUM'.lr_column_header->set_text( value = wd_assist->if_wd_component_assistance~get_text('M16') ).WHEN 'ZBEIZH'.lr_column_header->set_text( value = wd_assist->if_wd_component_assistance~get_text('M17') ).WHEN OTHERS.lo_column_settings->delete_column( ls_column-id ).ENDCASE.
ENDLOOP.
*<!-----设置按钮lo_functions_set ?= lo_config_table.lr_function = lo_functions_set->create_function( 'SEARCH').CREATE OBJECTlr_button.lr_button->set_text( value = wd_assist->if_wd_component_assistance~get_text('B10') )."查询lr_function->set_editor( lr_button ).
lo_functions_set ?= lo_config_table.lr_function = lo_functions_set->create_function( 'ZADD' ).CREATE OBJECT lr_button.lr_button->set_text( value = wd_assist->if_wd_component_assistance~get_text('B11') )."新建退货lr_function->set_editor( lr_button ).
3、绑定搜索帮助DATA: lo_cp_usage  TYPE REF TO if_wd_component_usage,lo_select_op TYPE REF TO iwci_wdr_select_options,lt_rangtable TYPE REF TO data.DATA: lt_range_table TYPE REF TO data.DATA: lr_s1 TYPE RANGE OF bu_partner  .DATA  lw_s1 LIKE LINE OF lr_s1.DATA: ev_cp_partner  TYPE bu_partner.DATA: ev_partner  TYPE bu_partner.DATA: ev_partner_guid   TYPE bu_partner_guid.FIELD-SYMBOLS <fs_data> TYPE table.DATA: lt_value_set TYPE wdy_key_value_table.
lo_cp_usage = wd_this->wd_cpuse_sel_opt( ).IFlo_cp_usage->has_active_component( ) IS INITIAL.lo_cp_usage->create_component( ).ENDIF.
lo_select_op = wd_this->wd_cpifc_sel_opt( ).
* 设定到全局参数wd_this->go_handler = lo_select_op->init_selection_screen( ).wd_this->go_handler->set_global_options(i_display_btn_cancel  = abap_falsei_display_btn_check   = abap_falsei_display_btn_reset   = abap_falsei_display_btn_execute = abap_false ).
DEFINE set_opt.
lt_rangtable = wd_this->go_handler->create_range_table( i_typename = &1).wd_this->go_handler->add_selection_field(i_id              = &2it_result         = lt_rangtablei_read_only       = &3"只读i_as_dropdown     = &4   "下拉框i_description     = &5"描述i_obligatory      = &6   "必填i_no_extension    = &7"sel_opt -no_extensioni_no_intervals    = &7   "sel-opt -no_intervalsi_value_help_type = &8"F4类型i_value_help_id   = &9   "F4ID).
END-OF-DEFINITION.
DATA: lv_text TYPE string.lv_text = wd_assist->if_wd_component_assistance~get_text( 'M15')."创建人set_opt 'LIFNR'     'S_1'   'X'   ' '   lv_text    'X'   'X'   ' '   ' '.
lv_text = wd_assist->if_wd_component_assistance~get_text( 'M06' )."工厂set_opt 'WERKS_D''S_2'' '' 'lv_text    'X'' ''OVR''ON_OVS'." .
lv_text = wd_assist->if_wd_component_assistance~get_text( 'M01' )."退货申请单号set_opt 'ZEREFN''S_3'' '' 'lv_text    ' '' '' '' '.
lv_text = wd_assist->if_wd_component_assistance~get_text( 'M03')."物料set_opt 'MATNR'     'S_4'   ' '   ' '   lv_text    ' '   ' '   ' '   ' '.
lv_text = wd_assist->if_wd_component_assistance~get_text( 'M09' )."创建日期set_opt 'ERDAT''S_5'' '' 'lv_text    ' '' '' '' '." ."' '' '.
**--------------------------------------------------------------------*
**` 默认值
**--------------------------------------------------------------------*FIELD-SYMBOLS: <it_range_table> TYPE STANDARD TABLE.
lt_range_table = wd_this->go_handler->get_range_table_of_sel_field( i_id =  'S_1').ASSIGN lt_range_table->* TO <it_range_table> .CLEAR <it_range_table>.
**--------------------------------------------------------------------*
**   初始供应商
**--------------------------------------------------------------------*"获取登录帐号所对应的供应商编号CALL FUNCTION 'ZBUPA_NUMBERS_GET'EXPORTINGiv_uname         = sy-unameIMPORTINGev_cp_partner    = ev_cp_partnerev_partner       = ev_partnerev_partner_guid  = ev_partner_guidEXCEPTIONSno_cp_username   = 1no_business_part = 2.
IF ev_partner IS NOT INITIAL.lt_range_table = wd_this->go_handler->get_range_table_of_sel_field( i_id =  'S_1' ).ASSIGN lt_range_table->* TO <it_range_table> .CLEAR <it_range_table>.lw_s1-sign   = 'I' .lw_s1-option = 'EQ' .lw_s1-low    = ev_partner.APPEND lw_s1 TO <it_range_table> .wd_this->go_handler->set_range_table_of_sel_field(i_id = 'S_1'it_range_table = lt_range_table).ENDIF.
*
4、获取选择屏幕的值 查询并绑定DATA:lo_range TYPE REFTOdata.FIELD-SYMBOLS: <fs_range>TYPE table.
DATA: lt_alv    TYPE wd_this->elements_main_alv,lw_alv    TYPE wd_this->element_main_alv,lo_nd_alv TYPE REFTOif_wd_context_node.
*报错误消息的方法定义DATA: lo_current_controller TYPE REFTOif_wd_controller,lo_message_manager    TYPE REFTOif_wd_message_manager.
DATA:lt_lifnr TYPE TABLEOFzranges,lt_werks TYPE TABLEOFzranges,lt_zrefn TYPE TABLEOFzranges,lt_matnr TYPE TABLEOFzranges,lt_erdat TYPE TABLEOFzranges,lv_text  TYPE string.
lo_range =wd_this->go_handler->get_range_table_of_sel_field( i_id ='S_1')."取当前供应商ASSIGN lo_range->* TO <fs_range>.MOVE-CORRESPONDING <fs_range> TO lt_lifnr.
lo_range = wd_this->go_handler->get_range_table_of_sel_field( i_id = 'S_2' )."取当前工厂ASSIGN lo_range->*TO<fs_range>.MOVE-CORRESPONDING<fs_range>TOlt_werks .
lo_range =wd_this->go_handler->get_range_table_of_sel_field( i_id ='S_3')."取退货申请号ASSIGN lo_range->* TO <fs_range>.MOVE-CORRESPONDING <fs_range> TO lt_zrefn .
lo_range = wd_this->go_handler->get_range_table_of_sel_field( i_id = 'S_4' )."取物料ASSIGN lo_range->*TO<fs_range>.MOVE-CORRESPONDING<fs_range>TOlt_matnr .
lo_range =wd_this->go_handler->get_range_table_of_sel_field( i_id ='S_5')."取当前创建日期ASSIGN lo_range->* TO <fs_range>.MOVE-CORRESPONDING <fs_range> TO lt_erdat.
IF lt_werks  IS INITIAL OR lt_lifnr  IS INITIAL.lv_text = wd_assist->if_wd_component_assistance~get_text( 'E03' ).         "'请检查 工厂/供应商 字段必填!!wd_comp_controller->show_message( iv_msgty = 'E' iv_msg = lv_text ).ELSE.
*   获取 RFC 名字SELECT SINGLE * INTO @DATA(lw_zrfc) FROM zrfc WHERE to_system = 'ERP' AND function  = ''.
CALL FUNCTION 'ZRFC_SNC_ERP_HANDLE_RTV_SEARCH' DESTINATION lw_zrfc-rfc_nameEXPORTINGiv_langu  = sy-languTABLESir_zafnam = lt_lifnrir_werks  = lt_werksir_zrefn  = lt_zrefnir_matnr  = lt_matnrir_zcdate = lt_erdatet_data   = lt_alv.
SORT lt_alv BY zrefn DESCENDING.
*    LOOP AT lt_alv assigning field-symbol(lv).
*
*    ENDLOOP.
IF lt_alv IS NOT INITIAL.lo_nd_alv = wd_context->get_child_node( name = wd_this->wdctx_main_alv ).  "'查询成功'.lo_nd_alv->bind_table( new_items = lt_alv set_initial_elements = abap_true ).ELSE.lv_text = wd_assist->if_wd_component_assistance~get_text( 'E01' ).         "'查询失败:当前无符合条件的数据'.wd_comp_controller->show_message( iv_msgty = 'E' iv_msg = lv_text ).ENDIF.ENDIF.
5、获取选择的行
复制  DATA:lo_nd_receiver TYPE REF TO if_wd_context_node,lo_el_receiver TYPE REF TO if_wd_context_element.DATA:lt_rows   TYPE wdr_context_element_set,lo_nd_alv TYPE REF TO if_wd_context_node,lt_alv    TYPE wd_this->elements_fpo_alv, "ALV的内表lw_alv    LIKE LINE OF lt_alv.
DATA:lv_tabix TYPE sy-tabix.
***<!---------------------获取整个内表lo_nd_receiver = wd_context->get_child_node( name = wd_this->wdctx_fpo_alv ).lo_nd_receiver->get_static_attributes_table( IMPORTING table = lt_alv ).
***<!---------------------获取选中行数据lo_nd_alv = wd_context->get_child_node( name = wd_this->wdctx_fpo_alv ).lt_rows   = lo_nd_alv->get_selected_elements( including_lead_selection = abap_true ).
LOOP AT lt_rows INTO DATA(lw_rows).lv_tabix = sy-tabix.CALL METHOD lw_rows->get_static_attributes( IMPORTING static_attributes = lw_alv ).
DELETE lt_alv WHERE zrefn = lw_alv-zrefn AND zrepo = lw_alv-zrepo.
*    lo_nd_receiver = wd_context->get_child_node( name = wd_this->wdctx_fpo_alv ).
*    lo_el_receiver = lo_nd_receiver->get_element( lo_nd_receiver->get_lead_selection_index( ) ).
*    lo_nd_receiver->remove_element( lo_el_receiver ).
ENDLOOP.
***<!-----------------重新绑定lo_nd_receiver = wd_context->get_child_node( name = wd_this->wdctx_fpo_alv ).  "'查询成功'.lo_nd_receiver->bind_table( new_items = lt_alv set_initial_elements = abap_true ).
*  lo_nd_receiver = wd_context->get_child_node( name = wd_this->wdctx_fpo_alv ).
*  lo_el_receiver = lo_nd_receiver->get_element( lo_nd_receiver->get_lead_selection_index( ) ).
*  lo_nd_receiver->remove_element( lo_el_receiver ).来自 <https://www.showdoc.com.cn/2061732476156924/10264315363757174> 

 

http://www.dtcms.com/a/264537.html

相关文章:

  • 同一水平的 RISC-V 架构的 MCU,和 ARM 架构的 MCU 相比,运行速度如何?
  • Tomcat log日志解析
  • 【Linux】文件权限以及特殊权限(SUID、SGID)
  • Highcharts 安装使用教程
  • Flutter Widget Preview 功能已合并到 master,提前在体验毛坯的预览支持
  • flutter flutter_vlc_player播放视频设置循环播放失效、初始化后获取不到视频宽高
  • 机器学习:集成学习方法之随机森林(Random Forest)
  • AWS RDS Aurora全局数据库转区域数据库实战指南:无缝迁移零停机
  • Windows VMWare Centos Docker部署Springboot 应用实现文件上传返回文件http链接
  • php上传或者压缩图片后图片出现倒转或者反转的问题
  • Hyper-YOLO: When Visual Object Detection Meets Hypergraph Computation
  • 在Ubuntu上多网卡配置HTTP-HTTPS代理服务器
  • c语言中的函数II
  • 今日学习:音视频领域入门文章参考(待完善)
  • 数据结构:数组(Array)
  • 文心快码答用户问|Comate AI IDE专场
  • 文心4.5开源模型部署实践
  • 使用Vue3实现输入emoji 表情包
  • 阿里云AppFlow AI助手打造智能搜索摘要新体验
  • 基于开源链动2+1模式AI智能名片S2B2C商城小程序的场景零售创新研究
  • 【Unity】MiniGame编辑器小游戏(八)三国华容道【HuarongRoad】
  • Active-Prompt:让AI更智能地学习推理的革命性技术
  • BlenderBot对话机器人大模型Facebook开发
  • Spring Framework 中 Java 配置
  • 51单片机外部引脚案例分析
  • 环境土壤物理Hydrus1D2D模型实践技术应用及典型案例分析
  • Docker Desktop导致存储空间不足时的解决方案
  • 【QT】ROS2 Humble联合使用QT教程
  • 【Unity】MiniGame编辑器小游戏(九)打砖块【Breakout】
  • 纹理贴图算法研究论文综述