Страница 1 из 1

Присоединение характеристики

Добавлено: 31 мар 2016, 13:45
UlMagnus
Здравствуйте, уважаемые разработчики!

Подскажите, как программно (без обращения к пользователю) выполнить присоединение характеристики к изделию.
Если можно, то с примером.
То есть по идее надо сначала найти перечень характеристик, зная наименование например, указать тип, и задать значение.
Заранее спасибо.

Re: Присоединение характеристики

Добавлено: 31 мар 2016, 14:34
ayatsk
Вам для C++ или ActiveX ?

Re: Присоединение характеристики

Добавлено: 31 мар 2016, 16:40
UlMagnus
Для C++

Re: Присоединение характеристики

Добавлено: 31 мар 2016, 17:25
ayatsk
После коннекта надо один раз скачать из базы в кэш описание хатактеристик

Код: Выделить всё

m_api->m_charact_mgr.LoadDictionary();
Для создания значения характеристики надо:

1) Найти характеристику по обозначению:

Код: Выделить всё

CaplInstance* 	ciCharact=m_api->m_charact_mgr.GetCharacteristicById("ExtentionPI");
if(0==ciCharact)
{
          // Нет такой характеристики
}
или по имени :

Код: Выделить всё

CaplInstance *GetCharacteristicBN(const char * name);

2) Находим тип, если он нужен
CaplInstance* ciCharactType=m_api->m_charact_mgr.GetCharacteristicType("фактическая");

3) В зависимости от типа значения использовать разные функции:

Код: Выделить всё

// ciRefusal - объект на который навешивается характеристика
// sValue - значение в виде строки

if(sValueType == "descriptive")
{
	m_api->m_charact_mgr.CreateDescriptiveCharacteristic(ciRefusal, ciCharact, ciCharactType, sValue);
}
else if(sValueType == "measure")
{
	m_api->m_charact_mgr.CreateMeasuredCharacteristic(ciRefusal, ciCharact, ciCharactType, atof(sValue), 0, 0);
}
else if(sValueType == "monet")
{
	m_api->m_charact_mgr.CreateMonetaryCharacteristic(ciRefusal, ciCharact, ciCharactType, atof(sValue));
}

Все описания параметров функций см. при их определении в заголовочном файле.

Если значений надо создать тысячи, то для нормальной работы надо использовать немного другие методы.
Эти будут слишком медленные.