====== Написание отчетов ====== ===== размер колонок ===== размер колонок можно устанавливать двумя способоми 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 то будут все филиалы если передаем филиал у которого есть филиалы, то получим филиал и его дочек если передадим дочку то получим только дочку в настоящий момент реализовано только одно вложение филиалов.