首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 企业软件 > 行业软件 >

用lotus script折离文档附件解决思路

2012-04-12 
用lotus script折离文档附件Sub creatHtmlDim session As New notessessionDim view As notesviewDim vcon

用lotus script折离文档附件
Sub creatHtml
Dim session As New notessession
Dim view As notesview
Dim vconview As notesview
Dim doc As notesdocument
Dim rtitem As NotesRichTextItem
Dim path As String
Dim j As Integer
Dim FilePath As String
Dim fileNames As Variant
Dim objEmbed As NotesEmbeddedObject


Dim FileNameqk As String
Dim FileNumqk As Integer

Set db = session.currentdatabase
pathname$=db.filename
Set view = db.getview("ViewPublishedAdmin")
FileNumqk% = Freefile()
FileNameqk$ ="d:\data\zfjr\list.html"

Open FileNameqk$ For Append Access Write As FileNumqk%
Print #FileNumqk%,"12321";
Close FileNumqk% 

Kill FileNameqk$

Open FileNameqk$ For Append Access Write As FileNumqk%
Call view.Refresh
Set doc = view.getfirstdocument
Dim numflag As Integer
numflag = 0

While Not doc Is Nothing

If numflag = 0 Then '第一次,开始写文件头
Print #FileNumqk%, "<table width=98% align=center border=0 cellspacing=0 cellpadding=0 class=txt12>"
Print #FileNumqk%,"<tr><td colspan=2 class=box_body>"
numflag = 1 
End If

title$ = doc.Title(0)
docId$=doc.DocID(0)
'Set rtitem =doc.GetFirstItem("fBody")
'content$=Cstr(rtitem.text)
fbodystr = Left(doc.fBody,Len(doc.fBody)-1)
fbodystr1 =Cstr(Right(fbodystr,Len(fbodystr)-1))

Print #FileNumqk%,"<a href='";
Print #fileNumqk%, Cstr(docId$)&".html";
Print #FileNumqk%, "' target=_blank ";
Print #filenumqk%, "title=' "
Print #filenumqk%, title$
Print #filenumqk%, "'>";
Print #FileNumqk%, title$;
Print #Filenumqk%,"</a><br>"




'Call tohtml(title$,docId$, fbodystr1,doc)
'printlog(docId$)
FileHtml% = Freefile()
Files$ ="d:\data\zfjr\"+docId$+".html"

Open Files$ For Append Access Write As FileHtml%
Print #FileHtml%,"12321";
Close FileHtml% 

Kill Files$

Open Files$ For Append Access Write As FileHtml%

Print #FileHtml%, "<table width='80%' align='center'>"
Print #FileHtml%, "<tr><td align='center' style='font-size:16'>"
Print #FileHtml%, "<b>"+title$+"</b>";
Print #FileHtml%, "</td></tr>"
Print #FileHtml%, "<tr><td>"
Print #FileHtml%, content$+"<br>"

'fileNum=Evaluate("@Attachments",doc)
fileNames=Evaluate("@AttachmentNames",doc)
'files=Cint(fileNum)
'If files>0 Then
If(Isarray(fileNames)<>0) Then
Forall fileName In fileNames
filepath="d:\data\zfjr\fj"
'Print #FileHtml%,fileName 
filePath=filePath+"\"+fileName
filepath1="fj/"+fileName
Set objEmbed=doc.GetAttachment(filename)
Print #FileHtml%, "<a href='"+filepath1+"'>"+fileName+"</a><br>"
'Print #FileHtml%,"<a href=>"+filename+"</a>"
Call objEmbed.ExtractFile(filePath)'将文档中的附件导出
Call objEmbed.Remove() '删除文档中的附件
End Forall
'''
End If
'End If

Print #FileHtml%, "</td></tr>"

Close FileHtml% 


'=========================生成==============


Set doc=view.getnextdocument(doc)
Wend

If numflag = 0 Then '文件头未写,补写(此时文件为空)
Print #FileNumqk%, "<table width=98% align=center border=0 cellspacing=0 cellpadding=0 class=txt12>"


End If
Print #FileNumqk%,"</td></tr></table>"

Close FileNumqk% 

End Sub

用以上代码实现了有附件的文档的分离,但是如果文档没有附件,报错Object variable not set

[解决办法]
如果只有一个域有附件的话,可以@Attachments,获得附件个数,如果为0,则不执行下面的代码。

热点排行