Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Delphi Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 [2]      все
 Re: Delphi+MySQL+FastReport.  [new]
Котовасия
Member

Откуда:
Сообщений: 942
Валерий666,

ну ты попробуй потрудиться и представить, что вот такие вопросы задают тебе:

Валерий666
Есть обработчик, который формирует отчет, но мне не нравится код.
Как это можно сделать правильно, а не через такие костыли?
10 окт 18, 13:49    [21700460]     Ответить | Цитировать Сообщить модератору
 Re: Delphi+MySQL+FastReport.  [new]
DimaBr
Member

Откуда:
Сообщений: 10712
1. Если вам нужны ИТОГИ ПО ГРУППАМ в виде отдельной таблички, то реализуйте это отдельным запросом.
2. Если вам нужны ИТОГИ ПО ГРУППАМ в виде "Итого" по окончанию группы - то для этого есть GROUP FOOTER
10 окт 18, 13:54    [21700473]     Ответить | Цитировать Сообщить модератору
 Re: Delphi+MySQL+FastReport.  [new]
Валерий666
Member

Откуда:
Сообщений: 177
DimaBr
1. Если вам нужны ИТОГИ ПО ГРУППАМ в виде отдельной таблички, то реализуйте это отдельным запросом.
2. Если вам нужны ИТОГИ ПО ГРУППАМ в виде "Итого" по окончанию группы - то для этого есть GROUP FOOTER


Мне нужно ИТОГО ПО ГРУППАМ в начале группы в одной таблице, все же вроде нарисовано на картинке.
12 окт 18, 14:30    [21702559]     Ответить | Цитировать Сообщить модератору
 Re: Delphi+MySQL+FastReport.  [new]
DimaBr
Member

Откуда:
Сообщений: 10712
Если вам нужен ИТОГО в начале группы, то изучайте это
12 окт 18, 15:10    [21702621]     Ответить | Цитировать Сообщить модератору
 Re: Delphi+MySQL+FastReport.  [new]
_Den_Z
Guest
Валерий666,

Если у вас FR6, то смотрите отчет 131.fr3 из \Demos\Main.
Кладете мемо с агрегатом на футер(если футер не нужен, то можно скрыть его установив нулевую высоту, он нужен для агрегата ) и заголовок, после, у мемо на заголовке с агрегатом, установите св-во Processing.ProcessAt = paGroupFinished.
12 окт 18, 19:49    [21702900]     Ответить | Цитировать Сообщить модератору
 Re: Delphi+MySQL+FastReport.  [new]
Валерий666
Member

Откуда:
Сообщений: 177
_Den_Z
Валерий666,

Если у вас FR6, то смотрите отчет 131.fr3 из \Demos\Main.
Кладете мемо с агрегатом на футер(если футер не нужен, то можно скрыть его установив нулевую высоту, он нужен для агрегата ) и заголовок, после, у мемо на заголовке с агрегатом, установите св-во Processing.ProcessAt = paGroupFinished.


