Здравствуйте! Пытаюсь создать слой локально Не меняется режим и тип полилинии.
Написал метод, который добавляет к слою полилинию [CODE]public static void AddPipeToLayer(double xStartCoodinate, double yStartCoordinate, double xEndCoodinate, double yEndCoordinate, Layer zuluLayer) { //Создаю полилинию var elemStyle = new ElemStyle(); elemStyle.PatColor = 1; var oPolyline = new PolyLine(); oPolyline.AddPoint(xStartCoodinate, yStartCoordinate); oPolyline.AddPoint(xEndCoodinate, yEndCoordinate);
int plId = zuluLayer.AddPolyLine(oPolyline, elemStyle, 8, 1);
//Добавляю полилинию к слою Element plElement = zuluLayer.Elements[plId];
//Режим и тип не меняется bool isChanged = plElement.ChangeTypeMode(8, 1);
} [/CODE]Хочу выставить режим 8 и тип 1, а графический тип - участок.
Полилинии создаются, но режим и тип не присваиваются. Графический тип: Простая полилиния Тип: -1 Режим: -1
В поиске по данному форуму говорилось о том, что чтобы изменить тип и режим, надо создавать файл слоя на сервере. Попробовал создавать его на сервере.
При добавлении полилинии к слою появляется ошибка. [B]System.AccessViolationException: 'Попытка чтения или записи в защищенную память. Это часто свидетельствует о том, что другая память повреждена.'[/B]
[QUOTE]Станислав Павловицкий написал: Здравствуйте! Пишу WPF-приложение на C# для вывода данных из Zulu в текстовый файл. Подключил библиотеки ZB и ZuluLib для 8-ой версии.
Хочу получить все данные по определённому элементу. Название поля выводит, но вместо значения - пустая строка. Привожу код [CODE] public static Dictionary<string, string> GetAllTheValues(this Element oElement, Layer oLayer) { //создаём словарь для занесения названия поля и значения var definitionAndValueDict = new Dictionary<string, string>(); var db = new ZbDatabase(); bool isDbOpen = db.Open(oLayer.ObjectTypes.GetItemByIndex(oElement.TypeID).BaseName); var dataSet = db.SelectByKey(oElement.Key); dataSet.MoveFirst(); for (int fieldIndex = 0; fieldIndex < dataSet.FieldCount; fieldIndex++) { //здесь возвращает название поля, например, "Наименование" var fieldName = dataSet.GetFieldInfo(fieldIndex).UserName; //а здесь вместо значения - пустая строка ("") var fieldDisplayValue = dataSet.FieldDisplayValue[fieldIndex]; definitionAndValueDict.Add(fieldName, fieldDisplayValue); } return definitionAndValueDict; } [/CODE][/QUOTE] Спасибо, всё заработало :) Никак не мог найти метод Item, оказывается нужно обращаться к нему через квадратные скобки.[CODE]db.Open(oLayer.ObjectTypes[oElement.TypeID].BaseName); [/CODE]
Здравствуйте! Пишу WPF-приложение на C# для вывода данных из Zulu в текстовый файл. Подключил библиотеки ZB и ZuluLib для 8-ой версии.
Хочу получить все данные по определённому элементу. Название поля выводит, но вместо значения - пустая строка. Привожу код [CODE]public static Dictionary<string, string> GetAllTheValues(this Element oElement, Layer oLayer) { //создаём словарь для занесения названия поля и значения var definitionAndValueDict = new Dictionary<string, string>(); var db = new ZbDatabase(); bool isDbOpen = db.Open(oLayer.ObjectTypes.GetItemByIndex(oElement.TypeID).BaseName); var dataSet = db.SelectByKey(oElement.Key); dataSet.MoveFirst(); for (int fieldIndex = 0; fieldIndex < dataSet.FieldCount; fieldIndex++) { //здесь возвращает название поля, например, "Наименование" var fieldName = dataSet.GetFieldInfo(fieldIndex).UserName; //а здесь вместо значения - пустая строка ("") var fieldDisplayValue = dataSet.FieldDisplayValue[fieldIndex]; definitionAndValueDict.Add(fieldName, fieldDisplayValue); } return definitionAndValueDict; }[/CODE]