![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Группировка в отчете [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]Трудновато для этих баз такое. Не мучайтесь и разделите на два поля и если нужно потом их соединить намного легче и проблемы решаться.