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