Текущее время: Сб, авг 02 2025, 17:00

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


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

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


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

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