RUS  ENG 

Kostya_LeoG (Автор тем)

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

Страницы: 1
Ошибка при выполнении Update
 
Здравствуйте. Почему-то не срабатывает запрос [CODE]UPDATE hs SET hs.Hmin = (10 + 3*(hb.[Количество этажей] -1))
FROM [Расчет водопроводных сетей] AS hs, [Здание] AS hb
WHERE (hs.typeid = 5) AND hs.Geometry.STWithIn(hb.GEometry)
[/CODE]Выдает ошибку: Feature is not implemented for this DBMS
Обычная выборка работает нормально[CODE]SELECT hs.Sys, hb.[Количество этажей]
FROM [Расчет водопроводных сетей] as hs, [Здание] as hb
where (hs.typeid = 5) and hs.Geometry.STWithin(hb.geometry);
[/CODE]База данных Sybase 10
Версия Zulu  8.0.0.6783 от  27.07.2018
Изменено: Kostya_LeoG - 30.07.2018 07:50:06
Ошибка расчета "Неверное значение поля L"
 
Здравствуйте, подскажите пожалуйста, почему возникает ошибка в расчете, [CODE]Ошибка ZD003: ID=3460 Неверное значение поля 'L'-'Длина участка, м'
[/CODE]если в настройках гидравлического расчета на вкладке "Данные" указана опция "Пренебрегать сопротивлением участков длиной не более", а в текстовом поле указано длина 2 м. По факту участок находится между задвижкой и узлом внутри колодца, участок очень короткий (длина примерно равна 1.5 м), семантика на подобные участки не введена вовсе, т.е. в поле длина скорее всего значение null, и расчет подобных участков не требуется (и таких участков много).

Версия zulu8.0.0.6768 от 12.07.2018г
Фон компонента TZCNOutputCtrl на форме становится черным
 
Здравствуйте.
Подскажите, пожалуйста, почему фон визуального компонента TZCNOutputCtrl на форме в версии зулу  8.0.0.6765 от 09.07.2018 г становится черным.  В версии зулу 7.0 такого эффекта не наблюдалось. Новых настроек для этого компонента я не увидел, в чем может быть причина?
Изменено: Kostya_LeoG - 10.07.2018 12:20:10
Ошибка при создании пользовательских надписей
 
Здравствуйте.
При создании пользовательских надписей возникает ошибка...
[CODE]DrawHandle := MapCtrl.GetDrawHandle();
....
tid := 1;
els := lay.DrawLabelsInit(DrawHandle, tid);//возможно здесь возникает ошибка (в отладчике с серверной картой улетает куда-то в вашу библиотеку)
// Ключи возвращает, но дальше ничего не происходит...
//с локальным подключением этой ситуации нет, но и надписи тоже не выводятся...
if Not assigned(els) then exit;
if els.Count <= 0 then exit;
for j := 1 to els.Count do
begin
    key := els.Item[i];
    txt := IntToStr(key);
    lay.DrawElemIDLabel(key, txt);
end;

lay.DrawLabelsClose();//завершение вывода надписи
....
MapCtrl.ReleaseDrawHandle(DrawHandle)[/CODE]как итог, пользовательские надписи не выводятся.
версия зулу 80.6676 от 11.04.2018
Ошибка соединения с БД код 0x80040e4d
 
Здравствуйте, подскажите пожалуйста, как исправить ошибку соединения с источником данных
Описание ошибки: Parse error: DSN 'yak_map' does not esxist (Код ошибки 0x80040e4d) до установки обновления зулу и сервера зулу до версии  8.0.0.6671 от 06.04.2018 этой ошибки не возникало. А сейчас невозможно отредактировать таблицы в структуре ни добавить новую.
Порядок отображения
 
Здравствуйте.
Подскажите, пожалуйста, как можно упорядочить отображение символов, находящихся в одном слое, разных по  своей площади и  приблизительно с одинаковыми координатами. То есть нужна функция, с помощью которой можно последовательно переключить элементы что-то типа Layer.ElementBringToFront(elem:IElement);

Версия Zulu 8.0.0.6671 от  06.04.2018
Изменено: Kostya_LeoG - 11.04.2018 14:16:44
Как программно отключить надпись для элемента
 
Здравствуйте.
Пытаюсь программно отключить/включить отображение надписи для элемента по его ключу:[CODE] elem := Layer.Elements.GetElement(key);
tid := elem.TypeId;

