SAPфорум.RU https://sapboard.ru/forum/ |
|
Подскажите как создать и добавлять данные в таблицу с вложенной структурой? https://sapboard.ru/forum/viewtopic.php?f=13&t=98976 |
Страница 1 из 1 |
Автор: | AlexU123 [ Чт, сен 03 2020, 12:19 ] |
Заголовок сообщения: | Подскажите как создать и добавлять данные в таблицу с вложенной структурой? |
Подскажите как создать и добавлять данные в таблицу с вложенной структурой? Идея следующая к одному ключю RBUKRS в deep Таблице gt_pivot надо добавить несколько записей со структурой teil затем к следующему RBUKRS еще несколько записей со структурой teil и так далее структура teil есть часть сложной структуры ds_pivot: ----------------------------------------------- Code: TYPES: BEGIN OF ts_teil, RACCT TYPE RACCT, WAERS TYPE WAERS, REPVAL TYPE BSPL_REPVAL, END OF ts_teil. types tab_teil type standard table of ts_teil. data: BEGIN OF ds_pivot, RBUKRS TYPE BUKRS, teil TYPE tab_teil, END OF ds_pivot. ----------------------------------------------------------------------------------- для какого то определенного RBUKRS = 600 заполняем из данных gt_data часть сложной структуры, те получаем таблицу в структуре (типизирвание gt_data не преводил чтобы не засорять картину) Code: loop at gt_data INTO gs_data where RBUKRS = '600'. ds_pivot-RBUKRS = '600' gs_teil-RACCT = gs_data-RACCT. gs_teil-WAERS = gs_data-waers. gs_teil-REPVAL = gs_data-REPVAL. APPEND gs_teil to ds_pivot-teil . ds_pivot-rbukrs = gs_data-rbukrs. endloop ----------------------------------------------------------------------------------------- Далее синтакстически не корректно. только попытка реализовать желаемое, но не знаю как. Code: TYPES: BEGIN OF ts_pivot, RBUKRS TYPE BUKRS, teil TYPE ts_teil, END OF ts_pivot. INSERT ds_pivot INTO TABLE gt_pivot. Хочу добавлять записи в некую таблицу gt_pivot для нескольких RBUKRS для каждого из которых есть набор данных в структуре-таблице ds_pivot. Как сделать такую конструкцию? |
Автор: | kernel [ Пт, сен 04 2020, 07:33 ] |
Заголовок сообщения: | Re: Подскажите как создать и добавлять данные в таблицу с вложенной структурой? |
А что именно не корректно? У меня компилятор не ругается на этот код. |
Автор: | AlexU123 [ Вс, сен 06 2020, 00:41 ] |
Заголовок сообщения: | Re: Подскажите как создать и добавлять данные в таблицу с вложенной структурой? |
kernel написал(а): А что именно не корректно? У меня компилятор не ругается на этот код. на последную строчку кода не ругается? у меня вылетает ошибка. завтра напишу какая именно до последней строчки все ОК. но вся соль именно в ней. как типизировать таблицу под вложенную в нее структуру и как правильно добавлять в нее записи? чтобы в конечном итоге получалось что на каждый KEY = RBUKRS приходится еще от 0 до n записей с несколькими полями. когда в Debugger видишь такую таблицу то после клика на ее колонку со вложенной структурой открывается внутренняя таблица для активного KEY с основной таблицы. у меня возникла первая необходимость заполнения такой таблицы. но не могу пока понять как это делать. в самом коде SAP таких internal table можно встретить великое множество. например в известном репортре ORDER_READ |
Автор: | LKU [ Вс, сен 06 2020, 17:47 ] |
Заголовок сообщения: | Re: Подскажите как создать и добавлять данные в таблицу с вложенной структурой? |
Вроде у вас не хватает объявления: Code: data: gt_pivot type table of ts_pivot. И второй момент: насколько помню, использовать insert в том виде, как вы написали, можно только если таблица объявлена как сортированная (тогда система понимает на какое место вставить строку). Если же таблица не сортированная, то надо использовать либо append, либо для insert явно указывать номер строки, куда хотите вставить (insert <> into table <> index <> ). |
Автор: | Удав [ Вт, сен 08 2020, 08:35 ] |
Заголовок сообщения: | Re: Подскажите как создать и добавлять данные в таблицу с вложенной структурой? |
LKU написал: насколько помню, использовать insert в том виде, как вы написали, можно только если таблица объявлена как сортированная (тогда система понимает на какое место вставить строку). Если же таблица не сортированная, то надо использовать либо append, либо для insert явно указывать номер строки, куда хотите вставить (insert <> into table <> index <> ). INSERT .. INTO TABLE с несортированными таблицами работает как APPEND. Дополнение ..INDEX используется без TABLE: INSERT .. INTO .. INDEX |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |