Текущее время: Сб, июн 28 2025, 21:55

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 4 ] 
Автор Сообщение
 Заголовок сообщения: Использование конструкции At First <> ... At End Of &l
СообщениеДобавлено: Пн, ноя 21 2005, 20:31 
Гость
Есть внутрення таблица с полями:
-class
-bname

В алгоритме программы необходимо реализовать группировку как по полю class, так и по полю bname.

На ск. я понял группировочное поле должно быть обязательно 1 ым в структуре вн. табл. - в исходном случае группировать могу только по полю class...
Чтобы группировать по следующему полю - bname, нужно уже объявлять ещё одну вн. табл. со структурой:
-bname
-class

Ну очень не удобно.
Есть какие то альтернативы?

Спасибо.


Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения: Re: Использование конструкции At First <> ... At End O
СообщениеДобавлено: Пн, ноя 21 2005, 20:49 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Вт, авг 17 2004, 12:50
Сообщения: 134
Откуда: UA->DE
Пол: Женский
_higher_ написал(а):
На ск. я понял группировочное поле должно быть обязательно 1 ым в структуре вн. табл. - в исходном случае группировать могу только по полю class...

Не верно.

_higher_ написал(а):
Чтобы группировать по следующему полю - bname, нужно уже объявлять ещё одну вн. табл. со структурой:
-bname
-class


Все проще. Второй таблицы не надо: сортируешь и ставишь два AT.
Вот стандартный пример:
Code:
DATA: t1(4) TYPE c, t2 TYPE i.

FIELD-GROUPS: header.

INSERT t2 t1 INTO header.

t1 ='AABB'. t2 = 1. EXTRACT header.
t1 ='BBCC'. t2 = 2. EXTRACT header.
t1 ='AAAA'. t2 = 2. EXTRACT header.
t1 ='AABB'. t2 = 1. EXTRACT header.
t1 ='BBBB'. t2 = 2. EXTRACT header.
t1 ='BBCC'. t2 = 2. EXTRACT header.
t1 ='AAAA'. t2 = 1. EXTRACT header.
t1 ='BBBB'. t2 = 1. EXTRACT header.
t1 ='AAAA'. t2 = 3. EXTRACT header.
t1 ='AABB'. t2 = 1. EXTRACT header.

SORT BY t1 t2.

LOOP.

  AT NEW t1.
    WRITE / '   New T1:'.
  ENDAT.

  AT NEW t2.
    WRITE / '   New T2:'.
  ENDAT.

  WRITE: /14 t1, t2.

  AT END OF t2.
    WRITE / 'End of T2'.
  ENDAT.

  AT END OF t1.
    WRITE / 'End of T1'.
  ENDAT.

ENDLOOP.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, ноя 21 2005, 23:39 
Гость
спасибо, завтра испробуем


Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, ноя 22 2005, 07:21 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, авг 24 2004, 07:19
Сообщения: 3952
Откуда: ECC 6.0, South Kazakhstan
Тоже скажу, что необязательно. Нужно не забывать как работает конструкция at new F. Это событие будет отрабатывать при каждом изменении любого из полей, находящегося левее поля F во внутр.таблице. Т.е. если имеем таблицу itab с полями t1, t2 и соответственно отсортированную по этим полям t1-t2 - at new t2 будет работать при каждом изменении любого из полей t1-t2:

Code:
data: begin of itab occurs 0,
         t1(4) type c,
         t2 type i,
      end of itab.

end-of-selection.

perform append_itab using: 'AABB' 1,
                     'BBCC' 2,
                     'AAAA' 2,
                     'AABB' 1,
                     'BBBB' 2,
                     'BBCC' 2,
                     'AAAA' 1,
                     'BBBB' 1,
                     'AAAA' 3,
                     'AABB' 1.

SORT itab BY t1 t2.

LOOP at itab.

  AT NEW t2.
    WRITE: / 'T1 =', itab-T1, 'T2 =', itab-t2.
  ENDAT.

ENDLOOP.


form append_itab using t1 like itab-t1
                       t2 type i.
  clear itab.
  move: t1 to itab-t1,
        t2 to itab-t2.
  append itab.
endform.


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

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


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

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


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

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