Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

XLReport и DCOM [Delphi, Windows]


Nick6 ©   (2006-12-21 13:05:00) 

Всем привет!
Кто-нибудь пробовал создавать отчёты в Excel через XLReport на удалённом компьютере? Там проблема в том, что при подключении XLReport к созданному удалённо (через DCOM или Borland Socket) процессу выдаётся ошибка "Интерфейс не поддерживается"
var Excel: Variant;
DCOMConnection.Connected:=true;
Excel:=DCOMConnection.AppServer;
XLReport.ConnectToExcelApplication(Excel); //ошибка
А вобще все методы Excel доступны:
Excel.Visible:=true;
Excel.WorkBooks.Add; и т.д. //работает
Может кто-то знает из-за чего конкретно XLReport ругается. (Исходников компонента нету). Можно как-нибудь обойти проблему?


Nick6   (2006-12-22 10:59:00) [1]

Немного дополню...
DCOM настроен правильно, поскольку приложение Excel на удалённом компьютере полностью доступно для управления. Работаешь с ним так же как если бы Excel был загружен на локальной машине. Метод XLReport.ConnectToExcelApplication должен просто присваивать компоненту ссылку на COM интерфейс (уже запущенный процесс Excel). Но ему что-то не нравится.
Кстати если TDCOMConnection подцепить к своему же компьютеру, то всё работает нормально. Всё же хотелось бы узнать, что за ограничение есть при работе с удалённым компом. Придётся видимо спросить у создателей компонента.


isasa   (2006-12-21 21:09:00) [2]

umbra ©   (21.12.06 17:26) [3]
похоже, что репорту нужно раннее связывание.


Тогда в
XLReport.ConnectToExcelApplication(Excel); //ошибка
надо передавать не  Variant, а интерфейс из
Excel_TLB.pas, а вообще ...
ошибка в 17 строке ...


umbra   (2006-12-21 17:26:00) [3]

2 isasa ©   (21.12.06 16:43) [2]

но ведь OLE оъект доступен, вроде бы, судя по


> А вобще все методы Excel доступны:


похоже, что репорту нужно раннее связывание.


isasa   (2006-12-21 16:43:00) [4]

Выбирай.
1. На удаленной машине нет Excel
2. На удаленной машине не настроены разрешения на DCOM
3. Нет контроллера домена в сети.

Для таких финтов, в принципе, XLReport пятое колесо. :)

Проверить можно обычным *.vbs скриптом

Dim XLApp
 Set XLApp = CreateObject("Excel.Application", <имя машины/IP машины>)
 WScript.Echo XLApp.Version
 Set XLApp = Nothing


umbra   (2006-12-21 15:08:00) [5]

а что это за штука - XLReport?


Наверх

Титульная страница Поиск, карта сайта Написать письмо