====== Написание отчетов ======
===== размер колонок =====
размер колонок можно устанавливать двумя способоми
1, в конец запроса добавить срочку /*autoresize*/
размер колонок будет выставляться автоматом не рекомендуется на отчетах
где много записей (логи,ленты)
2, рекомендованный путем добавления размера в запрос после заголовка ставим звездочку и размер в попугаях
пример :
отчет - select dl.dt_log "Дата", di.name "Устройство", dl.msg "Событие" from table
задаем размеры - select dl.dt_log "Дата*100", di.name "Устройство*150", dl.msg "Событие*30" from table
===== перекрестные отчеты =====
добавляется колонка *** в ней массив разделитель знак степени
УникальноеИмяОтчета^ИД^ПервыйДат^ВторойДат^ФИД
соответственно или надо пропустить параметр то значение любое или пустое, если параметр с конца можно просто не писать его
кросс отчеты возможно делать в процедурах, для того чтобы они отображались нормально в веб отчетах достаточно чтобы процедура отдавала строку с колонкой crreport
а содержимое разделялось вертикальным слешем "|" пример :
CRRESULT
Устройсво|Кол-во циклов
Дискотека|77
Корсар|23
Цепочная карусель|58
Гравицапа|20
Автодром (центр)|49
===== Свои комбики =====
для того чтобы создать свой комбик нужен запрос сначало ИД записи потом Отоброжаемое имя
к примеру все магазины
select d.id, d.name from desks d
where d.types = 2
order by d.name
создаем новый отчет, имя будет отоброжаться перед комбиком, главное чтоб начиналось со звездочки (*), это нужно для того чтобы оно не отображалось в списке.
уникальное имя должно начинаться с SID далее 3 цифры уникальны.
все комбики которые будут созданы мною будут иметь номера с 101 по 199
для пользовательских зарезервированы 201-299
и так для магазина уникальное имя будет SID101
ну а в сам отчет добавляем параметр :ID и тип параметра равным 101, и все будет работать.
===== Готовые комбики =====
[[ac:otchety]]
===== Автоподсчет общей суммы =====
отчеты умеют сами подсчитывать общую сумму
для этого достаточно добавить в запрос маркер /*total*/
преимущества этого подхода в том что тотал подсвечивается и при любой сортировке всегда в конце.
соответственно теперь можно пересмотреть отчеты и разгрузить сервер на лишнии запросы =) за исключением тех где кроме суммы еще используется среднее значение или что-то загадочное.
===== Филиалы =====
использовать филиалы в отчетах надо с джойном fids
пример
select f.*
from filials f
join fids(:fid) fd on f.id = fd.fid
(cu2.fid in (select fid from fids(:vfid)))
если передаем 0 то будут все филиалы
если передаем филиал у которого есть филиалы, то получим филиал и его дочек
если передадим дочку то получим только дочку
в настоящий момент реализовано только одно вложение филиалов.