cancel
Showing results for 
Search instead for 
Did you mean: 

code comparison ....please help

Former Member
0 Kudos

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

Accepted Solutions (0)

Answers (1)

Answers (1)

Former Member
0 Kudos

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

Former Member
0 Kudos

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