Все про скрипти

;Перевіряємо чи є відкрита карта
$AM=@ActivateMap
@if $AM=0 then @Break Відкрийте карту
;Знаходимо кількість об’єктів в карті
$MC=@Map.Count
;Знімаємо помітку з усіх об’єктів
@Map.DeselectAll
;Початок циклу
$I=0
%Loop
;Збільшуємо номер об’єкта
$I=$I+1
;Знаходимо ID шару
$LID=@Map.Object[$I].LayerID
;Якщо ID шару не співпадає, то переходимо до умові продовження циклу
@if $LID<>12000000 then @Goto %Continue
;Помічаємо об’єкт
@Map.SelectObject $I
;Наступна команда працює тільки з російськомовним інтерфейсом
Вид | Показать помеченные
;Щось робимо з поміченим об’єктом
@Dialog.InfoBox Щось робимо з поміченим об’єктом
;Знімаємо помітку з об’єкту
@Map.DeselectObject $I
%Continue
;Переходимо на початок циклу, якщо об’єкт не останній
@if $I<$MC then @Goto %Loop

Dmitry_Zolotar Дякую за допомогу, працює!)

Доброго дня всім.
Щодо діалога вибору шарів зі списку, є в мене деяке побажання.

Діалог вибору шарів зі списку (пункт меню Вибрати | Шари, або внутрішнє ім’я функції EditSelectLayers), при появі на екрані, має позначеним принаймні один пункт в списку шарів. Якщо в списку один-єдиний шар - він виглядає як вибраний зі списку, тому так і хочеться просто натиснути “ОК” для вибору.
Насправді, якщо ви не виберете лівою кнопкою миші один-єдиний у списку шар а натиснете зразу “ОК”, отримаєте помилку “List index out of bounds (-1)”.

Прошу розробників, якщо можна, поправити функцію EditSelectLayers так, щоб пункт під курсором на замовчування, вважався вибраним. Якщо в списку буде декілька пунктів, то позначку з першого можна буде зняти.

Дякую.

Доброго дня!
Підскажіть як в діалоговому вікні отримати адресу, кадастровий номер та інше, земельної ділянки з відкритого ХМЛ? Як зробити “абзац” щоб кожен параметр починався з нового рядка?

пробував так
$N=@Map.SelectedObject
$AD=@Map.Object[$N].Parameter[ID7000500]
$CV=@Map.Object[$N].Parameter[ID7000510]
@Dialog.Message Адреса ділянки $AD, Цільове використання $CV;
%End

Міцного здоров’я всім!

Пане klaid, для отримання адекватної інфрормації рекомендував би користуватися функціями @XML.XPath.

Приклад для ПІБ:

;параметр, де міститься ПІБ.
$Proprietor=@Map.Object[$ObjNumb].Parameter[ID7000520]
;шляхи для @XML.XPath
$L=/Proprietors/ProprietorInfo/Authentication/NaturalPerson/FullName/LastName
$F=/Proprietors/ProprietorInfo/Authentication/NaturalPerson/FullName/FirstName
$M=/Proprietors/ProprietorInfo/Authentication/NaturalPerson/FullName/MiddleName
;безпосередньо функція @XML.XPath
$LastName=@XML.XPath $L $Proprietor
$FirstName=@XML.XPath $F $Proprietor
$MiddleName=@XML.XPath $M $Proprietor
;Результуюче значення
$FullName=$LastName $FirstName $MiddleName
@Dialog.Message $FullName
;-----------

Щодо “абзацу”, використайте можливості функції @Text[N]….
І загальний результат (як на мене), краще представити в табличці, через @Map.Object [N].TableText=Text[N].text .

Можливо є й простіші шляхи, та мені (в міру моїх знань) вони не відомі.

Дякую.

Дякую розібрався з @XML.XPath
Розкажіть подробніше про таблиці. Планую два стовпчики і один рядок на один параметр. І чи можна зробити діалогове вікно ширше, певного розміру за замовчуванням?
І ще питаня як витягти інфо з інших шарів, з оренди, з зони, кварталу (кадастровий номер,), з реквізитів?

