Текущее время: Ср, июл 23 2025, 21:59

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 6 ] 
Автор Сообщение
 Заголовок сообщения: копирование 2-х внут. таблиц с разными структурами
СообщениеДобавлено: Ср, апр 18 2012, 21:06 
Начинающий
Начинающий

Зарегистрирован:
Пн, фев 27 2012, 17:43
Сообщения: 19
Откуда: Prague
Пол: Мужской
Прошу не судить строго, если если это элементарно, но никак не получается, скопировать содержимое из 1 внут. таблицы в другую с разными структурами. в своем методе создаю динамическую внут. таблицу и в нее надо переписать данные из другой таблицы (переданную в метод как параметр outtab Type standard table). В 1-ой динамической таблице имеются поля как и в другой таблице, но не наоборот.

Code:
method SAVE_DATA.

field-symbols: <dyn_table> type standard table  ,
                     <dyn_wa> TYPE ANY.

data: dy_table type ref to data,
        ifc type lvc_t_fcat.

* Create dynamic internal table
  call method cl_alv_table_create=>create_dynamic_table
               exporting
                  it_fieldcatalog = ifc
               importing
                  ep_table        = dy_table.

  assign dy_table->* to <dyn_table>.

************** нужно что типа этого************
MOVE outtab to <dyn_table>.
*********************************************

endmethod.


Хотел записать через loop at .... MOVE-CORRESPONDING ... endloop. Но не могу создать стуктуру для таблицы переданной как параметр. (для динам. содается без проблемм).
Заранее всем благодарен за помощь.


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: копирование 2-х внут. таблиц с разными структурами  Тема решена
СообщениеДобавлено: Ср, апр 18 2012, 22:04 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Пн, мар 28 2005, 15:38
Сообщения: 1257
Примерно так
Code:
  field-symbols
    : <lsrc>    type any
    , <ltrg>    type any
    .
.....
loop at imt_src asigning <lsrc>.
  append initial line to <lt_trg> assigning <ltrg>.
  move-corresponding <lsrc> to <ltrg>.
endloop.


<lt_trg> - ссылка на вашу динамическую таблу
imt_src - исходная таблица

_________________
Там, где я рос, единственным развлечением было запоминать число «π».(С) Н. Стивенсон


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: копирование 2-х внут. таблиц с разными структурами
СообщениеДобавлено: Чт, апр 19 2012, 09:51 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Пн, ноя 01 2004, 12:17
Сообщения: 298
Пол: Мужской
Для лентяев есть
Code:
  CALL METHOD cl_reca_data_services=>move_corresponding_table


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: копирование 2-х внут. таблиц с разными структурами
СообщениеДобавлено: Чт, апр 19 2012, 12:27 
Начинающий
Начинающий

Зарегистрирован:
Пн, фев 27 2012, 17:43
Сообщения: 19
Откуда: Prague
Пол: Мужской
To Кодер.
Спасибо большое, помогло :)
а вот cl_reca_data_services=>move_corresponding_table система не понимает :cry: видимо не судьба мне ленится, но все равно спасибо за помощь...


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: копирование 2-х внут. таблиц с разными структурами
СообщениеДобавлено: Ср, май 23 2012, 12:29 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Пт, июл 16 2010, 09:57
Сообщения: 106
Откуда: СПб
Пол: Мужской
chita написал:
а вот cl_reca_data_services=>move_corresponding_table система не понимает :cry:
Та же фигня. Но, видимо, я был совсем ленив, поэтому решил поискать в тр. SE16 по таблице SEOCOMPO для CMPNAME = MOVE_CORRESPONDING_TABLE.

Нашлось 3 класса и соответственно 3 одноименных статических метода:
CL_ISSR_TOOLS=>move_corresponding_table
CL_REUT_TEST_SERVICES=>move_corresponding_table
CL_REXC_FC_SERVICES=>move_corresponding_table

Все они - абсолютные (явно копи-пастные) копии друг друга следующего вида:
Code:
METHOD MOVE_CORRESPONDING_TABLE .

  DATA:
    ls_trg   TYPE REF TO data.

  FIELD-SYMBOLS:
    <ls_src> TYPE ANY,
    <ls_trg> TYPE ANY.

* create one line of data of target type
  CREATE DATA ls_trg LIKE LINE OF ct_trg.
  ASSIGN ls_trg->* TO <ls_trg>.

* move-corresponding each line of SRC to TRG line
  LOOP AT it_src ASSIGNING <ls_src>.
    MOVE-CORRESPONDING <ls_src> TO <ls_trg>.
    APPEND <ls_trg> TO ct_trg.
  ENDLOOP.

  FREE ls_trg.

ENDMETHOD.
Годы создания классов: 2000, 2003, 2005 соответственно. Поэтому исторической справедливости ради, а также краткости названия для, можно остановиться на первом из них: cl_issr_tools=>move_corresponding_table.


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: копирование 2-х внут. таблиц с разными структурами
СообщениеДобавлено: Ср, май 23 2012, 15:05 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Пт, янв 21 2005, 12:40
Сообщения: 371
Пол: Мужской
В 4.7 из данных классов есть только CL_ISSR_TOOLS, но в нем нет метода move_corresponding_table


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

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


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

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


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

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