Текущее время: Пн, июл 28 2025, 14:34

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


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

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


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

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