Ax 3.0 SP4, Office 2003
Ситуация следующая - существует отчет, выводящийся в Excel, переодически при его формировании вылетает следующая ошибка
"Метод "insert" в COM-объекте класса "Range" возвратил код ошибки 0x800A03EC (<неизвестно>), который означает: Cannot shift objects off sheet."
В поисках решения нашел ссылку
http://support.microsoft.com/kb/211769, в которой приводится макрос VBA, устраняющий эту ошибку. Вот он:
Sub Test()
Dim s As Shape
On Error Resume Next
For Each s In ActiveSheet.Shapes
s.Placement = xlMoveAndSize
Next
End Sub
В классе comExcelDocument_ru добавил метод следующего вида:
X++:
void changeShapesProperties()
{
COM workSheet,
comShapes,
comShape;
int countShapes, i;
;
if (m_comDocument)
{
try
{
workSheet = m_comDocument.ActiveSheet();
comShapes = workSheet.shapes();
countShapes = comShapes.Count();
for(i = 1; i <= countShapes; i++)
{
comShape = comShapes.Item(i);
comShape.Placement(1);
}
}
catch (Exception::Error)
{
throw error("@DIS6043");
}
}
}
Вызываю его в коде отчета, после создания файла Excel из шаблона,
вроде бы должно работать, но выдает на строке
X++:
comShape.Placement(1);
Error Сообщение (11:52:50) Метод "Placement" в COM-объекте класса "Shape" возвратил код ошибки 0x800A03EC (<неизвестно>), который означает: <неизвестно>.
Error Сообщение (11:52:50) Невозможно создать рабочую книгу Microsoft Office Excel.
Что я делаю не так?