К сожалению у меня 5.4 версия. 6-ую не нашел. Читал про такие свойства, но в ранних версиях их нет(
З.Ы.
Я вот действительно не могу понять, то ли не отображаются рисунки, то ли я настолько не умею изложить суть что меня невозможно понять. Мне не надо итого по группам в футере или еще где-то, я через if пытаюсь сделать вывод суммы по группам в фиксированной таблице, которую менять нельзя, и в которой по запросу(который имеется) выводятся данные из dataset'a. Ну приложил уже рисунок с таблицей, и решение, но в SQL я нуль, поэтому спрашиваю можно ли это организовать одним запросом или нет. Если нет, то буду делать костыли с временными запросами и пересчетом.
13 окт 18, 22:26    [21703445]     Ответить | Цитировать Сообщить модератору
 Re: Delphi+MySQL+FastReport.  [new]
DimaBr
Member

Откуда:
Сообщений: 10712
Валерий666
то ли не отображаются рисунки, то ли я настолько не умею изложить суть что меня невозможно понять.

К сожалению, второе, поскольку чут выше вы писали что "Мне нужно ИТОГО ПО ГРУППАМ в начале группы в одной таблице"

Валерий666
я через if пытаюсь сделать вывод суммы по группам в фиксированной таблице, которую менять нельзя, и в которой по запросу(который имеется) выводятся данные из dataset'a.

Опять тоже самое, ничего не понятно.
Что конкретно не получается ?
Сделайте тестовый пример и на нём покажите чего хотите добиться.
14 окт 18, 02:26    [21703504]     Ответить | Цитировать Сообщить модератору
 Re: Delphi+MySQL+FastReport.  [new]
DimaBr
Member

Откуда:
Сообщений: 10712
Покажите набор данных и картинку готового отчёта, которую хотите получить.
14 окт 18, 02:28    [21703505]     Ответить | Цитировать Сообщить модератору
 Re: Delphi+MySQL+FastReport.  [new]
Валерий666
Member

Откуда:
Сообщений: 177
DimaBr
Покажите набор данных и картинку готового отчёта, которую хотите получить.


Вобщем есть вот такой справочник, и в итоге нужен такой результат:
Картинка с другого сайта.
Вы мне скидывали запрос на предыдущий вопрос, я его немного переделал

select kodvopr.group_parent,kodvopr.groupid,kodvopr.torep,kodvopr.KODnom,kodvopr.NAIM as NAIM,
 sum(case when (datecreate between '2018-01-01' AND '2018-10-09') then 1 else 0 end) AS All0,
sum(case when (datecreate between '2017-01-01' AND '2017-10-09') then 1 else 0 end) AS All1,
 sum(case when (datecreate between '2018-01-01' AND '2018-10-09') AND (resultview = 'УДОВЛЕТВОРЕНО') then 1 else 0 end) AS ud0,
 sum(case when (datecreate between '2017-01-01' AND '2017-10-09') AND (resultview = 'УДОВЛЕТВОРЕНО') then 1 else 0 end) As ud1,
 sum(case when (datecreate between '2018-01-01' AND '2018-10-09') AND (resultview = 'РАЗЪЯСНЕНО') then 1 else 0 end) AS raz0,
 sum(case when (datecreate between '2017-01-01' AND '2017-10-09') AND (resultview = 'РАЗЪЯСНЕНО') then 1 else 0 end) As raz1,
 sum(case when (datecreate between '2018-01-01' AND '2018-10-09') AND (resultview = 'ОТКАЗАHО') then 1 else 0 end) As otk0,
 sum(case when (datecreate between '2017-01-01' AND '2017-10-09') AND (resultview = 'ОТКАЗАHО') then 1 else 0 end) AS otk1, 
sum(case when (datecreate between '2018-01-01' AND '2018-10-09') AND (control=1) AND (resultview='')  then 1 else 0 end)AS view0,
 sum(case when (datecreate between '2017-01-01' AND '2017-10-09') AND (control=1) AND (resultview='') then 1 else 0 end) AS view1
 from kodvopr 
LEFT JOIN register ON kodvopr.KODnom = register.themeid
 group by KODnom ORDER BY kodvopr.KOD11;


и получил вот такой результат:

Картинка с другого сайта.

Мне надо в строках с номенклатурой 1,1.8,2,6,7 получить итоги по группе в той таблице(отчете) что на рисунке сверху.
Группа определяется двумя полями group_parent - родительская группа, groupid - вложенная группа.
Загвоздочка в том, что мне надо в 1 получить сумму 1.1-1.10 (включительно 1.8, т.е. сумму по 1.8.1 - 1.8.2 - второй уровень вложенности)
Сейчас я вижу выход из ситуации следующий: дописать к тому запросу, что сверху, еще 20 полей с суммами по группам, соответственно 1 - го и 2 - го уровня вложенности. Реально ли это сделать?

Что бы получилось грубо говоря вот так:
Картинка с другого сайта.

Возможно не самое эстетичное решение, но подобный результирующий набор данных позволит выводить итоги по группам, где угодно, менять номенклатуру в произвольном порядке и не вносить изменения нив запрос, ни в файл отчета.
вчера, 10:56    [21706206]     Ответить | Цитировать Сообщить модератору
 Re: Delphi+MySQL+FastReport.  [new]
Валерий666
Member

Откуда:
Сообщений: 177
Чет с картинками не вышло, вот увеличенные копии:
[img]https://d.radikal.ru/d02/1810/5e/8ccd1b56a2dat.jpg[/img]

[img]https://d.radikal.ru/d18/1810/30/e6f8a19118a7t.jpg[/img]

[img]https://b.radikal.ru/b15/1810/83/68b980bcee12t.jpg[/img]
вчера, 10:59    [21706210]     Ответить | Цитировать Сообщить модератору
 Re: Delphi+MySQL+FastReport.  [new]
JaDi
Member

Откуда: Сызрань, Россия
Сообщений: 3699
Валерий666,

если форма не для печати/контроля, то рекомендую убрать нули из таблицы (у фаста есть в свойствах полей такое) -- пользователям будет НАМНОГО удобнее смотреть и проверять цифры.
вчера, 12:04    [21706331]     Ответить | Цитировать Сообщить модератору
 Re: Delphi+MySQL+FastReport.  [new]
Валерий666
Member

Откуда:
Сообщений: 177
JaDi
Валерий666,

если форма не для печати/контроля, то рекомендую убрать нули из таблицы (у фаста есть в свойствах полей такое) -- пользователям будет НАМНОГО удобнее смотреть и проверять цифры.

Как раз таки она самая, я предлагал свернуть пустые значения, но сказали что нужно именно так.
вчера, 13:00    [21706441]     Ответить | Цитировать Сообщить модератору
 Re: Delphi+MySQL+FastReport.  [new]
DimaBr
Member

Откуда:
Сообщений: 10712
Думаю, так как у вас Дерево с произвольным вложением, то нужно сначала построить его (расставить Id и IdParent), затем научится рекурсивно перебирать узлы дерева на произвольную глубину.
сегодня, 10:07    [21707465]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 [2]      все
Все форумы / Delphi Ответить