RUS  ENG 

reparepa reparepa (Все сообщения пользователя)

Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
Как программно скрыть "Примитивы"
 
Нашел вот такое решение:

[FONT=monospace]L.SetTypeVisible(-1, false); // -1 - это id типа примитивов
[/FONT]
Как программно скрыть "Примитивы"
 
Здравствуйте!
Подскажите, пожалуйста, как программно скрыть примитивы?
Для типового объекта это делается просто:

[FONT=monospace]L.ObjectTypes.GetItemByIndex(1[/FONT][FONT=monospace]).[/FONT][FONT=monospace]SetVisible(false)[/FONT]

а для Примитивов никак не могу найти решение.


Благодарю!

   
Изменено: reparepa reparepa - 04.09.2023 12:23:35
UpdateFromAscii и триггер
 
Разобрался. Был не внимателен. Проверил для MS SQL.
Триггер срабатывает.
UpdateFromAscii и триггер
 
Да, базу используем MS SQL. Работает действительно быстро. Но триггер не выполняется. Поразбираюсь ещё самостоятельно.
Спасибо!
UpdateFromAscii и триггер
 
Добрый день!

Для таблицы создан триггер, срабатывающий на обновление.

При вызове UpdateFromAscii для обновления строк таблицы, триггер не срабатывает. Что находится под капотом UpdateFromAscii?
Может там отключение триггеров происходит?

Версия 10.0.0.8439u.x64

Благодарю за ответ!
Изменено: reparepa reparepa - 25.07.2023 12:26:37
HTTP client Командного сервера
 
Дмитрий, благодарю Вас!
Теперь отлично работает и возвращает вот такой набор заголовков:
[CODE]Access-Control-Allow-Origin: http://localhost:5555
Content-Encoding: gzip
Content-Length: 76
Content-Type: application/json
[/CODE]Проверка выполнена на ZuluGIS версии 10.0.0.8439u.x64, дата сборки 07.02.2023.

Спасибо вам за оперативность поддержки. Успехов!
HTTP client Командного сервера
 
Благодарю вас!
HTTP client Командного сервера
 
Добрый день!

