小弟所做的程序功能大致为搜索数据库数据,显示结果于网页之上,并把结果写入word文档的这么一个过程。我用的intraWeb版本是delphi7自带的。做成的intraWeb应用程序是采用添加导系统服务中的方法运行。遇到的问题如下:1.为什么通过intraWeb创建的Word对象是显示在服务器端,而不是我希望的显示在客户端那里?那可是客户端的动作行为阿(按钮动作触发create)。create代码如下:
procedure CreateWordApp();
//建立Word Application OLE 连接
begin
  wordApp:=createoleobject('Word.Application');
  wordapp.WindowState:=wdWindowStateMaximize;
  wordApp.visible:=True;
  WordApp.Documents.Add('模版.dot');
end;2.这个自动生成的文档只能看见本地的打印机而不是系统安装的所有打印机。也就是说不能使用网络打印!为什么?我已经在网络打印机的属性页里的安全页中添加了所有的角色和用户,唯一发现的是保存一下,然后再打开就可以使用网络打印机了。有什么办法可以直接用网络打印机打印吗?望高手赐教!
谢谢。

解决方案 »

  1.   

    只能写成一个activeX,intraweb嵌入这个activeX,到时候调用一下吧。intraweb是完全服务器端运行的,当然word也在服务器端打开了
      

  2.   

    IntraWeb程序运行在服务器系统空间内,当然它所激活的Word也是运行在服务器上了。客户端浏览器中的按钮按下后会执行一个http post动作,通知IntraWeb服务器执行对应的事件处理程序,所以说尽管你是在客户端按下按钮,但动作还是在服务器发生的。根据你的需求描述,产生的Word文件时要保存在客户端。有2种解决方案:
    1、leeyihan(leeyihan)的办法,写ActiveX。但是这个需要客户端调整浏览器安全性到很低的程度,不推荐使用。
    2、在服务器端激活Word生成Word .doc文件,保存到一个特定的目录中(自己规定),然后调用
      WebApplication.SendFile(APathName,false,'msdownload',AFileName);
    浏览器会自动弹出文件下载对话框,客户选择文件保存路径并保存就可以了。