Текущее время: Пн, июл 28 2025, 14:01

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 3 ] 
Автор Сообщение
 Заголовок сообщения: Динамический TYPE
СообщениеДобавлено: Вт, июн 11 2013, 08:28 
Младший специалист
Младший специалист
Аватара пользователя

Зарегистрирован:
Чт, янв 28 2010, 15:25
Сообщения: 89
Добрый день!
Подскажите есть ли возможность создания динамического типа переменной...

Задача следующая:
itab_edidd-sdata - переменная с типом LCHR(1000)

Из нее нужно вытащить данные и разложить по полям таблички определенного инфотипа..
Если делать :

Code:
DATA : t_hrp1000 LIKE hrp1000 OCCURS 0 WITH HEADER LINE.
MOVE  idoc_data-sdata TO t_hrp1000.

то все данные из idoc_data-sdata красиво ложатся по t_hrp1000.
-------------------------------------------------------------------------------
У себя в программе делаю так:
infty - переменная, в которой может быть признак любого инфотипа ( 0001, 1000, 1001 и т.д. )

Code:
data: infty TYPE CHAR5.
CONCATENATE 'P' infty INTO t_inf.
CREATE DATA lt_data TYPE STANDARD TABLE OF (t_inf).
ASSIGN lt_data->* TO <table>.


т.е. если в переменной infty было, например 1000
то <table> будет иметь структуру P1000.
и я могу использовать <table> для любого ФМ HR_READ_INFOTYPE или RH_READ_INFTY_1000 и т.д.
--------------------------------------------------------------------------------
Вопрос:
могу ли я как то создать переменную с динамической структурой нужного инфотипа?
Если делать:
Code:
data: infty TYPE CHAR5.
CONCATENATE 'P' infty INTO t_inf.
CREATE DATA lt_data TYPE STANDARD TABLE OF (t_inf).
MOVE itab_edidd-sdata to lt_data.


То выдает ошибку: Тип itab_edidd-sdata не может быть преобразован в тип lt_data.


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Динамический TYPE  Тема решена
СообщениеДобавлено: Вт, июн 11 2013, 09:03 
Ассистент
Ассистент

Зарегистрирован:
Чт, июл 08 2010, 07:35
Сообщения: 42
Пол: Мужской
Добрый день!
Вам нужно сначала создать структуру, скопировать в нее значения и добавить ее в таблицу.
Здесь:
Code:
CREATE DATA lt_data TYPE STANDARD TABLE OF (t_inf).
MOVE itab_edidd-sdata to lt_data.

Вы пытаетесь создать таблицу и сразу копируете значения в нее.
Для создания структуры напишите просто:

Code:
CREATE DATA ls_data TYPE (t_inf).
assign ls_data->* to <line>.
CREATE DATA lt_data TYPE TYPE STANDARD TABLE OF (t_inf).
assign lt_data->* to <table>.
...."копируйте значения в <line>
insert <line> into table <table>.


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Динамический TYPE
СообщениеДобавлено: Вт, июн 11 2013, 09:35 
Младший специалист
Младший специалист
Аватара пользователя

Зарегистрирован:
Чт, янв 28 2010, 15:25
Сообщения: 89
Спасибо огромное!!!


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

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


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

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


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

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