Skip to Content
avatar image
Former Member

Data no longer available when SALV_WD_TABLE GET_MODEL called

Hi DynPro Gurus,

I'm very new to ABAP WebDynpro, i could consider this would be my first program.

I'm not sure whats wrong with the code below but I'm getting the error as in the subject field.

Has anyone encountered this problem before? How can i resolve this problem? Please help.

Thank you.

*My code are below

METHOD wddoinit .

DATA: l_ref_cmp_usage TYPE REF TO if_wd_component_usage,

l_ref_interfacecontroller TYPE REF TO IWCI_SALV_WD_TABLE,

l_model TYPE REF TO cl_salv_wd_config_table, "Contains all characteristics of a table(collumns, fields, etc)

lt_columns TYPE salv_wd_t_column_ref, " Table type

lt_fields TYPE salv_wd_t_field_ref, " Table type

l_btn_ins TYPE REF TO cl_salv_wd_fe_button,

l_btn_del TYPE REF TO cl_salv_wd_fe_button,

l_btn_sell_all TYPE REF TO cl_salv_wd_fe_button,

l_btn_dell_all TYPE REF TO cl_salv_wd_fe_button,

l_btn_calc TYPE REF TO cl_salv_wd_fe_button,

l_btn_save TYPE REF TO cl_salv_wd_fe_button,

l_function TYPE REF TO cl_salv_wd_function.

l_ref_cmp_usage = wd_this->wd_cpuse_multi_alv( ).

IF l_ref_cmp_usage->has_active_component( ) IS INITIAL.

l_ref_cmp_usage->create_component( ).

ENDIF.

*Map the interface.

l_ref_interfacecontroller = wd_this->wd_cpifc_multi_alv( ).

*Map the model

l_model = l_ref_interfacecontroller->get_model( ).

*Map the columns

lt_columns = l_model->if_salv_wd_column_settings~t_columns.

*Map the fields

lt_fields = l_model->if_salv_wd_field_settings~t_fields.

  • lt_fields = l_model->if_salv_wd_field_settings~t_fields.

cl_salv_wd_model_table_util=>if_salv_wd_table_util_stdfuncs~set_all(

EXPORTING r_model = l_model

allowed = abap_false ). " try abap_true

----


*Enable or Disable the ALV desired outlook and design

----


l_model->if_salv_wd_table_settings~delete_header( ).

l_model->if_salv_wd_table_settings~set_selection_mode(

value = cl_wd_table=>e_selection_mode-multi ).

l_model->if_salv_wd_table_settings~set_width( value = '100%' ).

l_model->if_salv_wd_table_settings~set_visible_row_count( value = '10' ).

l_model->if_salv_wd_table_settings~set_read_only( value = abap_false ).

l_model->if_salv_wd_std_functions~set_filter_filterline_allowed( value = abap_true ).

l_model->if_salv_wd_std_functions~set_sort_headerclick_allowed( value = abap_true ).

l_model->if_salv_wd_std_functions~set_export_allowed( value = abap_false ).

----


*Adding functionalities to the ALV

CREATE OBJECT: l_btn_ins, l_btn_del, l_btn_sell_all, l_btn_dell_all, l_btn_calc, l_btn_save.

*'Insert Row' Button

l_btn_ins->set_text( 'Insert Row' ).

l_btn_ins->set_tooltip( 'To enter a new row' ).

l_btn_ins->set_image_source( value = 'ICON_INSERT_ROW' ).

l_function = l_model->if_salv_wd_function_settings~create_function( id = 'INSERT' ).

l_function->set_position( value = '1' ).

l_function->set_editor( value = l_btn_ins ).

*'Delete Row' Button

l_btn_ins->set_text( 'Delete Row' ).

l_btn_ins->set_tooltip( 'Delete the selected row' ).

l_btn_ins->set_image_source( value = 'ICON_DELETE_ROW' ).

l_function = l_model->if_salv_wd_function_settings~create_function( id = 'DELETE' ).

l_function->set_position( value = '2' ).

l_function->set_editor( value = l_btn_del ).

*'Select All' Button

l_btn_ins->set_text( 'Select All' ).

l_btn_ins->set_tooltip( 'Select all entered record' ).

l_btn_ins->set_image_source( value = 'ICON_INSERT_ROW' ).

l_function = l_model->if_salv_wd_function_settings~create_function( id = 'SELECT' ).

l_function->set_position( value = '3' ).

l_function->set_editor( value = l_btn_sell_all ).

*'Deselect All' Button

l_btn_ins->set_text( 'Deselect All' ).

l_btn_ins->set_tooltip( 'Deselect all records selected' ).

l_btn_ins->set_image_source( value = 'ICON_DESELECT_ALL' ).

l_function = l_model->if_salv_wd_function_settings~create_function( id = 'DESELECT' ).

l_function->set_position( value = '4' ).

l_function->set_editor( value = l_btn_dell_all ).

*'Calculate' Button

l_btn_ins->set_text( 'Calculate Hours' ).

l_btn_ins->set_tooltip( 'Calculate hours of each record' ).

l_btn_ins->set_image_source( value = 'ICON_CALCULATION' ).

l_function = l_model->if_salv_wd_function_settings~create_function( id = 'CALC' ).

l_function->set_position( value = '5' ).

l_function->set_editor( value = l_btn_calc ).

*'Save' Button

l_btn_ins->set_text( 'Save' ).

l_btn_ins->set_tooltip( 'Save all' ).

l_btn_ins->set_image_source( value = 'ICON_SYSTEM_SAVE' ).

l_function = l_model->if_salv_wd_function_settings~create_function( id = 'SAVE' ).

l_function->set_position( value = '6' ).

l_function->set_editor( value = l_btn_save ).

ENDMETHOD.

Add comment
10|10000 characters needed characters exceeded

  • Get RSS Feed

2 Answers

  • Best Answer
    avatar image
    Former Member
    Jun 11, 2007 at 06:51 AM

    Hi Vinodman,

    The problem is in the fourth line of your code below:

    l_model TYPE REF TO cl_salv_wd_config_table

    Since you have defined it inside the OnInit method, once the control goes out of this method, this variable is lost. So, declare in this 'l_model' in the attributes section of the view (it is the sixth tab on the right pane when you double click on your view name in the left pane of SE80 transaction).

    This will for sure solve your problem. Please post back in case you face further issues.

    Regards,

    Ram

    Add comment
    10|10000 characters needed characters exceeded

  • avatar image
    Former Member
    Jun 08, 2007 at 07:45 PM

    Hi guys......I'm checking this thread.....every few minute for the pass 2 hours.....if someone knows the problem and the solution to it ...please post.....i'm stuck and cant proceed with out figuring out this problem.

    Thank you very much

    Vinod

    Add comment
    10|10000 characters needed characters exceeded

    • Former Member

      Hi Vinod,

      From the code atleast, it looks like you have not done the context binding at all. You need to do a binding of your internal table to the context node, and call set_data on the alv model. Only then the data will be available.

      Hope this helps you proceed.

      Regards,

      Nithya