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(Землі загального користування) - повертає значення суміжників. Те, що в дужках буде прописано коли значення пусте. Зазвичай, вставляється в табличку експлікації суміжників. Повний варіант ПІБ: 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 повинні бути перераховані всі потрібні коди цільового призначення та, через знак табуляції, їх значення. Наприклад: Файл, на який посилається функція повинен знаходитися у папці 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(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. Тобто, в текстовому файлі можна написати будь-яку із вище перерахованих функцій і даною функцією викликати її прямо з цього файлу. Це зручно, коли формули дуже великі, бо вони не красиво виглядають в шаблоні. Також, якщо довжина формули дуже велика, то вона може просто не працювати, бо є обмеження на довжину формули на карті.
| |
|
Всього коментарів: 76 | 1 2 » |
| |
1-20 21-30 | |