起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 273|回复: 9

【结贴】[问题]请问如何编辑用打开文件的文件

[复制链接]
发表于 2010-7-6 12:24:01 | 显示全部楼层 |阅读模式
//打开文件
procedure TMainForm.Button3Click(Sender: TObject);
var
lResult: String;
begin
  FileName := dsbFJ.DataSet.FieldByName('LJ').AsString;
  lResult := TUnStructureDocUtils.OpenFile(Context, FileName, TDocAccessKind.akReadOut);
end;
//
//替换Word字段
procedure TMainForm.Button4Click(Sender: TObject);
var
  lSelection, lFind, lReplacement: DispatchHelper;
  i: integer;
  L1,L2: string;
begin
  lSelection := DispatchHelper.Create(FApp.PropertyGet('Selection', []));
  lFind :=  DispatchHelper.Create(lSelection.PropertyGet('Find', []));
  lReplacement := DispatchHelper.Create(lFind.PropertyGet('Replacement', []));

  lFind.InvokeMethod('ClearFormatting', []);
  lReplacement.InvokeMethod('ClearFormatting', []);

  L1 := Edit1.Text;
  L2 := Memo1.Lines.Text;
  lFind.InvokeMethod('Execute', [L1, False, False, False, False, False, True, 1, False, L2,
    2, False, False, False, False]);
end;

请问如何编辑用打开文件的文件,我想对上面代码打开的文件进行字段替换。
回复

使用道具 举报

发表于 2010-7-6 14:14:30 | 显示全部楼层
楼主,什么意思?没有太明白。
我看你Button3Click 是打开附件以 TDocAccessKind.akReadOut 只读的方式,Button4Click 是通过平台的接口去对文件做一个操作。
如果是这样的话, 不应该是 TDocAccessKind.akReadOut 只读的方式吧。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-7-6 14:42:34 | 显示全部楼层
我也是在论坛上找贴,现学现卖,不是很懂。
我想TDocAccessKind调出word类文件,然后通过字段替换,把数据表里的字段导入到这个word里,请问能实现吗?
能的话给点指点。
回复 支持 反对

使用道具 举报

发表于 2010-7-6 14:56:38 | 显示全部楼层
前者可以通过上面的代码,不过不能是TDocAccessKind.akReadOut的方式。
替换word中的内容就是调用vba去控制了,就类似于你1楼的代码。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-7-6 15:07:52 | 显示全部楼层
能给写一段替换调用的代码么,上面代码是在论坛里找的,不是很懂。谢谢了。
回复 支持 反对

使用道具 举报

发表于 2010-7-6 15:12:39 | 显示全部楼层
打开文档的代码 是调用平台的文档库的,这个应该没什么需要解释了
操作word部分,http://bbs.justep.com/forum.php?mod=viewthread&tid=19879 的10楼 有具体的解释和一个完整的例子,它就是对一个现有的word文档里的内容进行替换。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-7-6 15:15:52 | 显示全部楼层
可那个8楼是处理一个本地的Word啊!!
我想问,能不能用
FileName := dsbFJ.DataSet.FieldByName('LJ').AsString;
  lResult := TUnStructureDocUtils.OpenFile(Context, FileName, TDocAccessKind.akReadOut);

在调出文件的时候,用代码直接替换了。
回复 支持 反对

使用道具 举报

发表于 2010-7-6 15:25:23 | 显示全部楼层
不能直接这么做。
因为文件在服务端的,所以你还是要先对文件进行下载到本地,然后进行替换,然后再进行打开(文件是否要上传根据需要去调用上传的代码。)
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-7-6 15:35:38 | 显示全部楼层
哦谢谢了,那我知道怎么做了,请结贴。谢谢。
回复 支持 反对

使用道具 举报

发表于 2010-7-6 15:41:09 | 显示全部楼层
ok
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-8 03:56 , Processed in 0.040929 second(s), 15 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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