Проблеми з розробкою шаблонів DMT з XML

Які “такі дії”? Розпаковував, запускав ged, відкривав потрібний файл, помічав потрібну ділянку, натискав Сервис-Документы-, редагував план та натискав “Продолжить”? Цей список я б продовжив так: розжовував, ложив до рота і ковтав. :smiley: Мабуть я чогось не зрозумів в Ващому запитанні.

Я как бы не против делать все и через Reports, но в моей работе намного удобнее использовать dmt-шаблон.
Что нужно длят ого чтоб появился и dmt-шаблон кадастрового плана из XMLя?

простіше формувати кад план з ін4, а потім хмл

согласен если делать 20 штук в днень, а если 100 и больше? И хотелось бы уже все делать в 1 дижитале и только в ХМЛ и не всегда использовать репортс

А якщо завжди потрібен растр. У мене хмл через растр непішов, у кад. пл. експлікація не викидується і ще багато іншого. Генератор звітів порожній. Не пре рахувати її вручну.

поэтому и прошу разаработчиков сдлеать такие шаблоны как и для ин4, еще + через дмт шаблоны делать все быстрей чем запускать репортс. Может кто уже сделал для себя хотябы кадастровый план из ХМЛя поделитесь плиз.

ЗЫ.
когда бутед кнопка извлечь в ХМЛ?

А можно сделать так чтобы при формировании кад плана из дмт при вызове дмт шаблона и попадания туда слоя угодия отдельные обьекты слоя угодия в зависимости от кода угодия сами перемещались в другие слои? т.е. например есть слой угодье с 2 обьектами у одного код 05 у другого 35 и пр вызове дмт шаблона чтобы они сами потом переместились например в слои пашня, жилая застройка. Если можно то выложите самый простой скрипт для примера.

Скрипт обработки событий слоя “IN4_Ділянка”, объектам слоя ID30000 “IN4_Угіддя” скрипт меняет слой на “05 рілля”, “08 сад”,… и т.д. в зависимости от кода угодья.

%Events.OnAdd @CheckErrors 0 $N=@Map.Count $I=0 %Loop $I=$I+1 @if $I>$N then @Goto %Exit $LID=@Map.Object[$I].LayerID @if $LID<>30000 then @Goto %Loop $CN=@Map.Object[$I].Parameter[CN] @if $CN= then @Goto %Loop $CN=@StringPart 1 $CN $CN1=@StringPart 1.$CN $CN2=@StringPart 2.$CN @if $CN2= then $CN2=0 @Map.Object[$I].Layer ID30$CN1$CN2 @Goto %Loop %Exit Вид | Показать все
В скрипте используется особенность ID слоев-угодий, которая наконец-то (лет через 9 после создания IN4Normal) пригодилась :smiley:
Слой для угодий с кодом CN=XY.Z имеет ID=30XYZ
Слой для угодий с кодом CN=XY имеет ID=30XY0

Ееее! Спасибо! извините уж за кривое описание проблемы, если бы сам не писал, то ничего бы не понял:)

  1. А возможно ли вообще сделать в дмт динамическую экспликацию как в репортсе? за репортсом будущее, но возможно не я один кому пока спокойнее в дмт делать кад планы :smiley:
  2. FIL(Setup.ini,DMTНачальник(УЗР)) данная функция с хмл работает? подправил в сетап.ини DMTНачальник(УЗР)=SEF(CUT(1,5,P[ID7000300]),UZRNM.txt) или надо через xpath писать путь к коатуу? или фиолетово и все равно работать не будет?
  1. Теоретически можно скриптом генерировать, но… в репортсе текст скрипта свыше 600 строк, в дмт и того больше будет.
  2. Должно работать если в setup.ini воткнуть DMTНачальник(УЗР)=SEF(CUT(1,5,PARENTID7000300),UZRNM.txt)
    А лучше сразу в шаблон писать SEF(CUT(1,5,PARENTID7000300),UZRNM.txt), все равно с ин4 он уже работать не будет, а оставив нетронутым setup.ini, будут работать и старые шаблоны.

Спасибо!

Ребята помогите, делаю шаблон под XML на основе Кадастровый план (A4) 1000.DMT, немогу добится чтобы вытаскивало ФИО владельца из параметра ID73010066. На данный момент в шаблоне поставил [ФИО], но результата нет, пробывал и через =P[ID73010066] результат 0.00 что не так?
план (A4) 1000 XML test.DMT (30.3 KB)

Недождавшись ответа опробывал кое что, и получилось, правда както сложновато но устраивает)
нужно в табличку прописать следующее:

=XPT(P[ID7000520],"ProprietorInfo/Authentication/NaturalPerson/FullName/LastName")_XPT(P[ID7000520],"ProprietorInfo/Authentication/NaturalPerson/FullName/FirstName")_XPT(P[ID7000520],"ProprietorInfo/Authentication/NaturalPerson/FullName/MiddleName") =P[ID7000511] =XPT(P[ID7000500],"ParcelAddress/StreetType"),_XPT(P[ID7000500],"ParcelAddress/StreetName"),_буд._XPT(P[ID7000500],"ParcelAddress/Building"),_XPT(P[ID7000500],"Settlement"),_XPT(P[ID7000500],"District"),_XPT(P[ID7000500],"Region").

Шаблон DMT для XML
план.dmt (31.5 KB)

помилку таку пише .jpg
ще було б добре експлікацію за 6-зем із обмеженням :slight_smile:

build Digitals Який?

Нові клесифікатори угідь в форму 6-зем не встануть 007,01 = 35.1, 35.2 або 35.3

Хочу написать функцию, которая выдает район в области только если он заполнен. IsNodeExists не годиться, потому что район в xml файле присутствует всегда в виде Василівський или
Нужна функция типа ЕслиЗначениеНеПустое

if IsNodeExists(XML573Root+'InfoPart/CadastralZoneInfo/CadastralQuarters/CadastralQuarterInfo/Parcels/ParcelInfo/Proprietors/ProprietorInfo/Authentication/NaturalPerson/Address/District') then AdrRay:=XPath(XML573Root+'InfoPart/CadastralZoneInfo/CadastralQuarters/CadastralQuarterInfo/Parcels/ParcelInfo/Proprietors/ProprietorInfo/Authentication/NaturalPerson/Address/District')+' район,' else AdrRay:='';
такая конструкция выдает “… район,…” в любом случае, а надо, что " район," не писало если его нет

доброго дня усім! стикнувся з такою проблемкою. з ХМЛ створюю кад план (дмт шаблон). якщо угіддя одно та двопов забудова то в таблиці пише площу а якщо рілля то в ріллю… забудов - SEF(CN35,AAA.txt) txt=CN35 SEL(ParentID7000901,“LandCode”,35|P[ID7000903],“Size”|007.01 Малоповерхова забудова|P[ID7000903,“Size”]||-) відповідно рілля SEF(CN05,AAA.txt) txt=CN05 SEL(ParentID7000901,“LandCode”,05|P[ID7000903],“Size”|001.01 Рілля|P[ID7000903,“Size”]||-) ну і т.д.
Зараз мені потрібнорозбивати кад. план по угіддях де є двір і рілля разом як зробити щоб автоматично розставляло угіддя з ХМЛ??? До цього на угіддя не розбивав тому все працювало так як в обмінику одне угіддя.. Буду вдячний за допомогу

  1. В DMT-шаблоні помітьте ділянку
  2. Вставьте експлікацію (Вставка-Таблица-Экспликация), на її вигляд впливають константи Explication=0/1/2 та ExplicationParameter
  3. Збережіть шаблон