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

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


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

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


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

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