Текущее время: Пт, июл 18 2025, 08:18

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 9 ] 
Автор Сообщение
 Заголовок сообщения: INSERT (_tabname) ОК, APPEND (_itabname) не ОК?
СообщениеДобавлено: Пн, окт 27 2008, 18:56 
Старший специалист
Старший специалист

Зарегистрирован:
Пн, окт 20 2008, 10:29
Сообщения: 339
Откуда: Мюнхен
Пол: Мужской
Уважаемые мастера, подскажите.
Есть набор внутренних таблиц. Нужно динамически их заполнять, имея список их имен. В случае с таблицами БД проблем нет, а как такое провернуть с внутренними таблицами?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, окт 27 2008, 19:03 
Старший специалист
Старший специалист

Зарегистрирован:
Пн, окт 20 2008, 10:29
Сообщения: 339
Откуда: Мюнхен
Пол: Мужской
Вот фрагмент кода с таблицами БД:

DATA: lr_dref TYPE REF TO data "Ref-Variable für Tabelle
, lr_dref2 TYPE REF TO data "Ref-Variable für Tabelle
.

FIELD-SYMBOLS: <ls_row> TYPE ANY "Ref-Variable für Zeile
, <ls_row2> TYPE ANY "Ref-Variable für Zeile
.

LOOP AT ...

p_tname = wa_data-....

CREATE DATA lr_dref TYPE (p_tname).
ASSIGN lr_dref->* TO <ls_row>.

LOOP AT lt_fields INTO ls_fields.
ASSIGN COMPONENT lv_i OF STRUCTURE <ls_row> TO <ls_fs>.
ADD 1 TO lv_i.

<ls_fs> = ....
ENDLOOP.

INSERT (p_tname) FROM <ls_row>.

ENDLOOP.

************************************************************
Проблема №1:

CREATE DATA lr_dref TYPE (p_tname). - если п_тнаме содержит не тип структуры или БД, то ошибка

Проблема №2:

INSERT (p_tname) FROM <ls_row>.

во внутреннюю таблицу это не катит, даже с АППЕНД


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, окт 27 2008, 19:12 
Старший специалист
Старший специалист

Зарегистрирован:
Пн, окт 20 2008, 10:29
Сообщения: 339
Откуда: Мюнхен
Пол: Мужской
насчет второй проблемы insert для внутренних таблиц имеет другой синтаксис, но тогда он не воспринимает (_itabname)


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, окт 27 2008, 19:15 
Модератор
Модератор
Аватара пользователя

Зарегистрирован:
Пт, июн 16 2006, 00:43
Сообщения: 1686
Откуда: Москва <-> Красноярск
Пол: Мужской
VID, оформляйте свой код тэгами, пожалуйста.

Ну вот пример простенький:

Code:
DATA: gt_tab TYPE TABLE OF bkpf.

DATA: gs TYPE string VALUE 'GT_TAB'.

DATA: ls_table_line TYPE REF TO data.

FIELD-SYMBOLS: <lfs_t> TYPE ANY TABLE,
               <lfs_s> TYPE ANY,
               <lfs>   TYPE ANY.

ASSIGN (gs) TO <lfs_t>.

CREATE DATA ls_table_line LIKE LINE OF <lfs_t>.

ASSIGN ls_table_line->* TO <lfs_s>.

ASSIGN COMPONENT 'MANDT' OF STRUCTURE <lfs_s> TO <lfs>.

<lfs> = '130'.

INSERT <lfs_s> INTO TABLE <lfs_t>.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, окт 27 2008, 19:20 
Президент
Президент

Зарегистрирован:
Пт, апр 28 2006, 22:39
Сообщения: 2514
Откуда: North Taxolina, USA
Пол: Женский
VID написал:
Проблема №1:
CREATE DATA lr_dref TYPE (p_tname). - если п_тнаме содержит не тип структуры или БД, то ошибка


Не совсем понятно, а что оно должно содержать, по-вашему? :? Логично предположить, что то, что следует после слова TYPE, должно быть названием какого-то типа... :?

VID написал:
Проблема №2:
INSERT (p_tname) FROM <ls_row>.
во внутреннюю таблицу это не катит, даже с АППЕНД


Ну ёлки-моталки... Посмотрите в Help, там вы сразу увидите, что для INSERT dtab и INSERT itab синтаксис разный:

Code:
INSERT itab
Syntax
INSERT line_spec INTO itab_position [result].


Вообще вопросы по динамическомy программированию (ASSIGN и прочая) задавались тут уже много раз, поищите. Ну и посмотрите хотя бы eLearning на SDN:
https://www.sdn.sap.com/irj/servlet/prt ... 35e96fe0ae

_________________
"One of the symptoms of an approaching nervous breakdown is the belief that one's work is terribly important." Bertrand Russell


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, окт 27 2008, 19:26 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, сен 07 2004, 17:47
Сообщения: 2988
Jelena написала:
...
VID написал:
Проблема №2:
INSERT (p_tname) FROM <ls_row>.
во внутреннюю таблицу это не катит, даже с АППЕНД


Ну ёлки-моталки... Посмотрите в Help, там вы сразу увидите, что для INSERT dtab и INSERT itab синтаксис разный:

...
Похоже что "VID" принципиально не желает смотреть в такие пошло-банальные вещи как help, примеры и читать курсы из цикла BC4xx.

_________________
"После" - не значит "вследствие"


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

Зарегистрирован:
Пн, дек 20 2004, 16:05
Сообщения: 1080
Откуда: 4.0B
Пол: Мужской
sy-uname написал(а):
Похоже что "VID" принципиально не желает смотреть в такие пошло-банальные вещи как help, примеры и читать курсы из цикла BC4xx.


Это явно наметившаяся на форуме тенденция.

_________________
Я слышу и забываю,
Я вижу и помню долго,
Я делаю и — понимаю.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, окт 28 2008, 15:31 
Старший специалист
Старший специалист

Зарегистрирован:
Пн, окт 20 2008, 10:29
Сообщения: 339
Откуда: Мюнхен
Пол: Мужской
to Пономарев Артем

большое спасибо!!! :pivo:
насчет оформления кода учту) просто спешил очень, срочно было. по той же причине не было времени рыться на форуме и в хелпе. попробовал на форуме искать - да, вопрос задавался часто, но ничего не подходило. поэтому задал еще раз.

еще раз спасибо!!!)))


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, окт 28 2008, 18:56 
Президент
Президент

Зарегистрирован:
Пт, апр 28 2006, 22:39
Сообщения: 2514
Откуда: North Taxolina, USA
Пол: Женский
VID написал:
просто спешил очень, срочно было. по той же причине не было времени рыться на форуме и в хелпе.

IMHO с таким attitude вас скоро бить начнут. :? Как на форуме, так и на работе...

_________________
"One of the symptoms of an approaching nervous breakdown is the belief that one's work is terribly important." Bertrand Russell


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

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


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

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


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

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