Головна » 2016 » Січень » 1 » Скриптові функції - Обробка строкових параметрів
22:37
Скриптові функції - Обробка строкових параметрів

Всі скриптові функції Digitals для зручності можна поділити на категорії, в залежності від того, які операції та над якими об'єктами виконує та чи інша функція.


Створення/видалення параметрів та їх властивості

@Map.Parameters.Add Code Type Name - створює новий параметр із заданим id, типом і назвою

@Map.Parameters.Get Number - повертає id параметра, його тип і назву

@Map.Parameters.Set Number Code Type Name - змінює id параметра, його тип і назву

@Map.Parameters.Delete Number - видаляє параметр по його порядковому номеру чи id

@Map.Parameters.FindByID ID - повертає порядковий номер параметра по його id і 0 - якщо такий параметр не знайдений

@Map.Parameters.FindByName Name - повертає порядковий номер параметра по його назві і 0 - якщо такий параметр не знайдений

@Map.Parameters.GetAttributes Number - повертає атрибути параметра: номер УЗ, тип лінії, колір лінії, товщину, тип заливки, колір заливки, статус

@Map.Parameters.SetAttributes Number Symbol PenStyle PenColor PenWidth BrushStyle BrushColor State Font_Name FontSize FontStyle FontColor - змінює атрибути параметра: номер УЗ, тип лінії, колір лінії, товщину, тип заливки, колір заливки, статус

@Map.Parameters.List - Повертає список параметрів карти у форматі: IDПарам НазваПарам

Map.Layers.GetValidParameters LayerIndex - повертає список доступних шару параметрів

@Map.Parameters.SaveToFile FileName - зберігає список параметрів карти у текстовий файл

@Map.Parameters.LoadFromFile FileName - завантажує список параметрів карти із текстового файлу

@Map.Parameters.Mask Number [Value] - повертає чи змінює маску параметра

@Map.Parameters.Name Number - повертає назву параметра

@Map.Parameters.RemoveCyrillic - видаляє символи кирилицею із назви параметра

@Map.Parameters.Rename OldName,NewName - змінює назву параметра

@Map.Parameters.Count - повертає кількість параметрів карти

Повертає/редагує значення параметрів

@Map.Object[N].Parameter[N] - повертає/змінює значення параметра об'єкта

@Map.Selected.GetParameter Number - повертає значення параметра виділеного об'єкта

@Map.Selected.SetParameter Number Value  - змінює значення параметра виділеного об'єкта

@Map.Selected.ChangeParameter ParameterIndex Value - встановлює значення параметра для всіх виділених об'єктів

@XML.XPath Query XMLString - повертає значення XML-тегу (частини параметра)

$Address=@Map.Selected.GetParameter ID7000500
$StreetType=@XML.XPath ParcelAddress/StreetType $Address
$StreetName=@XML.XPath ParcelAddress/StreetName $Address
@Dialog.Message $StreetType $StreetName

@XML.NodeCount Query Tag XMLString - повертає число дочірніх елементів XML-тегу

$Props=@Map.Selected.GetParameter ID7000520
$Props=<Root>$Props</Root>
$PropCount=@XML.NodeCount Proprietors ProprietorInfo $Props
@Dialog.Message $PropCount
;результатом буде кількість власників ділянки

@Map.Object[N].ParameterTag[N] <XMLTag>Value - змінює значення тегу в XML-параметрі

;міняємо дату складання техдокументації на поточну
$SO=@Map.SelectedObject
$Data=@Date
$chyslo=@StringPart 1.$Data
$misyac=@StringPart 2.$Data
$rik=@StringPart 3.$Data
$Data="$rik-$misyac-$chyslo"
$Data=@DequoteText $Data
@Map.Object[$SO].ParameterTag[ID7000522] <DraftingDate>$Data

@Map.Object[N].SetXMLTag ParamNumber Query Value - встановлює вміст тегу в XML-параметрі

;міняємо дату видачі та ким виданий паспорт
@Map.DeselectAll
@Map.SelectLayer ID70005
$SO=@Map.SelectedObject
@Map.Object[$SO].SetXMLTag ID7000520 ProprietorInfo/Authentication/NaturalPerson/Passport/PassportIssuedDate 2015-02-14
@Map.Object[$SO].SetXMLTag ID7000520 ProprietorInfo/Authentication/NaturalPerson/Passport/IssuanceAuthority Дніпропетровським РВ УМВС України в Дніпропетровській області

