;Перевіряємо чи є відкрита карта
$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) та блок Адреса.
П.С.: роблю ставку що відповість першим Коля Фендак ![]()
Для пустих параметрів підійдуть шаблони заповнення
Дякую!
П.С.
ставка не зіграла ![]()
Доброго дня
Яким скриптом відкрити зовнішній документ у програмі за замовчуванням.
Тобто, є база в .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”)
якщо вставити пробіли то відображається тільки перше значення. Як коректно вставити пробіли між значенями (вулиця, район область)
Горизонтальна риска “_”
Підкажіть чи є функція що виконує команду клавіатури “Вверх” чи “Вниз”?
Необхідно для зміни шару у меню “Добавить узлы”-“Поместить в слой”
