首 页 网络编程
网页制作 图形图象 操作系统 冲浪宝典
软件教学 认证考试

网络安全 网络办公 行业资讯 评测对比
您当前位置:站长天空 -> 网络编程-> 移动开发教程
用delphi4.0直接控制word97_delphi教程
作者:网友供稿 点击:0
推荐
西部数码-全国虚拟主机10强!20余项虚拟主机管理功能,全国领先!第6代双线路虚拟主机,南北访问畅通无阻!可在线rar解压,自动数据恢复设置虚拟目录等.免费赠送访问统计,企业邮局.Cn域名注册10元/年,自助建站480元起,免费试用7天,满意再付款!P4主机租用799元/月.月付免压金
站内搜索
文章页数:[1] 
用Delphi4.0直接控制Word97

编号:QA003053
建立日期: 2000年6月15日 最后修改日期:2000年6月15日
所属类别:

文章:

    摘要:玩过PowerBuilder的朋友一定知道,PB中最重要的技术就是它的DataWindow技术,用它来设计表单、处理数据录入、设计报表十分方便。然而Delphi的报表支持功能远不及PB。Delphi的专业版中包括了QuickReport,不过它是集合由QSD AS(一家挪威公司)授权的报表组件。当然,我们也可以使用外部报表工具,如ReportSmith或Cristal Report。不过控制稍嫌复杂,并且它们与Delphi之间缺少集成性。
    我们在开发《公文管理系统》网络版时,在实现公文打印时,尝试过不同的方法来实现。我们的要求是将一篇普通公文按公文格式打印出来,而用户能对其进行排版进行一些简单的控制。小辉刚开始是用的QuickReport来试的,效果很不尽人意,特别是对一些中文格式的支持方面;后来小辉一不作二不休,干脆自己手工编写打印程序,不依赖设计工具,只可惜小辉技术不到家,写到一半时玩不下去了,只好另找出路。正好那天来了份《中国计算机报》,上面有一篇介绍如何在VB中使用Excel的文章。小辉一想:何不用Delphi将数据发送到Word,由Word来完成编辑排版工作呢?说穿了,就是用OLE自动化技术。
    小辉一试,效果竟还可以。——虽然对于一个程序员来说,自己编的程序中要挂接一个别人的应用程序才能完全实现自己的功能,就象鸡群里插只鸭,心里总有点那个。但由于开发任务紧,主任又隔三隔四的来催,虽然最终有点不伦不类,小辉也顾不得那么多了。好了,废话少说,看看小辉是怎样实现的吧——
    链接:http://www.xiaohui.com
    主持人:由于原链接已经失效。我们在这里提供原文:
    一、前 言
    
      玩过PowerBuilder的朋友一定知道,PB中最重要的技术就是它的DataWindow技术,用它来设计表单、处理数据录入、设计报表十分方便。然而Delphi的报表支持功能远不及PB。Delphi的专业版中包括了QuickReport,不过它是集合由QSD AS(一家挪威公司)授权的报表组件。当然,我们也可以使用外部报表工具,如ReportSmith或Cristal Report。不过控制稍嫌复杂,并且它们与Delphi之间缺少集成性。
      我们在开发《公文管理系统》网络版时,在实现公文打印时,尝试过不同的方法来实现。我们的要求是将一篇普通公文按公文格式打印出来,而用户能对其进行排版进行一些简单的控制。小辉刚开始是用的QuickReport来试的,效果很不尽人意,特别是对一些中文格式的支持方面;后来小辉一不作二不休,干脆自己手工编写打印程序,不依赖设计工具,只可惜小辉技术不到家,写到一半时玩不下去了,只好另找出路。正好那天来了份《中国计算机报》,上面有一篇介绍如何在VB中使用Excel的文章。小辉一想:何不用Delphi将数据发送到Word,由Word来完成编辑排版工作呢?说穿了,就是用OLE自动化技术。
      小辉一试,效果竟还可以。——虽然对于一个程序员来说,自己编的程序中要挂接一个别人的应用程序才能完全实现自己的功能,就象鸡群里插只鸭,心里总有点那个。但由于开发任务紧,主任又隔三隔四的来催,虽然最终有点不伦不类,小辉也顾不得那么多了。好了,废话少说,看看小辉是怎样实现的吧——
    
    二、窗体设计
    
      说穿了其实很简单。小辉在这里做了一个简单的示例程序:
      1. 设置窗体Form1的Font.name为‘宋体’,Font.size为12;
      2. 窗体上依次放置lable1-labe5五个tLable控件,其caption属性分别为‘文号’、‘标题’、‘收文单位’、‘正文’、‘发文单位’
      3. 在窗体上依次放置 tEdit、tEdit、tEdit、tMemo、tEdit五个编辑控件,其name属性分别为:ED_WenHao、ED_BiaoTi、ED_ShouWenDanWei、ED_ZhenWen、ED_FaWenDanWei。
      4. 在窗体上依次放置两个tButton控件,其name属性分别为Btn_PrintToWord、btn_Quit,Caption属性分别为‘打印’和‘退出’。
      窗体设计格式可参考本文末所附图片。
    
    
    三、代码设计
    
      
      程序段如下所示:
    unit Unit1;
    
    interface
    
    uses
    Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
    StdCtrls,OleCtnrs,ComObj;
    
    type
     TForm1 = class(TForm)
     Label1: TLabel;
     Label2: TLabel;
     Label3: TLabel;
     Label4: TLabel;
     Label5: TLabel;
     ED_WenHao: TEdit;
     ED_BiaoTi: TEdit;
     ED_ShouWenDanWei: TEdit;
     ED_ZhenWen: TMemo;
     ED_FaWenDanWei: TEdit;
     Btn_PrintToWord: TButton;
     Btn_Quit: TButton;
     procedure Btn_PrintToWordClick(Sender: TObject);
     procedure Btn_QuitClick(Sender: TObject);
     private
     { Private declarations }
     public
     { Public declarations }
    end;
    
    var
     Form1: TForm1;
    
    implementation
    
    {$R *.DFM}
    
    //开始:数据发送到word事件
    procedure TForm1.Btn_PrintToWordClick(Sender: TObject);
    vAR
     VarWord: Variant;// 创建WORD时所用
    begin
     try
     // 1. 建立OleObject,连接word97
     VarWord:=CreateOleObject(word.basic);
     // 2. 建立Word97的新文件
     VarWord.FileNew;
     // 3. 设置Word97的基本状态
     VarWord.ViewZoom75; //设置显示比例为75%
     VarWord.ViewPage; //改为页面显示方式
     // 4. 将当前数据控件上的信息发送至Word97
     // 4.1 发送文号数据
     VarWord.CenterPara; //居中
     Varword.font(宋体); //设置字体
     VarWord.FontSize(14); //设置字号
     varword.insert(#13+#13+ ED_WenHao.Text+#13+#13+#13);
     // 4.2 发送标题数据
     VarWord.font(黑体);
     VarWord.Fontsize(16);
     VarWord.insert( ED_BiaoTi.text+#13);
     // 4.3 发送收文单位数据
     VarWord.LeftPara; //左对齐
     VarWord.Font(宋体);
     VarWord.fontSize(14);
     VarWord.Insert(#13+ ED_ShouWenDanWei.Text+:+#13);
     // 4.5 发送正文数据
     VarWord.fontSize(14);
     VarWord.Insert( ED_ZhenWen.Text+#13);
     // 4.6 发送发文单位数据
     VarWord.RightPara; //右对齐
     VarWord.fontSize(14);
     VarWord.Insert( ED_FaWenDanWei.Text+#13);
     // 5 最后设置
     VarWord.StartOfdocument; //到文首
     VarWord.AppMaxiMize; //设置窗口最大化
     VarWord.AppShow; //显示应用程序
     except
     showmessage(运行 Microsoft Word 失败!);
     end; //end of try
    end;
    //end:数据发送到word事件
    
    
    //开始:窗口关闭事件
    procedure TForm1.Btn_QuitClick(Sender: TObject);
    begin
     close;
    end;
    //End:窗口关闭事件
    
    end.
    // 这是主程序的尾部
    
    
    四、附 注
    
    一、说明
      1、因只是一个演示示例,故没有与后台数据库连接起来,实际操作可将相应的tEdit、tMemo控件用tDBEdit、tDBMemo控件所代替,增加tTable、tDataSource等控件,连接数据库。
      2、本示便没有考虑如何进行批量打印
      3、程序在Pwin97、Delphi 4.0专业版、中文Word97下通过。
      4、由于Word有不同的版本,微软在每种外语中转换了一些OLE自动化接口,如果用其他版本的Word,本程序运行有可能出错。
      5、可以通过word97帮助中归结的宏命令来得到相应的驱动命令;亦或可在Word97下单击[工具]菜单--单击[自定义]--单击[键盘]按钮,可以查看到Word97中分类别显示的Word命令。
    
    二、优点与缺点
    
      1、通过OLE自动化技术,将公文的排版打印工作交给Word去完成,对最终用户而言,控制较方便。
      2、在Word97的若对数据进行了修改,则不能传回调用它的主程序,反映到数据库中。这是它的不便这处。
      3、本例只是在特殊情况下的一种应用,若要打印大量数据标签,制作表格,小辉觉得还是用报表灵活一些

文章来源:小辉程序员之路


文章整理:站长天空 网址:http://www.z6688.com/
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

文章页数:[1] 


放大字体显示 缩小字体显示 打印文章 推荐给朋友
热门文章
·ems图片格式转换(java)程序
·使用hashtable实现的购物车-ASP教程,ASP应用
·Java中数据库事务处理的实现-JSP教程,Java技巧及代码
·Oracle数据库操作类(c#)-.NET教程,C#语言
·移动短消息技术演进与业务发展浅析
·ASP生成静态网页,学习CASE的用法,以及“权限”的一种控制方法-ASP教程,组件开发
·中国电信发展移动通信的制式与频段选择
·ASP中access数据库的路径问题-ASP教程,数据库相关
·td-scdma系统移动台接入过程浅析
·JAVA与数据库连接方法(三)-JSP教程,数据库相关
最新文章
·fireworks表现vista毛玻璃朦胧效果_fireworks教程
·google adsense哪些情况会被k号_网赚技巧
·减少google adsense展示单元并不能提高收入_网赚技巧
·google adsense“允许域名”新功能很有用_网赚技巧
·于源:办南京人“淘宝”的大三学生_站长访谈
·谈谈网站策划和网站运营方面的点滴经验_站长心得
·美国网站兵败中国的10大思路性执行错误_站长心得
·付款流程中的电话确认_google推广
·google adsense的部分规则的背面_google推广
·googleadsense富翁排行榜最猛每月赚30万美元_google推广
相关主题
  • 用delphi实现文件下载的几种方法_delphi教程
  • 用delphi创建服务程序_delphi教程
  • 用delphi做一个有颜色属性的按钮_delphi教程
  • 用delphi开发dll来代替8581协议控制和采集华为psm—a10电源(二)_delphi教程
  • 用delphi编写系统进程监控程序_delphi教程
  • 西部数码虚拟主机

    友情链接
    CNNIC 西部数码
    万网 自助建站
    虚拟主机 asp空间
    域名注册 域名
    域名申请 主页空间
    论坛空间 网站空间
    国际域名 虚拟空间
    空间租用 DDOS防火墙
    成都主机托管 四川主机托管
    主机租用 服务器租用
    网站目录 自助建站
    虚拟主机 网址大全
    软件下载
    自助链接
    虚拟主机资讯 特价虚拟主机
    版权申明:本站文章均来自网络,如有侵权,请联系我们,我们收到后立即删除,谢谢!
    关于我们:站长天空:专业提供最新的站长资讯、在线教程、虚拟主机权威评测、虚拟主机性能对比、网站制作教程,开发教程,站长工具。包括网页制作教程、冲浪宝典、编程参考、操作系统、软件教学、行业动态等。
    特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有。
    发表评论 打印  刷新     关闭