Текущее время: Пт, июн 20 2025, 00:55

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


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

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


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

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