Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Группировка в отчете [D6, dBase, FoxPro]


Jey ©   (2004-08-31 09:17:00) 

Всем привет!!! Такая трабла! В отчете нужно выводить меню (ну, которое висит в столовой). В этом меню нужно выводить:
"Первые блюда"
   блюдо1
   блюдо2
   блюдоN
"Вторые блюда"
   блюдо1
   блюдо2
   блюдоN
"Гарниры" и т.д
Группировку делаю по первым 2-м буквам индекса блюда - полю IND_BL. Структура поля такая: первые 2 буквы означают класс блюда, остальные 5 цифр его номер по справочнику. В свойстве Expression компонента QRExpr пробовал писать IF (COPY(Query1.IND_BL),1,2)='СУ','Первые блюда',IF (COPY(Query1.IND_BL),1,2)='МИ','Вторые блюда')). Пробовал также писать каждое условие с новой строки типа
IF (COPY(Query1.IND_BL),1,2)='СУ','Первые блюда','')
IF (COPY(Query1.IND_BL),1,2)='МИ','Вторые блюда','')

и с с ипользованием OR,... но в ответ одни маты.
Короче, в IF вместо второго аргумента подставляю новое условие, но он начинает ругаться. Как можно в Expression задать сразу несколько условий выбора?


Jey   (2004-08-31 11:31:00) [1]

[5] Так пробовал так, не получается, начинает ругаться


Deniz   (2004-08-31 10:06:00) [2]

Что-то со скобками я намудрил

IF((COPY(Query1.IND_BL),1,2)='СУ','Первые блюда',
IF(COPY(Query1.IND_BL),1,2)='МИ','Вторые блюда','')


Deniz   (2004-08-31 10:03:00) [3]

Вот так нада:

IF(COPY(Query1.IND_BL),1,2)='СУ','Первые блюда',
IF(COPY(Query1.IND_BL),1,2)='МИ','Вторые блюда','')

получается вариант типа
if ... then ... elseif ... then ... elseif ...кстати, список можно продолжить.Тоже самое положить в Group.Expression и тогда QReport еще и сгруппирует про такому выражению, есть правда некоторые подводные камни


KSergey   (2004-08-31 09:33:00) [4]

> [3] Sergey13 ©   (31.08.04 09:30)
> А почему бы не сделать 2 поля?

А вот и ответ:

> Узнаю себя в клипперной юности. 8-)

;)


Sergey13   (2004-08-31 09:30:00) [5]

> Структура поля такая: первые 2 буквы означают класс блюда, остальные 5 цифр его номер по справочнику
Узнаю себя в клипперной юности. 8-)
А почему бы не сделать 2 поля? И многие извраты можно будет обойти стандартным путем - в данном случае мастер-детальный отчет. И без всяких анализов.


KSergey   (2004-08-31 09:29:00) [6]

Там, наверное, IF писать не надо всяко...
Да и сильно сомневаюсь, что он там ф-ции воспринимать умеет.
Наверное, надо взять и сделать в выдорке еще одно поле, которое бы содержало результат COPY(Query1.IND_BL),1,2) (к стати, я со скобками что-то не понял ничего)
По нему и рисовать условие


dolmat   (2004-08-31 09:24:00) [7]

Трудновато для этих баз такое. Не мучайтесь и разделите на два поля и если нужно потом их соединить намного легче и проблемы решаться.


Наверх

Титульная страница Поиск, карта сайта Написать письмо