Текущее время: Вс, июл 20 2025, 16:20

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 17 ]  На страницу Пред.  1, 2
Автор Сообщение
 Заголовок сообщения:
СообщениеДобавлено: Ср, ноя 28 2007, 19:12 
Специалист
Специалист

Зарегистрирован:
Чт, июн 21 2007, 09:14
Сообщения: 166
Откуда: Москва
Пол: Мужской
sibrin написал:
vga написал(а):
Ну да, если программу не я разрабатывал, стараюсь структуру не изменять...как бы чего не зацепить, а сохраняю заменяемые звездочкой поля в своих переменных.


AT (и вытекающие из него звёздочки) тут можно запросто не использовать:
  LOOP ... ASSIGNING <...>.
    COLLECT ...
  ENDLOOP.
Так будет будет намного короче.

Но если в исходном примере второе суммирование (COLLECT) убрать, то тоже нормально (при условии правильного задания структуры таблицы).

Тут дело вкуса. Кто C++ ещё не забыл, тот конструкции типа AT. SUM., конечно, недолюбливает.

+1. Соглашусь. COLLECT хорошая штука. Можно вобще организовать динамическую подсуммировку таблицы с заранее неизвестной структурой.

Code:
FIELD-SYMBOLS:
<fs_wa> TYPE any,
<fs_itab> TYPE table,
<fs_itab1> TYPE table.

*здесь получаем значение указателя на таблицу <fs_itab> и <fs_itab1> - это могут быть динамически созданные внутрение таблицы
*DATA: r_data TYPE REF TO DATA.
*CREATE DATA r_data LIKE it_table[].
*ASSIGN r_data TO  <fs_itab1>.
...
...
*затем подсуммируем
LOOP AT <fs_itab> ASSIGNING <fs_wa>.

COLLECT <fs_wa> INTO <fs_itab1>.

ENDLOOP.

ABAP распознает динамический тип полей неструктурированной переменной <fs_wa> и таблицы без типа и правильно выполняет подсуммировку.
У меня на основе этой технологии написан универсальный модуль подсуммировки. Отдаешь ему таблицу и каталог полей (указаны ключи и числовые поля), он возвращает ссылку на таблицу с итоговыми суммами


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, ноя 29 2007, 06:01 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Чт, мар 09 2006, 10:12
Сообщения: 565
Откуда: Волгодонск
Пол: Мужской
Не знаю чег тут так нападают на AT нормально они работают просто надо знать как и соответствующим образом использовать.

для того чтобы избавиться от звёздочек можно сделать так.
loop at itab.
tabix = sy-tabix.
at ...
read table itab index tabix.
endat.
endloop.


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

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


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

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


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

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