Аналитика
http://www.geosystema.net/forum/

Запрос на функцию
http://www.geosystema.net/forum/viewtopic.php?f=1&t=49
Страница 45 из 92

Автор:  shyrko [ 24 дек 2012 11:18 ]
Заголовок сообщения:  Re: Запрос на функцию

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

В скриптах не дуже розбираюсь, але дещо написав. Підкажіть що неправильно
$N=@MapCount
@If $N=0 @Break нет открытых карт
;вибираємо карту з номeром 1
$I=1
%Start

САМ СКРИПТ

@Map.DeselectAll
@Map.SaveToFile
@CloseMap[$I]
%Skip
$I=$I+1
;переход к следующей карте
@if $I<=$N @Goto %Start

Автор:  Bondarets Alexander [ 24 дек 2012 11:51 ]
Заголовок сообщения:  Re: Запрос на функцию

Код:
$N=@MapCount
@If $N=0 @Break нет открытых карт
;вибираємо карту з номeром 1
$I=$N
%Start

; обработка здесь, пока просто показываем значение счетчика
@Dialog.Message $I

@Map.DeselectAll
@Map.SaveToFile
@CloseMap $I
%Skip
$I=$I-1
;переход к следующей карте
@if $I>0 @Goto %Start


Вы закрываете карты по одной, поэтому @MapCount с каждым закрытием уменьшается на 1. В итоге, если было открыто больше одной карты, на $N/2 + 1 итерации возникнет ошибка. В случаях когда число обрабатываемых элементов изменяется используйте цикл с уменьшением счетчика от $N до 1.

@CloseMap [$I] - не используйте квадратные скобки, они лишь указывают, что параметр функции является необязательным, то есть можно его не указывать. Правильными будут варианты:

@CloseMap $I
@CloseMap 4
@CloseMap

Автор:  shyrko [ 24 дек 2012 12:35 ]
Заголовок сообщения:  Re: Запрос на функцию

Дякую все працює!!!!!
Ще одне питання

Функція @Map.Selected.LoadParameters Реквізити. Чи можна із діалогового вікна вибрати зі списку назву Csv-шаблона призначити її якійсь перемінній наприклад $A, і тоді
написати @Map.Selected.LoadParameters $A?
Наперед дякую!

Автор:  Bondarets Alexander [ 24 дек 2012 15:22 ]
Заголовок сообщения:  Re: Запрос на функцию

shyrko писал(а):
Функція @Map.Selected.LoadParameters Реквізити. Чи можна із діалогового вікна вибрати зі списку назву Csv-шаблона призначити її якійсь перемінній наприклад $A, і тоді
написати @Map.Selected.LoadParameters $A?


Если вам нужно выбирать из списка .csv шаблонов, тогда не нужен скрипт. Просто выбирайте нужный шаблон из выпадающего меню на закладке Инфо, кнопка [...]. Если надо заполнять параметры объектов из нескольких шаблонов, для ускорения вы можете создать столько кнопок, сколько имеется шаблонов и в каждой использовать команду

@Map.Selected.LoadParameters Шаблон_Заполнения.csv

Автор:  Alexander [ 25 дек 2012 08:41 ]
Заголовок сообщения:  Re: Запрос на функцию

Потому какая тишина в эфире, я понял, что добавить на кнопку выбор нужного блока невозможно!

Автор:  BAM [ 25 дек 2012 09:14 ]
Заголовок сообщения:  Re: Запрос на функцию

КОГДА ЖЕ появится возможность ,скриптом, включать и отключать пользовательские панели инструментов или создавать выпадающие кнопки. Не ужели ни у кого нет в этом необходимости?

Автор:  paul [ 25 дек 2012 16:21 ]
Заголовок сообщения:  Re: Запрос на функцию

+1

Автор:  dok79 [ 25 дек 2012 16:42 ]
Заголовок сообщения:  Re: Запрос на функцию

BAM писал(а):
КОГДА ЖЕ появится возможность ,скриптом, включать и отключать пользовательские панели инструментов или создавать выпадающие кнопки. Не ужели ни у кого нет в этом необходимости?


поддерживаю +1

Автор:  Guevara [ 25 дек 2012 16:45 ]
Заголовок сообщения:  Re: Запрос на функцию

и когда появится извлечь в XML?

Автор:  Bondarets Alexander [ 25 дек 2012 17:27 ]
Заголовок сообщения:  Re: Запрос на функцию

Alexander писал(а):
Потому какая тишина в эфире, я понял, что добавить на кнопку выбор нужного блока невозможно!


Добавлена функция @LoadCollectionBlock FileName, где FileName - имя DMF файла, содержащего блок. Использовать в режиме сбора.

Автор:  Alexander [ 25 дек 2012 20:13 ]
Заголовок сообщения:  Re: Запрос на функцию

Огромное Вам человеческое СПАСИБО! От скольких лишних телодвижений теперь избавился!

Автор:  shyrko [ 04 янв 2013 10:59 ]
Заголовок сообщения:  Re: Запрос на функцию

Запитаня про функцію @Map.Layers.SetState Number State(0/1/2/3). Не можу зрозуміти як написати так, щоб змінити статус шару ID0 з видимий на правка.

Автор:  voha [ 04 янв 2013 11:33 ]
Заголовок сообщения:  Re: Запрос на функцию

shyrko писал(а):
...щоб змінити статус шару ID0 з видимий на правка.
@Map.Layers.SetState ID0 2

Автор:  voha [ 07 янв 2013 10:05 ]
Заголовок сообщения:  Re: Запрос на функцию

Є полігон - квартал, що містить внутрішні полігони та "купу" лінійних і точкових об'єктів.
Задача - при позначеному полігоні квартала вибрати тільки полігони усередині позначеного.
Вирішення:
$NumObg=@Map.SelectedObject
Вибрати | Усередині позначеного
@Map.DeselectObject $NumObg
...

На місці ... має бути функція @Map.SelectByLayersStyleSelected List, яка серед позначеного вибрала б об'єкти в шарі стилю тільки полігони.
Взагалі, в групі функцій Map.Select, хотілося б бачити @Map.SelectByLayersStyle List.
Меню Правка>Вибрати містить достатню кількість пунктів вибірки, але опції "серед позначених" немає. Порадьте, будь-ласка, як вирішити таку задачу :?:

Автор:  voha [ 12 янв 2013 10:45 ]
Заголовок сообщения:  Re: Запрос на функцию

Sergey Oleynik писал(а):
В Service Layer никакие объекты кроме рамки карты и опорных точек находится не могут. ...
Підкажіть, будь-ласка, як можна змінити статус службового шару :?: Адже команда @Map.Layers.SetState -3 0 не працює.
В скрипті треба дати можливість користувачу вибрати фрагмент карти для збереження/друку. Позначивши рамку карти, скрипт очікував би, поки користувач розмістить рамку карти, схопивши за центр рамки.
Код:
@Map.Layers.SetState -3 0
@Map.SelectLayer -3
@Dialog.WaitBox Виберіть фрагмент обмежений рамкою карти

Страница 45 из 92 Часовой пояс: UTC + 2 часа
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/