Список форумов www.integro.ru www.integro.ru
ЦСИ ИНТЕГРО
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 

Перезапись семантических данных

 
Начать новую тему   Ответить на тему    Список форумов www.integro.ru -> Вопросы разработчиков
Предыдущая тема :: Следующая тема  
Автор Сообщение
Николаускас



Зарегистрирован: 27.11.2013
Сообщения: 52

СообщениеДобавлено: Чт 24 Дек 2015 16:09    Заголовок сообщения: Перезапись семантических данных Ответить с цитатой

Добрый день.
Обнаружил, что при попытке заменить существующие данные объекта в семантической таблице вызов метода SetValue не перезапишет существующие данные на новые.
То есть в таком случае нужно сначала удалить существующую запись, а потом записывать новые значения или что?
Версия 4.4
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Азаматов Азамат Хадисович



Зарегистрирован: 17.02.2005
Сообщения: 100
Откуда: г. Учалы, Респ. Башкортостан

СообщениеДобавлено: Чт 24 Дек 2015 18:03    Заголовок сообщения: Ответить с цитатой

Пустое значение не записывается через SetValue.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Николаускас



Зарегистрирован: 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
....
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Николаускас



Зарегистрирован: 27.11.2013
Сообщения: 52

СообщениеДобавлено: Пн 11 Янв 2016 17:57    Заголовок сообщения: Ответить с цитатой

Да, я ошибся. UpdateChanges вызывал не у ранее инициализированной переменной, а у app.ActiveDb.MapObjects. Нормально заменяет.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов www.integro.ru -> Вопросы разработчиков Часовой пояс: GMT + 5
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете добавлять приложения в этом форуме
Вы можете скачивать файлы в этом форуме


© phpBB Group
Русская поддержка phpBB