Map.Layers.SetValidParameters LayerIndex NumberList - міняє список доступних шару параметрів

@Map.Selected.ClearParameters - очищує всі параметри виділених об'єктів

@Map.GetObjectParamBuf Number - повертає значення всіх параметрів даного об'єкта у внутрішньому форматі програми

@Map.SetObjectParamBuf Number|ParamAndTableBufзмінює значення всіх параметрів даного об'єкта у внутрішньому форматі програми

@Dialog.EditParameter ParamIndex - виводить вікно редагування параметра для виділеного об'єкта

@Map.GetObjectCadastralNumber ObjectIndex - повертає кадастровий номер ділянки в IN4 файлі

@Map.XMLCadastralNumber - повертає повний кадастровий номер ділянки в XML файлі

@Map.Object[N].NextNumber ParamIndex ParentLayerIndex - повертає значення параметра об'єкту, наступного після ParentLayerIndex серед доступних даному об'єкту

@Map.Selected.LoadParameters TemplateName - заповнює параметри виділених об'єктів із шаблону

@Map.StreetList ParameterID - я форматує назви вулиць в параметрах карти, приводячи їх до єдиного вигляду. ParameterID - ID параметра, що містить список вулиць. Тип параметра повинен бути Список

@Map.ReplaceParameterValues ParamIndex TextFile - замінює по текстовому файлу в певному параметрі значення лівої колонки на значення правої колонки (в текстовому файлі колонки мають розділятися знаком табуляції)

Пошук

@Map.FindByParameters Count|List - шукає об'єкти по значеннях їх параметрів.

@Map.SelectByParameters 2|-1>0|0=0 
;виділить об'єкти за двома параметрами: якщо довжина (параметр -1) більша за 0, і якщо площа (параметр 0) дорівнює 0

@Map.SelectByParameters Count|List  - шукає об'єкти по значеннях їх параметрів. 

@Map.SelectByParametersSelected Count|List - шукає об'єкти з числа виділених по значенню їх параметрів

@Map.FindFirstByParameters Count|List - те саме, що функція вище, але повертає номер першого знайденого об'єкта

@Map.MaxParameterValue ParamIndex [LayerIndex] - сканує всі об'єкти карти (або об'єкти в заданому шарі), повертаючи максимальне значення заданого параметра

@Map.MinParameterValue ParamIndex [LayerIndex]сканує всі об'єкти карти (або об'єкти в заданому шарі), повертаючи мінімальне значення заданого параметра

@Map.DBFNamesFromID - додає до назви параметрів /DBF:НазваПоля на базі їх ID

Інше

@Map.Object[N].AutoNumber ParamIndex ParentLayerIndex - автоматичне нумерування об'єктів

@Map.SetParamsVisibleRanges MinLevel MaxLevel [FromParamNumber] [Latitude] - встановлює діапазони видимості параметрів карти згідно рівнів Google maps. From Param Number - номер першого параметра, якщо не заданий будуть додані нові параметри. Latitude - широта центру карти, 0 - якщо не задана

@Map.Object[N].AssignParameters ObjectNumber - присвоює заданому об'єкту значення всіх параметрів іншого об'єкту

@Map.Object[N].CopyParametersToExternal [LayerList] - копіює значення параметрів об'єкта N у значення тих же параметрів батьківського (External) об'єкта

@Map.Object[N].CopyParametersToInternal [LayerList] - копіює значення параметрів об'єкта N у значення тих же параметрів дочірнього (Internal) об'єкта

 


Примітка: жирним шрифтом (напр.@ActivateMap) виділена назва функції, похилим шрифтом (напр.Number) перемінна функції, у квадратних скобках (напр.[MapNumber]) необов'язкова перемінна, яку можна не вказувати.

 

