在PowerBuilder中利用Word输出报表
- 格式:pdf
- 大小:184.29 KB
- 文档页数:2
利用powerbuilder实现中国式报表的设计方法随着中国经济的不断发展,各个行业的信息化建设也在不断提升。
其中,报表系统是企业信息化建设中必不可少的一部分。
在中国,由于汉字的存在,报表系统的设计与国外有所不同。
本文将介绍利用PowerBuilder实现中国式报表的设计方法。
一、中国式报表的特点中国式报表主要有以下几个特点:1. 汉字排版由于汉字的存在,中国式报表在排版方面与国外有所不同。
汉字的书写方向是从上到下、从右到左,因此,中国式报表的排版也是从上到下、从右到左。
2. 纸张大小中国式报表使用的纸张大小一般为A4或B5,而国外报表一般使用Letter或Legal纸张。
3. 格式排版中国式报表中,每一行数据都有固定的格式,例如,第一列为序号,第二列为名称,第三列为编号等等。
这些格式是在设计报表时就已经确定好的,用户不可更改。
4. 页码设置在中国式报表中,页码的设置与国外有所不同。
在国外,页码一般位于报表的底部,而在中国式报表中,页码一般位于报表的右上角。
二、PowerBuilder报表设计方法PowerBuilder是一款功能强大的开发工具,它可以用于开发各种类型的应用程序,其中包括报表系统。
在PowerBuilder中,可以使用DataWindow控件来实现报表的设计。
1. 创建DataWindow控件首先,需要在PowerBuilder中创建一个DataWindow控件。
在创建DataWindow控件时,需要选择报表类型,可以选择Detail类型或Group类型。
2. 设计报表格式在DataWindow控件中,可以通过拖拽控件的方式来设计报表格式。
在设计报表时,需要注意以下几点:(1)设置纸张大小在DataWindow控件中,可以设置报表的纸张大小。
在中国式报表中,一般使用A4或B5纸张大小。
(2)设置页眉和页脚在中国式报表中,页码一般位于报表的右上角。
因此,需要在DataWindow控件中设置页眉和页脚,并将页码添加到页眉中。
在PB中嵌入Word文档国防科技大学3院5队98研张涛罗诗途PB(PowerBuilder) 是Sybase公司推出的一种优秀的数据库开发工具,利用它的数据窗口控件可以快速地开发出一个数据管理系统。
现在许多单位很注重报表的格式,需要不同类型的报表,所以必须提高报表格式的多样性。
虽然我们可以利用PB设计出具有打印功能的窗口,但是由于格式是事先规定好的,用户很难根据需要进行修改。
Word是大家熟悉的一种文字处理工具,具有强大的编辑与打印功能。
如果能够将数据源动态地导入到Word文档中,然后在Word中调整和打印,用户的自由度就比较大。
下面笔者以生成用户话费清单为例,介绍一种通过OLE技术嵌入Word文档的方法。
创建模板文件首先,我们建立一个报表样式的模板文件,取名为"用户清单模板.dot"。
根据需要录入静态文本,并在需要插入动态数据的地方插入"书签"。
"书签"名字与PB 数据源中列的名字一致,如图1所示。
图1 模板文件编写程序1.数据窗口d_user和d_cost,分别取自移动电话用户基本信息表和用户话费记录表,数据模型如2. PB和Word通信时,如果向Word中输出汉字,则该汉字后面会出现与汉字个数相同的乱码,所以必须编写函数处理这种情况。
定义全局函数integerf_getcnnum(string aString)。
代码如下:string ls_ch //临时单元string ls_SecondSecTable //存放所有国标二级汉字读音integer li_num = 0 //返回值integer i,jfor i = 1 to Len(aString)ls_ch = Mid(aString,i,1)if Asc(ls_ch) >= 128 then //判定是汉字li_num++i = i+1end ifnextreturn li_num3.创建窗口w_costlist,其中包含两个数据窗口dw_1和dw_2,分别对应数据窗口d_user和d_cost。
使用PowerDesi gner工具生成数据库表结构
设计Word文档
【摘要】
本文主要阐述了使用Po werDe signe r工具生成数据库表结构设计的W o rd文档步骤,生成方式主要有两种:内置报表模版方式、自定义报表模版方式,一般采用自定义报表模版方式生成。
【关键字】
Word;PowerD e signer;
1.内置报表模版方式
1) 采用Powe rDesigner内置报表直接生成,选择Gene rate Report选项
2) 内置有三种模版供选择(如图所示),可以生成两种格式的报表:H TML/RTF(word),
其它选项参考图示,说明:Print p revie w为预览方式。
3) 模版生成过程图:
4) 内置模版位置路径:Sybase\PowerD esign er 16\Resour ce Files\Report Templa tes 2. 自定义报表模版方式
1) 选择Repo rt Templa tes选项
2) 选择后,会出现内置模版列表:
3) 选择新建后出现如图所示:
4) 输入模版名称,选择模版语言和Phys ical Data Model,点击OK
5) 现在可以按自己的要求构造模版,并保存,以下提供一个样例模版参考:
wordTemplate.rtp
6) 设置好模版后,点击Gene rate Report再生成报表
7) 选择自定义的模版,点击OK:
8) 生成的报表:
参考手册:
Foxit PDF
Document。
powerdesigner连接mysql和导出表到word文档PowerDesigner连接到mysql数据库,、查询表之间的关系由于MySQL自己的安装程序不包含ODBC的驱动,所以PowerDesigner是不能连接到MySQL的.需要安装MyODBC开发版3.51来访问.自行下载MyODBC-3.51.11-1-win.exe并安装~打开Powerdesigner,选择【Database】─【configer Connection】点击图标栏的第二个图标,新增数据源图标,弹出创建新数据源对话框,选择用户数据源(只用于当前机器)(U),点击【下一步】按钮,选择的驱动程序为:MySQL ODBC 3.51 Driver ,点击【下一步】按钮,点击【完成】按钮,将弹出一个对话框,输入Data Source Name 、Server、User、Password、Database点击【Test】按钮,弹出Success:connection was made! 对话框。
点击【OK】按钮,会在Configure Data Connections 列表中看到你刚刚建立的数据源,3.1 在powerDesigner中建一个工程,file -> reverse engineer ->Database3.2 选择我们前面(2.4)配置好的connector/odbcClick ->Connect3.3看,数据进来,显示出来了Click ‘OK’正在导入中。
展示一哈关系图:Author:**************如有雷同纯属巧合!PowerDesigner导出表到word一、模版修改在导出表时,powerdesigner默认为我们提供了很多的模版,在工具栏中选择【Report--->Report Template】即可看到所有的默认模版。
如图一:图一模版列表这里我们为了导出powerdesigner中创建的表,在工具栏中选择【Report--->Reports】(快捷键Ctrl+E),然后创建一个New Report,如下图二所以,选择Standard Physical Report,这里选择的标准的模版,点击OK确定。
Brief Intorduction to Using Word to Create the
Table from Delphi
作者: 陈琦 董玉德
作者机构: 中国科学技术大学计算系,安徽,合肥,230022 中国科学技术大学计算系,安徽,合肥,230022
出版物刊名: 安徽职业技术学院学报
页码: 17-20页
主题词: Delphi 报表 Word
摘要:本文介绍了在Delphi编程中的一种报表解决技巧--使用Delphi中Servers组件实现与Office的无缝结合,将生成报表导入到用户所熟悉的Word中,可使用户自己在Word里进行一些开发商无法了解的复杂的操作.本方法主要通过调用Servers组件上的wordapplication(word 服务器控件)、worddocument(word 文档控件)和wordfont(设word字体的控件),对这三种控件本身的方法进行编程来实现的,是一种较为高效的报表实现方法.。
PB(PowerBuilder)是Sybase公司推出的一种优秀的数据库开发工具,利用它的数据窗口控件可以快速地开发出一个数据管理系统。
现在许多单位很注重报表的格式,需要不同类型的报表,所以必须提高报表格式的多样性。
虽然我们可以利用PB设计出具有打印功能的窗口,但是由于格式是事先规定好的,用户很难根据需要进行修改。
Word是大家熟悉的一种文字处理工具,具有强大的编辑与打印功能。
如果能够将数据源动态地导入到Word文档中,然后在Word中调整和打印,用户的自由度就比较大。
下面笔者以生成用户话费清单为例,介绍一种通过OLE技术嵌入Word文档的方法。
创建模板文件首先,我们建立一个报表样式的模板文件,取名为"用户清单模板.dot"。
根据需要录入静态文本,并在需要插入动态数据的地方插入"书签"。
"书签"名字与PB数据源中列的名字一致,如图1所示。
图1 模板文件编写程序1.数据窗口d_user和d_cost,分别取自移动电话用户基本信息表和用户话费记录表,数据模型如2.PB和Word通信时,如果向Word中输出汉字,则该汉字后面会出现与汉字个数相同的乱码,所以必须编写函数处理这种情况。
定义全局函数integer f_getcnnum(string aString)。
代码如下:string ls_ch //临时单元string ls_SecondSecTable //存放所有国标二级汉字读音integer li_num = 0 //返回值integer i,jfor i = 1 to Len(aString)ls_ch = Mid(aString,i,1)if Asc(ls_ch) >= 128 then //判定是汉字li_num++i = i+1end ifnextreturn li_num3.创建窗口w_costlist,其中包含两个数据窗口dw_1和dw_2,分别对应数据窗口d_user 和d_cost。
在PowerBuilder中利用自动化技术调用Excel处理与打印表格摘要Microsoft公司的Office办公软件中的Excel是一种专业的电子表格处理软件,Microsoft公司对它的Office软件系列都提供了对自动化技术的支持,这样就可以通过其他高级编程语言调用Office软件系列,利用其成熟而可靠的技术与功能来轻松实现特定功能。
本文中,将通过自动化技术,实现在PowerBuilder中调用Excel来实现表格的输出与打印。
关键词自动化 Excel PowerBuilder 表格1 问题的提出在为某企业设计电子图文档管理系统中,用户提出要求,要能够快速输出某些电子表格。
在未使用自动化技术之前,该企业使用的是AutoCad软件来一次性将多个表格生成到一个DWG文件中,然后通过绘图仪出图。
这种做法的好处在于能够有效的节省企业的开支,一次性生成大量的表格。
但是,缺点也是明显的:这种做法欠缺灵活性,当遇到只需要输出少量表格的情况时,做法过于复杂。
即这种做法非常适合于大量表格的批量输出,而不适合个别表格的单独输出。
正是在这种背景下,我们提出了使用Excel电子表格处理软件来处理该企业的表格输出问题。
Excel软件是专门为处理各式电子表格而设计,它能够非常高效而专业的处理各式表格,并且非常关键的是:它具有表格计算汇总功能,在这一点上,AutoCad软件是无法相比的。
另外一个原因,在当前的企业中,打印机的使用日益普及,打印速度也日益加快,当多个用户同时需要打印时,可以通过高速的网络打印机来轻松实现,在这一点上,使用Excel也具有一定的优势。
2 自动化技术Microsoft公司提供的自动化技术,简单的说,就是将某一个应用程序的功能(可能是一部分)当作一系列的对象来向其他的外部应用程序暴露(Expose),这个外部应用程序就可以使用这些对象,这个过程就被称为自动化(Automation)。
例如,Excel,我们可以将它的大部分功能当作一系列对象来加以暴露,然后在另外的应用程序中使用这些对象,这就是使用自动化对象来调用Excel完成指定功能的关键所在。
PB中数据窗口打印功能的多种实现方式随着计算机技术得到迅猛的发展,计算机管理已经在各个领域普及,社会也越来越离不开信息网络。
各种信息的管理离不开数据库的使用,powerbuilder是一款非常强大的数据库开发管理软件。
很多信息在使用时需要打印出来使用,为此Powerbuilder提供了数据窗口打印功能。
该文将对在powerbuilder中如何实现数据窗口打印功能的几种方式进行说明。
1 单一数据窗口的打印功能实现可以在程序中调用数据窗口的控件的print函数打印数据窗口中的内容,打印内容与数据窗口控件中在屏幕中显示的一致(所见即所得功能),print函数有两种语法使用格式。
1)将数据窗口控件的内容作为一个单独的打印作业把数据窗口控件的内容作为单独的打印作业发送的打印机上的语法格式:dwcontrol.print({canceldialog})其中,dwcontrol为数据窗口控件名称,canceldianlog是可选参数,是打印时是否为用户提供能够取消打印操作的对话框。
如果值是true,则提供对话框,如果值是false,则不提供对话窗口。
使用print函数打印数据窗口时,powerbuilder自动打开打印作业,然后将数据发送至打印机进行打印,打印结束后自动关闭打印作业,这个过程不需要编写然后程序代码。
2)将数据窗口控件的内容作为图形进行打印将数据窗口控件作为图形发送的打印机进行打印的语法格式:dwcontrol.print(jobname,x,y{,width,height})其中,dwcontrol是数据窗口控件名称;jobname是函数printopen 函数返回的作业号;x是数据窗口左上角在打印页上x坐标位置;y同x 作用一致,表示数据窗口左上角在打印页上y坐标位置;width指定数据窗口打印宽度;height为指定数据窗口打印高度。
Width和height参数可以省略,如果省略,打印按照数据窗口实际数据打印。
PowerDesigner15
1.首先新建报告模板
语言选择简体中文
直接点完成就行,接下来会弹出一个保存界面,取消就行报告模板会出现在左侧的菜单栏
右侧会有默认的报告选项,如图所示
如果不需要更改输出列,报告模板就已经创建好了
然后在左侧菜单栏选择model双击,回到model的界面,直接生成报告即可
如果需要更改列清单,在左侧菜单栏双击report1,到report1编辑界面,将右侧默认的设置先删除
删完之后应该是这样
然后,选择下图中的两项(图片放大看就行),添加到右侧的Secftion_1下,左键选中拖动到Secftion_1即可
添加完成,如下图
选中列清单,右键Layout
然后选择想要显示的列(打钩即会显示)
Ps:特别注意width要调整好,不然很难看。
PB 数据窗口数据导出到word文件中PB 数据窗口数据导出到word,excel博客分类: powerbuilderExcelJ#WindowsPB 数据窗口数据导出到word,excel, excel 可以自定义修改excel文档的列宽对齐方式,字体样式等// dwsave2word 调用oleglobal type gf_exportdata2word from function_object end typeforward prototypesglobal subroutine gf_exportdata2word (datawindow ad_datawindow) end prototypesglobal subroutine gf_exportdata2word (datawindow ad_datawindow);stringls_filepath ls_filepath=gf_getfilesavename() OleObject OleObjectWord OleObjectWord=Create OleObject // 连接wordif OleObjectWord.ConnectToNewObject(\ Messagebox(\提示\连接错误!\return end ifOleObjectWord.visible=false //word文档在操作数据过程中是否可见Long col_colnum,col_rownum Constant Long wdTableBehavior=1 Constant Long wdAutoFitFixed=0 Constant Long wdCell=12 String str_value// 得到数据窗口数据的列数和行数(行数应该是数据行数+1)col_colnum=Long(ad_datawindow.object.datawindow.column.count)col_rownum=ad_datawindow.rowcount() + 1 // 先在word文档中画好表格SetPointer(HourGlass!) OleObjectWord.Documents.AddOleObjectWord.ActiveDocument.Tables.Add(OleObjectWord.Selection.Range,& +col_rownum,col_colnum,wdTableBehavior,wdAutoFitFixed)string ls_colname integer i,j,k,l for i=1 to col_colnum //得到标题头的名称ls_colname=ad_datawindow.Describe('#'+string(i)+\strvalue=ad_datawindow.DEscri be(ls_colname+\OleObjectWord.Selection.TypeText(str_value)OleObjectWord.Selection.MoveRight(wdCell) Nextad_datawindow.setRedraw(false)OleObjectWord.Selection.MoveLeft(wdCell) SetPointer(HourGlass!) for i=2 to col_rownum for j=1 to col_colnumad_datawindow.Scrolltorow(i - 1) ad_datawindow.SetColumn(j)strvalue=ad_datawindow.GetItemstring(i - 1,j) if isnull(str_value) then strvalue='' end ifOleObjectWord.Selection.MoveRight(wdCell)OleObjectWord.Selection.TypeText(str_value) next nextad_datawindow.setredraw(true) Constant long wdFormatDocument=0 // 保存新建的文档OleObjectWord.ActiveDocument.SaveAs(ls_filepath,0,false,\e,false) boolean lb_existlb_exist = FileExists(ls_filepath)if lb_exist thenmessagebox(\提示\数据已经保存到\end if //断开ole连接OleObjectWord.DisconnectObject() destroy OleObjectWordend subroutine// dwsave2xls 调用oleglobal type gf_dwsavetoexcel from function_object end typeforward prototypesglobal function integer gf_dwsavetoexcel (datawindow adw) end prototypesglobal function integer gf_dwsavetoexcel (datawindow adw); string xlsname, named integer value string col_del,first_delvalue = GetFileSaveName(\另存为\ xlsname,named,\ Files (*.XLS), *.XLS\ if value = 1 thenadw.saveas(xlsname,Excel!,TRUE) else return 2 end ifconstant integer ppLayoutBlank = 12 OLEObject ole_objectole_object = CREATE OLEObjectinteger li_retli_ret = ole_object.ConnectToObject(\ IF li_ret <> 0 THENli_ret = ole_object.ConnectToNewObject(\ IF li_ret <> 0 THENmessagebox(\错误\无法连接!~r~n错误号:\ + string(li_ret)) Return 0 END IFole_object.visible = False END IFpointer oldpointeroldpointer = SetPointer(HourGlass!)ole_object.Workbooks.open(xlsname) ole_object.WorkSheets[1].Activatelong columncount, rowscountcolumncount = long(adw.object.datawindow.column.count) rowscount = adw.rowcount() + 1string ls_colname[],ls_value integer i,jlong handlehandle = OpenChannel(\ xlsname)// 将列名转化为中文名称,即标题头名称 for j = 1 to columncountls_colname[j] = adw.describe(\ ls_value =adw.describe(ls_colname[j]+\// ole_object.activesheet.cells[1,j].value = ls_valueSetRemote(\ ls_value, handle) next开始的方法datawindowchild ldw_child long ll_foundFor j = 1 To columncount //col_del标识将要删除不可见的列if adw.Describe(\ + String(j) + \ =\ thenIF integer(j)<27 then //当列小于26时,excel中用A-Z表示列号first_del = char(integer(J)+64) else//大于26,小于等于52列时,AA-AZ,大于52列时可能性不大未做考虑first_del= \ end ifcol_del=col_del + first_del +\ first_del+\ \continueend if//当列可见且为下拉数据窗口时,数据值转化为显示值If adw.Describe(\ + String(j) + \ = 'dddw' Thenadw.GetChild( ls_colname[j], ldw_child )for i=1 to rowscount - 1//\是我通常用下拉数据子窗口的值以及显示值 //更通用的方法是用DDDW.DataColumn,DDDW.DisplayColumn得到 ll_found = ldw_child.Find(\ +\ '\ 1, ldw_child.RowCount()) if ll_found>0 thenSetRemote(\ handle)感谢您的阅读,祝您生活愉快。
PowerDesigner-制作Word导出模版
定制导出模版
当然这不是我们想要的word,下⾯看如何做⼀个⾃定义模版
1. 在⼯具栏中选择【Report -->Reports】,如下图
点击第⼆个图标创建⼀个Template,如下图
2. 选中Physical Data Model,OK确认
在Available items区域找到List of Tables和List of Table Columns,双击添加到Template items区域
⼀般导出word也就只需要这两个
List of Tables :所有表的清单,默认显⽰表名和中⽂描述,⼀般不需要改动
List of Table Columns :表的列信息
3. 右键List of Table Columns,如下图所⽰
Format:字体设置,⼀般⽤默认的
Layout:需要显⽰的属性和显⽰的宽度
Selection:排序和属性过滤,⼀般⽤默认的
4. 设置导出word⽂档的页眉和页脚,右键模版如下图,不爽的是第⼀和第⼆页的页眉页脚这个设置不了
5. 设置title page,右键report如下图
选了no title page竟然没效果,郁闷。
编程实现PB数据窗口与word表格的相互转换作者:望强在用PowerBuilder开发应用程序时,有时用户要求把外单位以Word表格形式提供的数据导入到数据窗口中,有时又需要把数据窗口导出成Word表格。
用过PB的人都知道,虽然PB的数据窗口对象提供了ImportFile和SaveAs这样两个函数,但是他们都不支持Word表格的导入导出,笔者只好另辟蹊径,现将实现的方法跟大家作个介绍。
一、将Word表格中的数据导入到数据窗口中基本思路:在Word文档里选中要导入的表格行,点鼠标右键复制到剪贴板,再从剪贴板粘贴到一个多行文本编辑框中,行列数据就变成了以回车符和制表符分割的纯文本,依次取出插到数据窗口中既可实现数据导入。
具体实现:在需要此功能的窗体上添加一个多行文本编辑框mle_1,visible属性设为False,运行时不显示;再添加一个按钮,名称Name设为cb_paste,文本Text设为“粘贴自word”,按钮cb_paste 的clicked事件对应的script代码如下:int row,p1,p2,istring str,valmle_1.Paste()//将剪贴板的内容粘贴至mle_1中do while mle_1.text<>""p1=pos(mle_1.text,"~r")//根据回车符切出行记录字符串if p1>0 then//有一个回车符则在数据窗口中增加一行记录row=dw_1.insertrow(0)str=left(mle_1.text,p1 -1)//去掉字符串结尾的回车符i=1do while str<>""p2=pos(str,"~t")//根据制表符Tab切出列字符串if p2>0 theni=i+1val=left(str,p2 -1) //去掉字符串结尾的制表符dw_1.setitem(row,i,val)//设置新插入行的列值str=mid(str,p2+1)else//将字符串剩余部分赋给最后一列i=i+1dw_1.setitem(row,i,str)exitend ifloopmle_1.text=mid(mle_1.text,p1+2)elseexitend ifloopif dw_1.update()>0 then //保存导入的数据commit;elserollback;end if二、将数据窗口导出成Word表格基本思路:将数据窗口的数据逐行读出,以制表符区分列,以回车符区分行,拼接成一个长字符串,复制到剪贴板中;然后动态创建一个OLE对象,跟事先准备的一个Word临时文档关联,将剪贴板中的内容粘贴到该文档,利用Word可以将文字转换成表格的功能,实现数据导出成Word表格。
用Word做Delphi报表输出工具用Word做Delphi报表输出工具崔先迤笔者在实际应用中发现,报表的内容一般很少变动,但其字体格式及版式是经常变动的,而且有时用户为了某种需要,不想修改数据库的真实内容而又要改变报表内容。
如果用ReportSmith可以解决前者问题,但对于后者则无能为力了,且其界面是英文的,不合用户习惯。
如果用3.0中的Qreport的报表部件,则两者都不能实时解决,必须修改原代码后重新编译才能使用。
而使用Word及Excel则完全可以克服以上不足。
具体实现如下(以Word实现为例):首先用Word编辑报表格式,并排好版,把将要输出的数据项用表单域代替,并取名。
这里我们暂时假设有表单域Item1及Item2(均为文本型),将这个文档存为模板文件Example.dot,然后按如下步骤进行:1)运行Delphi3,在Form1里加入一个System部件集里的TDdeClientCov 部件,取名为DdeExample,将其ConnectMode设为ddeManual(手动方式);将DdeService 设为‘(WinWord)';将ServiceApplication设为‘WinWord'。
2)编写一个自定义过程,以激活Word,如下:procedure Tform1.WordActive(Cmds: TStrings);varWordPath: String;beginif(not DdeExample.OpenLink) then {判断是否巳动态链接}beginif(FindWindow(′OpusApp′, nil)=0) thenbeginWordP ath := ′C:\msoffice\winword′;if(WordPath=′′) thenShowMessage(′中文Word未安装或未设置路径,请安装设置Word中文版。
′)elsebeginDdeExample.ServiceApplication := WordPath+′\Winword.exe′;if(DdeExample.OpenLink) {如果巳动态链接执行宏命令}then DdeExample.ExecuteMacroLines(Cmds,False)else ShowMessage(′无法启动Word中文版!′);DdeExample.ServiceApplication := ′WinWord.exe′;end;endelsebegin{如果巳动态链接执行宏命令}DdeExample.ExecuteMacroLines(Cmds,False);end;endelseDdeExample.ExecuteMacroLines(Cmds,false);end;在private声明区里加入如下:procedure ActiveWord(Cmds: TStrings);3)在Form1中加入一个按钮Button1,在其onclick事件里写如下代码:procedure TForm1.Button1Click(Sender: TObject);varCmds:TStringList;{创建Cmds}TempItem1,TempItem2:String;begincmds:=TStringList.Create;cmds.Clear;TempItem1:=′数据项一′;TempItem2:=′数据项二′;with Cmds dobeginClear;Add(′[FileNew.Template = ″Example.Dot″]′);{打开模板文件Example.Dot}Add(′[AppMaximize]′);{文档最大化}Ad d(′[SetFormResult ″Item1″,″′+TempItem1+′″]′);{将数据TempItem1传给表单域Item1}Add(′[SetFormResult ″Item2″,″′+TempItem2+′″]);{将数据TempItem2传给表单域Item2}end;WordActive(DdeExample,Cmds);{调用自定义过程}Cmds.Free;{释放Cmds}end;运行这个程序,单击Button1,大家可以发现Word被启动了,屏幕上出现了&ldquo:数据项一&rdquo;数据项二&rdquo两个数据项。