通过Domino COM实现Web的痕迹保留设计思路
2010-09-07 14:16
423 查看
实现步骤:
1,客户端注册NOTES COM控件。(regsvr32 c:\lotus\notes\DOMOBJ.TLB)regsvr32 c:\lotus\notes\nlsxbe.dll
2,在公文数据库中,保存一些已经定制好的公文模板。已供新建公文时使用。
3,表单上加入VBScript将附件从服务器拆离到本地,然后起用WORD。(Word的宏安全性设为中)
4,公文模板中,WORD的文档的退出事件中加入VBA代码,实现文件上传到服务器。
注:为避免启动COM时出现提示口令输入框,可以通过API制作一个DLL来避开。(参考:API例子的)
相关代码:
表单上的VBScript代码:
<SCRIPT LANGUAGE=”VBScript”>
Sub Button1_OnClick
dim s, dir, db, doc, eo, no, word, worddoc
Set s = CreateObject(”Lotus.NotesSession”)
Call s.Initialize
Set db = s.GetDatabase(”sh_server”,”intranet\webtemp.nsf”)
Set doc = db.getDocumentByUNID(”30C11B03D279463548256C7D000DDD74″)
Set eo = doc.getAttachment(”普通公文.doc”)
Call eo.ExtractFile( “C:\Temp\test.doc”)
‘Create the Word object:
Set word = CreateObject(”Word.Application”) ‘Create Word object
Call word.documents.open( “C:\Temp\test.doc” )
Set worddoc = word.activedocument ‘Get a handle for the active document
word.visible = True
‘Call eo.remove
‘Set ritem = doc.getFirstItem(”rtfAttachment”)
‘Set no = ritem.EmbedObject(1454, “” , “C:\Temp\test.doc” )
‘Call doc.save(True,False)
‘MsgBox db.filename + ” & ” + db.server,, “Databases on ” + db.server
End Sub
</SCRIPT>
表单上的按钮代码:
<INPUT NAME=”Button1″ TYPE=”BUTTON” VALUE=”编辑正文”>
Word模板上的VBA代码:
Private Sub Document_Close()
ActiveDocument.Save
Dim s, dir, db, doc, eo, no, word, worddoc
Set s = CreateObject(”Lotus.NotesSession”)
Call s.Initialize
Set db = s.GetDatabase(”sh_server”, “intranet\webtemp.nsf”)
Set doc = db.GetDocumentByUNID(”C47E90193C0E4D3248256C780006A73E”)
Set eo = doc.GetAttachment(”普通公文.doc”)
Call eo.Remove
Set ritem = doc.GetFirstItem(”rtfAttachment”)
Set no = ritem.EmbedObject(1454, “”, “C:\Temp\test.doc”)
Call doc.Save(True, False)
MsgBox db.FileName + ” 文件已上传至服务器!& ” + db.Server, , “Databases on ” + db.Server
End Sub
1,客户端注册NOTES COM控件。(regsvr32 c:\lotus\notes\DOMOBJ.TLB)regsvr32 c:\lotus\notes\nlsxbe.dll
2,在公文数据库中,保存一些已经定制好的公文模板。已供新建公文时使用。
3,表单上加入VBScript将附件从服务器拆离到本地,然后起用WORD。(Word的宏安全性设为中)
4,公文模板中,WORD的文档的退出事件中加入VBA代码,实现文件上传到服务器。
注:为避免启动COM时出现提示口令输入框,可以通过API制作一个DLL来避开。(参考:API例子的)
相关代码:
表单上的VBScript代码:
<SCRIPT LANGUAGE=”VBScript”>
Sub Button1_OnClick
dim s, dir, db, doc, eo, no, word, worddoc
Set s = CreateObject(”Lotus.NotesSession”)
Call s.Initialize
Set db = s.GetDatabase(”sh_server”,”intranet\webtemp.nsf”)
Set doc = db.getDocumentByUNID(”30C11B03D279463548256C7D000DDD74″)
Set eo = doc.getAttachment(”普通公文.doc”)
Call eo.ExtractFile( “C:\Temp\test.doc”)
‘Create the Word object:
Set word = CreateObject(”Word.Application”) ‘Create Word object
Call word.documents.open( “C:\Temp\test.doc” )
Set worddoc = word.activedocument ‘Get a handle for the active document
word.visible = True
‘Call eo.remove
‘Set ritem = doc.getFirstItem(”rtfAttachment”)
‘Set no = ritem.EmbedObject(1454, “” , “C:\Temp\test.doc” )
‘Call doc.save(True,False)
‘MsgBox db.filename + ” & ” + db.server,, “Databases on ” + db.server
End Sub
</SCRIPT>
表单上的按钮代码:
<INPUT NAME=”Button1″ TYPE=”BUTTON” VALUE=”编辑正文”>
Word模板上的VBA代码:
Private Sub Document_Close()
ActiveDocument.Save
Dim s, dir, db, doc, eo, no, word, worddoc
Set s = CreateObject(”Lotus.NotesSession”)
Call s.Initialize
Set db = s.GetDatabase(”sh_server”, “intranet\webtemp.nsf”)
Set doc = db.GetDocumentByUNID(”C47E90193C0E4D3248256C780006A73E”)
Set eo = doc.GetAttachment(”普通公文.doc”)
Call eo.Remove
Set ritem = doc.GetFirstItem(”rtfAttachment”)
Set no = ritem.EmbedObject(1454, “”, “C:\Temp\test.doc”)
Call doc.Save(True, False)
MsgBox db.FileName + ” 文件已上传至服务器!& ” + db.Server, , “Databases on ” + db.Server
End Sub
相关文章推荐
- 通过Domino COM实现Web的痕迹保留设计思路
- WEB环境下办公自动化文档修改痕迹保留的实现
- 通过例子学设计模式之--单例模式以及多线程下说明(C++实现)
- 提高生产力:Web开发基础平台WebCommon的设计和实现
- Android中通过WebView控件实现与JavaScript方法相互调用的地图应用
- js在数组中删除重复的元素自保留一个(两种实现思路)
- web响应式图片设计实现
- 通过Socket实现群聊的思路
- jboss下通过配置log4j.xml实现web应用的日志
- AJAX实现web页面中级联菜单的设计
- VUE+WebPack实现精美Html5游戏设计:cardBattle的启动场景设计
- 基于tomcat 7.0.68 的websocket 实现,及通过 HttpSessionId 实现websocket session 共享
- 基于LVS负载均衡的高性能Web站点设计与实现
- java web 权限管理系统设计与实现
- 实现基于组织机构的数据集权限系统的设计思路讲解【提供完整数据库设计下载】
- 关于大型web服务器的设计思路
- 如何实现宿主机通过web访问虚拟机网站
- 通过WEB实现的定时提醒功能...
- web设计_1_思路总览
- 如何通过设计数据库实现外键的级联删除???答: