Шаблон отчета — это 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- соответствующий пункт в окне настроек печати становится активным |
Значение параметра шаблона должно располагаться между двумя последовательными ключевыми словами. Например:
| Ключевое слово |
Значение |
| ${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" />
<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>
Посмотреть результат выполнения приведенного кода. При использовании этого шаблона в окне настроек
печати были указаны цены в рублях, а рекламные телефоны изменены на контактный телефон ООО «Навигатор Риэлти».
Об использовании собственных шаблонов отчетов в «Навигаторе» читайте в статье «Печать».