Текущее время: Пн, июл 21 2025, 01:26

Часовой пояс: UTC + 3 часа


Правила форума


ВНИМАНИЕ!

Вопросы по SAP Query и Quick View - сюда



Начать новую тему Ответить на тему  [ Сообщений: 12 ] 
Автор Сообщение
 Заголовок сообщения: WDP c 2-я ALV - не работает
СообщениеДобавлено: Вт, май 21 2013, 15:46 
Старший специалист
Старший специалист

Зарегистрирован:
Пт, окт 15 2010, 14:06
Сообщения: 292
Приветствую, коллеги.
Есть WDP приложение, на него требуется прикрутить 2-ой ALV.
Все контроллеры добавил, все мапинги сделал. Код описал.

На строчке:
Code:
lo_interfacecontroller2 = wd_this->wd_cpifc_alv2( ).

Валится с ошибкой:

Изображение

В чем беда - хз. Опыта в WDP - пшик


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: WDP c 2-я ALV - не работает
СообщениеДобавлено: Вт, май 21 2013, 15:48 
Старший специалист
Старший специалист

Зарегистрирован:
Пт, окт 15 2010, 14:06
Сообщения: 292
P.S. Нашел такую статейку
Но, ясности не добавилось :(


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: WDP c 2-я ALV - не работает
СообщениеДобавлено: Ср, май 22 2013, 14:17 
Младший специалист
Младший специалист

Зарегистрирован:
Ср, янв 25 2012, 01:54
Сообщения: 59
create_component() сделан где-то до этого?


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: WDP c 2-я ALV - не работает
СообщениеДобавлено: Ср, май 22 2013, 15:38 
Старший специалист
Старший специалист

Зарегистрирован:
Пт, окт 15 2010, 14:06
Сообщения: 292
Fifth написал(а):
create_component() сделан где-то до этого?

Шайтан. Забыл.
Сейчас добавил.

Но, эту строчку проходит
Code:
lo_interfacecontroller2 = wd_this->wd_cpifc_alv2( ).

А на этой спотыкается
Code:
lo_config_model_value2  = lo_interfacecontroller2->get_model( ).

Снова ругается

Изображение


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: WDP c 2-я ALV - не работает
СообщениеДобавлено: Пт, май 24 2013, 00:10 
Младший специалист
Младший специалист

Зарегистрирован:
Ср, янв 25 2012, 01:54
Сообщения: 59
можно полностью код инициализации начиная с получения ссылки на usage?


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: WDP c 2-я ALV - не работает
СообщениеДобавлено: Пт, май 24 2013, 08:23 
Старший специалист
Старший специалист

Зарегистрирован:
Пт, окт 15 2010, 14:06
Сообщения: 292
Code:

  DATA lo_cmp_usage TYPE REF TO if_wd_component_usage.
  lo_cmp_usage = wd_this->wd_cpuse_alv( ).
  IF lo_cmp_usage->has_active_component( ) IS INITIAL.
    lo_cmp_usage->create_component( ).
  ENDIF.

  DATA lo_cmp_usage2 TYPE REF TO if_wd_component_usage.
  lo_cmp_usage2 = wd_this->wd_cpuse_alv2( ).
  IF lo_cmp_usage2->has_active_component( ) IS INITIAL.
    lo_cmp_usage2->create_component( ).
  ENDIF.

  DATA lo_interfacecontroller    TYPE REF TO iwci_salv_wd_table .
  DATA lo_config_model_value     TYPE REF TO cl_salv_wd_config_table.
  DATA lo_header                 TYPE REF TO cl_salv_wd_column_header.
  DATA lt_alv_columns            TYPE salv_wd_t_column_ref.
  DATA ls_alv_column             TYPE LINE OF salv_wd_t_column_ref.
  DATA lo_column                 TYPE REF TO cl_salv_wd_column.
  DATA lo_link                   TYPE REF TO cl_salv_wd_uie_link_to_action.
  DATA lv_is_enabled             TYPE abap_bool.
  DATA lv_text                   TYPE string.

  DATA lo_nd_rcf_attachments     TYPE REF TO if_wd_context_node.

  CONSTANTS lc_row_count         TYPE i VALUE 10.

  DATA lo_nd_attachments         TYPE REF TO if_wd_context_node.
  DATA lt_attachments            TYPE wd_this->elements_attachments.

  lo_nd_attachments = wd_context->get_child_node( name = wd_this->wdctx_attachments ).
  lo_nd_attachments->get_static_attributes_table( IMPORTING table = lt_attachments ).

  lo_nd_rcf_attachments  = wd_context->get_child_node( name = wd_this->wdctx_attachments ).

  lo_interfacecontroller = wd_this->wd_cpifc_alv( ).
  lo_config_model_value  = lo_interfacecontroller->get_model( ).

  lo_config_model_value->if_salv_wd_table_settings~set_selection_mode( cl_wd_table=>e_selection_mode-none ).
  lo_config_model_value->if_salv_wd_table_settings~set_design( cl_wd_table=>e_design-alternating ).
  lo_config_model_value->if_salv_wd_table_settings~set_grid_mode( cl_wd_table=>e_grid_mode-vertical ).
  lo_config_model_value->if_salv_wd_table_settings~set_width( '50%' ).
  lo_config_model_value->if_salv_wd_std_functions~set_display_settings_allowed( abap_true ).
  lo_config_model_value->if_salv_wd_std_functions~set_edit_check_available( abap_false ).
  lo_config_model_value->if_salv_wd_std_functions~set_column_selection_allowed( abap_false ).
  lo_config_model_value->if_salv_wd_std_functions~set_dialog_settings_allowed( abap_false ).
  lo_config_model_value->if_salv_wd_std_functions~set_filter_filterline_allowed( abap_false ).
  lo_config_model_value->if_salv_wd_std_functions~set_pdf_allowed( abap_false ).
  lo_config_model_value->if_salv_wd_std_functions~set_export_allowed( abap_false ).
  lo_config_model_value->if_salv_wd_std_functions~set_view_list_allowed( abap_false ).
  lo_config_model_value->if_salv_wd_std_functions~set_sort_headerclick_allowed( abap_false ).

  IF NOT lt_attachments[]  IS INITIAL.
    lo_config_model_value->if_salv_wd_table_settings~set_visible( cl_wd_uielement=>e_visible-visible ).
    lo_config_model_value->if_salv_wd_table_settings~set_visible_row_count( '-1' ).
    lo_config_model_value->if_salv_wd_table_settings~set_footer_visible( if_salv_wd_c_table_settings=>footer_visible_false ).
  ELSE.
    lo_config_model_value->if_salv_wd_table_settings~set_visible( cl_wd_uielement=>e_visible-none ).
  ENDIF.


  lo_column = lo_config_model_value->if_salv_wd_column_settings~get_column( 'ATT_HEADER' ).
  CREATE OBJECT lo_link.
  lo_link->set_text_fieldname( 'ATT_HEADER' ).
  lo_column->set_cell_editor( lo_link ).
  lo_link->set_type( cl_wd_link_to_action=>e_type-reporting ).

  CLEAR lv_text.
  CLEAR lo_column.
  CLEAR lo_header.
  lv_text =  cl_wd_utilities=>get_otr_text_by_alias( alias = 'PAOC_RCF_UI/ATTACHMENT_HEAD' ).
  lo_column = lo_config_model_value->if_salv_wd_column_settings~get_column( 'ATT_HEADER' ).
  lo_header = lo_column->create_header( ).
  CALL METHOD lo_header->set_text
    EXPORTING
      value = lv_text.

  CLEAR lv_text.
  CLEAR lo_column.
  CLEAR lo_header.
  lv_text =  cl_wd_utilities=>get_otr_text_by_alias( alias = 'PAOC_RCF_UI/LANGUAGE_TEXT' ).
  lo_column = lo_config_model_value->if_salv_wd_column_settings~get_column( 'LANGUAGE_TXT' ).
  CALL METHOD lo_column->create_header
    RECEIVING
      value = lo_header.
  CALL METHOD lo_header->set_text
    EXPORTING
      value = lv_text.

  lo_config_model_value->if_salv_wd_column_settings~get_columns( RECEIVING value = lt_alv_columns ).
  LOOP AT lt_alv_columns INTO ls_alv_column.
    CASE ls_alv_column-id.
      WHEN 'ATT_HEADER'.
        lo_column = lo_config_model_value->if_salv_wd_column_settings~get_column( ls_alv_column-id ).
        CALL METHOD lo_column->set_visible
          EXPORTING
            value = cl_wd_uielement=>e_visible-visible.
        lo_column->set_h_align( cl_wd_table_column=>e_h_align-forced_left ).
      WHEN 'LANGUAGE_TXT'.
        lo_column = lo_config_model_value->if_salv_wd_column_settings~get_column( ls_alv_column-id ).
        CALL METHOD lo_column->set_visible
          EXPORTING
            value = cl_wd_uielement=>e_visible-none.
      WHEN 'ATT_TYPE_TXT'.
        lo_column = lo_config_model_value->if_salv_wd_column_settings~get_column( ls_alv_column-id ).
        lo_column->set_h_align( cl_wd_table_column=>e_h_align-forced_left ).
        CALL METHOD lo_column->set_visible
          EXPORTING
            value = cl_wd_uielement=>e_visible-visible.
      WHEN OTHERS.
        lo_config_model_value->if_salv_wd_column_settings~delete_column( ls_alv_column-id ).
    ENDCASE.
  ENDLOOP.

  DATA lo_interfacecontroller2    TYPE REF TO iwci_salv_wd_table .
  DATA lo_config_model_value2     TYPE REF TO cl_salv_wd_config_table.
  DATA lo_header2                 TYPE REF TO cl_salv_wd_column_header.
  DATA lt_alv_columns2            TYPE salv_wd_t_column_ref.
  DATA ls_alv_column2             TYPE LINE OF salv_wd_t_column_ref.
  DATA lo_column2                 TYPE REF TO cl_salv_wd_column.
  DATA lv_is_enabled2             TYPE abap_bool.
  DATA lv_text2                   TYPE string.

  CONSTANTS lc_row_count2         TYPE i VALUE 10.

  DATA lo_nd_rcf_confirm_list    TYPE REF TO if_wd_context_node.

  DATA lo_nd_confirm_list        TYPE REF TO if_wd_context_node.
  DATA lt_confirm_list           TYPE wd_this->elements_confirm_list.

  lo_nd_confirm_list = wd_context->get_child_node( name = wd_this->wdctx_confirm_list ).
  lo_nd_confirm_list->get_static_attributes_table( IMPORTING table = lt_confirm_list ).

  lo_nd_rcf_confirm_list  = wd_context->get_child_node( name = wd_this->wdctx_confirm_list ).

  lo_interfacecontroller2 = wd_this->wd_cpifc_alv2( ).
  lo_config_model_value2  = lo_interfacecontroller2->get_model( ).

  lo_config_model_value2->if_salv_wd_table_settings~set_selection_mode( cl_wd_table=>e_selection_mode-none ).
  lo_config_model_value2->if_salv_wd_table_settings~set_design( cl_wd_table=>e_design-alternating ).
  lo_config_model_value2->if_salv_wd_table_settings~set_grid_mode( cl_wd_table=>e_grid_mode-vertical ).
  lo_config_model_value2->if_salv_wd_table_settings~set_width( '50%' ).
  lo_config_model_value2->if_salv_wd_std_functions~set_display_settings_allowed( abap_true ).
  lo_config_model_value2->if_salv_wd_std_functions~set_edit_check_available( abap_false ).
  lo_config_model_value2->if_salv_wd_std_functions~set_column_selection_allowed( abap_false ).
  lo_config_model_value2->if_salv_wd_std_functions~set_dialog_settings_allowed( abap_false ).
  lo_config_model_value2->if_salv_wd_std_functions~set_filter_filterline_allowed( abap_false ).
  lo_config_model_value2->if_salv_wd_std_functions~set_pdf_allowed( abap_false ).
  lo_config_model_value2->if_salv_wd_std_functions~set_export_allowed( abap_false ).
  lo_config_model_value2->if_salv_wd_std_functions~set_view_list_allowed( abap_false ).
  lo_config_model_value2->if_salv_wd_std_functions~set_sort_headerclick_allowed( abap_false ).

  IF NOT lt_confirm_list[]  IS INITIAL.
    lo_config_model_value2->if_salv_wd_table_settings~set_visible( cl_wd_uielement=>e_visible-visible ).
    lo_config_model_value2->if_salv_wd_table_settings~set_visible_row_count( '-1' ).
    lo_config_model_value2->if_salv_wd_table_settings~set_footer_visible( if_salv_wd_c_table_settings=>footer_visible_false ).
  ELSE.
    lo_config_model_value2->if_salv_wd_table_settings~set_visible( cl_wd_uielement=>e_visible-none ).
  ENDIF.

  lo_column2 = lo_config_model_value2->if_salv_wd_column_settings~get_column( 'SOBID_TEXT' ).
  CALL METHOD lo_column2->create_header
    RECEIVING
      value = lo_header2.

  lo_config_model_value2->if_salv_wd_column_settings~get_columns( RECEIVING value = lt_alv_columns2 ).
  LOOP AT lt_alv_columns2 INTO ls_alv_column2.
    CASE ls_alv_column2-id.
      WHEN 'SOBID_TEXT'.
        lo_column2 = lo_config_model_value2->if_salv_wd_column_settings~get_column( ls_alv_column2-id ).
        CALL METHOD lo_column2->set_visible
          EXPORTING
            value = cl_wd_uielement=>e_visible-none.
      WHEN OTHERS.
        lo_config_model_value2->if_salv_wd_column_settings~delete_column( ls_alv_column2-id ).
    ENDCASE.
  ENDLOOP.



Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: WDP c 2-я ALV - не работает
СообщениеДобавлено: Пт, май 24 2013, 11:07 
Младший специалист
Младший специалист

Зарегистрирован:
Ср, янв 25 2012, 01:54
Сообщения: 59
что возвращает lo_cmp_usage2->has_active_component( ) если его вставить перед
Acid_Firewood написал(а):
Code:
  lo_interfacecontroller2 = wd_this->wd_cpifc_alv2( ).
  lo_config_model_value2  = lo_interfacecontroller2->get_model( ). 

я так понял что этот код из разных методов и есть подозрение что create_component() нужно будет сделать еще раз но уже в этом месте, не удаляя из предыдущего


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: WDP c 2-я ALV - не работает
СообщениеДобавлено: Пт, май 24 2013, 11:52 
Старший специалист
Старший специалист

Зарегистрирован:
Пт, окт 15 2010, 14:06
Сообщения: 292
В этом месте
Code:
lo_cmp_usage2->has_active_component( )

выдает, что компонент активен.
Если убрать проверку и вставить снова создание, то вылетает ошибка, что я пытаюсь создать существующий компонент

Изображение


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: WDP c 2-я ALV - не работает
СообщениеДобавлено: Пт, май 24 2013, 15:17 
Младший специалист
Младший специалист

Зарегистрирован:
Ср, янв 25 2012, 01:54
Сообщения: 59
Acid_Firewood написал(а):
В этом месте
Code:
lo_cmp_usage2->has_active_component( )

выдает, что компонент активен.
Если убрать проверку и вставить снова создание, то вылетает ошибка, что я пытаюсь создать существующий компонент

Изображение


нет, ну если has_active_component() true тогда конечно создавать не надо=)
тогда проблема точно в маппингах, вернее их описании в коде.
get_model() должен так себя вести если вы до этого нигде не делали

