SAPфорум.RU https://www.sapboard.ru/forum/ |
|
Ведение динамических таблиц https://www.sapboard.ru/forum/viewtopic.php?f=13&t=86986 |
Страница 2 из 2 |
Автор: | proga19 [ Пн, ноя 07 2022, 11:24 ] |
Заголовок сообщения: | Re: Ведение динамических таблиц |
broker.chelny написал: Для сравнения 2 внутренних динамических таблиц я обычно использую поле-структуру с ключами. Т.е. первым полем завожу структуру, а дальше уже остальные данные. Можете наглядно написать пожалуйста, как это выглядит ? |
Автор: | broker.chelny [ Вт, ноя 08 2022, 13:12 ] |
Заголовок сообщения: | Re: Ведение динамических таблиц |
Объявляешь переменную с нужной структурой. Далее получаешь описание структуры по переменной (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>) со структурой внутренней таблицы |
Автор: | proga19 [ Чт, ноя 10 2022, 13:23 ] |
Заголовок сообщения: | Re: Ведение динамических таблиц |
Благодарю! Подскажите а существует ли способ выполнить операцию COLLECT для динамической таблицы или можно как то по другому быстро сгруппировать строки по ДТ? На форуме в самом конце человек аналогичный вопрос задает..... https://blogs.sap.com/2013/06/11/dynami ... nal-table/ |
Автор: | broker.chelny [ Пт, ноя 11 2022, 09:24 ] |
Заголовок сообщения: | Re: Ведение динамических таблиц |
Не знаю. Я пользуюсь самописным методом, который принимает на вход ANY TABLE и меняет HASHED TABLE. Группировка идет по ключам определенными в хэшированной таблице. + дополнительно передаю по каким поля считать сумму, по каким находить минимум или максимум, по каким брать первое попавшееся значение. |
Страница 2 из 2 | Часовой пояс: UTC + 3 часа |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |