Головна » 2016 » Квітень » 10 » Функції та формули шаблонів DMT
12:37
Функції та формули шаблонів DMT

Для формування графічного звіту в програмі Digitals використовуються спеціальні DMT-шаблони. Викликаються вони командою Сервіс/Документи.

Дані шаблони являють собою звичайну карту, але з тою відмінністю, що всі лінійні об'єкти та полігони, що у статусі Правка після формування звіту автоматично замінюються на відповідні об'єкти оригінальної карти, а значення параметрів на відповідні значення параметрів оригінальної карти.

Щоб створити DMT-шаблон потрібно створити новий чистий листок і зберегти його в корні папки Digitals  під назвою Назва шаблону.dmt. Тобто, обов'язково додати в кінці назви крапку і три малі букви dmt. Або зберегти у форматі dmf, а потім у файловому менеджері змінити розширення файлу на dmt. Прямої можливості зберегти у формат dmt  в програмі поки що не реалізовано.

Та простіше, мабуть, створити шаблон на основі одного із вже готових, які можна знайти в тій же папці.

Після додавання нового шаблону для того, щоб він появився в меню Сервіс/Документи обов'язково треба перезапустити програму Digitals.

Якщо потрібно, щоб в меню Сервіс/Документи був пункт, який запускатиме відразу декілька шаблонів, тоді в папці Digitals потрібно створити папку під назвою Назва.dmt і перемістити туди ті шаблони (також обов'язково із розширенням .dmt), які потрібно згрупувати.

Редагуються шаблони, як звичайні карти. Але всі рамки, лінії, умовні знаки обов'язково слід переводити в статус Видимий або Вибір. Інакше вони просто зникатимуть. Зробити це можна в менеджері шарів. В той же час, ті лінійні об'єкти та полігони, які повинні замінитися об'єктами з вихідної карти (квартал, ділянка, суміжники, угіддя тощо) повинні обов'язково залишатися в статусі Правка.

Розглянемо більш детально функції та формули, які можна використовувати у шаблонах.

Вставляються дані функції просто в текст і на їх місці після генерації звіту отримуємо відповідні значення. Додатково можна переглянути спеціальну серію відеоуроків.

P[порядковий номер чи id параметра] - функція, яка витягує значення потрібного параметра по його порядковому номеру чи id

P[54] - витягне вміст параметра Цільове призначення по порядковому номеру параметра

P[ID7000511] - витягне вміст параметра Цільове призначення по коду параметра. Даний варіант є більш надійний, бо код параметра завжди один і той, а порядковий номер може мінятися, якщо ви добавите на карту інші параметри.

P[ID7000512] - витягне Форму власності

P[ID7000509] - витягне Категорію земель

Площа ділянки - P[0] га - приклад змішування тексту з формулою, яка витягує площу.

PARENT[номер чи id параметра](id шару) - витягує значення потрібного параметра з іншого (вказаного) шару. Бо коли ми формуємо звіт, то вибираємо один із шарів, найчастіше шар Земельна ділянка. Відповідно, щоб витягнути інформацію з інших шарів (Кадастрова зона, Кадастровий квартал, Реквізити тощо) слід використовувати дану функцію. Увага! Дана функція не призначена для угідь і інших об'єктів, які не ідентичні контуру виділеного полігону. Для угідь є інша функція.

Parent[ID7000301](ID70003):Parent[ID7000401](ID70004):P[ID7000513] - витягне повний кадастровий номер

Neighbors[номер параметра] - витягує вміст відповідного параметра із усіх суміжних об'єктів і формує ці значення через кому в одному рядку.

Neighbors[107] - витягне із усіх суміжників вміст параметру Додаткова інформаця і з'єднує всі витягнуті значення в один рядок через кому. Для коректної роботи функції в шаблоні повинна бути таблиця експлікацій. Приклад дивіться в шаблоні Акт согласования границ.DMT, який є в стандартному комплекті програми. Правда, там на прикладі ще старого IN4

XMP(Землі загального користування) - повертає значення суміжників. Те, що в дужках буде прописано коли значення пусте. Зазвичай, вставляється в табличку експлікації суміжників.

Повний варіант ПІБ:
Від А до Б - SEL(P[id7001000],|XMP(FULL,Землі загального користування) - кадастровий номер відсутній|*|XMP(FULL,Землі загального користування) - кадастровий номер P[id7001000])

Скорочено ПІБ:
Від А до Б - SEL(P[id7001000],|XMP(Землі загального користування) - кадастровий номер відсутній|*|XMP(Землі загального користування) - кадастровий номер P[id7001000])

XPT(id параметра,"Назва вузла") - витягує текстове значення вузла із параметра XML, коли в параметрі не тільки саме значення, а ще додаткові теги. Щоб переглянути структуру параметра з тегами, потрібно скопіювати вміст параметра в блокнот. Наприклад, скопіюємо адресу ділянки:

<ParcelLocationInfo><Region>Львівська область</Region><District>Дрогобицький район</District><Settlement>с.Уличне</Settlement><ParcelLocation><Urban/></ParcelLocation><ParcelAddress><StreetType>вулиця</StreetType><StreetName>Зелена</StreetName><Building>25</Building><Block>4</Block></ParcelAddress></ParcelLocationInfo>

Як бачимо, назва області знаходиться між тегами <Region>. Щоб її витягнути, потрібно скористатися такою формулою:

XPT(P[ID7000500],"Region") - поверне назву області із параметра ID7000500 (Місце розташування земельної ділянки).

XPT(P[ID7000500],"Settlement") - поверне назву населеного пункту.

Розглянемо більш складний випадок. Скопіюємо в блокнот вміст параметру Блок опису всіх власників та землекористувачів:

<Proprietors><ProprietorInfo><Authentication><NaturalPerson><FullName><LastName>Карпа</LastName><FirstName>Володимир</FirstName><MiddleName>Мар’янович</MiddleName></FullName><TaxNumber>3641783258</TaxNumber><Passport><DocumentType>Паспорт громадянина України</DocumentType><PassportNumber>444256</PassportNumber><PassportIssuedDate>1997-07-06</PassportIssuedDate><IssuanceAuthority>Дрогобицьким РВ УМВС України у Львівській області</IssuanceAuthority><PassportSeries>КА</PassportSeries></Passport><Citizenship>804</Citizenship><Address><Country>804</Country><Region>Львівська область</Region><District>Дрогобицький район</District><Settlement>село Снятинка</Settlement><Street>вулиця Зелена</Street><Building>56</Building></Address></NaturalPerson></Authentication><ProprietorCode>22</ProprietorCode><PropertyAcquisitionJustification><Document>001</Document><DocumentDate>2013-11-28</DocumentDate><DocumentNumber>4 сесія 7 скликання №12</DocumentNumber><ApprovalAuthority>Снятинська сільська рада</ApprovalAuthority></PropertyAcquisitionJustification></ProprietorInfo></Proprietors>

Тут, щоб, наприклад, витягнути прізвище землевласника/землекористувача, потрібно вказати повний шлях до відповідного тегу, в якому знаходиться потрібне нам значення.

XPT(P[ID7000520],"/Proprietors/ProprietorInfo/Authentication/NaturalPerson/FullName/LastName") - поверне прізвище землевласника/землекористувача.

XPT(P[ID7000520],"/Proprietors/ProprietorInfo/Authentication/NaturalPerson/FullName/MiddleName") - поверне по батькові землевласника/землекористувача.

Тобто, якщо так розібратися, перший загальний тег (в даному випадку це Proprietors) ми ігноруємо, а шукаємо всі наступні, в які вміщене потрібне нам значення. Кожний тег відкривається і закривається. Коли закривається - то має перед назвою похилий слеш (/).

XPT(P[ID7000520],"/Proprietors/ProprietorInfo/Authentication/NaturalPerson/TaxNumber") - поверне ідентифікаційний код землевласника/землекористувача.

XPT(P[ID7000520],"/Proprietors/ProprietorInfo/PropertyAcquisitionJustification/DocumentNumber") - поверне номер рішення, сесії та скликання.

XPT(P[ID7000520],"/Proprietors/ProprietorInfo/Authentication/NaturalPerson/FullName/LastName") XPT(P[ID7000520],"/Proprietors/ProprietorInfo/Authentication/NaturalPerson/FullName/FirstName") XPT(P[ID7000520],"/Proprietors/ProprietorInfo/Authentication/NaturalPerson/FullName/MiddleName") - витягне повністю Прізвище Ім'я По батькові землевласника/землекористувача.

XPT(P[ID7000520],"ProprietorInfo/ProprietorCode") - поверне категорію землекористування

Якщо ділянка має кілька співвласників, то щоб витягнути ПІБ наступних, потрібно формулу ось так:

XPT(P[ID7000520],"/Proprietors/ProprietorInfo[2]/Authentication/NaturalPerson/FullName/LastName") - поверне Прізвище другого співвласника

Якщо власник/користувач не фізична, а юридична особа:

XPT(P[ID7000520],"/ProprietorInfo/Authentication/LegalEntity/Name") - поверне назву юридичної особи

XPT(Parent[ID7000007](ID70000),"CompanyName") - витягне назву організації чи ФОП з реквізитів обмінного файлу

CLA(P[значення параметра]) - очищує вміст параметра від від пустих полів та ком між ними.

CLA(XPT(P[ID7000500],"Settlement"),  XPT(P[ID7000500],"ParcelAddress/StreetType") XPT(P[ID7000500],"ParcelAddress/StreetName"), XPT(P[ID7000500],"ParcelAddress/Building") XPT(P[ID7000500],"ParcelAddress/BuildingUnit")), XPT(P[ID7000500],"District"), XPT(P[ID7000500],"Region") - поверне адресу ділянки без пустих полів

ROP(P[значення параметра]) - переводить відповідне значення (ПІБ) в родовий відмінок.

ROP(XPT(P[ID7000520],"ProprietorInfo/Authentication/NaturalPerson/FullName/LastName") XPT(P[ID7000520],"ProprietorInfo/Authentication/NaturalPerson/FullName/FirstName") XPT(P[ID7000520],"ProprietorInfo/Authentication/NaturalPerson/FullName/MiddleName")) - поверне Прізвище Ім'я По батькові в родовому відмінку

DAP(P[значення параметра]) - переводить відповідне значення (ПІБ) в давальний відмінок.

FIO(P[значення параметра])Прізвище Ім'я По батькові скорочено.

FIR(P[значення параметра]) - Прізвище Ім'я По батькові скорочено в родовому відмінку.

FID(P[значення параметра])Прізвище Ім'я По батькові скорочено в давальному відмінку.

GET(номер частини,значення) - витягує відповідну частину рядка між комами чи пробілами

GET(1 P[id7000510]), GET(1 P[id7000510], 0) - витягне перше слово із параметра Цільове призначення, тобто, тільки код цільового призначення. Другий варіант функції повертає 0, якщо нічого не знайдено.

GET(-1 P[ID7000510]) - витягне весь рядок, крім першого слова, тобто назву цільового призначення

Дана функція, як і більшість інших була призначена для файлів IN4. Тоді частини параметрів розділялися комами. І якщо вказати GET(1,P[ххх]), то функція повертала частину параметра до коми. Ще варіантом було GET(1/3,P[ххх]) - перша частина до пробілу третьої частини до коми. Зараз це вже не потрібно. Витягувати якесь значення до коми нема сенсу.

​SEF(значення,назва файлу) - шукає певне значення у файлі та повертає відповідне йому значення з файлу

​SEF(GET(1 P[id7000510], 0),KZ.txt) - витягне з файлу KZ.txt відповідне значення коду цільового призначення. У файлі KZ.txt повинні бути перераховані всі потрібні коди цільового призначення та, через знак табуляції, їх значення. Наприклад:
​01.01   ТСГВ
01.03   ОСГ
02.03   ОЖБ

Файл, на який посилається функція повинен знаходитися у папці Digitals/List

SEF(XPT(P[ID7000522],"DocumentationType"),TechDocumentationTypes.txt) - прочитає з XML код типу документації і поверне за ним назву документації по текстовому файлу TechDocumentationTypes.txt

SEF(CUT(1,8,Parent[ID7000301](ID70003)),Rada.txt) - поверне назву місцевої ради по КОАТУУ (обрізавши його до 8 цифр) за файлом Rada.txt

FIL(Setup.ini,назва констани) - витягує відповідну константу із файлу Setup.ini. В даному файлі зберігаються ваші реквізити. Файл знаходиться у папці Template. Читайте, як редагувати ваші реквізити.

FIL(Setup.ini,Виконав) - витягне назву виконавця робіт

FIL(Setup.ini,Перевірив) - витягне назву того, хто перевірив

LEN(Значення) - повертає довжину рядка, тобто кількість символів в ньому

SEL(Значення,Значення1|Результат1|Значення2|Результат2|*|Інше) - якщо відповідне значення дорівнює заданому Значенню1, то отримаємо Результат1, якщо відповідне значення дорівнює Значенню2, отримаємо Результат2, якщо інше - отримаємо слово "Інше".

SEL(LEN(P[id7000513]),4|P[id7000513]|*|відсутній) - якщо довжина параметра Унікальний номер ділянки дорівнює 4, то поверне його значення. Якщо ні, то появиться слово "відсутній"

SEL(XPT(P[ID7000522],"DocumentationType"),006|ТД|*|ПЗ) - якщо код виду документації 006, отримаємо значення ТД, інакше - ПЗ

POS(Частина значення,Значення) - повертає позицію, в якій знаходиться частина певного значення

CUT(Початковий символ,Кількість,Значення) - витягує частину певного значення, починаючи з Початкового символу і довжиною в Кількість символів

CUT(11,1000,P[id7000509]) - поверне 1000 символів, починаючи із 11 із параметра Категорія земель. Тобто, відкине код категорії та слово Землі, а поверне, наприклад, сільськогосподарського призначення

CUT(9,2,XPT(P[ID7000522],"DraftingDate")).CUT(6,2,XPT(P[ID7000522],"DraftingDate")).CUT(1,4,XPT(P[ID7000522],"DraftingDate")) р. - витягне дату складання документації у форматі число.місяць.рік

XPT(Parent[ID7000007](ID70000),"Executor/ExecutorName/LastName") CUT(1,1,XPT(Parent[ID7000007](ID70000),"Executor/ExecutorName/FirstName")). CUT(1,1,XPT(Parent[ID7000007](ID70000),"Executor/ExecutorName/MiddleName")). - витягне прізвище та ініціали виконавця робіт з реквізитів обмінного файлу
 

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

Date - повертає поточну дату.

P[0](номер параметра=значення1,номер параметра=значення2...) - повертає площу об'єктів, номер заданого параметра яких відповідає заданим значенням.

P[0](93=001.00,93=001.01,93=002.01,93=002.02,93=002.03) - поверне значення площі сільськогосподарських угідь, тобто, площу всіх об'єктів, параметр 93 яких, відповідає заданим кодам.

P[0](93=002.03) - поверне загальну площу садів

P[0](93=002.01) - поверне загальну площу сіножатей

FFF(Назва файлу) - дозволяє розмістити довгий вираз формули у зовнішньому файлі у папці Lists. Тобто, в текстовому файлі можна написати будь-яку із вище перерахованих функцій і даною функцією викликати її прямо з цього файлу. Це зручно, коли формули дуже великі, бо вони не красиво виглядають в шаблоні. Також, якщо довжина формули дуже велика, то вона може просто не працювати, бо є обмеження на довжину формули на карті.
 

 

Переглядів: 12518 | Додав: Микола | Рейтинг: 5.0/3
Всього коментарів: 761 2 »
avatar
73 fullmetal_777 • 15:56, 18.01.2022
Підкажіть будь ласка, чи можна за допомогою функції CUT обрізати рядок з кінця?
avatar
1
74 Микола • 16:11, 18.01.2022
CUT(11,1000,P[id7000509]) - поверне 1000 символів. Поставте таке число, яке гарантовано більше за кількість символів у рядку. Або, можливо, вам підійде більше така функція - GET(-1 P[ID7000510]) - витягне весь рядок, крім першого слова, тобто назву цільового призначення
avatar
75 fullmetal_777 • 16:42, 18.01.2022
Справа в тому що я хотіла б витягти інформацію про суміжників із блоку додаткової інформації, але витягує некоректно, у такому форматі:
Від А до Б <AdditionalInfoBlock><AdditionalInfo>землі Котелевської селищної ради (кадастровий номер відсутній)</AdditionalInfo></AdditionalInfoBlock>
Від Б до В <AdditionalInfoBlock><AdditionalInfo>зем. ділянка гр. Нечипоренко Г.О. (кадастровий номер відсутній)</AdditionalInfo></AdditionalInfoBlock>
Від В до Г <AdditionalInfoBlock><AdditionalInfo>зем. ділянка гр. Малохліб Є.О. (кадастровий номер відсутній)</AdditionalInfo></AdditionalInfoBlock>
Від Г до Д <AdditionalInfoBlock><AdditionalInfo>зем. ділянка гр. Мигловець В.В. (кадастровий номер відсутній)</AdditionalInfo></AdditionalInfoBlock>
Від Д до А <AdditionalInfoBlock><AdditionalInfo>землі Котелевської селищної ради (кадастровий номер відсутній)</AdditionalInfo></AdditionalInfoBlock>

Фунція:
Від А до Б P[ID7001004]
Від А до Б P[ID7001004]


Завдяки CUT вдалося вирізати першу зайву частину:

Фунція:
Від А до Б CUT(37,1000,P[ID7001004])
Від А до Б CUT(37,1000,P[ID7001004])


Результат:
Від А до Б землі Котелевської селищної ради (кадастровий номер відсутній)</AdditionalInfo></AdditionalInfoBlock>
Від Б до В зем. ділянка гр. Нечипоренко Г.О. (кадастровий номер відсутній)</AdditionalInfo></AdditionalInfoBlock>
Від В до Г зем. ділянка гр. Малохліб Є.О. (кадастровий номер відсутній)</AdditionalInfo></AdditionalInfoBlock>
Від Г до Д зем. ділянка гр. Мигловець В.В. (кадастровий номер відсутній)</AdditionalInfo></AdditionalInfoBlock>
Від Д до А землі Котелевської селищної ради (кадастровий номер відсутній)</AdditionalInfo></AdditionalInfoBlock>

Якби була можливість вирізати останню частину, бо кількість потрібних символів завжди різна, а непотрібних однакова що на початку рядка, що в кінці. Дякую за відповідь!
avatar
0
76 Микола • 17:08, 18.01.2022
Для цього є функція XPT:
Від А до Б XPT(P[ID7001004],"AdditionalInfoBlock/AdditionalInfo"))
avatar
69 lvivsurveyer • 13:10, 20.11.2020
підкажіть чи функція GET працює в вкладці інфо
задача наступна є шар який називається "1 ділянка" (параметр -5, необхідно вивести на карту номер ділянки, тобто "1"
я пробував це записати так
"=GET(1 P[-5]) Номер ділянки скорочений" та "=GET(1 P[-5], 0) Номер ділянки скорочений"
в результаті отримав "GET(1"
підкажіть де я накосячив :\'( 
хотів зробити по аналогії з ПІБ яке відміняється чи в якому обрізаються ініціали і лишається лиш прізвище
посилання на скрін прикріплюю
https://drive.google.com/file/d/1MvsgqPulRredtNbL_VpRrqM2Lf-eAtRQ/view?usp=sharing
avatar
0
70 Микола • 15:12, 20.11.2020
В параметрах на закладці інфо пробіл є роздільником між формулою на власне назвою параметру. Тому функції dmt, які мають в собі пробіли не підтримуються тут.
avatar
71 lvivsurveyer • 16:24, 20.11.2020
в такому випадку можна іншим чином вирішити дану проблему?
avatar
0
72 Микола • 22:02, 20.11.2020
Користуйтеся скриптом, який це робить:
Вкажіть id шару (рядок 1), id параметра, з якого копіювати (рядок 2) та в який копіювати (рядок 3)
avatar
66 matskows • 01:01, 31.10.2020
Доброї ночі! Хочу запитати в чому може бути проблема якщо не тягне Виконавця робіт у dmt шаблон якщо він привязаний до скрипта, при вписуванні в ньому різних формул які наведені вище!
Пробував добавити теги у самій кнопці
;------Виконавець
@Map.DeselectAll
@Map.SelectLayer ID70000
$MON=@Map.SelectedObject
$VR=@Map.Object[$MON].Parameter[ID7000007]
$Company=@XML.XPath Companyname $P
$Trudyaga=@XML.XPath ChiefName $P
;------Виконавець
avatar
67 Анонімно • 16:27, 31.10.2020
Спробуйте так:
;------Виконавець
;@OpenLog
@Map.DeselectAll
@Map.SelectLayer ID70000
$MON=@Map.SelectedObject
$VR=@Map.Object[$MON].Parameter[ID7000007]
$Company=@XML.XPath /Executor/CompanyName $VR
$TrudyagaLN=@XML.XPath /Executor/Chief/ChiefName/LastName $VR
$TrudyagaFN=@XML.XPath /Executor/Chief/ChiefName/FirstName $VR
$TrudyagaMN=@XML.XPath /Executor/Chief/ChiefName/MiddleName $VR
$Trudyaga=$TrudyagaLN $TrudyagaFN $TrudyagaMN
@Dialog.Message $Company|$Trudyaga
;@CloseLog D:\5463.txt
;------Виконавець
avatar
68 matskows • 21:37, 31.10.2020
Назву фірми витягнуло, а директора всерівно не хоче, в dmt залишає $Trudyaga cry 
Але велике дякую за допомогу biggrin
avatar
64 SerjN • 21:26, 27.10.2020
Микола, підскажіть, скрипт обробки подій обробляє тільки одну подію чи можна туди вписати скрипти для різних подій? Чи є якісь особливості при вписанні скриптів для декількох подій?
avatar
0
65 Микола • 22:26, 27.10.2020
можна і декількох одночасно, наприклад, я собі на карті-базі, в якій десятки тисяч обмінників, написав внутрішній (меню Карта - Скрипт обробки подій) скрипт карти:
%Events.OnActivateMap
@SelectTab 2
%Events.OnFileOpen
@SelectTab 2
%Events.OnSelect
@SelectTab 2
%Events.OnAdd
@Window.ShowSelected

Він означає:
Подія 1. Якщо карту активувати - програма зразу переходить на закладку Правка (щоб не відбувався аналіз карти на закладці Інфо).
Подія 2. Якщо карту просто тільки відкрили - програма також переходить на закладку Правка
Подія 3. Якщо виділити якийсь інших об'єкт на карті - так само переходить на закладку Правка
Подія 4. Якщо на карту додати новий об'єкт (додаю для перевірки накладок) - то карта автоматично центрується на цьому об'єкті.

І всі ці події спрацьовують не залежно від їхнього розміщення (перша чи друга, чи остання)
avatar
62 SerjN • 00:09, 24.10.2020
Микола, підскажіть, яка функцієя виводить в шаблон значення змінної, отримане під час роботи скрипта?
avatar
0
63 Микола • 19:22, 24.10.2020
@Map.ReplaceTableVariables - сканує текст таблиць і замінює змінні їх значеннями
avatar
60 Анонімно • 15:16, 28.05.2020
Добрый день. Подскажите пожалуйста почему функция OBJECTSCALE масштабирует но не в координатах? Мой участок улетает с 5-й зоны в 12-ю, с 4-й в 25-ю.
avatar
0
61 Микола • 18:16, 28.05.2020
Добрий день!
Бо так працює дана функція. Вона завжди вставляє об'єкт в центр шаблону так само як функція Спеціальна вставка - В центр екрану.

В модулі "Документація" для автомасштабу використаний інший, спеціально розроблений функціонал, який перед формуванням відкриває кожний шаблон, рахує розмах об'єкту так, щоб він вмістився в цей шаблон і зразу змінює масштаб шаблону. І аж тільки після цього запускає формування звіту. Таким чином, ділянка завжди у вихідних координатах. Не знаю, чому розробники Digitals в стандартних шаблонах кадастрових планів, які були колись для in4 за замовчуванням не використовували таку функцію. Це на багато зручніше, ніж OBJECTSCALE
avatar
54 ukr_geo • 21:21, 23.05.2020
Добрый вечер подскажите почему у меня не работает функция FFF
Я создаю шаблон ДМТ, в нем вставляю текст и прописываю FFF(AD.txt); затем в папке Lists создаю текстовый документ AD.txt и прописываю в нем : CLA(XPT(P[ID7000500],"Settlement"),  XPT(P[ID7000500],"ParcelAddress/StreetType") XPT(P[ID7000500],"ParcelAddress/StreetName"),  XPT(P[ID7000500],"ParcelAddress/Building") XPT(P[ID7000500],"ParcelAddress/BuildingUnit")), XPT(P[ID7000500],"District"), XPT(P[ID7000500],"Region")
А мне вместо полного адреса выкидывает только две запятые 
в чем проблема? Просто если я пропишу P[ID7000509] то он выкидывает категорию( 200 землі .....) ,а вот на большую функцию не работает
avatar
0
55 Микола • 21:55, 23.05.2020
Використання функції XPT у файлі, який викликається функцією FFF не підтримується. Інші йдуть. Не знаю, з чим це пов'язано. Може з тим, що дана функція появилася значно пізніше від FFF і тому FFF просто не розуміє її. Звертайтеся до розробників Digitals з цим питанням, щоб виправили.
avatar
56 ukr_geo • 23:36, 23.05.2020
Тогда у этой функции очень малый диапазон использования! Большая половина информация которая заложена в ХМЛ втягивается с помощью ХМР. Зачем тогда нужна функция FFF???
avatar
57 ukr_geo • 00:07, 24.05.2020
Подскажите еще пожалуйста как правильно пользоваться функцией CUT?
К примеру CUT(9,2,XPT(P[ID7000522],"DraftingDate")).
CUT(6,2,XPT(P[ID7000522],"DraftingDate")).
CUT(1,4,XPT(P[ID7000522],"DraftingDate")) р.
 - витягне дату складання документації у форматі число.місяць.рік
Не очень понимаю как мне вытянуть - дату реестрації документації у форматі число.місяць.рік
я понимаю что цифры 2,2,4 - это количество символов которые нужно вытянуть, а 9,6,1 - ???? как они связаны с датой?
avatar
0
58 Микола • 11:25, 24.05.2020
У значенні дати є 10 символів

CUT(9,2, означає, що функція витягне 2 символи, починаючи з дев'ятого
CUT(6,2 означає, що функція витягне 2 символи, починаючи з шостого
CUT(1,4 означає, що функція витягне 4 символи, починаючи з першого
avatar
59 ukr_geo • 12:49, 24.05.2020
Дякую!:ok:
avatar
49 00zakachka00 • 14:34, 05.02.2020
Очень интересно, но ничего не понятно smile
avatar
0
51 Микола • 16:10, 05.02.2020
Ви про Функції та формули шаблонів DMT?))
avatar
48 natali_kiss87 • 14:01, 05.02.2020
Доброго дня! Я новачок у даній програмі, тому дуже потребую допомоги. Скажіть будь ласка,як мені додати той шаблон, чи як правильно назвати, коли я при розроблені ТД,коли сформовані план меж, кадастровий, матеріали польових та список межових знаків, натискаю " генератор отчетов", і немає того що мені потрібно, але воно знаходиться в закладці "дизайнер" пакет  документов" і як обраний документ додати на панель зліва? Коли натискаю ок, воно ніби зіскакує і нічого не відбується....
avatar
0
50 Микола • 16:05, 05.02.2020
Так зрозумів, що ви запитуєте про програму FastReports, яка запускаєтья через меню Digitals Сервіс - Генератор звітів? Вибачте, але я з даною програмою не працюю і не дуже орієнтуюся, як там що додається. Зверніться з цим питанням в техпідтримку Digitals (меню Допомога - Про програму). В мене документація (основні сторінки) формується не через Генератор звітів, а за допомогою спеціально скрипту - Скрипт-модуль "Документація".
avatar
52 natali_kiss87 • 16:15, 05.02.2020
Цей скрипт модуль потрібно купити, так?
avatar
0
53 Микола • 17:10, 05.02.2020
якщо хочете
avatar
46 prozerpina7 • 15:09, 14.03.2019
Добрый день. При помощи каких функций программы можно выделить цветом смежников, угодья?
avatar
0
47 Микола • 00:22, 15.03.2019
щоб суміжники були різними кольорами, в шаблон через менеджер шарів потрібно додати шари Border

див. приклад

Щоб зробити угіддя різнокольоровими (залежно від значення певного параметра, наприклад, коду угіддя, площі), потрібно виділити всі угіддя та перейти в меню Карта - Створити тематичний вигляд. У списку, який появиться, вибрати потрібний параметр (наприклад, код угіддя). Все.
avatar
44 Іванов Иван • 21:47, 11.03.2019
Микола мається на увазі вусик на самом кадастровом плане відображення суміжника еапрямок суміжника (стрелочка) та букви ББ'
avatar
0
45 Микола • 22:02, 11.03.2019
я скільки працюю в геодезії, не бачив кадастрового плану, де від вкралпеного контура йде вусик із стрілочкою. І що ця стрілочко значить? Адже стрілка це напрям. Напрям куди? Мені здається, що більш доцільно робити виноски.
avatar
42 Іванов Иван • 20:30, 11.03.2019
Микола дуже дякую, все працю. Але хотів уточнити якщо це можливо - як добавити вираз Від Д до Д' та вусик на кад плані суміжника.?
avatar
0
43 Микола • 21:23, 11.03.2019
замініть в коді скрипту рядок
@if $Kontrol=1 then $Result=$B1($B1')$Tab$Res
на
@if $Kontrol=1 then $Result=від $B1 до $B1'$Tab$Res

А який вусик ви маєте на увазі? Там створюється спеціальна виноска - лінія із підписом
avatar
40 Іванов Иван • 16:19, 10.03.2019
Микола пробачте я не зрозумів а куди цей скрипт треба вставляти в отдельно в кнапку чи в карту скриптов их подій підскажіть будь-ласка
avatar
0
41 Микола • 16:48, 10.03.2019
окремою кнопкою
при цьому копіюйте і другу частину коду і вкажіть у рядку
@ExecuteDocument Кад план
назву вашого шаблону.
Читайте в описі скрипту, там написано як це зробити.
avatar
38 bk2013 • 09:33, 08.03.2019
Микола, у Вас в скрипті акт реалізовано опис меж з вкрапленими контурами підскажіть будь-ласка де я можу почитати цей скрипт так як Ваш скрипт компільваний під ключ я не взмозі побачити. ДЯКУЮ
avatar
0
39 Микола • 12:56, 10.03.2019
я вам дав ярлик на готовий скрипт, для чого вам ще акт?
avatar
36 bk2013 • 20:03, 06.03.2019
Микола, при формувані звіту (кадастрового плану) з вкраплиними контурами XML в опису меж не з'являється опис вкрапленого контуру я використовую 
Від А до Б XMP(FULL,Землі загального користування)
Від А до Б XMP(FULL,Землі загального користування) 
можливо ще є варианти для опису меж з вкраплиними контурами.
avatar
0
37 Микола • 00:06, 07.03.2019
тут є один варіант - формувати експлікацію суміжників скриптами. Див. Скрипт, який створює експлікацію суміжників із вкрапленими контурами. В коді скрипту замість
$Res=@Map.Object[$N].CalculateFormula XMP(пусто)
поставте свій варіант для повного вигляду ПІБ:
$Res=@Map.Object[$N].CalculateFormula XMP(FULL,Землі загального користування)
avatar
Доброго дня! А можна зробити список суміжників Прізвище, І`мя, По батькові повністю бо при обрізанні до ініціалів не відмінює суміжника?
avatar
0
34 Микола • 15:00, 15.01.2019
Доброго дня! Список суміжників в повній формі я в себе формую скриптами (перемінна $SumizList ). Як це реалізувати через DMT-формули не знаю.
avatar
35 mrskorobagatyj • 23:53, 16.01.2019
$S=@Map.Parameters.Get ID7001007
@if $S= then @Map.Parameters.Add 7001007 5 Суміжник у називному відмінку
;додаємо параметр ID7001007 до шару XML : Суміжник
$S=@Map.Layers.GetValidParameters ID70010
@Map.Layers.SetValidParameters ID70010 $S ID7001007
;створюємо параметр ID7001008
$S=@Map.Parameters.Get ID7001008
@if $S= then @Map.Parameters.Add 7001008 5 =ROP(P[ID7001007]) Суміжник в родовому відмінку
;добавляем параметр ID7001008 в слой XML : Суміжник
$S=@Map.Layers.GetValidParameters ID70010
@Map.Layers.SetValidParameters ID70010 $S ID7001008
;добавляем параметр ID70010013 в слой XML : Суміжник
$S=@Map.Layers.GetValidParameters ID70010
@Map.Layers.SetValidParameters ID70010 $S ID7001013
$S=@Map.Parameters.Get ID7001013
@if $S= then @Map.Parameters.Add 7001013 5 кад. номер невизначений
;добавляем параметр ID7001008 в слой XML : Суміжник
$S=@Map.Layers.GetValidParameters ID70010
@Map.Parameters.Mask ID7001013 *=(кад. номер невизначений)
@Map.Layers.SetValidParameters ID70010 $S ID7001013

Опис меж:
Від А до Б    P[ID7001006]_P[ID7001008]_P[ID7001000]_P[ID7001013]
Від А до Б    P[ID7001006]_P[ID7001008]_P[ID7001000]_P[ID7001013]

P[ID7001006] це приставка (земельна ділянка гр. та землі державної власності)
avatar
результат ,,
avatar
0
32 Микола • 17:10, 10.01.2019
спробував в себе і справді дана функція не працює із новими функціями типу XPT. Це пов'язано, мабуть, з тим, що дана функція дуже рідко використовується на практиці і її просто не протестували, додавши XPT. Раніше, коли ще були ін4, вона була призначена в першу чергу для винесення коду типу цього:
Sel(GET(1/1,P[41]),21|"особистого селянського господарства"|22|"обслуговування житлового будинку, господарських будівель та споруд").
Але і тут вона рідко використовувалася із появою функції SEF, де можна зробити те саме, але без розкидання у різні текстові файли. Наприклад:
SEF(FUNC,func.txt)
а в файлі func.txt
Код:
FUNC<tab>SEF(CRITERIA,VALUE1|SEF(FUNC1,func.txt) |VALUE2|SEF(FUNC2,func.txt)|*|SEF(FUNCOTHER,func.txt))
FUNC1<tab>.....
FUNC2<tab>.....
FUNCOTHER<tab>.....
avatar
Підкажіть як конкретно використовувути FFF в дмт шаблонах.
avatar
0
30 Микола • 15:38, 10.01.2019
Функція FFF створена для випадків, коли формула не вміщається в назву параметра. Все що йде слідом за нею розглядається як назва файлу, в якому зберігається формула.
Наприклад у шаблоні прописуємо:
FFF(Формула.txt)

У текстовому файлі Формула.txt (який треба створити у папці Lists):
CLA(XPT(P[ID7000500],"Settlement"),  XPT(P[ID7000500],"ParcelAddress/StreetType") XPT(P[ID7000500],"ParcelAddress/StreetName"),  XPT(P[ID7000500],"ParcelAddress/Building") XPT(P[ID7000500],"ParcelAddress/BuildingUnit")), XPT(P[ID7000500],"District"), XPT(P[ID7000500],"Region")

В результаті отримаємо адресу ділянки.

Перевага даної функції в тому, що не треба  в шаблонах прописувати ці всі довгі коди. Їх можна винести в окремий текстовий файл.
avatar
27 bk2013 • 17:32, 13.12.2018
Микола, підскажіть будь-ласка при функції XPT(P[ID7000500],"Region") витягує Назву області та назву "область" 
А яким чином витягнути тільки назву області, пробував таким чином ROP(CLA(GET(1 P[ID7000500]))) області, витягує, але витягує в такому форматі <ParcelLocationInfo><Region>Херсонської області. Яким чином щоб тільки Херсонської витягувало. Дякую.
avatar
1
28 Микола • 23:59, 13.12.2018
Ви у формулі упустили XPT
ROP(GET(1 XPT(P[ID7000500],"Region")))
CLA тут, мабуть, зайве буде, тому його викинув
avatar
25 bk2013 • 13:23, 05.10.2018
Скільки буде коштувати скрипт який розбиває, добавляє на сторінки по шаблону ДМТ
каталог координат
avatar
0
26 Микола • 17:02, 05.10.2018
той каталог, який формується програмним методом я не знаю, як розбити на сторінки, бо там всесь текст читаєтся скриптом як один рядок і ніякі розділювачі не можу підібрати, щоб розбити дану таблицю на рядки.
1-20 21-30
avatar