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

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


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

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


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

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