LOTUS/DOMINO学习笔记之邮件发送程序

本篇讲解一个图书订阅系统里的一个预定图书到期提醒的例子,就是用户可以预定书籍,到货后如果一个工作日内没有去领则自动取消您的预定。

     Dim  session  As   New  NotesSession    
    
Dim  db  As  NotesDatabase
    
Dim  memo  As  NotesDocument
    
Dim  view  As  NotesView
    
Dim  rtitem  As  NotesRichTextItem    
    
Set  db = session.CurrentDatabase
    
Set  memo = New  NotesDocument (db)
    
Set  rtitem = New  NotesRichTextItem(memo, " body " )
    
Dim  doc  As  NotesDocument
    
Dim  doc2  As  NotesDocument
    
Dim  colls  As  NotesDocumentCollection    
    
Dim  colls2  As  NotesDocumentCollection
    
Dim  query  As   String     
    
Dim  query2  As   String
    
Dim  i  As   Integer
    
Dim  BorrowName  As   String
    
Dim  eval  As  Variant
    
Dim  bdate  As   String
    
Dim  ldate  As  Variant    
    
Dim  wday  As  Variant
    
Dim  borrowavail  As   Integer
    query
= " form={$borrow} & Borrow_Status=""预定"" & Borrow_BookMailDate<>"""" & Borrow_BookMail=""发送"" "
    
Set  colls = db.Search(query, Nothing , 0 )    
    
If  colls.count = 0   Then
        
Exit Sub
    
End   If     
    
Print   " 进入取消提醒 "
    
Set  doc = colls.GetFirstDocument
    
While   Not  (doc  Is   Nothing )                
        bdate
= doc.GetItemValue( " Borrow_BookMailDate " )( 0 )
        ldate
= Evaluate( " @date(@now) " )
        
' eval=Evaluate("@Date(@Year(@totime({2008-10-12}));@month(@totime({2008-10-12}));@day(@totime({2008-10-12})))")
         ' eval=Evaluate("@totime({" & ldate & "})")
        eval = Evaluate( " (@totime({ "   &  ldate( 0 &   " })-@totime({ "   &  bdate  &   " }))/86400 " )
        wday
= Evaluate( " @weekday(@now) " )
        
If  eval( 0 ) >= 1   And  wday( 0 ) < 7    Then   ' 周六周天除开
            query2 = " form={$book} & Book_ComputerID={ "   &  doc.GetItemValue( " Borrow_ComputerID " )( 0 &   " } "
            
Set  colls2 = db.Search(query2, Nothing , 0 )
            
' 更新该书的可借数量
             If  colls2.Count > 0   Then
                
Set  doc2 = colls2.GetFirstDocument
                
' 取当前可借数量
                eval = Evaluate( " @texttonumber({ "   &  doc2.GetItemValue( " Book_AvailBorrow " )( 0 &   " }) " )
                borrowavail
= eval( 0 )
                
' 取已经预定的数量
                eval = Evaluate( " @texttonumber({ "   &  doc.GetItemValue( " Borrow_Number " )( 0 &   " }) " )
                borrowavail
= borrowavail + eval( 0 )
                doc2.RemoveItem(
" Book_AvailBorrow " )
                
Call  doc2.AppendItemValue( " Book_AvailBorrow " ,borrowavail)
                
If  borrowavail > 0   Then
                    doc2.RemoveItem(
" Book_Status " )
                    
Call  doc2.AppendItemValue( " Book_Status " , " 可借 " )
                
End   If
                
Call  doc2.Save( True , False )
                
' 取消预定
                doc.RemoveItem( " Borrow_Status " )
                
Call  doc.AppendItemValue( " Borrow_Status " , " 取消预定 " )
                
Call  doc.Save( True , False )
                
Print   " CancelBookAlarm:取消预定 "   &  doc.GetItemValue( " Borrow_BookName " )( 0 )
            
End   If
        
Else
            
Set  memo = New  NotesDocument (db)
            
Set  rtitem = New  NotesRichTextItem(memo, " body " )            
            
Call  rtitem.AppendText( " 您预定的<< "   &  doc.GetItemValue( " Borrow_BookName " )( 0 &   " >>书已经到了 "   &   Chr ( 13 &   " 请尽快去管理员出领取,否则在今天将取消您的预定,谢谢 " )
            memo.subject
= " 您预定的<< "   &  doc.GetItemValue( " Borrow_BookName " )( 0 &   " >>书已经到了 "             
            eval
= Evaluate( " @DbLookup({};{hpserver/hwapu}:{book\\archivesmanagement.nsf};{$users};{ "   &  doc.GetItemValue( " Borrow_BorrowName " )( 0 &   " };2) " )
            
Print   " CancelBookAlarm: "   &  eval( 0 &   " 您预定的<< "   &  doc.GetItemValue( " Borrow_BookName " )( 0 &   " >>书已经到了 "
            
Call  memo.Send( False ,eval( 0 ))                
            
Set  memo = Nothing
            
Set  rtitem = Nothing     
            
Print   " CancelBookAlarm:取消预定再次提醒 "   &  doc.GetItemValue( " Borrow_BookName " )( 0 )
        
End   If
        
Set  doc = colls.GetNextDocument(doc)
    Wend

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值