Работаю с клиентом ZuluGIS 10.0.0.8383u.x64 через командный сервер.
Сделана настройка использовать http клиент MFC WinInet.
По запросу из браузера [URL=http://localhost:6475/help]http://localhost:6475/help[/URL] возвращается JSON ответ.

Теперь, тот же запрос выполняется из web-приложения, работающего на сервере [URL=http://localhost:55]http://localhost:55[/URL]55
Получаю ошибку
[CODE]Access to XMLHttpRequest at 'http://localhost:6475/help' from origin 'http://localhost:5555' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
[/CODE]CORS блокирует response. Как я понял, в ответе от ZuluGIS должен быть прописан заголовок:

[B]Access-Control-Allow-Origin[/B][B]: [/B][URL=http://localhost][B]http://localhost[/B][/URL][B]:[/B][B]5555[/B][B]
[/B][B]
[/B]или в общем виде

[B]Access-Control-Allow-Origin: *
[/B]
чтобы любые сторонние клиенты могли получать ответ от API командного сервера.

В данный момент API командного сервера возвращает response только с этими заголовками:
[LIST=1]Content-Encoding: gzip
Content-Length: 76
Content-Type: application/json
[/LIST]Подскажите, пожалуйста, можно ли как-то настроить включать в ответы этот заголовок? Или, возможно, это стоит учесть в новой версии ZuluGIS, т.к. API командного сервера должно быть доступнo для любых web-клиентов.
Использование функции GetClosestElementByXY, определении ближайшего объекта и расстояния до него
 
Здравствуйте!
Подскажите, пожалуйста, всё ли верно я делаю при определении ближайшего объекта и расстояния до него.

создадим точку, в которую будет записана ближайшая точка найденного объекта
[FONT="Courier New"]pointAddress := CoZPoint.Create;
[/FONT]
получим точку, к которой будем искать ближайший объект
[FONT="Courier New"]pointTermo := LayerTermo.Elements.GetElement(sysTermo).GetCenter;
[/FONT]
получим sys ближайшего объекта в окрестности 2500 м, среди выделенных адресов:
[FONT="Courier New"]sysAddress := LayerAddress.GetClosestElementByXYpointTermo.X, pointTermo.Y, 2500, true, pointAddress);
[/FONT]
в pointAddress функция записала ближайшую точку найденного объекта, найдем расстояние между исходной точкой и найденной
[FONT="Courier New"]Geom := CoZGeometry.Create;[/FONT]
[FONT="Courier New"]distance := Geom.Distance(pointTermo.X, pointTermo.Y, pointAddress.X, pointAddress.Y);
[/FONT]
вопрос следующий:
если точка [FONT="Courier New"]pointTermo [/FONT]лежит вне контура объекта адреса, то дистанция считается хорошо и равна 5, 12, 4 метрам.
если точка [FONT="Courier New"]pointTermo [/FONT]лежит внутри контура объекта, то дистанция равна 44000, 25500, 42200 метрам.

Подскажите, пожалуйста, в чем может быть причина?

клиент 10.0.0.8084u.x64
сервер 10.0.0.8245
Как создать объект ZGeometry Delphi?, Подскажите, пожалуйста, как создать объект ZGeometry
 
Отлично помогло!
Благодарю вас за вашу работу!
Как создать объект ZGeometry Delphi?, Подскажите, пожалуйста, как создать объект ZGeometry
 
Подскажите, пожалуйста, как создать объект ZGeometry

Для скриптов нашёл
[FONT="Courier New"]Set G = New ZGeometry
[/FONT]
Не могу найти в документации как это сделать в Delphi. Помогите, пожалуйста.
[FONT="Courier New"]

[/FONT]
В коде применяю OverloadElemState к источнику у перевожу его в состояние "закрыт", но при определении связанных элементов, источник ведет себя как "открытый"
 
Версия сервера: 10.0.0.8097u.x64
Версия клиента 10.0.0.8084u.x64

В коде применяю OverloadElemState к источнику у перевожу его в состояние "закрыт", но при определении связанных элементов, источник ведет себя как "открытый"
Код

[FONT=monospace]L.NetworkTools.OverloadElemState(sourceKey, 1);[/FONT]

проверил в ручную, тоже не работает. При построении связанных с флажком, источник в состоянии закрыт eSwitchOff = 1 является проходимым.
Это верное поведение?
Блокировка при изменении поля в базах данных, Изменяется одинаковое поля в нескольких базах. Зависает после обработки одной базы и перед открытием другой.
 
Добрый день!

Версия сервера: 10.0.0.8097u.x64
Версия клиента 10.0.0.8084u.x64
Реализация в плагине. ZuluLib_TLB.
Embarcadero® RAD Studio 11.0 Version 28.0.42600.6491

Изменяется одинаковое поля в нескольких базах. Зависает после обработки одной базы и перед открытием другой.

[FONT=monospace]L:=IMapDoc(FConnector.Zulu.ActiveDocument.NativeDoc).Layers.Active;[/FONT]
[FONT=monospace]for i := 2 to 11 do[/FONT]
[FONT=monospace] begin[/FONT]
[FONT=monospace] if (i=9) or (i=10) then Continue;[/FONT]
[FONT=monospace] output.Put('Проставляем -1 в поле source_num в базе "' + L.ObjectTypes.Item[i].Name +'"');[/FONT]
[FONT=monospace] db:=L.OpenDatabase(L.ObjectTypes.Item[i].BaseID, '');[/FONT]
[FONT=monospace] db.Queries.Default.ExecByExample('ИЗМЕНИТЬ -1' ,'source_num');[/FONT]
[FONT=monospace] db.Close(False);[/FONT]
[FONT=monospace] output.Put(' - ok'+ CHR(10));[/FONT]
[FONT=monospace] end;[/FONT]

Причем, при повторном запуске зависнут может после обработки другой базы. Нет закономерности.
Иногда отрабатывает этот цикл полностью, тогда зависает на следующем блоке кода:

[FONT=monospace]for i := 2 to 11 do[/FONT]
[FONT=monospace] begin[/FONT]
[FONT=monospace] if (i=9) or (i=10) then Continue;[/FONT]
[FONT=monospace] db:=L.OpenDatabase(L.ObjectTypes.Item[i].BaseID, '');[/FONT]
[FONT=monospace] L.UpdateFromAscii(db, tempFolder+'2.tmp', 'source_num');[/FONT]
[FONT=monospace] db.Close(False);[/FONT]
[FONT=monospace] output.Put('Обновлена база "' + L.ObjectTypes.Item[i].Name +'"'+ CHR(10));[/FONT]
[FONT=monospace] end;[/FONT]
 
Второй блок кода иногда отрабатывает полностью и выдает вот такой результат:

[FONT=monospace]Обновлена база "Узел" [/FONT]
[FONT=monospace]Обновлена база "Потpебитель" [/FONT]
[FONT=monospace]Обновлена база "Насосная станция" [/FONT]
[FONT=monospace]Обновлена база "Задвижка" [/FONT]
[FONT=monospace]Ошибка ZB db(zulu://********************************************):Ошибка доступа к данным. Транзакция (идентификатор процесса 67) вызвала взаимоблокировку ресурсов блокировка с другим процессом и стала жертвой взаимоблокировки. Запустите транзакцию повторно. (Код ошибки: 0x80004005). [/FONT]
[FONT=monospace]Обновлена база "Участки" [/FONT]
[FONT=monospace]Обновлена база "Дросселирующий узел" [/FONT]
[FONT=monospace]Обновлена база "ЦТП" [/FONT]
[FONT=monospace]Обновлена база "Перемычка" [/FONT]

Подскажите, пожалуйста, возможные причины или как можно отследить причину?
Страницы: 1