on 03-13-2007 11:19 AM
Hi All,
I will be really grateful if someone could go through the following codes (2 different places) and tell me why in CODE 1 i am able to append rows to the Webdynpro ALV on clicking on the Append Rows button while nothing happens at all on doing the same in case of CODE 2.
*********************CODE 1**************************************
METHOD wddoinit .
DATA: l_ref_cmp_usage TYPE REF TO if_wd_component_usage.
l_ref_cmp_usage = wd_this->wd_cpuse_alv2( ).
IF l_ref_cmp_usage->has_active_component( ) IS INITIAL.
l_ref_cmp_usage->create_component( ).
ENDIF.
DATA: l_ref_interfacecontroller TYPE REF TO iwci_salv_wd_table .
l_ref_interfacecontroller = wd_this->wd_cpifc_alv2( ).
DATA : l_value TYPE REF TO cl_salv_wd_config_table.
l_value = l_ref_interfacecontroller->get_model(
).
DATA : lr_table_settings TYPE REF TO if_salv_wd_table_settings.
lr_table_settings ?= l_value.
lr_table_settings->set_read_only( abap_false ).
DATA: lr_column_settings TYPE REF TO if_salv_wd_column_settings,
lr_column TYPE REF TO cl_salv_wd_column,
lr_column_header TYPE REF TO cl_salv_wd_column_header,
lr_input_field TYPE REF TO cl_salv_wd_uie_input_field.
DATA: lr_checkbox TYPE REF TO cl_salv_wd_uie_checkbox.
lr_column_settings ?= l_value.
**ITEM
lr_column = lr_column_settings->get_column( 'ZZITEM' ).
lr_column_header = lr_column->get_header( ).
lr_column_header->set_text( 'ITEM' ).
**ZZINVAL editable
lr_column = lr_column_settings->get_column( 'ZZINVAL' ).
CREATE OBJECT lr_input_field EXPORTING value_fieldname = 'ZZINVAL'.
lr_column->set_cell_editor( lr_input_field ).
lr_column_header = lr_column->get_header( ).
lr_column_header->set_text( 'Inicio Validade' ).
**ZZFIMVAL editable
lr_column = lr_column_settings->get_column( 'ZZFIMVAL' ).
CREATE OBJECT lr_input_field EXPORTING value_fieldname = 'ZZFIMVAL'.
lr_column->set_cell_editor( lr_input_field ).
lr_column_header = lr_column->get_header( ).
lr_column_header->set_text( 'Fim Validade' ).
**ZZVATR
lr_column = lr_column_settings->get_column( 'ZZVATR' ).
CREATE OBJECT lr_input_field EXPORTING value_fieldname = 'ZZVATR'.
lr_column->set_cell_editor( lr_input_field ).
lr_column_header = lr_column->get_header( ).
lr_column_header->set_text( 'Valor' ).
**ZZUATR
lr_column = lr_column_settings->get_column( 'ZZUATR' ).
CREATE OBJECT lr_checkbox EXPORTING checked_fieldname = 'ZZUATR'.
lr_column->set_cell_editor( lr_checkbox ).
lr_column_header = lr_column->get_header( ).
lr_column_header->set_text( 'Usa Kg ATR/Ton' ).
**ZCORRIG
lr_column = lr_column_settings->get_column( 'ZCORRIG' ).
CREATE OBJECT lr_input_field EXPORTING value_fieldname = 'ZCORRIG'.
CREATE OBJECT lr_checkbox EXPORTING checked_fieldname = 'ZCORRIG'.
lr_column->set_cell_editor( lr_checkbox ).
lr_column_header = lr_column->get_header( ).
lr_column_header->set_text( 'Gerado Correcao' ).
**invisible columns
l_value->if_salv_wd_column_settings~delete_column( 'MANDT' ).
l_value->if_salv_wd_column_settings~delete_column( 'BUKRS' ).
l_value->if_salv_wd_column_settings~delete_column( 'ZZINDICE' ).
l_value->if_salv_wd_column_settings~delete_column( 'ZZDESC' ).
l_value->if_salv_wd_column_settings~delete_column( 'ERNAM' ).
l_value->if_salv_wd_column_settings~delete_column( 'AEDAT' ).
l_value->if_salv_wd_column_settings~delete_column( 'MEINS' ).
l_value->if_salv_wd_std_functions~is_edit_append_row_allowed( ).
ENDMETHOD.
****************************************************************************************
*********************CODE 2**************************************
METHOD wddoinit .
DATA: l_ref_cmp_usage TYPE REF TO if_wd_component_usage,
l_ref_interfacecontroller TYPE REF TO iwci_salv_wd_table ,
lr_table_settings TYPE REF TO if_salv_wd_table_settings,
lr_column_settings TYPE REF TO if_salv_wd_column_settings,
lr_column TYPE REF TO cl_salv_wd_column,
lr_column_header TYPE REF TO cl_salv_wd_column_header,
lr_input_field TYPE REF TO cl_salv_wd_uie_input_field,
lv_bool TYPE boolean,
l_value TYPE REF TO cl_salv_wd_config_table.
l_ref_cmp_usage = wd_this->wd_cpuse_alv( ).
IF l_ref_cmp_usage->has_active_component( ) IS INITIAL.
l_ref_cmp_usage->create_component( ).
ENDIF.
l_ref_interfacecontroller = wd_this->wd_cpifc_alv( ).
l_value = l_ref_interfacecontroller->get_model(
).
lr_table_settings ?= l_value.
lr_table_settings->set_read_only( abap_false ).
lr_table_settings->set_enabled( abap_true ).
**set individual fields as editable
***Set field SAFRA as editable
lr_column_settings ?= l_value.
**ITEM
lr_column = lr_column_settings->get_column( 'ZITEM' ).
lr_column_header = lr_column->get_header( ).
lr_column_header->set_text( 'ITEM' ).
**SAFRA
lr_column = lr_column_settings->get_column( 'ZZSAFRA' ).
CREATE OBJECT lr_input_field EXPORTING value_fieldname = 'ZZSAFRA'.
lr_column->set_cell_editor( lr_input_field ).
lr_column_header = lr_column->get_header( ).
lr_column_header->set_text( 'SAFRA' ).
**ZZINSAFRA editable
lr_column = lr_column_settings->get_column( 'ZZINSAFRA' ).
CREATE OBJECT lr_input_field EXPORTING value_fieldname = 'ZZINSAFRA'.
lr_column->set_cell_editor( lr_input_field ).
lr_column_header = lr_column->get_header( ).
lr_column_header->set_text( 'Data Inicio' ).
**ZZFIMSAFRA editable
lr_column = lr_column_settings->get_column( 'ZZFIMSAFRA' ).
CREATE OBJECT lr_input_field EXPORTING value_fieldname = 'ZZFIMSAFRA'.
lr_column->set_cell_editor( lr_input_field ).
lr_column_header = lr_column->get_header( ).
lr_column_header->set_text( 'Data Fim' ).
**invisible columns
l_value->if_salv_wd_column_settings~delete_column( 'MANDT' ).
l_value->if_salv_wd_column_settings~delete_column( 'BUKRS' ).
l_value->if_salv_wd_column_settings~delete_column( 'ERNAM' ).
l_value->if_salv_wd_column_settings~delete_column( 'AEDAT' ).
l_value->if_salv_wd_std_functions~set_pdf_allowed( abap_false ).
l_value->if_salv_wd_std_functions~is_edit_append_row_allowed( ).
l_value->if_salv_wd_std_functions~set_edit_insert_row_allowed( abap_true ).
ENDMETHOD.
****************************************************************************************
This is really frustrating. Help is really appreciated.
Regards,
Priyank
Hi Priyank.
I do not thinks the problem is in your coding. What about the mapping? Which
mapping type do you use (reverse mapping or setting node directly via interface
controller) ? Cardinality of the node you map to the ALV? Is there any difference
beside the structure between the node you map in Code 1 and the node you map
in Code 2?
Just check this.
Cheers,
Sascha
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Sascha,
I know i might be sounding really weird on this. But as I see it now, even the second code has stopped working. Means now I am not able to append rows in either of the cases. What i did was to create another container in the view and then put some elements in it. After the problem, i reverted back and removed the container (just to check if that was the cause of the problem) and now I find that what was initially working is not so any more.
1) I am using direct setting of node via interface controller
2) Cardinality of both nodes mapped to the ALVs are 0:N
3) Yes the structure of both nodes are different. Both nodes are based on different structures returned from different RFCs? Should this matter too much?
Any ideas?
regards,
Priyank
User | Count |
---|---|
84 | |
10 | |
10 | |
10 | |
7 | |
6 | |
6 | |
5 | |
4 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.