Конференция "Corba" » ExcelApplication.RemoteMachineName [D7, WinXP]
 
  • tytus © (26.01.07 10:57) [0]
    Привет всем. В F1 сказано, что сие свойство нужно для подключения к удаленной машине на которой запущен COM-сервер. Причем свойсвто ConnectKind автоматом устанавливается в ckRemote. Что бы я не писал в RemoteMachineName -все одно - отказано в доступе. Удаленную тачку вижу.
    Подскажите, как подключится.
  • Сергей М. © (26.01.07 11:02) [1]
    На удаленной "тачке" требуется соотв.настройка DCOM.
  • tytus © (26.01.07 11:21) [2]
    >Сергей М. ©   (26.01.07 11:02) [1]
    а где ее искать?
    В моей проге формируется  отчет в виде листа excel.
    На моем компе установлен MS Office 2003, на удаленной тоже.
    простая тестовая программка подключается к удаленной тачке.
    (А может мне только это кажется...)
    procedure TForm1.Button1Click(Sender: TObject);
    begin
    ConnStr:='\\technics2.it.com';
    Excel.RemoteMachineName:=ConnStr;
    try
     Excel.Connect;
     SB1.Panels[0].Text:=Excel.RemoteMachineName;
     SB1.Panels[1].Text:='Connected';
     if Excel.ConnectKind=ckRemote then SB1.Panels[2].Text:='Remote';
      Excel.Visible[0]:=true;
    except
     MessageBox(Handle,PChar(ConnStr),Ошибка подключения',MB_OK+MB_SYSTEMMODAL);
    end;
    end;
    На моем компе и на удаленном excel установлен. А вот на третьем компе - нет, и тестовая программка вообще не запускается. А с этой тачки и нужно коннектиться...
  • Сергей М. © (26.01.07 11:49) [3]

    > вот на третьем компе - нет ... А с этой тачки и нужно коннектиться


    В реестре "тачки"-клиента должна фигурировать инф-ция об Ёхеле как о СОМ-сервере. Тогда все будет работать. Без этого - никак.
    Эта инф-ция автоматически появляется в реестре при инсталляции Ёхеля.
    Можно на время инсталлировать Ёхель, экспортировать из реестра в текст.файл регистр.информацию о сервере, затем деинсталлировать и вручную импортировать в реестр ранее сохраненные записи.
  • tytus © (26.01.07 12:08) [4]
    >Сергей М. ©   (26.01.07 11:49) [3]
    А с другой тачки можно инфу импортировать?
    И в каком ключе (ключах)реестра описана информация?
    Если не трудно, подскажите...
  • umbra © (26.01.07 12:13) [5]

    > и тестовая программка вообще не запускается.

    а как ругается при запуске?
  • tytus © (26.01.07 12:22) [6]
    >umbra ©   (26.01.07 12:13) [5]
    Первый мессаг:
    Исключение неизвесное программное исключение ($xxxxxxx...)по
    адресу ($XXXXX...)
    Второй мессаг
    EOLESysError класс не зарегестрирован
  • Сергей М. © (26.01.07 12:23) [7]

    > как ругается при запуске?


    Ну известно как - "класс не зарегистрирован" ... В реестре-то - пустота)


    > tytus ©   (26.01.07 12:08) [4]


    А ты сравни состояние рестров до и после инсталляции сабжа - сам увидишь, какие изменения произоши... Их и вноси.

    Кстати, только рестровых записей будет мало - на машине-клиенте нужен еще файл библиотеки типов Ёхеля. Называется он, кажись, Excel.olb. Его следует зарегистрировать с пом. regsvr32.exe.
  • tytus © (26.01.07 12:39) [8]
    >Сергей М. ©   (26.01.07 12:23) [7]
    На клиенте напряжно устанавливать офис. Можно сказать - вообще лучше не устанавливать и не перегружать.
    Может с другого компа залить данные с реестра? И какие ключи?
  • Сергей М. © (26.01.07 13:01) [9]

    > tytus ©   (26.01.07 12:39) [8]


    А может и не нужно вообще заморачиваться этой идеей ?
    Ведь есть же возможность генерировать xls-файлы и без какого-либо участия Excel'а как такового. С некими ограничениями, конечно, но может эти ограничения для твоих отчетов и несущественны ...

    Поищи в сети компонет TXLSReadWrite, пощупай его - вполне возможно, что он одним махом решит все твои проблемы.
  • umbra © (26.01.07 13:05) [10]

    > На клиенте напряжно устанавливать офис.

    оффис устанавливать не надо, нужно на кленте зарегистрировать сервер автоматизации. Попробуйте на клиент скопировать Excel.exe и в командной строке выпонить regsvr32 excel.exe, а после этого запустите свою программу.
  • tytus © (26.01.07 13:12) [11]
    >Сергей М. ©   (26.01.07 13:01) [9]
    Да вообще-то нужно пользователю что-то показать, и при необходимости он (юзер) может и распечтать результат.

    >umbra ©   (26.01.07 13:05) [10]
    попробую. А екзешник екселя потом можно убить или не нужно? А вреестре что, писать или уже ничего не надо?
  • tytus © (26.01.07 13:19) [12]
    >umbra ©   (26.01.07 13:05) [10]
    а куда копировать ексель?
  • Сергей М. © (26.01.07 13:24) [13]

    > tytus ©   (26.01.07 13:12) [11]


    > вообще-то нужно пользователю что-то показать


    Зачем пользователю на другой машине это видеть ? Отчет-то не он запросил, а совсем другой пользователь на совсем другой машине..

    Или ты думаешь, что Excel запустится на той машине, на которой его исп.файла нет физически ? Так не бывает)
  • tytus © (26.01.07 13:38) [14]
    >Сергей М. ©   (26.01.07 13:24) [13]
    Вы правы. Пусть хоть на десятой машине будет отчет. Главное - чтобы прога отработала свое.
    А куда ексель скопировать?
  • umbra © (26.01.07 13:45) [15]

    > А куда ексель скопировать?
    >

    да куда угодно. В папку своей программы, например.


    > А вреестре что, писать или уже ничего не надо?
    >

    regsvr32 все запишет.


    > А екзешник екселя потом можно убить или не нужно?

    не знаю. поэкпериментируйте.
  • Сергей М. © (26.01.07 13:45) [16]

    > куда ексель скопировать?
    >


    Ну как куда ? Очевидно туда где его нет, но где он нужен)

    Но вряд ли он при этом заработает как СОМ-сервер
  • umbra © (26.01.07 14:08) [17]

    > Но вряд ли он при этом заработает как СОМ-сервер

    так работать же он должен на другой машине. Просто у экселя 2003 нет отдельной библиотеки типов, она в экзешнике.
  • Сергей М. © (26.01.07 14:36) [18]

    > umbra ©   (26.01.07 14:08) [17]


    Логично. Но сомнения тем не менее остаются.
  • tytus © (26.01.07 14:41) [19]
    >ALL
    Выполнил я regsvr32 c:\excel.exe (скопировав екзешник в корень С) на своем компе (где есть Office with Excel) ивот чта оно мне написало:
    (цитирую дословно)
    c:\excel.exe загружен, но точка входа для DllRegisterServer не найдена.
    И вообще, c:\excel.exe не выглядит как .DLL или .OCX файл

    вот так-то, и что, делать сие на клиенте?
  • Сергей М. © (26.01.07 14:49) [20]

    > tytus ©   (26.01.07 14:41) [19]


    Вот поэтому тебе и рекомендовано - не занимайся хнёй, используй компоненты прямой генерации данных в ёхелевом формате. См. [9]
  • Asail (26.01.07 15:42) [21]

    > Да вообще-то нужно пользователю что-то показать, и при необходимости
    > он (юзер) может и распечтать результат.

    Если сгенеришь Excel-файл, то для отображения можно использовать бесплатный MS Excel Viewer (можно с мс сгрузить).
  • tytus © (26.01.07 16:15) [22]
    >ALL
    Спасибо всем.
    Хотелось в ексель... но дело тупиковое, поэтому сгенерю FastReport, а там есть конвертер в ексель. Фастрепорт-ы смотрятся хорошо, но если юзеру потребуется с данными отчета что-то творить (вставлять в ексель,
  • umbra © (26.01.07 16:43) [23]
    блин, напутал. regsvr32 не регистрирует библиотеки типов. надо пользоваться tregsvr.exe из папки bin в делфи

    tregsvr.exe -t excel.exe
  • Сергей М. © (26.01.07 16:46) [24]

    > сгенерю FastReport, а там есть конвертер в ексель


    Это называется удалением гландов через очко.
  • tytus © (26.01.07 17:06) [25]
    >Сергей М. ©   (26.01.07 16:46) [24]
    Да, вы правы, как в анекдоте... А у нас все так делается -)

    >umbra ©   (26.01.07 16:43) [23]
    счаз пойдем ковырять...
  • tytus © (26.01.07 17:15) [26]
    >umbra ©   (26.01.07 16:43) [23]
    Фокус неудался... дос-окошко слишком быстро закрылось, чтобы что-то можно было узреть... Но все равно спасибо, хотя и ничего не получилось - тестовая прога так и не запустилась и все так-же ругается...
  • YurikGL © (30.01.07 21:18) [27]

    > Фокус неудался... дос-окошко слишком быстро закрылось, чтобы
    > что-то можно было узреть...

    А что мешает запускать из FAR-а или обычного cmd?
 
Конференция "Corba" » ExcelApplication.RemoteMachineName [D7, WinXP]
Есть новые Нет новых   [134431   +9][b:0][p:0.001]