Текущее время: Вс, июл 20 2025, 18:28

Часовой пояс: 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 часа


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

Сейчас этот форум просматривают: нет зарегистрированных пользователей


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

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