AXAPTA 2.5 SP3
Надо при формировании отчета в Excel добавить в сформированный файл некоторую служебную информацию: кто и когда создал отчет.
В Excel для этого можно воспользоваться пунктом меню: Файл - Свойства - закладка "Прочие"
На уровне объектной модели Excel - это экземпляр коллекции CustomDocumentProperties объекта WorkBook.
Для отладки, создаю файл "Пример.xls" записываю в него одно свойство и далее пытаюсь его прочитать:
PHP код:
static void MVB_Excel_DocProperty(Args _args)
{
COMExcelDocument_RU excel;
FileName fileName = "C:\\Пример.xls";
COM comDocProp,
comOneProp;
COM m_comDocument;
str strName;
int qtyProp,
nextI;
;
excel = new ComExcelDocument_RU();
excel.newFile(fileName,true);
m_comDocument = excel.getComDocument();
comDocProp = m_comDocument.CustomDocumentProperties();
qtyProp = comDocProp.count();
info(strFmt("%1",qtyProp));
comOneProp = comDocProp.Item(1);
strName = comOneProp.name();
info(strName);
}
Происходит ошибка при попытке вызвать метод Item().
Цитата:
Общий сбой при вызове метода Item' COM-объекта.
Т.е. код показывает, что коллекция содержит элементы, но получить ссылку на объект внутри коллекции - не могу (!). Аналогичное сообщение при попытке добавить свойство через метод Add().
Можно ли обойти проблему?
Да, с коллекцией BuiltinDocumentProperties (это то, что на закладке "Документ" в свойствах Excel) происходит то же самое. Колекцию "вижу", объекты коллекции - нет.
Пробовал с Excel 2000 и Excel 2003 (на разных машинах) - результат одинаковый.
AXAPTA 2.5 SP3