![]() |
#5 |
Участник
|
Цитата:
Сообщение от gl00mie
![]() Подводный камень только один: решить, когда создавать SysExcelApplication нужно все-таки именно на клиенте, поскольку один и тот же серверный код может работать как в пакете, так и интерактивно, и в последнем случае, очевидно, Excel должен запускаться на клиентской машине. Я это решил так:
X++: public static client server SysExcelApplication_NET construct(ClassRunMode _contructOnTier = ClassRunMode::Client) { SysExcelApplication_NET ret; ; switch (_contructOnTier) { case ClassRunMode::Called : case ClassRunMode::ClientOrServer : ret = new SysExcelApplication_NET(); break; case ClassRunMode::Client : ret = classFactory::makeObjectOnClient( classnum(SysExcelApplication_NET) ); break; case ClassRunMode::Server : ret = classFactory::makeObjectOnServer( classnum(SysExcelApplication_NET) ); break; default : throw error( Error::unsupportedEnumValue( _contructOnTier ) ); } return ret; } public static client server SysExcelApplication construct() { SysExcelApplication ret; COM excel; real excelVersion; ; if (SysExcel::mustInteropViaNET()) { return SysExcelApplication_NET::construct( clientKind() == ClientType::Server ? ClassRunMode::Server : ClassRunMode::Client ); } // ... Права на шаблон у учетки АОСа FullControl. |
|
Теги |
.net, ax2009, excel, законченный пример, полезное |
|
|