Добрай день.
Используется под NET. (использование только через COM)
Задача следующая:
1. Создание нового слоя.
2. Создание БД для слоя. (поля Sys и Val)
3. Добавление на него объектов.
4. Создание тематической раскраски объектов, привязывая к полю Val.
Шаги 1-4 не вызывают проблем
1. ZuluTools t = new ZuluToolsClass();
Layer l = new LayerClass();
t.LayerCreate(@"d:\test\MyLayer.b00", "Test", eLayerType.eMixedLayer);
l.Open(@"d:\test\MyLayer.b00");
2.
ZbDatabase zb = new ZbDatabaseClass();
zb.CreateTable(@"d:\test\MyLayer.db",
new string[] { "Sys", "Val" },
new zbFieldType[] { zbFieldType.zbftInteger, zbFieldType.zbftInteger },
new int[] { 0, 0 }, 1);
zb.CreateBySingleTable(@"d:\test\MyLayer.db");
zb.UserName = "NameBD";
zb.SaveAs(@"d:\test\MyLayer.zb", 0);
l.BaseName = zb.Name;
3.
....
Добавление объектов на слой и данных в базу
....
t.LayerOptimize(@"d:\test\MyLayer.b00");
далее необходимо добавить фильтры и сделать их активными
Через Theme получилось но цитирую
Parameter property (Theme):
Property Parameter(ElemID As Long, Field As eThemeField)
ElemID - ключ элемента слоя // Мне же необходимо привязатся не по ключу
Field - тип редактируемого поля"
Поэтому необходимо использовать фильтры
ThemeFilterDesc filter = new ThemeFilterDescClass();
filter.UserName = "TestFilter";
int idc = filter.AddCondition("h" + i.ToString(), 1);
filter.AddField(idc, "Val", ???????????); // Нет описания каким должен быть параметр ConditionString
filter.AddParameter(idc, eThemeField.eThemePatColor, 255);
filter.AddParameter(idc, eThemeField.eThemeFillStyle, 2);
l.ThemeFilters.SetFilter(1, filter);
что дальше???
Используется под NET. (использование только через COM)
Задача следующая:
1. Создание нового слоя.
2. Создание БД для слоя. (поля Sys и Val)
3. Добавление на него объектов.
4. Создание тематической раскраски объектов, привязывая к полю Val.
Шаги 1-4 не вызывают проблем
1. ZuluTools t = new ZuluToolsClass();
Layer l = new LayerClass();
t.LayerCreate(@"d:\test\MyLayer.b00", "Test", eLayerType.eMixedLayer);
l.Open(@"d:\test\MyLayer.b00");
2.
ZbDatabase zb = new ZbDatabaseClass();
zb.CreateTable(@"d:\test\MyLayer.db",
new string[] { "Sys", "Val" },
new zbFieldType[] { zbFieldType.zbftInteger, zbFieldType.zbftInteger },
new int[] { 0, 0 }, 1);
zb.CreateBySingleTable(@"d:\test\MyLayer.db");
zb.UserName = "NameBD";
zb.SaveAs(@"d:\test\MyLayer.zb", 0);
l.BaseName = zb.Name;
3.
....
Добавление объектов на слой и данных в базу
....
t.LayerOptimize(@"d:\test\MyLayer.b00");
далее необходимо добавить фильтры и сделать их активными
Через Theme получилось но цитирую
Parameter property (Theme):
Property Parameter(ElemID As Long, Field As eThemeField)
ElemID - ключ элемента слоя // Мне же необходимо привязатся не по ключу
Field - тип редактируемого поля"
Поэтому необходимо использовать фильтры
ThemeFilterDesc filter = new ThemeFilterDescClass();
filter.UserName = "TestFilter";
int idc = filter.AddCondition("h" + i.ToString(), 1);
filter.AddField(idc, "Val", ???????????); // Нет описания каким должен быть параметр ConditionString
filter.AddParameter(idc, eThemeField.eThemePatColor, 255);
filter.AddParameter(idc, eThemeField.eThemeFillStyle, 2);
l.ThemeFilters.SetFilter(1, filter);
что дальше???