Code:
lo_interfacecontroller2->set_data( r_node_data = <алвшный контекст> )


посмотрите в каком методе это выполняется для первого алв и повторите в точности.
определить что это не сделано можно легко в дебаггере. перед получением модели смотрите lo_interfacecontoller2, там будет IF_COMPONENTCONTROLLER~R_COMPONENT, проваливаетесь в него и там в ссылке IF_SALV_WD_COMPONENT_TABLE~R_MODEL_CONTROLLER будет аттрибут R_MODEL. если он инишал то нужно создать таки контекст и делать set_data


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: WDP c 2-я ALV - не работает
СообщениеДобавлено: Пн, май 27 2013, 11:44 
Старший специалист
Старший специалист

Зарегистрирован:
Пт, окт 15 2010, 14:06
Сообщения: 292
Я, оказывается, не сделал mapping тут:

Изображение

Сделал mapping и все завертелось


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: WDP c 2-я ALV - не работает
СообщениеДобавлено: Пн, май 27 2013, 14:01 
Младший специалист
Младший специалист

Зарегистрирован:
Ср, янв 25 2012, 01:54
Сообщения: 59
Acid_Firewood написал(а):
все мапинги сделал.


:twisted:


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: WDP c 2-я ALV - не работает
СообщениеДобавлено: Пн, май 27 2013, 14:45 
Старший специалист
Старший специалист

Зарегистрирован:
Пт, окт 15 2010, 14:06
Сообщения: 292
Да, лоханулся :)


Принять этот ответ
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 12 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot], Yandex [Bot]


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB