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

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 3 ] 
Автор Сообщение
 Заголовок сообщения: Создать два ALV на одной форме
СообщениеДобавлено: Пн, авг 27 2007, 11:21 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Чт, дек 21 2006, 16:38
Сообщения: 304
Задача простая: вывести отчет в ALV, затем по нажатию кнопок вывести другой ALV.

Чтобы не плодить экраны, я второй ALV создаю на том же экране в томже контейнере, но с другими парамтерами.

Идея вроде была здравая (как я думал), но второй ALV не выводится, а на экране остаётся первый ALV.
Если же указать другой экран для второго ALV, то всё работает. Сначало я думал, что нельзя один и тотже экран последовательно вызвать с разными ALV, но REUSE такое делает.

Немного покопался и нашел, что если контейнер создавать таким вот образом
Code:

CREATE OBJECT container
      EXPORTING
        CONTAINER_NAME = 'CONTAINER'
         lifetime      = CNTL_LIFETIME_DYNPRO

вместо
Code:

CREATE OBJECT container
      EXPORTING
        CONTAINER_NAME = 'CONTAINER'

то появляется второй ALV, однако при вызове метода Free для этого второго ALV валится дамп Exception condition "CNTL_ERROR" raised

Собственно вопросы:
Как можно сделать такой хитрый вызов? Может кто подскажет, куда именно в REUSE смотреть?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, авг 27 2007, 12:10 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Ср, ноя 03 2004, 14:51
Сообщения: 1912
Откуда: КраснАдар
Пол: Мужской
Если позволяют условия, расширьте структуру внутренней таблицы под данные для обоих ALV GRID (таблица данных) + используйте дублирующую таблицу для формирования выводных данных. Тогда не надо будет делать лишние телодвижения. Достаточно будет заполнять таблицу по которой строится ALV нужными данными, регулировать вывод с помощью FIELDCATALOG и для обновления использовать REFRESH-метод.

Добавлено:
Ну а если не позволяют условия - то проанализируйте уровень вложенности вызываемых данных. Если 2-3 - проше расдублировать экран; если больше - стоит посмотреть в сторону использования REUSE. ИМХО...


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, авг 27 2007, 13:36 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Чт, дек 21 2006, 16:38
Сообщения: 304
Оказалось, что это я немного не так делал.
Я вызывал методы FREE уже после команды
LEAVE TO SCREEN 0.
а после этого вызова там уже что-то разрушалось и приводило к дампу.
Если делать это ДО вызова LEAVE TO SCREEN 0, то всё нормально работает, как в REUSE.


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

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


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

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


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

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