毕业论文开发语言企业开发JAVA技术.NET技术WEB开发Linux/Unix数据库技术Windows平台移动平台嵌入式论文范文英语论文
您现在的位置: 毕业论文 >> 企业开发 >> 正文

lotus代理循环取值的问题

更新时间:2013-4-2:  来源:毕业论文

lotus代理循环取值的问题
我现在在做邮件60天后提醒代理上,假设每天运行一遍这个代理,发过邮件得人就不用发了,我给这个所取值得表单中加了一个域“remindNum”,默认为空值,一旦这个文档被发过邮件的话,该值就变为“XO”,也就不会再次接收邮件了,但现在的问题是为何一次都只能发一封邮件,如果手动运行Domino Designer 会卡死,但依旧只发一封邮件。之前用Do Until doc Is Nothing代替While Not doc Is Nothing用Loop代替Wend,也是只发一封邮件并且Designer卡死。
求各位大神指导指导小弟吧!!!
Sub Initialize
 On Error Goto ErrHandle
 Dim session As New NotesSession
 Dim   i   As   Integer
 Set   db   =   session.CurrentDatabase
 Set view=db.Getview("ReminderMailView")
 
 Call view.Refresh
 Set doc=view.Getfirstdocument()
 Dim msgsubject As String
 
 While Not doc Is Nothing
  
  If doc.remindNum(0)<> "XO" Then
  '===提醒邮件
   Call sendMindMail(doc)
   
  '改变操作记录
   doc.remindNum="XO"
   Call doc.save(False,False)
   
  End If
 Wend
 
 Exit Sub
ErrHandle:
 Msgbox  " 自动更新物料信息代理行号:" &  Erl() & "  错误号:" & Err() & "  毕业论文 错误内容:" & Error()
 Set maildoc=db.createdocument
 maildoc.form = "memo"
 Set rtitem1 = New notesrichtextitem(maildoc,"Body")
 maildoc.subject = "提醒: 自动邮件提醒息代理运行出错!  " & Error & Erl()
 maildoc.sendto = "XXXXXX" //XXXXXX代表收件人地址
 maildoc.send(False) 
End Sub
死循环了..
while

set doc=view.getnextdocument(doc)
weng

你的循环,已经进入死循环了。
第一个文档doc发送出去之后,第一个循环结束,没有将doc指向下一个文档
 While Not doc Is Nothing
  
  If doc.remindNum(0)<> "XO" Then
  '===提醒邮件
   Call sendMindMail(doc)
   
  '改变操作记录
   doc.remindNum="XO"
   Call doc.save(False,False)
   
  End If
   set doc = view.Getnextdocument(doc)
 Wend 

对于该问题的解决方法除了你的方法外,我喜欢把符合条件的文档Search出来放到一个NotesDocumentCollection中再遍历,这样即使call doc.save(false,false)后也不会有问题了。

设为首页 | 联系站长 | 友情链接 | 网站地图 |

copyright©youerw.com 优尔论文网 严禁转载
如果本毕业论文网损害了您的利益或者侵犯了您的权利,请及时联系,我们一定会及时改正。