起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 341|回复: 12

求助:当前数据怎么导出为WORD

[复制链接]
发表于 2008-8-26 15:40:17 | 显示全部楼层 |阅读模式
我想把当前窗体数据导出为Word 改怎么做,此功能有多个数据集。
回复

使用道具 举报

发表于 2008-8-26 16:07:00 | 显示全部楼层
平台没有提供方法直接导出数据到word。
楼主需要自己写代码控制VBA
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-8-26 16:09:22 | 显示全部楼层
哦,没写过,能否指点一下,怎么写。
回复 支持 反对

使用道具 举报

发表于 2008-8-26 16:20:59 | 显示全部楼层
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-8-26 17:12:17 | 显示全部楼层
我看了看,没怎么看明白,谁写过现成的方法吗,帮忙贴上看看啊。
回复 支持 反对

使用道具 举报

发表于 2008-8-26 17:15:48 | 显示全部楼层
楼主写Word的宏脚本,需要楼主自已去录, 之后转成平台脚本.
先看看在word中,录制的宏脚本
Sub Macro1()
'
' Macro1 Macro
' 宏在 2006-10-8 由 liujian 录制
'
    Application.UserName = "liujian"
    Application.UserInitials = "alang"
    Application.UserAddress = ""
    ActiveDocument.TrackRevisions = Not ActiveDocument.TrackRevisions
End Sub

以下是在平台上的写法
var
  doc: System.DispatchHelper;
  app: System.DispatchHelper;
  sel: System.DispatchHelper;
begin
  dbedtContent.DataSource.DataSet.Edit;
  TOleContainer(dbedtContent.InplaceControl).DoVerb(0);     //字段数据类型为二进制,表现类型为OLE
  doc := System.DispatchHelper.Create(TOleContainer(dbedtContent.InplaceControl).OleObject);
  app := System.DispatchHelper.Create(doc.PropertyGet('Application', []));
  app.PropertyPut('UserName', [edtAuthor.Text]);   //设置用户名
  app.PropertyPut('UserInitials', ['alang']);    //设置用户简称
  doc.PropertyPut('TrackRevisions', [True]);   //设置痕迹保留

--------------------------------
帮助文件中,对DispatchHelper的描述
NameSpace: System
--------------------------------------------------------------------------------
DispatchHelper = class(Object)
private
  idispatch: TObject;
  function Invoke(Name: string; Flags: Longword; ParamsByRef: array of Boolean; Params: array of TObject): TObject; overload;
public
  constructor create(idispatch: TObject); overload;
  function InvokeMethod(Name: string; Params: array of TObject): TObject; overload;
  function InvokeMethod(Name: string; ParamsByRef: array of Boolean; Params: array of TObject): TObject; overload;
  function PropertyGet(Name: string; Params: array of TObject): TObject; overload;
  procedure PropertyPut(Name: string; Params: array of TObject); overload;
end;
利用对象方式来访问Dispatch接口类型的对象。
InvokeMethod 调用对象的方法
PropertyPut设置对象的属性
PropertyGet获取对象的属性
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-8-27 08:22:17 | 显示全部楼层
此方法能把当前数据导到word里面吗,我看你写的方法是对word的操作吧,有三方控件可以用吗。
回复 支持 反对

使用道具 举报

发表于 2008-8-27 08:39:02 | 显示全部楼层
这个例子是dispatchhelper的一个例子,用来设置文档属性(作者、简称)和修改留痕的。
楼主可以参考它做自己的东西。

或者,楼主也可以上网找些第三方控件来完成对word的控制。
回复 支持 反对

使用道具 举报

发表于 2008-8-27 08:42:01 | 显示全部楼层
是word操作,用VBS宏进行word操作. 将这些宏转成平台代码,就可以了.
没有现成的三方控件可以用.
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-8-27 08:44:14 | 显示全部楼层
哦,本论坛没有谁做过导出Word吗,在网上没找到啊,还真是麻烦。谁知道怎么写啊,帮帮兄弟吧。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-20 23:48 , Processed in 0.037381 second(s), 16 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表