Текущее время: Пн, июл 21 2025, 00:50

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


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

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


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

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