Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
Николаускас
Зарегистрирован: 27.11.2013 Сообщения: 52
|
Добавлено: Чт 24 Дек 2015 16:09 Заголовок сообщения: Перезапись семантических данных |
|
|
Добрый день.
Обнаружил, что при попытке заменить существующие данные объекта в семантической таблице вызов метода SetValue не перезапишет существующие данные на новые.
То есть в таком случае нужно сначала удалить существующую запись, а потом записывать новые значения или что?
Версия 4.4 |
|
Вернуться к началу |
|
 |
Азаматов Азамат Хадисович
Зарегистрирован: 17.02.2005 Сообщения: 100 Откуда: г. Учалы, Респ. Башкортостан
|
Добавлено: Чт 24 Дек 2015 18:03 Заголовок сообщения: |
|
|
Пустое значение не записывается через SetValue. |
|
Вернуться к началу |
|
 |
Николаускас
Зарегистрирован: 27.11.2013 Сообщения: 52
|
Добавлено: Чт 24 Дек 2015 18:41 Заголовок сообщения: |
|
|
Я не совсем понял, к чему Вы это написали. У меня задача, например, заменить семантические данные объекта на некоторые новые. Как можно это сделать? Я не нахожу соответствующих методов. SetValue этого не делает, либо я в чем-то ошибся. |
|
Вернуться к началу |
|
 |
Николаускас
Зарегистрирован: 27.11.2013 Сообщения: 52
|
Добавлено: Пт 25 Дек 2015 14:03 Заголовок сообщения: |
|
|
Товарищи, не молчите. Как можно перезаписать имеющиеся семантические данные у объекта? |
|
Вернуться к началу |
|
 |
Азаматов Азамат Хадисович
Зарегистрирован: 17.02.2005 Сообщения: 100 Откуда: г. Учалы, Респ. Башкортостан
|
Добавлено: Сб 26 Дек 2015 00:39 Заголовок сообщения: |
|
|
SetValue нормально заменяет данные если задано непустое значение.
Код: |
sub PasteDataToObject(mobj)
dim i,lastrec,rec
lastrec=-1
for i=0 to datacount-1
if (copydata(i,3)=-1) then
mobj.SemData.SetValue copydata(i,0),copydata(i,1),copydata(i,2),0
else
if lastrec=copydata(i,3) then
mobj.SemData.SetValue copydata(i,0),copydata(i,1),copydata(i,2),rec
else
lastrec=copydata(i,3)
rec=mobj.SemData.AddRec(copydata(i,0))
end if
end if
next
end sub
....
dim i,mobjs
set mobjs=ActiveDB.MapObjects
for i=0 to Selection.Count-1
dim mobj
set mobj=mobjs.GetObject(Selection.Ids(i))
PasteDataToObject mobj
next
mobjs.Updatechanges
....
|
|
|
Вернуться к началу |
|
 |
Николаускас
Зарегистрирован: 27.11.2013 Сообщения: 52
|
Добавлено: Пн 11 Янв 2016 17:57 Заголовок сообщения: |
|
|
Да, я ошибся. UpdateChanges вызывал не у ранее инициализированной переменной, а у app.ActiveDb.MapObjects. Нормально заменяет. |
|
Вернуться к началу |
|
 |
|