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

Доброго здоров’я!!!
скрипт @Dialog.Ask показує одне поле для введення, як зробити щоб було кілька полів для вводу, типу як в “Місце знаходження земельної ділянки”?

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

Пане klaid Використайте @Dialog.EditParameter IDХХХХ поперед того задавши у параметр маску (на кшталт “AD”). А потім, значення параметру в обробку скриптом передавайте через @Map.Object[N].Parameter[N]. Частини параметру розділятимуться комами, їх можна взяти через @StringPart від значення параметру.

Дякую.

зрозуміло, а як зробити автоматичне визначення юридичної чи фізичної особи, наприклад у суміжниках? Наприклад якщо є слово “землі…”, значить юридична, і ініціали фізичної по відповідним полям, бо @StringPart тільки з комами працює.

@StringPart працює і з крапками, із пробілами і з вертикальними слешами, з чим хочете

Хто знає
команду, як маркувати точки або лінії полігону, а також міняти довжину ліній. Дякую.

@Map.Selected.MarkPoints 1 - маркування точки по номеру
@Map.Selected.MarkPoints All - маркування всіх точок виділеного об’єкту
@Map.Selected.MarkPoints CLEAR - очистити маркування
@Map.Selected.Prolong 10 - продовження лінії у дві сторони на задану довжину

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

Наприклад є параметр 53, його значення = Петров Петро Петрович

Необхідно щоб в результаті значення було ПЕТРОВ Петро Петрович.

$FullName=@Map.Selected.GetParameter 53
$LastName=@StringPart 1 $FullName
$FirstName=@StringPart 2 $FullName
$MiddleName=@StringPart 3 $FullName
$LastName=@UpperCase $LastName
$FullName=$LastName $FirstName $MiddleName
@Map.Selected.SetParameter 53 $FullName

Dmitry_Zolotar Дякую!

Потрібен скрипт для збільшення макованої лінії полігону між точками 1 і 2
@Map.Selected.MarkPoints 1
@Map.Selected.MarkPoints 2
Такий скрипт не спрацьовує
@Map.Selected.Prolong 500
Дякую.

Маркировати не обовязково, збільшиться перший та останній відрізок

Не вистачає функції, яка б подовжувала лінію в один бік від заданої точки.

Скажімо, хочу написати скрипт, який би вирівнював довжину усіх суміжників. Бо коли формувати обмінник через Витягунти в ІН4, то не красиво получається. Але функціонулу скриптів для цього не достатньо.

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

Пане fendak вдалося вирішити цю проблему так.

@Map.SelectLayer ID70005
@Map.Selected.Copy
@Map.Paste
@Map.Selected.ChangeLayer ID10000
@SendChars 10
[ Операции с объектами.Расширить/сжать ]
@MAp.DeselectAll
@Map.SelectLayer ID70000
@Map.Selected.Copy
@Map.DeselectAll
@Map.SelectLayer ID70010
@Map.SelectLayer ID10000
Сервис | Обрезать по полигону/рамке
@Map.SelectLayer ID10000
@Map.Selected.Delete
@Map.Paste

Сподіваюся, стане в нагоді. Адаптуєте до Ваших потреб.
Дякую.

$NM=@Map.Selected.GetParameter id6
$PP=@ProgramPath
@Map.SaveToTIF 300 24 $PP/Pictures/LocationSchema$NM.bmp
видає помилку через раз. Можливо справа в генно модифікованому normal.dmf? До речі коли в normal.dmf додав пармаетр neighbour[nm], доволі часто після формування звітів видає помилки в програмі, коли активована закладка “Инфо”. Приходиться перезапускати програму. Не підкажете в чому може бути проблема?

А яку помилку видає програма?
Можливо “через раз” розміри растра надто великі, або $NM містить символи, які не можна використовувати в імені файла.

Доброго здоров’я! Додав такі параметри:

7001009 =XPT(P[ID7000520],“/Proprietors/ProprietorInfo/Authentication/NaturalPerson/FullName/LastName”) Прізвище власника
7001010 =XPT(P[ID7000520],“/Proprietors/ProprietorInfo/Authentication/NaturalPerson/FullName/FirstName”) Ім’я власника
7001011 =XPT(P[ID7000520],“/Proprietors/ProprietorInfo/Authentication/NaturalPerson/FullName/MiddleName”) По батькові власника

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

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

Непрацює

Оновіть програму, буде працювати.

Мені необхдно розвернути всі підписи на заданий приріст кута (кут+180)
Використав скрипт з нових можливостей програми

$S=@Map.SelCount
@If $S<=0 @Break Нужно пометить объекты
$Angle=@Dialog.Ask Угол разворота подписей Default=180
$Angle=$Angle*10
$N=0
$C=@Map.Parameters.Count
%Start:
$N=@Map.NextSelected $N
@If $N<=0 @Goto %Finish
$I=1
%NextParam
$stroka=@Map.Object[$N].Caption[$I]
$x=@StringPart 1 $stroka
$y=@StringPart 2 $stroka
$z=@StringPart 3 $stroka
$kut=@StringPart 4 $stroka
;@Dialog.Message i=$i| x=$x| y=$y| z=$z | kut=$kut
$Angle=$kut+$Angle
@Map.Object[$N].Caption[$I] * * * $Angle
$I=$I+1
@If $I<$C @Goto %NextParam
@Goto %Start
%Finish:
@Window.Refresh

якщо підписи виносились з параметром автопідписи - то не можливо довернути(розвернути) підпис
якщо обєкт з підписами був розвернутий (сервіс-розворот) - та сама помилка