Deffar писал(а):
Нужна помощь
Кроме приведенных примеров больше ничего не получается
Не понимаю логику построения запроса для функции (или что-то неработает
) ... Добавьте, пожалуйста еще несколько примеров, как вернуть значение:
- "Прізвище" из "дані про фізичну особу" / "Інформація про власника"
- "Назва села, селища, міста" из "Адреса" / "Дані про фізичну особу" / "Інформація про власника"
Есть ли возможность напрямую передать значения переменных из скрипта в генератор отчетов и в графические шаблоны DMT или только через параметры слоя ?
UPD: Кое с чем разобрался, все работает (вопросы по-прежнему актуальны). Как правильно определить/указать "путь" из XML тегов ?
Код:
$SO=@Map.SelectedObject
$SOLID=@Map.Object[$SO].Parameter[-7]
@if $SOLID<>70005 then @Goto %ParcelNotSelected
$ParcelAddress=@Map.Object[$SO].Parameter[ID7000500]
$NP=@XML.XPath Settlement $ParcelAddress
@Dialog.Message Нас.пункт: $NP
$Props=@Map.Object[$SO].Parameter[ID7000520]
$PropLN=@XML.XPath ProprietorInfo[1]/Authentication[1]/NaturalPerson[1]/FullName[1]/LastName[1] $Props
$PropFN=@XML.XPath ProprietorInfo[1]/Authentication[1]/NaturalPerson[1]/FullName[1]/FirstName[1] $Props
$PropMN=@XML.XPath ProprietorInfo[1]/Authentication[1]/NaturalPerson[1]/FullName[1]/MiddleName[1] $Props
$INN=@XML.XPath /Proprietors/ProprietorInfo[1]/Authentication[1]/NaturalPerson[1]/TaxNumber[1] $Props
$PropNM=$PropLN $PropFN $PropMN
@Dialog.Message Власник: $PropNM
@Dialog.Message ІНН: $INN
@Goto %Exit
%ParcelNotSelected
@Dialog.Message Помічений об'єкт не є XML-ділянкою
%Exit
Простой запрос XPath фактически состоит из тегов "по пути" от корневого тега к искомому, разделенных косой чертой. Корневой тег можно и не указывать (пример: ProprietorInfo[1]/Authentication[1]/NaturalPerson[1]/FullName[1]/LastName[1]), а можно и указать (пример: /Proprietors/ProprietorInfo[1]/Authentication[1]/NaturalPerson[1]/TaxNumber[1]). Цифры в квадратных скобках указывают какой по счету тег выбрать из одинаковых, если их не указывать, то подразумевается "[1]".
З.Ы. XPath конечно же не описать в двух примерах.
З.Ы.Ы. Возможно будет удобно для составления запросов использовать Stylus Studio (
пример использования)