通过Domino COM实现Web的痕迹保留设计思路

王朝other·作者佚名  2006-01-08
窄屏简体版  字體: |||超大  

总体思路:

实现步骤:

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

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航