Текущее время: Вт, июл 29 2025, 11:31

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 17 ]  На страницу Пред.  1, 2
Автор Сообщение
 Заголовок сообщения: Re: Две внутренние таблицы(разных структур) с общими данными, возможно ли?
СообщениеДобавлено: Сб, дек 08 2012, 14:04 
Старший специалист
Старший специалист

Зарегистрирован:
Вт, ноя 18 2008, 10:40
Сообщения: 342
Откуда: Пермь
Пол: Мужской
Parazit написал:
broker.chelny написал:
Как вариант в одной из таблиц хранить reference на значения другой таблицы.

Если "другая таблица" будет изменена, например, сортировка, все ссылки поедут. В лучшем случае будет дамп, в худшем заметите искажение данных в продуктиве. :)

Parazit, боюсь тут вы не правы. Ссылки без проблем переживают и изменение и сортировку таблицы. Конечно это применимо если только одна таблица задана жестко, а вторую можно сделать любой. У автора как выяснилось вторая тоже не допускает изменений, так что метод со ссылками не годится. Остается MOVE-CORRESPONDING. Остальные предложенные методы явно ведут к ухудшению кармы :)


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Две внутренние таблицы(разных структур) с общими данными, возможно ли?
СообщениеДобавлено: Вс, дек 09 2012, 18:33 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, авг 19 2004, 17:37
Сообщения: 1962
Откуда: Москва
Пол: Мужской
zsap написал:
Parazit написал:
Если "другая таблица" будет изменена, например, сортировка, все ссылки поедут. В лучшем случае будет дамп, в худшем заметите искажение данных в продуктиве. :)

Parazit, боюсь тут вы не правы. Ссылки без проблем переживают и изменение и сортировку таблицы. Конечно это применимо если только одна таблица задана жестко, а вторую можно сделать любой. У автора как выяснилось вторая тоже не допускает изменений, так что метод со ссылками не годится. Остается MOVE-CORRESPONDING. Остальные предложенные методы явно ведут к ухудшению кармы :)

Вы правы, я не ожидал такой прыти от SAP. :)
Проверил на коде в 4.6 - работает (см.код ниже). Причем выдержало не только сортировку, но даже удаление записей. Видимо я не правильно представлял себе внутреннее устройство таблиц. Я представлял его в виде массива записей, как в Pascal-е например, а при сортировке происходит перемещение записей целиком. Вероятно, на самом деле, записи хранятся в памяти как отдельные переменные, а в таблице всегда хранятся лишь указатели на них.
Code:
REPORT ZPROBA .


Types:
  Begin of t_abc,
    a type sy-datum,
    b type char30,
    c type num10,
  End of t_abc.

      Types:
        Begin of t_abcde,
          ref_abc type ref to data,
          d type char20,
          e type d,
        End of t_abcde.

Data:
  it_abc   type standard table of t_abc
    with header line,
  it_abcde type standard table of t_abcde
    with header line.

Field-symbols:
  <abc> type t_abc.

Start-of-Selection.
  it_abc-a = '20121231'.
  it_abc-b = 'видим 1-ю abc'.
  it_abc-c = 54321.
  Append it_abc.
  Read table it_abc assigning <abc> index sy-tabix.
  Get reference of <abc> into it_abcde-ref_abc.
  it_abcde-d = 'Для 1-й abcde'.
  it_abcde-e = '20130101'.
  Append it_abcde.

  Clear it_abc.
  it_abc-b = 'удалим'.
  Append it_abc.
  Read table it_abc assigning <abc> index sy-tabix.
  Get reference of <abc> into it_abcde-ref_abc.
  it_abcde-d = 'Для пустой'.
  it_abcde-e = '99991231'.
  Append it_abcde.

  it_abc-a = '20120101'.
  it_abc-b = 'видим 2-ю abc'.
  it_abc-c = 98765.
  Append it_abc.
  Read table it_abc assigning <abc> index sy-tabix.
  Get reference of <abc> into it_abcde-ref_abc.
  it_abcde-d = 'Для 2-й abcde'.
  it_abcde-e = '99991231'.
  Append it_abcde.

  Write: / 'До сортировки:'.
  Loop at it_abcde.
    Assign it_abcde-ref_abc->* to <abc>.
    Write: / <abc>-a, it_abcde-d, <abc>-b.
  EndLoop.

  Skip.

  Delete it_abc index 2.
  Sort it_abc by a.

  Write: / 'После сортировки:'.
  Loop at it_abcde.
    Assign it_abcde-ref_abc->* to <abc>.
    check sy-subrc = 0.
    Write: / <abc>-a, it_abcde-d, <abc>-b.
  EndLoop.

_________________
"For all entries" не в SAP-ах, "for all entries" в головах! :)


Принять этот ответ
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 17 ]  На страницу Пред.  1, 2

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


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

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


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

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