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

В принципі треба було-б навпаки. Якщо @Break застосовано у функціональному скрипті - то @Break і для викликаючого скрипта.
Але можна й так, щоб функціональний скрипт замість @Break йшов на вихід з $Result=Exit, а вже викликаючий скрипт оцінював значення, і якщо Exit - тоді @Break, вже у викликаючому скрипті.
Ще раз дякую.

Розтолкуйте, будь-ласка, для чого слід застосовувати необов’язковий параметр в функції @Map.EndUpdate [RefreshAlways].

Добрый день. хотелось бы спросить про функцию @Map.SetProperties Scale Name|FrameX[1] FrameY[1]|..
Например есть ДМТ шаблон с масштабом 1000 хочу с помощью @Map.SetProperties поставить 5000 и вот тут беда все объекты масштабируются. хотя если менять вручную через свойства карты то с объектами ничего не происхдит.

@Map.EndUpdate является парной функцией к @Map.BeginUpdate, если имеем такой код

@Map.BeginUpdate

@Map.BeginUpdate
@Map.EndUpdate

@Map.EndUpdate

то для внутреннего @Map.EndUpdate обновления экрана не происходит, оно произойдет только при вызове последней строки. Если использовать параметр RefreshAlways, тогда обновление происходит всегда, независимо от вложенности @Map.BeginUpdate-@Map.EndUpdate

Наверное, при масштабировании через свойства карты вы включаете галочку Фиксировать текст?

Нет, не включаю. Записал на видео.
123.exe (378 KB)

Зміна масштабу dmt-файла не впливає на “паперові” розміри об’єктів. Як правило dmt-файл - це “паперовий” документ.

Збережіть файл в dmf, змініть масштаб, та знову збережіть в dmt-файл.

Если честно то я не очень понял что вы имели ввиду.
у меня цель сделать из 30 шаблонов разных планов с разными масштабами всего пять, и потом через скрипт выбирать нужный мне дмт шаблон, менять в нем скриптом мастштаб, пересохранять и потом уже применять его для формирования графики.
Автомасштаб увы не устраивает, а делать кучу шаблонов как-то не практично когда есть скрипты.

$If $VmParam=05 then @Text[6].Add $Param1
Формула не працює, не записує в список

Хіба не працює @If $VmParam=05 then @Text[6].Add $Param1

Вибачте, не помітив помилку.Дякую.

Як можна обновити обєкти карти (рефреш), щоби функція @Map.Count показувала тільки ті об’єкти, які є зараз на карті і не показувала ті, що були видалені? Дякую.

Чи можливо за допомогою скрипту із тексту (GL Прізвище, ім’я та по батькові Голови місцевої влади в IN4) -

Іванов Іван Іванович

зробити ось такий текст:

ІвановІванІванович ?

Як сумувати текст за допомогою функції @Calc відомо
($t1=
$t2=Іванов
$t3=
$t4=@Calc $t1 $t2 $t3
),
але як витягнути із трьох слів (Іванов Іван Іванович)кожне окремо - не знаю
Серед підходящих доступних функцій знайшов тільки
@Calc Copy(s,x,[y]) - копіює частину строки (число символів y, починаючи з символу номер x),
@Calc Pos(t,s) - повертає позицію підстроки t в строці s,
@Calc Length(s) - повертає довжину строки,

але не уявляю, як за допомогою них це зробити.

І що таке строка і підстрока? Чому @Calc Length(s) від заповненого параметру GL повертає значення “2”?

$N=@Map.Selected.GetParameter NM
$T1=@StringPart 1 $N
$T2=@StringPart 2 $N
$T3=@StringPart 3 $N
При цьому $T1 прийме значення Іванов, $T2 - Іван, $T3 - Іванович.

Дякую.
А як можна видалити пробіли, які получаються. Щоби вийшло з " Іванов " “Іванов”
або щоби видалилися пробіли в кінцевому результаті: “ Іванов Іван Іванович ” ?

@Calc Trim(s). Про функцію @Calc.

Ця функція або не працює, або я щось не так роблю. Ось:

@Map.SelectLayer ID10000
$SrcParam1=@Map.Selected.GetParameter GL
$hh=@StringPart 1 $SrcParam1
$hh=@Calc Trim($hh)
@Dialog.Message $hh

В результаті получається - Trim(Іванов)

Гадаю що проблема в тому рядку де Ви складаєте до купи частини результату
замість
$t4=@Calc $t1 $t2 $t3
напишіть
$t4=@Calc $t1$t2$t3

P.S. Використання Trim
$S=@Calc Trim(“$S”)
$S=@DequoteText $S

Добрый день!
Подскажите функцию на подобии @ExecuteDocument DMTTemplateName, только с возможностью генерировать через ДМТ-шаблон, находящегося за пределами папки Digitals?.
Если такой нет, то огромная просьба от меня просящего, добавить). Спасибо.

Доброго здоров’я всім!
Зіткнувся з наступною проблемою. При обрахунках в скрипті результуюче значення змінної виходить 2, а необхідно щоб виводило 2.0000. Конкретніше:
“…загальною площею 2 га, в тому числі рілля - 1,5051 га, сіножаті 0.4949 га…” при бажаному “…загальною площею 2.0000 га, в тому…”
Наголошую, сума площ є результатом обраховунків скрипта.
Заздалегідь вдячний за допомогу.