on 02-11-2009 9:51 AM
Hi I'm New to Webdynpro Abap and i have a requirement on Component Usage.
How to call a method of interface controller of on WD Component into Other WD Componet
Could any one give Detailed Example of Component Usage.
Thanks in Advance
Any help will be rewarded.
Hi Siva,
Please go thru this code that help in understanding component usage dynamically.
An interface view of a dynamically embedded component must be included dynamically into the navigation of a window. You can implement this, for example, in a method of the controller of the view that launches the navigation. The code fragment below shows the instantiation of the dynamically embedded component.
data: L_VIEW_CONTROLLER_API type ref to IF_WD_VIEW_CONTROLLER,
L_COMPONENT_USAGE type ref to IF_WD_COMPONENT_USAGE,
COMPONENT_NAME type STRING.
if L_COMPONENT_USAGE->HAS_ACTIVE_COMPONENT( ) is initial
L_COMPONENT_USAGE->CREATE_COMPONENT( COMPONENT_NAME ).
endif.
Then the method PREPARE_DYNAMIC_NAVIGATION of the runtime API of the view controller is called. All attributes of the own u2013 that is, the using u2013 component are known and can be implemented statically (source attributes). All attributes of the used component are unknown at design time and are passed as variables (target attributes, values are displayed as placeholders in pointed brackets).
L_VIEW_CONTROLLER_API = WD_THIS->WD_GET_API( ).
L_VIEW_CONTROLLER_API->PREPARE_DYNAMIC_NAVIGATION(
source_window_name = 'W0'
source_vusage_name = 'MAIN_USAGE_1'
source_plug_name = 'TO_V1'
target_component_name = <component_name>
target_component_usage = <component_usage_name>
target_view_name = <interface_view_name>
target_plug_name = <inbound_plug_name>
target_embedding_position = <embedding_position> ).
If a used component of the using component wants to provide a method to be called, this method must be defined in the interface controller of the used component.
In practice, the method to be called is generally declared in the interface controller of an interface definition and programmed in the component controller of an implemented component. The code fragment below shows a section of a method of a view controller of the using component:
method MY_CONTROLLER_METHOD .
data: L_INTF_CONTROLLER type ref to IWCI_<NAME_INTERFACE_DEFINITION>,
L_COMPONENT_USAGE type ref to IF_WD_COMPONENT_USAGE.
L_INTF_CONTROLLER ?= L_COMPONENT_USAGE->GET_INTERFACE_CONTROLLER( ).
L_INTF_CONTROLLER-><NAME_METHOD>( ).
endmethod.
If u want to done component usage manually then u can use the salv_wd_table component for using the alv grid in ur component to display the data.
the code for that will be given below.
Note : the variable wd_this->alv_config_table used below is of type ref of - CL_SALV_WD_CONFIG_TABLE
so u hv to declare that in the component controller attribute section.
METHOD configure_alv .
data declaration for column settings
DATA : lr_column_settings TYPE REF TO if_salv_wd_column_settings,
lr_col_header TYPE REF TO cl_salv_wd_column_header,
lt_columns TYPE salv_wd_t_column_ref,
ls_column TYPE salv_wd_s_column_ref.
data declaration for table settings
DATA : lr_salv_wd_table_ctr TYPE REF TO iwci_salv_wd_table,
lr_table_settings_ctr TYPE REF TO if_salv_wd_table_settings,
lr_header_ctr TYPE REF TO cl_salv_wd_header.
Variables for drop-down and inpufield reference
DATA : lr_drdn_by_key TYPE REF TO cl_salv_wd_uie_dropdown_by_key,
lr_input_field TYPE REF TO cl_salv_wd_uie_input_field,
l_header TYPE string.
get ALV Component <CONTRACT_DETAILS>
lr_salv_wd_table_ctr = wd_this->wd_cpifc_payment_detail( ).
wd_this->alv_config_table = lr_salv_wd_table_ctr->get_model( ).
set visible row count
lr_table_settings_ctr ?= wd_this->alv_config_table.
lr_table_settings_ctr->set_visible_row_count( '5' ).
lr_table_settings_ctr->set_read_only( abap_false ).
lr_table_settings_ctr->set_grid_mode( ).
lr_table_settings_ctr->set_width(
EXPORTING
value = '980PX' ).
wd_this->alv_config_table->if_salv_wd_table_settings~set_data_check( if_salv_wd_c_table_settings=>data_check_on_cell_event ).
wd_this->alv_config_table->if_salv_wd_std_functions~set_pdf_allowed( abap_false ).
wd_this->alv_config_table->if_salv_wd_std_functions~set_view_list_allowed( abap_false ).
wd_this->alv_config_table->if_salv_wd_std_functions~set_edit_insert_row_allowed( abap_false ).
wd_this->alv_config_table->if_salv_wd_std_functions~set_edit_delete_row_allowed( abap_true ).
wd_this->alv_config_table->if_salv_wd_std_functions~set_export_allowed( abap_false ).
wd_this->alv_config_table->if_salv_wd_std_functions~set_edit_check_available( abap_false ).
CLEAR: l_header.
l_header = wd_assist->if_wd_component_assistance~get_text( '030' ).
lr_header_ctr = lr_table_settings_ctr->get_header( ).
lr_header_ctr->set_text( l_header ).
set text header for Columns.
CLEAR: l_header,lt_columns.
lr_column_settings ?= wd_this->alv_config_table.
lt_columns = lr_column_settings->get_columns( ).
LOOP AT lt_columns INTO ls_column.
CASE ls_column-id.
WHEN 'PAYMENT_METHOD'.
get header details
lr_col_header = ls_column-r_column->get_header( ).
disable DDIC field label
CALL METHOD lr_col_header->set_prop_ddic_binding_field
EXPORTING
property = if_salv_wd_c_ddic_binding=>bind_prop_text
value = if_salv_wd_c_ddic_binding=>ddic_bind_none.
set user defined column header
l_header = wd_assist->if_wd_component_assistance~get_text( key = '020' ).
lr_col_header->set_text( l_header ).
CREATE OBJECT lr_drdn_by_key
EXPORTING
selected_key_fieldname = ls_column-id.
ls_column-r_column->set_cell_editor( lr_drdn_by_key ).
lr_drdn_by_key->set_key_visible(
EXPORTING
value = abap_true ).
WHEN 'TRANSACTION_TYPE'.
get header details
lr_col_header = ls_column-r_column->get_header( ).
disable DDIC field label
CALL METHOD lr_col_header->set_prop_ddic_binding_field
EXPORTING
property = if_salv_wd_c_ddic_binding=>bind_prop_text
value = if_salv_wd_c_ddic_binding=>ddic_bind_none.
set user defined column header
l_header = wd_assist->if_wd_component_assistance~get_text( key = '021' ).
lr_col_header->set_text( l_header ).
CREATE OBJECT lr_drdn_by_key
EXPORTING
selected_key_fieldname = ls_column-id.
ls_column-r_column->set_cell_editor( lr_drdn_by_key ).
lr_drdn_by_key->set_key_visible(
EXPORTING
value = abap_true ).
WHEN 'CONTRIBUTION_TYPE'.
get header details
lr_col_header = ls_column-r_column->get_header( ).
disable DDIC field label
CALL METHOD lr_col_header->set_prop_ddic_binding_field
EXPORTING
property = if_salv_wd_c_ddic_binding=>bind_prop_text
value = if_salv_wd_c_ddic_binding=>ddic_bind_none.
set user defined column header
l_header = wd_assist->if_wd_component_assistance~get_text( key = '022' ).
lr_col_header->set_text( l_header ).
CREATE OBJECT lr_drdn_by_key
EXPORTING
selected_key_fieldname = ls_column-id.
ls_column-r_column->set_cell_editor( lr_drdn_by_key ).
lr_drdn_by_key->set_key_visible(
EXPORTING
value = abap_true ).
WHEN 'AMOUNT'.
get header details
lr_col_header = ls_column-r_column->get_header( ).
disable DDIC field label
CALL METHOD lr_col_header->set_prop_ddic_binding_field
EXPORTING
property = if_salv_wd_c_ddic_binding=>bind_prop_text
value = if_salv_wd_c_ddic_binding=>ddic_bind_none.
set user defined column header
l_header = wd_assist->if_wd_component_assistance~get_text( key = '023' ).
lr_col_header->set_text( l_header ).
CREATE OBJECT lr_input_field
EXPORTING
value_fieldname = ls_column-id.
ls_column-r_column->set_cell_editor( lr_input_field ).
WHEN 'ACCOUNT_NUMBER'.
get header details
lr_col_header = ls_column-r_column->get_header( ).
disable DDIC field label
CALL METHOD lr_col_header->set_prop_ddic_binding_field
EXPORTING
property = if_salv_wd_c_ddic_binding=>bind_prop_text
value = if_salv_wd_c_ddic_binding=>ddic_bind_none.
set user defined column header
l_header = wd_assist->if_wd_component_assistance~get_text( key = '024' ).
lr_col_header->set_text( l_header ).
CREATE OBJECT lr_drdn_by_key
EXPORTING
selected_key_fieldname = ls_column-id.
ls_column-r_column->set_cell_editor( lr_drdn_by_key ).
WHEN 'DISBURSEMENT_TYPE'.
get header details
lr_col_header = ls_column-r_column->get_header( ).
disable DDIC field label
CALL METHOD lr_col_header->set_prop_ddic_binding_field
EXPORTING
property = if_salv_wd_c_ddic_binding=>bind_prop_text
value = if_salv_wd_c_ddic_binding=>ddic_bind_none.
set user defined column header
l_header = wd_assist->if_wd_component_assistance~get_text( key = '025' ).
lr_col_header->set_text( l_header ).
CREATE OBJECT lr_drdn_by_key
EXPORTING
selected_key_fieldname = ls_column-id.
ls_column-r_column->set_cell_editor( lr_drdn_by_key ).
lr_drdn_by_key->set_key_visible(
EXPORTING
value = abap_true ).
WHEN 'MC_NUMBER'.
get header details
lr_col_header = ls_column-r_column->get_header( ).
disable DDIC field label
CALL METHOD lr_col_header->set_prop_ddic_binding_field
EXPORTING
property = if_salv_wd_c_ddic_binding=>bind_prop_text
value = if_salv_wd_c_ddic_binding=>ddic_bind_none.
set user defined column header
l_header = wd_assist->if_wd_component_assistance~get_text( key = '026' ).
lr_col_header->set_text( l_header ).
CREATE OBJECT lr_input_field
EXPORTING
value_fieldname = ls_column-id.
ls_column-r_column->set_cell_editor( lr_input_field ).
lr_input_field->set_read_only(
EXPORTING
value = abap_true
).
CREATE OBJECT lr_drdn_by_key
EXPORTING
selected_key_fieldname = ls_column-id.
ls_column-r_column->set_cell_editor( lr_drdn_by_key ).
WHEN OTHERS.
ENDCASE.
CLEAR: l_header,ls_column.
ENDLOOP.
ENDMETHOD.
Regards
Manoj Kumar
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hello,
Plese see this [tutorial|https://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/2e71ce83-0b01-0010-11a4-98c28a33195f].
Regards;
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi
Please go through it.
http://help.sap.com/saphelp_erp2005/helpdata/en/94/29984197eb2e7be10000000a1550b0/frameset.htm
Best regards,
Rohit MAhajan
Edited by: Rohit Mahajan on Feb 11, 2009 4:00 PM
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi,
Please check this URL.
[https://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/2e71ce83-0b01-0010-11a4-98c28a33195f]
Thanks,
Rajkumar.S
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
80 | |
9 | |
9 | |
7 | |
7 | |
6 | |
6 | |
6 | |
5 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.