//выборка надписи по типу элемента
for j := 0 to Layer.LabelLayers.Count - 1 do
begin
    Label :=   Layer.LabelLayers.Item[j];
    ztid := Label.TypeID;
    if ztid = tid then break;
end;

//выборка коллеции
zLabels := Label.Labels;
if Not Assigned(zLabels) then exit;

//выборка элемента коллекции
zLabel := zLabls.Item[key];
if Not Assigned(ZLabel) then exit;

zLabl.Visible := bVisible;//установка признака видимость конкретной надписи
zLabls.SetItem(zLabel);//сохранение надписи
[/CODE]но надпись всегда остается видимой. Подскажите что не так...

Версия zulu 8.0.0.6671 от 06.04.2018
Изменено: Kostya_LeoG - 10.04.2018 11:57:48
Ошибка при определении текущего режима карты
 
Здравствуйте. При работе с картой в режиме редактирования после перехода в режим редактирования бирок программно не могу получить/прочитать реальный режим. Т.е следующий код не выполняется.
[CODE] mpMode := zMapMain.Map.Mode;
if mpMode = eModeLabel then //режим редактирования бирок
begin
....
end else mpMode := zMapMain.Map.EditMode; //возникает exception, если все-таки был установлен режим редактирования бирок
[/CODE]при попытке прочитать в каком режиме редактирования нахожусь, если выбран режим редактирования бирок возникает exception

версия zulu 8.0.0.6614 от 08.02.2018

Программное определение номера версии
 
Здравствуйте.
Как программно определить номер установленной версии zulu
Как программно подключиться к zuluserver
 
Здравствуйте.
Подскажите, пожалуйста, как из программы подключиться к серверу Zulu 8.0. Сейчас в программе используется такая строка MapCtrl.MapPath := 'zulu://sa@' + 192.168.1.27 + ':6473'/YAK_DATA/YAK_MAP/Map/yak.zmp;  строка сохранилась с предыдущей версии zuluserver 7.0. Из оболочки Зулу карта  открывается как серверная
zulu 8.0. 8.0.0.6559 zuluServer 8.0 8.0.0.6559 от 15.12.2017г
преобразование типового элемента
 
Здравствуйте.
Подскажите, пожалуйста, как преобразовать типовой элемент (символьный, площадной, линию) в примитив. Есть участок кода:[CODE]var
  el:IElement;
begin
.......
key := Layer.CurrentID;
el := Layer.Elements.GetElement(key);
if el.Key = -1 then exit;
//Преобразование в примитив с сохранением прежнего изображения
el.ChangeTypeMode(-1,-1); //не срабатывает - элемент сохраняет свой прежний тип и режим
.......
//а так работает, получаем новое отображение элемента с key
Type_ID := 2; Mode_ID = 1;
el.ChangeTypeMode(Type_ID,Mode_ID);
[/CODE]Подскажите, может быть существует другой метод?
Управление видимостью элемента по его ключу
 
Здравствуйте.
Подскажите, пожалуйста, как управлять видимостью элемента по его ключу. Есть набор ключей элементов, видимостью которых нужно управлять в зависимости от масштаба карты. Код должен выглядеть примерно так:[CODE]key := Layer.Current_ID;
if MapCtrl.MapScale > 1000 then vis := FALSE
else vis := TRUE;
//Дальше нужно скрыть конкретный элемент по его ключу, причем другие элементы этого режима и типа могут оставаться видимыми
Layer.SetElementVisble(key,vis);//--этой функции не существует в библиотеке (прототип)
[/CODE]Есть функции Layer.SetTypeVisible и Layer.SetModeVisible, но они скрывают весь тип или весь режим, что не совсем подходит для моей задачи.
Изменено: Kostya_LeoG - 14.12.2017 12:57:02
Программная настройка макета печати
 
