Текущее время: Вс, апр 28 2024, 07:54

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 19 ]  На страницу Пред.  1, 2
Автор Сообщение
 Заголовок сообщения: Re: Ведение динамических таблиц
СообщениеДобавлено: Пн, ноя 07 2022, 11:24 
Младший специалист
Младший специалист

Зарегистрирован:
Чт, ноя 08 2018, 14:09
Сообщения: 88
Откуда: Челябинск
Пол: Мужской
broker.chelny написал:
Для сравнения 2 внутренних динамических таблиц я обычно использую поле-структуру с ключами.
Т.е. первым полем завожу структуру, а дальше уже остальные данные.



Можете наглядно написать пожалуйста, как это выглядит ?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Ведение динамических таблиц
СообщениеДобавлено: Вт, ноя 08 2022, 13:12 
Специалист
Специалист

Зарегистрирован:
Чт, дек 16 2010, 15:23
Сообщения: 131
Откуда: Набережные Челны
Пол: Мужской
Объявляешь переменную с нужной структурой.
Далее получаешь описание структуры по переменной (RTTS класс), хотя можно и по имени получить.
Далее в таблицу с компонентами будущей таблицы добавляешь описание этой структуры, например с именем KEY. Потом по таблице с компонентами создаешь описание структуры, по ней создаешь описание внутренней таблицы и создаешь ее в памяти.
Далее заполняешь внутреннюю таблицу.
Потом можно сделать сортировку
Code:
SORT <itab> BY ('KEY')

Потом можно искать запись через
Code:
READ TABLE <itab> WITH KEY ('KEY') = lv_key BINARY SEARCH...


Никто не мешает в памяти создавать отсортированные и хэшированные таблицы, тогда можно уже искать так:
Code:
FIELD-SYMBOL: <fs_key> TYPE ts_key.
assign component 1 of structure <wa_data> to <fs_key>.
<fs_key> = lv_key.
Или <fs_key>-comp1 = '...'. <fs_key>-comp2 = '...'.
READ TABLE <itab> FROM <wa_data>...

Только в памяти еще нужно будет создать рабочую область (<wa_data>) со структурой внутренней таблицы


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Ведение динамических таблиц
СообщениеДобавлено: Чт, ноя 10 2022, 13:23 
Младший специалист
Младший специалист

Зарегистрирован:
Чт, ноя 08 2018, 14:09
Сообщения: 88
Откуда: Челябинск
Пол: Мужской
Благодарю!

Подскажите а существует ли способ выполнить операцию COLLECT для динамической таблицы или можно как то по другому быстро сгруппировать строки по ДТ?
На форуме в самом конце человек аналогичный вопрос задает.....
https://blogs.sap.com/2013/06/11/dynami ... nal-table/


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Ведение динамических таблиц
СообщениеДобавлено: Пт, ноя 11 2022, 09:24 
Специалист
Специалист

Зарегистрирован:
Чт, дек 16 2010, 15:23
Сообщения: 131
Откуда: Набережные Челны
Пол: Мужской
Не знаю.
Я пользуюсь самописным методом, который принимает на вход ANY TABLE и меняет HASHED TABLE.
Группировка идет по ключам определенными в хэшированной таблице.
+ дополнительно передаю по каким поля считать сумму, по каким находить минимум или максимум, по каким брать первое попавшееся значение.


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

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


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

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


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

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