Ниже даны формальные описания функций и примеры запросов. (В примерах, ввиду слишком длинных для книги строк, пришлось применить перенос строки, которого в реальном коде быть не должно.)
IsNodeExists(Path:String):BooleanПроверка наличия узла. Возвращает True
или False. Например, следующий запрос
отвечает на вопрос, является ли первый по счету собственник
участка физическим лицом:
IsNodeExists('InfoPart/CadastralZoneInfo/CadastralQuarters/
CadastralQuarterInfo/Parcels/ParcelInfo[1]/Proprietors/
ProprietorInfo[1]/Authentication/NaturalPerson')NodesCount(Path,Tag:String):IntegerВозвращает количество узлов Tag в корне
Path. Вот пример запроса, определяющего
количество смежников для участка:
NodesCount('InfoPart/CadastralZoneInfo/CadastralQuarters/
CadastralQuarterInfo/Parcels/ParcelInfo[1]/AdjacentUnits',
'AdjacentUnitInfo')XPath(Path:String):StringВозвращает текстовое значение из узла
Path. Запрос, возвращающий целевое назначение
участка, выглядит так:
XPath('InfoPart/CadastralZoneInfo/CadastralQuarters/
CadastralQuarterInfo/Parcels/ParcelInfo[1]/CategoryPurposeInfo/Use') Описанные выше функции определены на уровне самого модуля Reports. Кроме этих функций, в коде шаблонов отчетов имеются десятки вспомогательных функций, написанных на языке PascalScript. Их также можно использовать, скопировав в свой шаблон. Изучите примеры кода и найдите свой путь для реализации собственных шаблонов.