Здравствуйте. Подскажите пожалуйста как программно реализовать функционал по настройке макета печати:
[LIST=1]
[*]подготовить_фрагмент_карты (центр, масштаб, стандарт размера картинки в макете по умолчанию на весь макет);
[*]поставить_символ_ север (из списка предопределенных);
[*]вставить_текст (мультистрочный текст, Font, Size, позиция в макете);
[*]вставить_таблицу(заголовок, массив строк);
[*]вставить_рамку
[*]вставить_настроенную_легенду (слой, графический тип = ObjectType.GraphicType); - так как сейчас формируется легенда не совсем то, что нужно - выводится вся информация по всем слоям и нет возможности отфильтровать информацию.
[*]сохранить_макет(имя, путь);
[*]макет_обновить_карту(новый центр, новый масштаб);
[*]показать_макет(имя, путь);
[/LIST]
Сейчас существует возможность только вызова диалога создания макета печати MapCtrl.ExecCmd('MapLayouts'); без возможности применения дополнительных настроек. При работе с этим диалогом программно тоже возникают некоторые проблемы:
[LIST=1]
[*]Созданный макет печати программно, после его сохранения под новыми именем и закрытия не виден в zulu и не виден в следующем сеансе работы программы. Хотелось бы, чтобы после сохранения, созданный макет печати автоматически сохранялся в карте.
[*]Если загрузить созданный макет печати в zulu (кнопка открыть), а потом вызвать диалог "Сохранить как..." макет сохраняется как отдельный файл, т.е. функция работает как "Экспорт", при этом его потом можно только импортировать, чтобы продолжить редактирование, но нет возможности после такого сохранения продолжить редактирование макета печати уже с новым именем.
[*]При вставке легенды программа "подвисает", тот же эффект и в зулу, видимо из-за большого объема данных по стилям объектов карты (выводит по всем слоям). Сейчас чтобы скрыть стили всего слоя, в Настройке легенде нужно по каждому элементу щелкнуть и выбрать "Не отображать", нет возможности группового выделения и выделения по слоям. Может быть при вставке легенды вначале выводить окно "Настройка легенды", в которой отметить все выводимые поля стилей с их наименованиями и в настройках легенды добавить кнопку разместить, после чего уже можно будет добавлять легенду в макет.
[*]при настройке отображения карты в макете, чтобы переместиться в нужную позицию нужно дважды щелкнуть и "листать" "ладошкой" в нужном направлении, можно ли добавить какой-нибудь сервис, например, выбор_позиции(ключ, слой) и добавить стандартный метод "Переместиться в...", в диалоге которого задать масштаб и центр карты. Хотелось бы чтобы эти методы были доступны не только по двойному щелчку, но и при простом выделении карты в списке объектов.
[/LIST]Версия зулу 8.0.0.6548; Дата сборки 04.12.2017
Изменено: Kostya_LeoG - 05.12.2017 09:44:53
Рисование линии
 
Здравствуйте, подскажите пожалуйста, как нарисовать линию? Написал функцию, в которой успешно выполняется отрисовка типового символа, а вот с отрисовкой типовой линии или типового площадного объекта есть затруднения...[CODE]procedure TfrmTopoGraf.zmp_GetPicture(iLay:ILayer;cMode:IObjectMode);
var
 iSym:ISymbol;
 iLineDef:ILineStyleDef;
 pict:TPicture;
 SymID:integer:
 LineID:Integer;

begin
      pict := TPicture.Create;
      SymId := ElemStyle.SymbolID;
      LineID := cMode.ElemStyle.LineStyle;

      //типовой символ
      iSym := iLay.Symbols.ItemById[SymId];
      SetOlePicture(pict,iSym.Picture);
      Image1.Picture.Assign(pict); //Картинка добавляется
     
      //типовая линия  
      iLineDef := iLay.LineStyles.ItemById[LineID];

     //А дальше тупик: какой метод дальше вызвать, чтобы в итоге на выходе получить картинку - полилинию
     Image2.Picture.Assign(pict);
end;[/CODE]
Ошибка запроса при переходе с 7.0 на 8.0
 
Здравствуйте, мы планируем выполнить перевод карты с zulu 7.0. на zulu 8.0. Для отладки скачал zulu версии 8.0.0.6489u от 06.10.2017 и возникла проблема с подключением к базе данных. При выполнении запросов к любому из слоев выдается ошибка
Цитата
Ошибка доступа к данным. column 'base_type_str' not found (Код ошибки: 0х80040Е14)
В нашей базе этого поля нет, зачем это поле и подскажите как настроить структуру. В zulu 7.0 (в любой версии) этой проблемы не возникало при работе ни с локальной базой ни с серверной. База данных SQL Anywhere 10.
Страницы: 1