| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3417 人关注过本帖
标题:请教如何用VFP调用word直接打开在编辑状态中的富文本?
只看楼主 加入收藏
znyihan
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2017-2-4
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:9 
请教如何用VFP调用word直接打开在编辑状态中的富文本?
WAIT "正在访问 Word 软件……" WINDOW NOWAIT
WordApp=CREATEOBJECT("Word.application")
If Type("WordApp")#"O"
WAIT CLEAR
MessageBox( "访问Word失败!请检查你的系统是否正确安装 Word 软件!",48,"Word不正常")
RETURN .f.
ENDIF
WAIT "正在设置 Word 页面……" WINDOW NOWAIT
WordApp.Visible =.f.
WordApp.Caption ='测试'
WordApp.Documents.Add
WordApp.Documents(1).Range.Text=thisform.richtext1.text
WAIT CLEAR
WordApp.Visible =.t.
****************************************

我知道问题出在红字那句,因text是文本不带格式!
那应该怎么写呢?

[此贴子已经被作者于2017-2-4 12:57编辑过]

搜索更多相关主题的帖子: 如何 Word 软件 
2017-02-04 09:38
wengjl
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:109
帖 子:2197
专家分:3838
注 册:2007-4-27
收藏
得分:0 

WordApp.Documents(1).Range.Text=thisform.richtext1.text
改成
WordApp.Documents(1).Range.Text="文字"

试了下,完全没有问题

[此贴子已经被作者于2017-2-4 10:36编辑过]


只求每天有一丁点儿的进步就可以了
2017-02-04 10:24
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
收藏
得分:0 
试了下,同意楼上
2017-02-04 11:11
znyihan
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2017-2-4
收藏
得分:0 
thisform.richtext1.text是我表单中的一个richtext控件
里面的内容是有格式的!
按上面的方法,只有文本过去了,格式并没有过去!
WordApp.Documents(1).Range.Text=thisform.richtext1.text=thisform.richtext1.textrtf也不行!
那样一群格式文本全过去了
百度了一下,好象这个问题不好解决!

[此贴子已经被作者于2017-2-4 12:59编辑过]

2017-02-04 11:19
wengjl
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:109
帖 子:2197
专家分:3838
注 册:2007-4-27
收藏
得分:0 
将thisform.richtext1.text赋值给变量

再让WordApp.Documents(1).Range.Text=变量

试试

只求每天有一丁点儿的进步就可以了
2017-02-04 13:24
xinjie
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:19
帖 子:271
专家分:520
注 册:2007-8-11
收藏
得分:15 
先保存为rtf文件,再打开即可。
2017-02-04 13:52
znyihan
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2017-2-4
收藏
得分:0 
按xiejie说的做了!
估计还非得用文件形式存了再读取!

Wait "正在访问 Word 软件……" Window Nowait
WordApp=Createobject("Word.application")
If Type("WordApp")#"O"
    Wait Clear
    Messagebox( "访问Word失败!请检查你的系统是否正确安装 Word 软件!",48,"Word不正常")
    Return .F.
Endif
Wait "正在设置 Word 页面……" Window Nowait
WordApp.Visible =.F.
Thisform.RichText1.SaveFile([.\Temp\temp.rtf],0)
WordApp.Documents.Open(Fullpath("Temp\temp.rtf"))

Wait Clear
WordApp.Visible =.T.

不过有一个新问题出来了,用VFP中调用,如果第一个word没关的话,第二次调用会出错!如何判断呢?
2017-02-04 14:00
znyihan
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2017-2-4
收藏
得分:0 
最终改成了这样!
只有一个不是问题的问题了,打开后的Word不自动在最前面显示!望高手能解决这个小小的遗憾!

aWorksheets=Fullpath(".\temp\temp.rtf")
Local opt,oNum
opt = Ddesetoption("SAFETY")
= Ddesetoption("SAFETY",.F.)
oNum = Ddeinitiate('WINWORD','&aWorksheets') &&aWorksheets是否已经打开
If oNum <> -1
    Messagebox([文档存在并已打开!],64,[提示])
Else
    Wait "正在访问 Word 软件……" Window Nowait
    WordApp=Createobject("Word.application")
    If Type("WordApp")#"O"
        Wait Clear
        Messagebox( "访问Word失败!请检查你的系统是否正确安装 Word 软件!",48,"Word不正常")
        Return .F.
    Endif
    Wait "正在设置 Word 页面……" Window Nowait
    WordApp.Visible =.F.
    Thisform.RichText1.SaveFile([.\Temp\temp.rtf],0)
    WordApp.Documents.Open(Fullpath("Temp\temp.rtf"))
    Wait Clear
    WordApp.Visible =.T.
Endif
2017-02-04 14:43
wcx_cc
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:52
帖 子:352
专家分:1152
注 册:2015-10-2
收藏
得分:5 
在 WordApp.Visible =.T.的前面,加一句:thisform.zorder(1) 或 .zorder(2) 试试如何?
                                也可以加: thisform.AlwaysOnBottom=.t.
                                          thisform.AlwaysOnTop=.f.  && 2句. 目的:让表单置后。

[此贴子已经被作者于2017-2-4 20:09编辑过]

2017-02-04 17:46
xinjie
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:19
帖 子:271
专家分:520
注 册:2007-8-11
收藏
得分:0 
这样是不是可以:
Thisform.RichText1.SaveFile([.\Temp\temp.rtf],0)
WordApp.Visible =.T.
WordApp.Documents.Open(Fullpath("Temp\temp.rtf"))


如果不可以,对象应该有个 appshow 方法,也可以试试。
2017-02-04 17:56
快速回复:请教如何用VFP调用word直接打开在编辑状态中的富文本?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015855 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved