Текущее время: Вс, авг 03 2025, 00:26

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 17 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: ALV-GRID
СообщениеДобавлено: Вт, июн 01 2010, 14:07 
Специалист
Специалист

Зарегистрирован:
Пн, дек 21 2009, 11:07
Сообщения: 167
Здравствуйте.

Есть Селективный экран, на котором 2 радиобаттона(Рб1, рб2), есть экран на нем СпУпЭ(alv_grid). При выборе рб1 заполняется Тб1 и вывожу alv_grid, при рб2 зап. Тб2 также выводится через тот же alv_grid.
Code:

  IF gr_alvgrid IS NOT INITIAL .
     FREE gr_alvgrid.
*  ENDIF.

  IF gr_alvgrid IS INITIAL .

  CREATE OBJECT gr_ccontainer
    EXPORTING
      container_name              = gc_custom_control_name "ALV_GRID
    EXCEPTIONS
      cntl_error                  = 1
      cntl_system_error           = 2
      create_error                = 3
      lifetime_error              = 4
      lifetime_dynpro_dynpro_link = 5
      OTHERS                      = 6.
  IF sy-subrc <> 0.
  ENDIF.

  CREATE OBJECT gr_alvgrid
    EXPORTING
      i_parent          = gr_ccontainer
    EXCEPTIONS
      error_cntl_create = 1
      error_cntl_init   = 2
      error_cntl_link   = 3
      error_dp_create   = 4
      OTHERS            = 5.
  IF sy-subrc <> 0.
  ENDIF.


  REFRESH gt_fieldcat.
  PERFORM prepare_field_catalog CHANGING gt_fieldcat .

  CLEAR gs_layout.
  PERFORM build_layout CHANGING gs_layout.

  CALL METHOD gr_alvgrid->set_table_for_first_display
    EXPORTING
      is_layout = gs_layout
    CHANGING
      it_outtab = it_out[]
      it_fieldcatalog = gt_fieldcat
    EXCEPTIONS
      invalid_parameter_combination = 1
      program_error = 2
      too_many_lines = 3
      OTHERS = 4 .
  IF sy-subrc <> 0.
  ENDIF.

  CREATE OBJECT event_receiver.
  SET HANDLER event_receiver->handle_user_command FOR gr_alvgrid.
  SET HANDLER event_receiver->handle_double_click FOR gr_alvgrid.
  SET HANDLER event_receiver->handle_toolbar FOR gr_alvgrid.

  CALL METHOD gr_alvgrid->set_toolbar_interactive.

  ENDIF.

  CALL METHOD cl_gui_control=>set_focus
    EXPORTING
      control = gr_alvgrid.

первый раз зашел выбрав Рб1 -> все нормально
второй раз зашел выбрав Рб1 -> все нормально отработало, алвшник прорисовался
третий раз зашел выбрав Рб2 -> вместо 2-ой таблицы отобразилась 1 таблица
также и наоборот Рб2->Рб2->Рб1
Честно не пойму где ошибся...


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ALV-GRID
СообщениеДобавлено: Вт, июн 01 2010, 15:01 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Чт, ноя 11 2004, 16:25
Сообщения: 3109
Пол: Мужской
Селективный экран сами рисовали? В комбинации Рб2->Рб1 или Рб1->Рб2 нормально работает? Может ошибка в самой программе.


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ALV-GRID
СообщениеДобавлено: Вт, июн 01 2010, 15:04 
Модератор
Модератор

Зарегистрирован:
Пт, ноя 12 2004, 11:40
Сообщения: 542
Откуда: Москва
Пол: Мужской
а селективный - это какой? может рефреш_тэйбл_дисплей делать надо?


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ALV-GRID
СообщениеДобавлено: Вт, июн 01 2010, 15:06 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, сен 07 2004, 17:47
Сообщения: 2988
DarZ написал(а):
Здравствуйте.

Есть Селективный экран, на котором 2 радиобаттона(Рб1, рб2), есть экран на нем СпУпЭ(alv_grid). При выборе рб1 заполняется Тб1 и вывожу alv_grid, при рб2 зап. Тб2 также выводится через тот же alv_grid.
Code:

  IF gr_alvgrid IS NOT INITIAL .
     FREE gr_alvgrid.
*  ENDIF.

  IF gr_alvgrid IS INITIAL .

  CREATE OBJECT gr_ccontainer
    EXPORTING
      container_name              = gc_custom_control_name "ALV_GRID
    EXCEPTIONS
      cntl_error                  = 1
      cntl_system_error           = 2
      create_error                = 3
      lifetime_error              = 4
      lifetime_dynpro_dynpro_link = 5
      OTHERS                      = 6.
  IF sy-subrc <> 0.
  ENDIF.

  CREATE OBJECT gr_alvgrid
    EXPORTING
      i_parent          = gr_ccontainer
    EXCEPTIONS
      error_cntl_create = 1
      error_cntl_init   = 2
      error_cntl_link   = 3
      error_dp_create   = 4
      OTHERS            = 5.
  IF sy-subrc <> 0.
  ENDIF.


  REFRESH gt_fieldcat.
  PERFORM prepare_field_catalog CHANGING gt_fieldcat .

  CLEAR gs_layout.
  PERFORM build_layout CHANGING gs_layout.

  CALL METHOD gr_alvgrid->set_table_for_first_display
    EXPORTING
      is_layout = gs_layout
    CHANGING
      it_outtab = it_out[]
      it_fieldcatalog = gt_fieldcat
    EXCEPTIONS
      invalid_parameter_combination = 1
      program_error = 2
      too_many_lines = 3
      OTHERS = 4 .
  IF sy-subrc <> 0.
  ENDIF.

  CREATE OBJECT event_receiver.
  SET HANDLER event_receiver->handle_user_command FOR gr_alvgrid.
  SET HANDLER event_receiver->handle_double_click FOR gr_alvgrid.
  SET HANDLER event_receiver->handle_toolbar FOR gr_alvgrid.

  CALL METHOD gr_alvgrid->set_toolbar_interactive.

  ENDIF.

  CALL METHOD cl_gui_control=>set_focus
    EXPORTING
      control = gr_alvgrid.

первый раз зашел выбрав Рб1 -> все нормально
второй раз зашел выбрав Рб1 -> все нормально отработало, алвшник прорисовался
третий раз зашел выбрав Рб2 -> вместо 2-ой таблицы отобразилась 1 таблица
также и наоборот Рб2->Рб2->Рб1
Честно не пойму где ошибся...

В программе.
Внимательно проанализируйте свой код - что, где, когда.

Например в том фрагменте, который Вы здесь привели, нет ни то что определённых Рб1, Рб2, нет да же не определённых Тб1 и Тб2

_________________
"После" - не значит "вследствие"


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ALV-GRID
СообщениеДобавлено: Вт, июн 01 2010, 15:19 
Специалист
Специалист

Зарегистрирован:
Пн, дек 21 2009, 11:07
Сообщения: 167
Besa написал:
Селективный экран сами рисовали? В комбинации Рб2->Рб1 или Рб1->Рб2 нормально работает? Может ошибка в самой программе.

Селективный рисовал сам .
При двух радиобаттонах собирает данные нормально(Вн. таблица общая). У таблиц структуры почти одинаковые, кроме одного поля. Согласен ошибка где, только не пойму где....


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ALV-GRID
СообщениеДобавлено: Вт, июн 01 2010, 15:21 
Специалист
Специалист

Зарегистрирован:
Пн, дек 21 2009, 11:07
Сообщения: 167
Ich Will написал:
а селективный - это какой? может рефреш_тэйбл_дисплей делать надо?

Селективный рисовал сам .
В начале приведенного кода было вот так:
Code:
*  IF gr_alvgrid IS NOT INITIAL .
    fl_stable-row = 'X'.
    fl_stable-col = 'X'.
    CALL METHOD gr_alvgrid->refresh_table_display
      EXPORTING
        is_stable      = fl_stable
        i_soft_refresh = 'X'
      EXCEPTIONS
        finished       = 1
        OTHERS         = 2.
    IF sy-subrc <> 0.
    ENDIF.

**    fl_stable-row = 'X'.
**    fl_stable-col = 'X'.
**    CALL METHOD gr_alvgrid->refresh_table_display( is_stable = fl_stable ).
*  ENDIF.

Не помогло ...


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ALV-GRID
СообщениеДобавлено: Вт, июн 01 2010, 15:24 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Чт, ноя 11 2004, 16:25
Сообщения: 3109
Пол: Мужской
DarZ написал(а):
Besa написал:
Селективный экран сами рисовали? В комбинации Рб2->Рб1 или Рб1->Рб2 нормально работает? Может ошибка в самой программе.

Селективный рисовал сам .
При двух радиобаттонах собирает данные нормально(Вн. таблица общая). У таблиц структуры почти одинаковые, кроме одного поля. Согласен ошибка где, только не пойму где....

Ну а как же мы Вам тогда поможем? Надо видеть всю программу... Воспользуйтесь советом sy-uname.


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ALV-GRID
СообщениеДобавлено: Вт, июн 01 2010, 15:26 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Чт, ноя 11 2004, 16:25
Сообщения: 3109
Пол: Мужской
DarZ, если Вы делаете refresh_table_display Вам не надо убивать грид.


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ALV-GRID
СообщениеДобавлено: Вт, июн 01 2010, 15:27 
Специалист
Специалист

Зарегистрирован:
Пн, дек 21 2009, 11:07
Сообщения: 167
sy-uname написал(а):
В программе.
Внимательно проанализируйте свой код - что, где, когда.

Например в том фрагменте, который Вы здесь привели, нет ни то что определённых Рб1, Рб2, нет да же не определённых Тб1 и Тб2

Данные в таблице уже собраны по нужным мне условиям
Структуры таблицы вывода в подпрограмме (gt_fieldcat) "prepare_field_catalog"
Таблицы глобальные


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ALV-GRID
СообщениеДобавлено: Ср, июн 02 2010, 08:47 
Специалист
Специалист

Зарегистрирован:
Пн, дек 21 2009, 11:07
Сообщения: 167
Besa написал:
DarZ, если Вы делаете refresh_table_display Вам не надо убивать грид.

Сделал, теперь как обновлять структуру, а-то если я впервый раз зашел как Рб1, структура таблицы вывода правильная, а когда захожу Рб2 он берет структуру первой таблицы, как перерисовать структуру?


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ALV-GRID
СообщениеДобавлено: Ср, июн 02 2010, 09:54 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Пт, сен 23 2005, 11:11
Сообщения: 963
получается что не экран, а gr_ccontainer как бы селективный.

если вы не намудрили с радиобаттонами и филдкаталогами:
сделайте отдельные экраны содержащие как бы СпУпЭ, с различающимися именами
и выводите в каждом из них свой грид, т.е. вызывайте в каждом из случаев свой экран


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: ALV-GRID
СообщениеДобавлено: Ср, июн 02 2010, 12:26 
Специалист
Специалист

Зарегистрирован:
Пн, дек 21 2009, 11:07
Сообщения: 167
Пока что так и сделал...
А вообще возможно на одном СпУпЭ выводить при разных условиях таблицы с разными структурами и данными?


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ALV-GRID
СообщениеДобавлено: Ср, июн 02 2010, 13:36 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, сен 07 2004, 17:47
Сообщения: 2988
DarZ написал(а):
Пока что так и сделал...
А вообще возможно на одном СпУпЭ выводить при разных условиях таблицы с разными структурами и данными?

Возможно.

_________________
"После" - не значит "вследствие"


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ALV-GRID
СообщениеДобавлено: Ср, июн 02 2010, 17:15 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Чт, ноя 11 2004, 16:25
Сообщения: 3109
Пол: Мужской
DarZ написал(а):
Пока что так и сделал...
А вообще возможно на одном СпУпЭ выводить при разных условиях таблицы с разными структурами и данными?

viewtopic.php?f=13&t=45807


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ALV-GRID
СообщениеДобавлено: Вт, июн 08 2010, 09:47 
Специалист
Специалист

Зарегистрирован:
Пн, дек 21 2009, 11:07
Сообщения: 167
Добрый день.

Каким образом можно реализовать событие DOUBLE CLICK и USER-COMMAND для ALV Tree (cl_gui_alv_tree_simple)?


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 17 ]  На страницу 1, 2  След.

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


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

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


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

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