Всім міцного здоров’я!

Змінна $Tab - слугує для розподілу стовпчиків.
Змінна $ValueList - лише для наглядності, після того, як отримаєте певне значення XPath просто додасте його до списку @Text[1] через @Text[1].Add. Кожен елемент списку - новий рядок.

$Tab=@Calc Char(9)
$Tab=@DequoteText $Tab
$ValueList=Значення1$TabВася Значення2$TabПетро Значення3$TabІван Значення4$TabСело Значення5$TabВулиця
$ValueListCount=@StringPartCount $ValueList
$i=1
@Map.SelectAll
$ObjNumb=@Map.SelectedObject
%Begin
$ValueListPart=@StringPart $i $ValueList
@Text[1].Add $ValueListPart
$i=$i+1
@If $i<=$ValueListCount then @Goto %Begin
$Res=@Text[1].Text
@Map.Object[$ObjNumb].TableText $Res
@Window.Refresh

Щодо інших даних, вибираєте шар (слой), в якому міститься потрібна інфо (наприклад XML-реквізити), далі - параметр($Proprietor=@Map.Object[$ObjNumb].Parameter[ID7000520]), потім шлях до параметру (/Proprietors/ProprietorInfo/Authentication/NaturalPerson/FullName/MiddleName), дістаєте значення й до списку Text[1].

Додаю ще table.dmf. Там табличний об’єкт.
Сподіваюсь, допоможе.
Успіхів.

Дякую.

Доброго дня.
Не зрозумів. Зробив ось так:

;параметр, де міститься ПІБ.
$ObjNumb=@Map.SelectedObject
$Proprietor=@Map.Object[$ObjNumb].Parameter[ID7000520]
;шляхи для @XML.XPath
$L=/Proprietors/ProprietorInfo/Authentication/NaturalPerson/FullName/LastName
$F=/Proprietors/ProprietorInfo/Authentication/NaturalPerson/FullName/FirstName
$M=/Proprietors/ProprietorInfo/Authentication/NaturalPerson/FullName/MiddleName
;безпосередньо функція @XML.XPath
$LastName=@XML.XPath $L $Proprietor
$FirstName=@XML.XPath $F $Proprietor
$MiddleName=@XML.XPath $M $Proprietor
;Результуюче значення
$FullName=$LastName $FirstName $MiddleName
;-----------
;параметри адреси
$ObjNumb=@Map.SelectedObject
$AD=@Map.Object[$ObjNumb].Parameter[ID7000500]
;шляхи для @XML.XPath
$OBL=/ParcelLocationInfo/Region
$RAY=/ParcelLocationInfo/District
$Gorod=/ParcelLocationInfo/Settlement
$StreetType=/ParcelLocationInfo/ParcelAddress/StreetType
$StreetName=/ParcelLocationInfo/ParcelAddress/StreetName
$BydNumber=/ParcelLocationInfo/ParcelAddress/Building
$Block=/ParcelLocationInfo/ParcelAddress/Block
;безпосередньо функція @XML.XPath
$O=@XML.XPath $OBL $AD
$R=@XML.XPath $RAY $AD
$G=@XML.XPath $Gorod $AD
$ST=@XML.XPath $StreetType $AD
$SN=@XML.XPath $StreetName $AD
$BN=@XML.XPath $BydNumber $AD
$B=@XML.XPath $Block $AD
$Adresa=$O $R $G $ST $BN $B
;Результуюче значення
;-------------------
$N=@Map.SelectedObject
$CV=@Map.Object[$N].Parameter[ID7000510]
$Kategory=@Map.Object[$N].Parameter[ID7000509]
$FormaVlasnosti=@Map.Object[$N].Parameter[ID7000512]
$Area=@Map.Object[$N].Parameter[ID7000516]
$Vimiri=@Map.Object[$N].Parameter[ID7000515]
@Dialog.Message Власник ПІБ $FullName|Адреса ділянки $Adresa|Цільове використання $CV|Категорія земель $Kategory|Форма власності $FormaVlasnosti|Площа $Area $Vimiri.
;
як це все зробити в таблиці?

