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

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 9 ] 
Автор Сообщение
 Заголовок сообщения: Как рисовать в стандартный список ALV
СообщениеДобавлено: Ср, окт 31 2007, 21:40 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Вт, апр 24 2007, 15:56
Сообщения: 1402
Добрый день!

Хочется в строках списка, сгенерированного
ФМ "REUSE_ALV_LIST_DISPLAY", нарисовать линии (WRITE ... AS LINE).
Такое возможно в принципе??


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

Зарегистрирован:
Ср, ноя 03 2004, 14:51
Сообщения: 1912
Откуда: КраснАдар
Пол: Мужской
Не совсем понятен вопрос, но отвечу - нет. Да и зачем это нужно? Задачу подробнее раскройте, может придумается что.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, ноя 01 2007, 08:34 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Ср, ноя 23 2005, 13:37
Сообщения: 1805
Откуда: ECC 6.0
Пол: Мужской
В событии END_OF_PAGE или END_OF_LIST можно попробовать сделать со списком то, что хочется. Благо есть операторы READ LINE, MODIFY LINE и т.д.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, ноя 01 2007, 08:50 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Вт, апр 24 2007, 15:56
Сообщения: 1402
Хм... как бы попроще объяснить.
Есть иерархия документов, типа дерева, но для ее визуализации не подходят стандартные методы типа "RS_TREE_CONSTRUCT",
т.к. последующие узлы могут быть как выше, так и ниже корневого узла.
Идея такая - вывести все строки в ALV, а потом в спец. столбце нарисовать линии, связывающие узлы (позиции) определенным образом.

Простое рисование на экран (в LIST-PROCESSING) работает,
но уж очень много писать кода для вывода данных, обработки команд пользователя.

З.Ы. Если такое невозможно, то подскажите хотя бы, как сделать так,
чтобы при обработке AT LINE-SELECTION не генерился новый подэкран.
Т.е. пользователь щелкнул по строке, ранее выведенные на экран данные удалились,
и на него же вывелись новые (обработанные) данные.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, ноя 01 2007, 09:05 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Вт, апр 24 2007, 15:56
Сообщения: 1402
Пока писал сообщение, уже ответили :lol:
Ну, попробуем...

А вопрос про AT LINE-SELECTION никто не отменял :lol:


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, ноя 01 2007, 09:28 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Ср, ноя 23 2005, 13:37
Сообщения: 1805
Откуда: ECC 6.0
Пол: Мужской
troy написал(а):
А вопрос про AT LINE-SELECTION никто не отменял :lol:

Прошу прощенья за длинную цитату:
Цитата:
To return from a high list level to the next-lower level, the user can choose Back from a detail list. The system releases the last list to have been displayed, and returns to the previous list level. The system deletes the contents of the released list.

To determine the list level in which the output from an event block will be displayed, you can change the value of the system fields sy-lsind. This is one of the few exceptions to the rule that states that you must never overwrite ABAP system fields. The system accepts only index values which correspond to existing list levels. It then deletes all existing list levels whose index is greater or equal to the index you specify. For example, if you set sy-lsind to 0, the system deletes all secondary lists and overwrites the basic list with the current secondary list.

When you change sy-lsind, the change only takes effect at the end of the corresponding event. If you work with statements in the processing block that access the list with the index sy-lsind using the INDEXaddition (for example, SCROLL), you should set the new value of sy-lsind after these statements. The best place to set it is in the last statement of the event block.


В общем, изменяете корневой лист:
Code:
MODIFY LINE <n> INDEX 0.

а в конце события говорите: sy-lsind = 0.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, ноя 01 2007, 10:24 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Вт, апр 24 2007, 15:56
Сообщения: 1402
Не работает млин.

Вывожу список, в подпрограмме для события "END_OF_LIST" пишу тестовый код:
Code:
READ LINE 5.
WRITE line_left_middle_corner to SY-LISEL+10(1) AS LINE.
MODIFY CURRENT LINE.

В результате выводится не символ, присвоенный константе line_left_middle_corner,
а значение самой константы - т.е. цифра '6'.
По-видимому, WRITE ... AS LINE можно использовать только
непосредственно для вывода на экран.
Грустно... :(


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, ноя 01 2007, 11:54 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Ср, ноя 23 2005, 13:37
Сообщения: 1805
Откуда: ECC 6.0
Пол: Мужской
troy написал(а):
По-видимому, WRITE ... AS LINE можно использовать только непосредственно для вывода на экран.
Грустно... :(

Вот же недавно была тема:
Anutka написала:
Еще так же сработал старый вариант, но с добавлением сразу после modify строки
sy-uline = '-------------------------------------------------------'.


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

Зарегистрирован:
Вт, апр 24 2007, 15:56
Сообщения: 1402
Оно! :D
Не додумал до конца - в процедуре для события 'END_OF_LIST' можно
напрямую рисовать на экран, сгенеренный ALV, командами WRITE,
а не только через MODIFY LINE!


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

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


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

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


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

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