读书人

用lotus script折离文档附件,该怎么解

发布时间: 2013-01-05 15:20:39 作者: rapoo

用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,则不执行下面的代码。

读书人网 >行业软件

热点推荐