AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 09.02.2009, 13:09   #1  
Vitaly_K is offline
Vitaly_K
Участник
 
34 / 10 (1) +
Регистрация: 16.09.2004
Адрес: Москва
Проблема с RightFooter
Добрый день!

Возникла интересная ситуация. При создании документа в по шаблону excel из аксапты, в колонтитул документа программно вставляется имя юзера. Для формирования докуменов используется отдельный сервер. Так вот решили перенести это формирование на другой сервер, и данный метод перестал там работать.

void UpdatenRightFooterR(str 21 _footerStr)
{ Com pageSetupOb=new com();
str ft;
int pos;
;
pageSetupOb=curSheet.PageSetup();
ft=pageSetupOb.RightFooter();
pos=strscan(ft,"_________________",20,100);
ft=StrDel(ft,pos,19);
ft=StrIns(ft,_footerStr,pos);
pageSetupOb.RightFooter(ft); //здесь ругается, повторюсь, на предыдущем
//сервере все ок.
// если не передавать ft, то тоже
//все формируется без проблем
}

Ругается "Метод 'RightFooter' в COM-обекте класса 'PageSetup' возвратил код ошибки 0х800А03ЕС (<unknown>), который означает:Нельзя установить свойство RightFooter класса PageSetup."

Читал, что приблизительно это может быть связано с версией офиса или инсталяцией MUI, но вроде все одинаково на двух серверах....что еще может быть, может есть какие-нить предположения?
Старый 09.02.2009, 13:56   #2  
NeveB is offline
NeveB
Участник
 
60 / 16 (1) ++
Регистрация: 14.11.2003
Адрес: Mosсow
не установлен принтер на втором сервере
Старый 09.02.2009, 14:22   #3  
Vitaly_K is offline
Vitaly_K
Участник
 
34 / 10 (1) +
Регистрация: 16.09.2004
Адрес: Москва
Установлен!
Старый 09.02.2009, 14:36   #4  
NeveB is offline
NeveB
Участник
 
60 / 16 (1) ++
Регистрация: 14.11.2003
Адрес: Mosсow
попробуйте вручную на втором сервере установить этот колонтитул у данного отчета, возможно что-то не так настроено
Старый 09.02.2009, 14:42   #5  
Vitaly_K is offline
Vitaly_K
Участник
 
34 / 10 (1) +
Регистрация: 16.09.2004
Адрес: Москва
Все шаблоны отчетов лежат в одном месте на отдельном сервере, т.е. разницы откуда открывать этот отчет нет.
Старый 09.02.2009, 14:44   #6  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,701 / 1195 (43) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
По сообщению об ошибке видно, что нельзя сделать модификацию. Установить значение свойства. Читать можно, а менять нельзя.

Значит, сам файл, вероятно, открыт в режиме "только чтение". В него вообще, хоть что-нибудь программно записывается?

Кроме того, при передаче параметров, отличных от типа Integer, желательно "оборачивать" их в ComVariant. В данном случае, примерно так:

X++:
   COMVariant  comVariant;
    ;

    ...
    ft = ...

    comVariant = new  COMVariant(COMVariantInOut::IN, COMVariantType::VT_BSTR);
    comVariant.bStr(ft);
    pageSetupOb.RightFooter(comVariant);
Старый 09.02.2009, 16:11   #7  
Vitaly_K is offline
Vitaly_K
Участник
 
34 / 10 (1) +
Регистрация: 16.09.2004
Адрес: Москва
А вот почему эту модификацию нельзя сделать? читать и менять файл можно...
В файл программно записываются все данные, в том числе и имя юзера в колонтитуле.
Думаю, есть другая причина, почему один и тотже код отрабатывают по разному на разных серверах. И причина скорее системная....ведь на первом сервере все работает как надо без ошибок.
Старый 09.02.2009, 18:01   #8  
NNB is offline
NNB
Участник
 
103 / 12 (1) ++
Регистрация: 31.08.2006
Помнится у нас с тобой что-то подобное было. Какие-то сложности с доступом Так тогда и не поняли в чем было дело. Верни все обратно может будет работать
Старый 11.02.2009, 10:12   #9  
Vitaly_K is offline
Vitaly_K
Участник
 
34 / 10 (1) +
Регистрация: 16.09.2004
Адрес: Москва
Для тех кому интересно. Проблему решили. Причина была в том, что на 1 сервер был установлен MS Office без сервис паков и на нем все хорошо отрабатывало, а на втором сервере стоял еще и SP и результат не получался. Соответственно переустановили MS Office без SP и все заработало. Особо хочу отметить тот факт, что по умолчанию с MS Office устанавливается принтер Microsoft Office Document Image Writer. Так вот, формирование документа происходит задействуя этот принтер, без него такая же ошибка как в первом посте. Но и как оказалось, играла роль именно версия принтера 11.03.1897.00 - это рабочая. Т.к. версия принтера не рабочая была 11.03.8166.02. Вот такая хрень с MS Office. Да и еще по поводу оборачивания в ComVariant. После того, как первоначальный код заработал, решил еще обернуть в ComVariant по совету Владимира Максимова, но не тут было....
Опять начал ругаться как в первом посте :
"Метод 'RightFooter' в COM-обекте класса 'PageSetup' возвратил код ошибки 0х800А03ЕС (<unknown>), который означает:Нельзя установить свойство RightFooter класса PageSetup."

Вернул как было без ComVariant и все ок.....так что при работе аксапты с MS Office могут возникнуть различные казусы, не зависящие от аксапты.
Старый 11.02.2009, 11:26   #10  
NNB is offline
NNB
Участник
 
103 / 12 (1) ++
Регистрация: 31.08.2006
Поздравляю
Старый 11.02.2009, 15:48   #11  
Vitaly_K is offline
Vitaly_K
Участник
 
34 / 10 (1) +
Регистрация: 16.09.2004
Адрес: Москва
Спасибо
Теги
excel

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Проблема с "Help" в DAX 2009. Tat DAX: Администрирование 0 19.12.2008 19:56
Проблема с единицей измерения longson DAX: Программирование 4 16.07.2007 14:35
Проблема с созданием объекта Lelya DAX: Администрирование 33 27.06.2005 16:38
Проблема с налогами katja DAX: Функционал 3 15.10.2004 12:26
Проблема: русские шрифты в отчетах, формируемых на сервере. Anais DAX: Администрирование 3 17.11.2003 13:20

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 01:43.