23.09.2005, 11:05 | #1 |
Участник
|
COM / MS Office / CustomDocumentProperties
Доброго всем!
Для вывода в Word'е одного значения во многих местах решил использовать "пользовательские свойства" документа, а в местах вывода разместить поля (fields) с указанием на это свойство, В класс ComWordDocument_RU добавил метод public void setCustomProperty(str _name, anytype _value) { COM comProperties; COM comProperty; comProperties = m_comDocument.CustomDocumentProperties(); comProperty = comProperties.Item(_name); comProperty.value(_value); } но при вызове в строке comProperties.Item(_name) получаем ошибку - в Вариантный тип, позвращенный методом COM-объекта не поддерживается. Есть ли выход? |
|
23.09.2005, 11:18 | #2 |
Administrator
|
Есть. Вместо comProperty.value(_value); надо вызывать comProperty.value(COMVariant::createFromStr(_value)); если _value - строка, comProperty.value(COMVariant::createFromInt(_value)); если _value - целое и т.д.
Класс COMVariant лежит в \System Documentation\Classes\ Для Item(_name) надо сделать тоже самое (COMVariant::createFromStr(Name)) ибо у метода Item в VB аргумент имеет тип Variant
__________________
Возможно сделать все. Вопрос времени |
|
23.09.2005, 11:28 | #3 |
Участник
|
Цитата:
Изначально опубликовано sukhanchik
.......Есть. Вместо comProperty.value(_value); надо вызывать comProperty......... comProperty = comProperties.Item(_name); с ошибкой, указаной в первом постинге |
|
23.09.2005, 11:51 | #4 |
Administrator
|
Цитата:
Для Item(_name) надо сделать тоже самое (COMVariant::createFromStr(Name)) ибо у метода Item в VB аргумент имеет тип Variant
__________________
Возможно сделать все. Вопрос времени |
|
23.09.2005, 12:07 | #5 |
Участник
|
Цитата:
Изначально опубликовано sukhanchik
Ну просто мой пост надо читать с конца ЗЫ. Ваше вариант тоже попробовал - "нет никакой разницы" (с) Дося... |
|
23.09.2005, 12:18 | #6 |
Administrator
|
т.е. если вызвать просто comProperties.Item(_name); (без присваивания) - то ошибки не возникнет?
Может конечно действительно есть траблы в вызове именно пользовательских свойств... Или же может попробовать сразу: m_comDocument.MyProperty() - т.е. использовать свойство напрямую. VB не позволяет конечно.... Это в общем - идеи .. Сам - каюсь - не проверял
__________________
Возможно сделать все. Вопрос времени |
|
23.09.2005, 15:22 | #7 |
Участник
|
Ну что ж спасибо за диалог
Буду копать дальше.... |
|