24.12.2008, 11:55 | #1 |
Участник
|
Нужна помощь с Excel
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"); } } } вроде бы должно работать, но выдает на строке X++: comShape.Placement(1); Error Сообщение (11:52:50) Невозможно создать рабочую книгу Microsoft Office Excel. Что я делаю не так?
__________________
Существует 10 типов людей: одни понимают двоичную систему, другие - нет. |
|
24.12.2008, 12:41 | #2 |
Moderator
|
Да вроде должно работать. У меня следующий код отрабатывает без ошибок (Акса и Офис - такие же):
X++: static void Job122(Args _args) { ComExcelDocument_RU doc = new ComExcelDocument_RU(); COM wbook; COM activeSheet; COM comShapes, comShape; int i, countShapes; ; doc.NewFile(); wbook = doc.getComDocument(); activeSheet = wbook.ActiveSheet(); comShapes = activeSheet.Shapes(); // для примера создаем два текстовых прямоугольника comShapes.AddTextbox(1, 71.25, 42, 109.5, 84.75); comShapes.AddTextbox(1, 137.25, 157.5, 153, 75.75); countShapes = comShapes.Count(); for(i = 1; i <= countShapes; i++) { comShape = comShapes.Item(i); comShape.Placement(1); info(comShape.Name()); } } |
|
|
За это сообщение автора поблагодарили: Weez (1). |
24.12.2008, 12:46 | #3 |
Участник
|
видимо у вас какойто неправильный шаблон на котором какойто неправильный шэйп)
__________________
aLL woRk aNd nO JoY MAKes jAck a dULL Boy |
|
24.12.2008, 12:59 | #4 |
Участник
|
Гм, может быть дело в том что работа с Аксаптой и офисом соответственно идет через Citrix.. Может с правами чего.. В общем дело похоже не в Аксапте, а в шаблоне или доступе.. Буду копать дальше, спасибо ответившим
__________________
Существует 10 типов людей: одни понимают двоичную систему, другие - нет. |
|