Переглядів: 4704 | Додав: Микола | Рейтинг: 0.0/0
Всього коментарів: 10
avatar
5 SerjN • 08:38, 24.06.2021 [Матеріал]
Доброго дня.
Пробую записати в маску параметру строку таким способом:
@Map.Parameters.Mask  =,=,=@ FIO| FIO-R| FIO-D
але вертикальні слеші викидуються і залишається строка у масці без них.
=,=,=@ FIO FIO-R FIO-D
У разі внесення строки вручну слеші зберігаються.
Підкажіть у чому тут проблема.
avatar
0
6 Микола • 11:31, 24.06.2021 [Матеріал]
Вертикальні риски в скриптах треба задавати таким чином:
$V=@Calc Char(124)
$V=@DequoteText $V
@Map.Parameters.Mask  =,=,=@ FIO$V FIO-R$V FIO-D
avatar
7 SerjN • 11:10, 25.06.2021 [Матеріал]
Дякую.
Ще одне запитання по цій же темі:
якшо до якогось поля такого діалогового вікна підключити файл довідника (наприклад Форми власності) то при виборі якогось значення вибирається тільки частина інформації (поле яке помічене знаком *).
Наприклад при виборі строки "100 приватна" вибирається тільки код "100"
А як зробити, щоб вибиралися усі поля тобто щоб результат був "100 приватна"
avatar
0
8 Микола • 15:11, 25.06.2021 [Матеріал]
Зробіть в одну колонку, і щоб роздільником коду форми власності і назви форми власності були не знаки табуляції, а звичайний пробіл.
avatar
9 SerjN • 08:34, 29.06.2021 [Матеріал]
Такий варіант не дуже підходе
А інші варіанти є? Так щоб користуватися тими довідниками, що вже присутні в Диджиталі.
avatar
0
10 Микола • 09:28, 29.06.2021 [Матеріал]
Так чи інакше знак табуляції є роздільником колонок в даних таблицях. І щоб якось одночасно відображати дві колонки - не знаю про таку можливість.
avatar
4 sanitskyidenys • 10:29, 22.04.2020 [Матеріал]
Доброго дня!
Підкажіть будь ласка, як присвоїти два різних значення одноіменного параметра двох об'єктів, третьому (тобто це лінія і два точкових об'єкти які знаходяться на її кінцях).
avatar
3 Ivan_Kalinich • 10:58, 03.02.2017 [Матеріал]
Дякую, буду далі розбиратись
avatar
1 Ivan_Kalinich • 00:10, 03.02.2017 [Матеріал]
Підскажіть будь-ласка, що я роблю не так? Заносить тільки угіддя(
_______________________________________________________
;заносимо угіддя
$PntObj=@Map.SelectLayer ID70009
@Map.Object[$PntObj].Parameter[ID7000901]=001.01 Рілля
@Map.Object[$PntObj].Parameter[ID7000902]=га
@Map.Object[$PntObj].Parameter[ID7000904]=<DeterminationMethod><ExhangeFileCoordinates/></DeterminationMethod>
@Map.RefreshObject $PntObj
;заносимо кадастрову зону
$PntObj=@Map.SelectLayer ID70003
@Map.Object[$PntObj].Parameter[ID7000300]=2120487200
@Map.Object[$PntObj].Parameter[ID7000301]=01
@Map.RefreshObject $PntObj
avatar
-1
2 Микола • 00:43, 03.02.2017 [Матеріал]
$PntObj=@Map.SelectLayer ID70009 вам поверне кількість виділених об'єктів, а не номер виділеного об'єкта
а присвоювати значення параметрам треба за номером потрібного об'єкта. Номер потрібного об'єкта можна дізнатися функцією @Map.SelectedObject:

@Map.DeselectAll
@Map.SelectLayer ID70009
$PntObj=@Map.SelectedObject
@Map.Object[$PntObj].Parameter[ID7000901]=001.01 Рілля 
@Map.Object[$PntObj].Parameter[ID7000902]=га 
@Map.Object[$PntObj].Parameter[ID7000904]=<DeterminationMethod><ExhangeFileCoordinates/></DeterminationMethod> 
@Map.RefreshObject $PntObj 
;заносимо кадастрову зону
@Map.DeselectAll
@Map.SelectLayer ID70003
$PntObj=@Map.SelectedObject 
@Map.Object[$PntObj].Parameter[ID7000300]=2120487200 
@Map.Object[$PntObj].Parameter[ID7000301]=01 
@Map.RefreshObject $PntObj

скрипт буде діяти тільки при умові, що у вашій ділянці тільки одне угіддя. Якщо ж ви хочете присвоїти відповідні значення усім угіддям, які є на ділянці, то або використовуйте цикл, або @Map.Selected.SetParameter. Наприклад:
@Map.Selected.SetParameter ID7000300 2120487200
avatar