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