内嵌word文档对象问题?

qazwsx_feng 2002-11-21 02:00:41
请问各位?如何解决从客户端打开的内嵌word文档对象再保存回Domino服务器中?
谢谢!!
...全文
155 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
zyy82 2002-11-25
  • 打赏
  • 举报
回复
喔,原来是Web端的,实在是不好意思。

$oleobjprogid和solefield=doc.~$oleobjfield(0)
Call uidoc.createobject("oleobject",doc.~$oleobjprogid(0),"")



那个是如果RTF中没有有嵌入对象的话,就嵌入一个新的对象。因为这里只处理一个嵌入对象,所以$oleobjprogid(0)这里是"excel.sheet"

solefield=doc.~$oleobjfield(0)
这里的solefield是存储RTF域的名字,这里只处理一个rtf域,这里的值是“body”

zyy82 2002-11-25
  • 打赏
  • 举报
回复
先建立一表单,在表单中加入如下域名:
名称 类型 默认值
BODY RTF文本 无
wordediting 文本,可编辑 “0”
$oleobjprogid 文本,可编辑 " word.document"
$oleobjfield 文本,可编辑 "body"

为表单创建四个操作:
名称 隐藏条件
编辑WORD文档 wordediting="1"
显示修改痕迹 wordediting="1"
返回表单 wordediting="0"
关闭 wordediting="1"

下面利用LOTUSSCRIP编程实现将WORD嵌入到表单的BODY域中,WORDEDITING域用来控制表单中的四个操作按钮在进入WORD中显示“返回表单”,不在WORD中时显示另外三个操作按钮,其他两个域用来控制嵌入的是WORD,而不是其他应用程序。
在表单中定义下述变量:
Dim rtitem As notesrichtextitem
Dim oleobject As Variant
Dim embed As notesembeddedobject

在对“编辑WORD文档”操作的CLICK事件中加入LotusScrip脚本:
Sub Click(Source As Button)
Dim s As New notessession
Dim w As New notesuiworkspace
Dim uidoc As notesuidocument
Dim doc As notesdocument
Dim user As String
Set uidoc=w.currentdocument
Set doc=uidoc.document
Dim solefield As String
doc.wordediting="1"
Call uidoc.refreshhideformulas
If doc.hasitem("$oleobjprogid") Then
solefield=doc.~$oleobjfield(0)
If uidoc.isnewdoc Then
'如果是新建文件,则创建嵌入对象
uidoc.refreshhideformulas
uidoc.gotofield(solefield)
Call uidoc.createobject("oleobject",doc.~$oleobjprogid(0),"")
Else
'如果不是新建文件,则获取嵌入对象
if (doc.hasembedded) Then
Set rtitem=doc.getfirstitem(solefield)
Set rtitem=doc.getfirstitem("body")
Set embed=rtitem.embeddedobjects(0)
user = s.commonusername
Set oleobject=uidoc.getobject(embed.name)
'记录修改痕迹
oleobject.trackrevisions=True
'不打印修改痕迹
oleobject.printrevisions=False
'不显示痕迹
oleobject.showrevisions=False
'记录在WORD中编辑的当前用户
oleobject.parent.username=user
oleobject.parent.userinitials=user
End If

End If
End If
End Sub

在对“显示修改痕迹”操作的CLICK事件中加入LOTUSSCRIP脚本,脚本和“编辑WORD文档”操作的click事件中的基本相同,只是将其对应部分修改以下程序语句:
'记录修改痕迹
oleobject.trackrevisions=True
'不打印修改痕迹
oleobject.printrevisions=True
'不显示痕迹
oleobject.showrevisions=True
'记录在WORD中编辑的当前用户
olebject.parent.username=user
oleobject.parent.userinitials=user
win32c 2002-11-22
  • 打赏
  • 举报
回复
MS Office文档集R50模板建的数据库没看到嵌入的OLE
它是动态嵌入的。我就想知道如何动态嵌入!!
qazwsx_feng 2002-11-22
  • 打赏
  • 举报
回复
知道什么是Domino com 了?以前没看过需要时间,谢谢!
davidnim 2002-11-22
  • 打赏
  • 举报
回复
通过HTML或VB调用Domino COM.
qazwsx_feng 2002-11-22
  • 打赏
  • 举报
回复
davidnim 老大!COM 是不是指CGI 啊!

win32c 我说的word模板指用word编辑一个文档后,从Designer嵌入表单中的对象。
qazwsx_feng 2002-11-22
  • 打赏
  • 举报
回复
word编程不熟,还是先试com .谢谢!
win32c 2002-11-22
  • 打赏
  • 举报
回复
我想问一下
$oleobjprogid和solefield=doc.~$oleobjfield(0)
Call uidoc.createobject("oleobject",doc.~$oleobjprogid(0),"")
那来的??什么意思??
还有WORD模板放在那??我跟踪了MS Office文档集R50模板搞懂什么回事。
十分感激1
davidnim 2002-11-22
  • 打赏
  • 举报
回复
两中思路:
1,制作一个WORD控件,放到页面上;将结果保存之后,通过FTP上传到服务器上;
2,通过DOMINO COM来实现。
qazwsx_feng 2002-11-22
  • 打赏
  • 举报
回复
太难了?没人知道吗!也许不可能实现吧 !
qazwsx_feng 2002-11-22
  • 打赏
  • 举报
回复
不知谁还有办法?谢谢!
qazwsx_feng 2002-11-21
  • 打赏
  • 举报
回复
Sorry!! 没说清楚是从web客户端保存。问题还没解决?不过还是非常感谢!!!
zyy82 2002-11-21
  • 打赏
  • 举报
回复
这是一个操作,是以按钮的形式实现的
qazwsx_feng 2002-11-21
  • 打赏
  • 举报
回复
恕我愚笨?请问该把代码加在何处?文档内button or 操作?谢谢?
zyy82 2002-11-21
  • 打赏
  • 举报
回复
你试试这个先,。。

Sub Click(Source As Button)
Dim s As New notessession
Dim w As New notesuiworkspace
Dim uidoc As notesuidocument
Dim doc As notesdocument
Dim user As String
Set uidoc=w.currentdocument
Set doc=uidoc.document
Dim solefield As String
Dim oleobject As Variant
If doc.hasitem("$oleobjprogid") Then
solefield=doc.~$oleobjfield(0)
If uidoc.isnewdoc Then
uidoc.refreshhideformulas
uidoc.gotofield(solefield)
uidoc.gotofield("body")

Call uidoc.createobject("oleobject",doc.~$oleobjprogid(0),"")
Call uidoc.createobject("oleobject","Word.Document.8","")
Else
'如果不是新建文件,则获取嵌入对象

If (doc.hasembedded) Then
uidoc.editmode=True
doc.wordediting="0"
Call uidoc.refreshhideformulas
Set rtitem=doc.getfirstitem(solefield)
Set rtitem=doc.getfirstitem("body")
Set embed=rtitem.embeddedobjects(0)

user = s.commonusername
Set oleobject=uidoc.getobject(embed.name)


End If
End If
End If
End Sub

535

社区成员

发帖
与我相关
我的任务
社区描述
企业开发 Exchange Server
社区管理员
  • 消息协作社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