Проход по ссылкам навигацииСправочная информация  \  Дополнительные возможности  \  Описание технологии формирования отчетов

Шаблон отчета — это HTML-документ, определяющий как отчет будет выглядеть. Несколько шаблонов изначально встроены в «Навигатор» и позволяют создавать стандартные отчеты. Помимо этого, пользователь может создавать свои собственные шаблоны предварительно ознакомившись с нижеизложенными правилами их написания.

С синтаксической точки зрения язык на котором пишутся шаблоны отчетов «Навигатора» является расширением обычного НТML (см. например http://www.w3.org/TR/REC-html40/) рядом дополнительных ключевых слов, определяющих различные параметры отчета.

В заголовке шаблона (в теге-комментарии) с помощью выделенных ключевых слов можно указать следующие параметры шаблона:

Ключевое слово Назначение
${ReportName} имя шаблона (вставляется в список ComboBox-а)
${ReportDescription} описание шаблона
${PageOrientation} ориентация страницы по умолчанию (1-Книжная, 2-Альбомная) Эти три опции в настоящий момент не работают, т.к. IE документировано не поддерживает настройку параметров печати.
${PageHeader} верхний колонтитул по умолчанию
${PageFooter} нижний колонтитул по умолчанию
${ReportShowFilter} показывать или нет параметры поиска (1-Да 0-Нет 3-Да всегда 2-Нет всегда)
${ReportShowSource} показывать или нет источник информации (1-Да 0-Нет 3-Да всегда 2-Нет всегда)
${ReportHideAddress} показывать или нет источник адрес (1-Да 0-Нет 3-Да всегда 2-Нет всегда)
${UseIE55Template} использовать или нет предварительный просмотр Internet Explorer 5.5 (1-да, 0-нет)
${IE55TemplateSource} имя шаблона для предварительного просмотра:
  • StdIE55Land.html - для альбомной печати
  • StdIE55Port.html - для книжной печати
если этот параметр не указан будет использован стандартный предпросмотр
${HasFullHistory} показать историю публикаций 1- соответствующий пункт в окне настроек печати становится активным

Значение параметра шаблона должно располагаться между двумя последовательными ключевыми словами. Например:

<!--
${ReportName}Пример отчета${ReportName}
${ReportDescription}Пример шаблона отчета. За основу взят стандартный отчет с большим числом колонок.${ReportDescription}
${ReportShowFilter}0${ReportShowFilter}
${ReportHideAddress}0${ReportHideAddress}
${ReportShowHistory}0${ReportShowHistory}
${ReportShowSource}1${ReportShowSource}
${PageOrientation}2${PageOrientation}
${HasFullHistory}1${HasFullHistory}
-->
Ключевое слово Значение
${CnrReport} Этот параметр необходимо указывать для всех отчетов по загородной недвижимости
${BsnReport} Этот параметр необходимо указывать для всех отчетов по коммерческой недвижимости

Последний использованный шаблон отчета становится шаблоном по умолчанию, при этом отдельно сохраняется последний использованный шаблон для эксклюзивов.

В шаблоне отчета можно использовать следующие ключевые слова:

Ключевое слово Значение
${CurrentUser} имя пользователя, который печатает отчет
${QueryName} название запроса, на основе которого делается отчет
${QueryParams} параметры поиска
${Today} дата печати отчета

Список ключевых слов, обозначающих элементы объявления, которые должны следовать между ключевыми словами ${BeginReportDetails} и ${EndReportDetails}. Звездочкой помечены те значения, которые зависят от выбранных настроек:

Ключевое слово Значение
${BeginReportDetails} -начало описания объявления
${fnRooms} число комнат
${feIzol} тип комнат (изолиров. смежн.)
${ffComSq} общая площадь
${ffResSq} жилая площадь
${ffKitchSq} площадь кухни
${fszComplexSq} площадь по комнатам
${fnFloor} этаж
${fnFloors} этажность
${ffPrice} цена в тыс. руб.*
${ffPriceM2} цена за кв. м.*
${feHouseType} тип дома
${fidMetro} метро
${feMetroDist} расстояние от метро
${fidStreet} улица
${fszHouse} дом*
${fAddress} адрес (улица и дом*)
${ftFirst} дата появления объявления
${ftLast} дата последней публикации объявления
${feSource} источник информации*
${fszPhone} телефоны*
${fShortHist} краткая история публикации (первая, последняя, источник*)
${fFullHist} полная история публикаций* (дата, источник*, цена*)
${fDopInfo} дополнительная информация, включающая адрес*
${fProperties} дополнительная информация без адреса
${fShortProps} дополнительная информация без адреса и без Б Т С П
${feBalcony} балкон
${fePhone} телефон
${feToilet} санузел
${feFloor} тип пола
${feGarbage} мусоропровод
${feElevator} лифт
${fszPhone1} ${fszPhone2} ${fszPhone3} ${fszPhone4} ${fszPhone5} телефоны (после каждого вставляется <br>)
Ключевые слова для отчетов по загородной недвижимости
${feCnrRailway} направление
${feCnrHighway} шоссе
${ffCnrRange} расстояние от Москвы
${ffCnrLandSq} площадь участка в сотках
${ffCnrHouseSq} площадь дома в кв. м
${feCnrHouseType} тип объекта
${ffCnrPrice} цена в тыс. руб.*
${feCnrWaterPipe} водопровод
${feCnrGasPipe} газ
${feCnrElectricity} электричество
${feCnrGuard} охрана
${ftCnrFirst} дата появления объявления
${ftCnrLast} дата последнего обновления
${feCnrSource} источник информации
${feCnrSellState} статус продажи (аванс, задаток и т.п.)
${fszCnrPhone} телефоны
${fidCnrMetro} ближайший город
${fszCnrText} полный текст объявления
${fszCnrPrivate} собственный комментарий
${fidExclusive} идентификатор эксклюзива
Ключевые слова для отчетов по коммерческой недвижимости
${feBsnOpType} тип операции (аренда или продажа)
${feBsnObject} тип объекта недвижимости (склад, магазин, и.т.д.)
${fidBsnMetro} метро
${fidBsnStreet} улица
${ffBsnSquare} площадь в кв.м.
${ffBsnPrice} цена продажи тыс. руб.*
${ffBsnPriceM2} арендная плата [руб./кв.м./год]*
${ftBsnFirst} дата появления объявления
${ftBsnLast} дата последней публикации
${feBsnSource} источник информации
${feBsnSellState} статус продажи (аванс, продана, от собственника, и.т.д)
${fszBsnPhone} телефоны продавца
${fszBsnText} полный текст объявления
${fszBsnPrivate} собственный комментарий
${fBsnShortHist} краткая история публикаций
${fBsnFullHist} полная история публикаций
${EndReportDetails} - конец описания объявления
Ключевые слова, обозначающие агрегатные значения выборки (они как правило указываются в конце отчета, после ${EndReportDetails})
${NumberOfFlats} количество объявлений
${AveragePrice} средняя цена
${M2AveragePrice} средняя цена за кв. м.

Пробелы между символами $ и { недопустимы.

Пример шаблона отчета

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<!-- 
  ${ReportName}Пример отчета${ReportName}
  ${ReportDescription}Пример шаблона отчета. За основу взят стандартный отчет с большим числом колонок${ReportDescription}
  ${ReportShowFilter}0${ReportShowFilter}
  ${ReportHideAddress}0${ReportHideAddress}
  ${ReportShowHistory}0${ReportShowHistory}
  ${ReportShowSource}1${ReportShowSource}
  ${PageOrientation}2${PageOrientation}
  ${HasFullHistory}1${HasFullHistory}
-->
<style type="text/css">
	* { margin: 0; padding: 0; }
	body { font-family: Arial, sans-serif; font-size: 8pt; }
	.nowrap { white-space: nowrap; }
	table#results { border: none; border-collapse: collapse; empty-cells: show; margin: 5px 0; }
	#results td, #results th { border: 1px solid #999; vertical-align: top; text-align: center; padding: 1px 3px; }
	#results td.left { text-align: left; }
	#results th { background: #f1f1f1; }
	th#c1, th#c14 { width: 2%; }
	th#c2 { width: 12%; }
	th#c3, th#c12 { width: 3%; }
	th#c4 { width: 13%; }
	th#c5, th#c13 { width: 5%; }
	th#c6 { width: 9%; }
	th#c7, th#c8, th#c9, th#c10 { width: 1%; }
	th#c11 { width: 4%; }
	th#c15 { width: 9%; }
	th#c16 { width: 23%; }
	table#stat { border: none; margin-top: 10px; }
	#stat td { font-weight: bold; padding-left: 10px; }
	#stat td:first-child { white-space: nowrap; }
</style>
<title>${CurrentUser}</title>
</head>
<body>
${QueryParams}
<table id="results">
  <tr> 
    <th id="c1">К</th>
    <th id="c2">Метро</th>
    <th id="c3">от М</th>
    <th id="c4">Адрес</th>
    <th id="c5">Дом</th>
    <th id="c6">Площадь</th>
    <th id="c7">Б</th>
    <th id="c8">Т</th>
    <th id="c9">С</th>
    <th id="c10">П</th>
    <th id="c11">Цена ${PriceUnit}</th>
    <th id="c12">${PriceM2Unit}</th>
    <th id="c13">Дата</th>
    <th id="c14">Ист.</th>
    <th id="c15">Телефоны</th>
    <th id="c16">ДопИнфо</th>
  </tr>
${BeginReportDetails}
  <tr> 
    <td>${fnRooms}${feIzol}</td>
    <td class="nowrap left">${fidMetro}</td>
    <td>${feMetroDist}</td>
    <td class="nowrap left">${fAddress}</td>
    <td>${fnFloor}/${fnFloors} ${feHouseType}</td>
    <td>${ffComSq}/${ffResSq} к${ffKitchSq},${fszComplexSq}</td>
    <td>${feBalcony}</td>
    <td>${fePhone}</td>
    <td>${feToilet}</td>
    <td>${feFloor}</td>
    <td>${ffPrice}</td>
    <td>${ffPriceM2}</td>
    <td>${ftLast}</td>
    <td>${feSource}</td>
    <td>${fszPhone}</td>
    <td class="left">${fShortProps}</td>
  </tr>
${EndReportDetails}
</table>
<table id="stat">
  <tr>
    <td>Всего предложений</td>
    <td>${NumberOfFlats}</td>
 </tr>
  <tr>
    <td>Средняя стоимость квартиры</td>
    <td>${AveragePrice}</td>
  </tr>
  <tr>
    <td>Средняя стоимость кв/метра</td>
    <td>${M2AveragePrice}</td>
  </tr>
</table>
</body>
</html>

Посмотреть результат выполнения приведенного кода. При использовании этого шаблона в окне настроек печати были указаны цены в рублях, а рекламные телефоны изменены на контактный телефон ООО «Навигатор Риэлти».

Об использовании собственных шаблонов отчетов в «Навигаторе» читайте в статье «Печать».