Текущее время: Ср, июл 16 2025, 18:30

Часовой пояс: 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 часа


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

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


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

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