【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.pswp.cn/news/912821.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/912821.shtml
英文地址,請注明出處:http://en.pswp.cn/news/912821.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

ALV常用設置(更新中一)

之前設置了checkbox&#xff0c;但是觸發不了單擊事件&#xff0c;且alv自帶的復選&#xff0c;鼠標移動單擊別處就會自動取消。 **增加多選框到fieldcat&#xff0c;**這一點很重要&#xff0c;然后設置 IF gs_fcat-fieldname sel.gs_fcat-checkbox X. gs_fcat-edit X. …

NumPy 或 PyTorch/TensorFlow 中的張量理解

(2, 2, 3) 形狀的 3D 數組&#xff08;或張量&#xff09;的結構。 個人理解&#xff1a; 2個2維數組&#xff08;張量&#xff09;&#xff0c;2維數組&#xff08;張量&#xff09;里面有2個1維向量&#xff08;張量&#xff09;&#xff0c;1維向量&#xff08;張量&#x…

Linux環境下使用 C++ 與 OpenCV 實現 ONNX 分類模型推理

實驗環境&#xff1a;Ubuntu 20.0 推理模型&#xff1a;ONNX分類模型 1. 安裝依賴項 首先是需要安裝依賴庫&#xff0c;如g&#xff0c;cmake等&#xff0c;如果已經安裝的話可以忽略 sudo apt install -y g sudo apt install -y cmake sudo apt install -y make sudo apt i…

AJAX 安裝使用教程

一、AJAX 簡介 AJAX&#xff08;Asynchronous JavaScript and XML&#xff09;是一種在無需重新加載整個網頁的情況下&#xff0c;能夠與服務器交換數據并更新部分網頁內容的技術。它不是一種新語言&#xff0c;而是使用現有的標準組合&#xff1a;JavaScript XMLHttpRequest…

【牛客算法】牛客網編程題解:小紅拼圖

一、題目介紹 1.1. 題目鏈接 &#xff1a;小紅拼圖 https://www.nowcoder.com/questionTerminal/08b54686f0d14bd784d9d148c68a268a 1.2 題目介紹 小紅正在玩一個拼圖游戲&#xff0c;她有一些完全相同的拼圖組件&#xff1a; 小紅準備用這些組件來拼成一些圖案。這些組件可…

買賣股票的最佳時機--js 算法

一、買賣股票的最佳時機 給定一個數組 prices ,它的第 i 個元素 prices[i] 表示一支給定股票第 i 天的價格。你只能選擇 某一天 買入這只股票,并選擇在 未來的某一個不同的日子 賣出該股票。設計一個算法來計算你所能獲取的最大利潤。返回你可以從這筆交易中獲取的最大利潤。…

C#基礎(WndProc)

WndProc 是操作系統與你的程序“對話”的通道??。當用戶點擊鼠標、按下鍵盤&#xff0c;或系統事件&#xff08;如窗口移動&#xff09;發生時&#xff0c;Windows 會將這些事件打包成“消息”&#xff0c;發送給你的窗口&#xff0c;而 WndProc 就是接收和處理這些消息的函數…

記錄一個 Linux中腳本無法執行的問題

問題描述&#xff1a; 在本地的window系統傳的云服務器上一個.sh結尾的安裝Java環境的腳本 上傳到云服務器后&#xff0c;使用命令賦予執行權限 chmod x 文件名然后看一下這個腳本變綠了就可以了 然后開始嘗試執行 ./腳本名 然后就報錯了 然后開始排查問題 1.檢查并修復 She…

Iceberg在圖靈落地應用

導讀 百度MEG上一代大數據產品存在平臺分散、易用性差等問題&#xff0c;導致開發效率低下、學習成本高&#xff0c;業務需求響應遲緩。為了解決這些問題&#xff0c;百度MEG內部開發了圖靈3.0生態系統&#xff0c;包括Turing Data Engine(TDE)計算&存儲引擎、Turing Data…

FPGA設計的用戶約束

FPGA設計的用戶約束 文章目錄 FPGA設計的用戶約束FPGA設計的用戶約束綜合約束管腳約束位置約束時序約束小總結 FPGA設計的用戶約束 至此&#xff0c;HDL到門級網表的轉化已經完成&#xff0c;對于編譯器來說&#xff0c;下一步的任務就是要將門級網表轉換并映射到具體的FPGA硬…

Spring 生態創新應用:微服務架構設計與前沿技術融合實踐

在數字化轉型的深水區&#xff0c;企業級應用正面臨從 “單體架構” 向 “分布式智能架構” 的根本性躍遷。Spring 生態以其二十年技術沉淀形成的生態壁壘&#xff0c;已成為支撐這場變革的核心基礎設施。從 2002 年 Rod Johnson 發布《Expert One-on-One J2EE Design and Deve…

車牌識別與標注:基于百度OCR與OpenCV的實現(一)

車牌識別與標注&#xff1a;基于百度OCR與OpenCV的實現 在計算機視覺領域&#xff0c;車牌識別是一項極具實用價值的技術&#xff0c;廣泛應用于交通監控、智能停車場管理等領域。本文將介紹如何在macOS系統下&#xff0c;利用百度OCR API進行車牌識別&#xff0c;并結合OpenC…

【系統分析師】2021年真題:論文及解題思路

文章目錄 試題一&#xff1a;論面向對象的信息系統分析方法試題二&#xff1a;論靜態測試方法及其應用試題三&#xff1a;論富互聯網應用的客戶端開發技術試題四&#xff1a;論DevSecOps技術及其應用 試題一&#xff1a;論面向對象的信息系統分析方法 信息系統分析是信息系統生…

OFA-PT:統一多模態預訓練模型的Prompt微調

摘要 Prompt微調已成為模型微調的新范式&#xff0c;并在自然語言預訓練甚至視覺預訓練中取得了成功。參數高效的Prompt微調方法通過優化soft embedding并保持預訓練模型凍結&#xff0c;在計算成本低和幾乎無性能損失方面展現出優勢。在本研究中&#xff0c;我們探索了Prompt…

【硬核數學】2.5 “價值標尺”-損失函數:信息論如何設計深度學習的損失函數《從零構建機器學習、深度學習到LLM的數學認知》

歡迎來到本系列硬核數學之旅的第十篇&#xff0c;也是我們對經典數學領域進行深度學習“升級”的最后一站。我們已經擁有了強大的模型架構&#xff08;基于張量&#xff09;、高效的學習引擎&#xff08;反向傳播&#xff09;和智能的優化策略&#xff08;Adam等&#xff09;。…

雷卯針對靈眸科技EASY EAI nano RV1126 開發板防雷防靜電方案

一、應用場景 1. 人臉檢測 2. 人臉識別 3. 安全帽檢測 4. 人員檢測 5. OCR文字識別 6. 人頭檢測 7. 表情神態識別 8. 人體骨骼點識別 9. 火焰檢測 10. 人臉姿態估計 11. 人手檢測 12. 車輛檢測 13. 二維碼識別 二、 功能概述 1 CPU 四核ARM Cortex-A71.5GHz 2 …

【記錄】Ubuntu|Ubuntu服務器掛載新的硬盤的流程(開機自動掛載)

簡而言之&#xff0c;看這張圖片就好&#xff08;可以存一下&#xff0c;注意掛載點/data可以自定義&#xff0c;掛載硬盤的位置/dev/sdb要改成步驟1中檢查的時候查到的那個位置&#xff0c;不過這個圖的自動掛載漏了UUID&#xff0c;可以通過blkid指令查找&#xff09;&#x…

六、軟件操作手冊

建議在飛書平臺閱讀此文。 我將沿著初來乍到的用戶的瀏覽路徑介紹“諍略參謀”應用。 目錄 一、用戶信息1.1 注冊、登錄、自動登錄、忘記密碼、修改用戶名、修改密碼、退出登錄與個性化設置1.2 認識主界面與任務系統1.3 語義審查、Knowledge Cutoff 審查1.4 重要內容未保存提醒…

電腦鍵盤不能打字了怎么解決 查看恢復方法

電腦鍵盤打不了字&#xff0c;這是我們電腦使用過程中&#xff0c;偶爾會遇到的電腦故障問題。一般來說&#xff0c;電腦鍵盤打不出字&#xff0c;可能是硬件故障、驅動問題或系統設置錯誤等多種原因引起。本文將詳細介紹一些常見的原因和解決方法&#xff0c;幫助用戶恢復正常…

基于STM32的土豆種植自動化灌溉系統設計與實現

?? 項目簡介 隨著農業現代化發展及水資源短缺問題日益突出,傳統土豆種植方式在澆灌效率與用水科學性方面暴露出諸多問題。本文基于STM32F103C8T6微控制器,設計并實現了一種智能化的土豆種植自動灌溉系統,集成多種環境傳感器(溫濕度、土壤濕度、光照)、控制設備(水泵、…