Доброго дня добродії!
Підкажіть як додати ім’я (кадастровий номер) відкритого ХМЛ в параметр?

Шановна громада, підскажіть. Як створити скрипт для автоматичного заповнення полів в ХМЛі наприклад в суміжниках ЮО: добавити код ЄДРПУО (00000000) та блок Адреса.

П.С.: роблю ставку що відповість першим Коля Фендак :smiley:

Для пустих параметрів підійдуть шаблони заповнення

Дякую!

П.С. :frowning: ставка не зіграла :slight_smile:

Доброго дня
Яким скриптом відкрити зовнішній документ у програмі за замовчуванням.
Тобто, є база в .dmf з xml файлами, і є каталоги з ОФ і відсканованими документами (назва каталогів “ПІБ”), треба щоб скрипт формував шлях до файлів і відкривав каталог з прізвищем у провіднику.
Роблю так
;перегляд документів в .tif
;параметр, де міститься ПІБ.
$ObjNumb=@Map.SelectedObject
$Proprietor=@Map.Object[$ObjNumb].Parameter[ID7000520]
;шляхи для @XML.XPath
$L=/Proprietors/ProprietorInfo/Authentication/NaturalPerson/FullName/LastName
$F=/Proprietors/ProprietorInfo/Authentication/NaturalPerson/FullName/FirstName
$M=/Proprietors/ProprietorInfo/Authentication/NaturalPerson/FullName/MiddleName
$UO=@XML.XPath ProprietorInfo/Authentication/LegalEntity/Name $Proprietor
;безпосередньо функція @XML.XPath
$LastName=@XML.XPath $L $Proprietor
$FirstName=@XML.XPath $F $Proprietor
$MiddleName=@XML.XPath $M $Proprietor
;Результуюче значення
$FullName=$LastName $FirstName $MiddleName$UO
$KN=@Map.XMLCadastralNumber
$Work=@WorkFolder
$FileName=$FullName$KN.xml
$File=@Dialog.OpenFile *.tif $Work$FileName
Потім ПКМ-открить с помощью-просмотр фотографий виндовс
як зробить щоб одразу відкрився просмоторщик, або якась стороння программа.

Просмотрщик по умолчанию запускается как-то так:
@Run d:\xxx-.jpg
@Run d:\Parts.xls
если полное имя файла содержит пробел, то его надо заключить в кавычки
@Run “C:\Users\Dima\Documents\MicroOLAP Database Designer for PostgreSQL\Scripts\example.sql”

Либо запустить приложение с аргументом
@Run notepad.exe d:\0510100000020050213.xml

P.S. Дабы не проверять наличие пробела в пути, кавычки можно ставить всегда

Дякую. Те що треба!!!

Привіт всім! Ніхто не стикався з створенням плану меж земельної ділянки?
Потрібно щоб на плані суміжників розміщало навколо контуру земельної ділянки відповідно до сторони їх розміщення.
Я трохи погрався й створив отакий шаблон, але виникає проблема:
1)іноді вибиває отаку помилку
2)якщо формат запису суміжника “зем. ділянка вул.ХХХХХ гр.ХХХХХ.Х.Х. кад №ХХХХХ…” - текст задовгий, потрібно щоб була можливість його робити у два чи більше рядів.

Буду вячний всім за відповіді.


_МЕЖ.dmt (27.4 KB)

Встановіть ширину колонки в суміжника, і слова будуть автоматично переноситись на нову строку.

Доброго дня.
Створюю новий параметр в карті для відображення адреси в одному рядку
=XPT(P[ID7000500],“Settlement”),XPT(P[ID7000500],“District”),XPT(P[ID7000500],“Region”)
якщо вставити пробіли то відображається тільки перше значення. Як коректно вставити пробіли між значенями (вулиця, район область)

Горизонтальна риска “_”

Підкажіть чи є функція що виконує команду клавіатури “Вверх” чи “Вниз”?

Необхідно для зміни шару у меню “Добавить узлы”-“Поместить в слой”