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

Аналог Product.ReferenceProduct.Parent.FullName в С++.

СообщениеДобавлено: 28 мар 2011 14:50
Vladimir
Доброе время суток.

В Automation есть возможность узнать физическое расположение файла Part/Product через Product.ReferenceProduct.Parent.FullName. Где мне искать аналогичную функцию в CAA Rade? Или, по крайней мере, в каком направлении копать?

Re: Аналог Product.ReferenceProduct.Parent.FullName в С++.

СообщениеДобавлено: 28 мар 2011 15:55
Vladimir
Извиняюсь, проблему решил. Не знаю на сколько правильно.
Код: Выделить всё
      
 CATILinkableObject * piLinkableObject = NULL;
 rc = spRef->QueryInterface( IID_CATILinkableObject, (void**)& piLinkableObject );                           

 if ( SUCCEEDED(rc) )
 {
       CATDocument * pDocument = NULL ;
   pDocument = piLinkableObject->GetDocument();
   CATUnicodeString nameF =pDocument->StorageName();
}

Re: Аналог Product.ReferenceProduct.Parent.FullName в С++.

СообщениеДобавлено: 28 мар 2011 20:35
Черешня
Кстати, есть еще вариант pDocument->DisplayName();
Вроде как они возвращают разные значения , но мои эксперименты различий не выявили – оба метода возвращали полный путь!

…если я правильно поняла, то StorageName() выдает более полный путь, тогда как DisplayName может вернуть лишь имя файла.
Может,Вы чего узнали на этот счет?!...

Re: Аналог Product.ReferenceProduct.Parent.FullName в С++.

СообщениеДобавлено: 29 мар 2011 09:56
Vladimir
Я особо не экспериментировал, но в помощи про DisplayName написано :
For instance it could be just the name of the document, not the whole path (environment are dealing with meaningfull user name)

То есть, в вольном переводе, "Например это может содержать только имя документа, а не целый путь".

Re: Аналог Product.ReferenceProduct.Parent.FullName в С++.

СообщениеДобавлено: 30 мар 2011 00:15
Черешня
Vladimir писал(а):... в вольном переводе, "Например это может содержать только имя документа, а не целый путь".


Вот-вот, и я про тоже - только вот вопрос, чем же обусловлено это абстрактное "МОЖЕТ содержать"...

Re: Аналог Product.ReferenceProduct.Parent.FullName в С++.

СообщениеДобавлено: 30 мар 2011 11:35
booSter
Для C++ я бы рекомендовал решение на основе CATILinkableObject::GetDocument, CATDocument::StorageName

А ещё есть нюанс связанный с тем как документ появился в сессии:
Если документ был открыт из файла или был (хотя бы раз) сохранён - то всё нормально,
а вот со "свеже-созданным" документом могут быть нюансы...

Re: Аналог Product.ReferenceProduct.Parent.FullName в С++.

СообщениеДобавлено: 30 мар 2011 14:13
Vladimir
to booSter Спасибо, так и поступим.

Черешня писал(а): Вот-вот, и я про тоже - только вот вопрос, чем же обусловлено это абстрактное "МОЖЕТ содержать"...

Ну поверим разработчику на слово. :-).