IF li_ret <> 0 THEN
//如果Word还没有打开,则新建
li_ret = ole_object.ConnectToNewObject("word.application")
if li_ret <> 0 then
MessageBox('OLE错误','OLE无法连接!错误号:' + string(li_ret))
return
end if
ole_object.Visible = True
END IF
//打开指定数据源
ole_object.documents.open(ls_tempname)
//保存新建的文档
If messagebox("保存","文档已经成功完成,是否保存?",Question!,YesNo!) = 1 then
string docname, named
integer value
value = GetFileSaveName("选择文件",docname, named, "DOC","Doc Files (*.DOC), *.DOC")
If value = 1 THEN
ole_object.ActiveDocument.SaveAs(docname, 0,False,"",True,"",False,False,False, False,False)
//关闭Word
ole_object.ActiveDocument.Close()
ole_object.Application.Quit()
End if
End if
//连接word
IF ole_object.ConnectToNewObject("Word.Application") <> 0 THEN
MessageBox('OLE错误','OLE无法连接!')
return
END IF
ole_object.Visible = True
constant long wdWord9TableBehavior = 1
constant long wdAutoFitFixed = 0
constant long wdCell = 12
string ls_value
integer i, li_docu
constant long wdNotAMergeDocument = -1
constant long wdDoNotSaveChanges = 0
ole_object.Documents.Add("pbtoword_2.dot",False,0)
//重新指定数据源
ole_object.activedocument.mailmerge.opendatasource("datasource.txt")
//执行邮件合并
ole_object.activedocument.mailmerge.execute()
//统计word打开的文档窗口数
li_docu = integer(ole_object.documents.count)
//关闭邮件合并主文档窗口
for i = 1 to li_docu
if ole_object.activedocument.mailmerge.MainDocumentType <> wdNotAMergeDocument then //如果当前文档是邮件合并文档则关闭
ole_object.activedocument.close(wdDoNotSaveChanges)
end if
if i < li_docu then //如果当前文档不是最后一篇文档则激活下一篇文档
ole_object.activedocument.activewindow.next.activate()
end if
next
constant long wdFormatDocument = 0
//保存新建的文档
ole_object.ActiveDocument.SaveAs("sample.doc", 0,False,"",True,"",False,False,False, False,False)