|
|
#10 |
|
Участник
|
Если у кого-то возникнет похожая проблема, то решение найдено (не прошло и года
). Основные причины следующие:1. При передаче значений, отличных от целочисленных, в методы объектов Word желательно оборачивать их в класс COMVariant(). Т.е. передавать в качестве параметра не строку, а объект. Следует обратить внимание на методы создания нового документа на базе шаблона и работу с полями Word. Например, создание документа на базе шаблона: X++: COM comDocuments;
COMVariant varTemlateName;
;
(...)
if (_template)
{
varTemlateName = new COMVariant(COMVariantInOut::IN, COMVariantType::VT_BSTR);
varTemlateName.bStr(_template);
m_comDocument = comDocuments.Add(varTemlateName);
}
else
{
m_comDocument = comDocuments.Add();
}
(...)2. Следует избегать сложных "вложенных" функций с включением обращений к свойствам Com объектов. Например, высока вероятность ошибки при использовании такого синтаксиса X++: if (str2num(m_comApplication.version()) >= 9)X++: numVersion = str2num(m_comApplication.version());
if (numVersion >= 9)Короче, на терминалке "халява" - не проходит. Необходимо более строго следить за синтаксисом. |
|
|
|
| За это сообщение автора поблагодарили: russ (1), kashperuk (5), Logger (5), alex55 (1), plumbum (1). | |