Инструменты пользователя

Инструменты сайта


ac:modul_otchetov

Написание отчетов

размер колонок

размер колонок можно устанавливать двумя способоми

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, и все будет работать.

Готовые комбики

Автоподсчет общей суммы

отчеты умеют сами подсчитывать общую сумму

для этого достаточно добавить в запрос маркер /*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 то будут все филиалы

если передаем филиал у которого есть филиалы, то получим филиал и его дочек

если передадим дочку то получим только дочку

в настоящий момент реализовано только одно вложение филиалов.

ac/modul_otchetov.txt · Последнее изменение: attid

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki