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

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

转载于:https://blog.51cto.com/sysmw/391961

Domino学习笔记之邮件发送程序相关推荐

  1. 邮件发送程序(添加附件发送)

    目标:实现一个基于Web的可以发送附件的邮件程序.(涉及的知识点:文件上传+邮件发送) 知识点引入: 文件上传:开发的Web应用是基于HTTP协议的,工作在Request/Response模式下.在这 ...

  2. 【FastDDS学习笔记】HelloWorld示例程序编译和运行

    目录 第一章:[FastDDS学习笔记]Ubuntu22上安装fastDDS环境 第二章:[FastDDS学习笔记]HelloWorld示例程序编译和运行 第三章:[FastDDS学习笔记]Fast- ...

  3. 基于python的图形化邮件发送程序(支持添加附件)

    2019独角兽企业重金招聘Python工程师标准>>> 开发环境:centos7 基于:python3.5 调用库:tkinter smtplib email linux中类outl ...

  4. Rails测试《十一》添加邮件发送程序及测试邮件发送程序

    讲到测试邮件发送程序,我们首先要让系统可以发送邮件.我们先来给系统添加发送邮件的功能. Action Mailer in Rails 3是一个不错的视频教程,大家可以参考. 还有就是http://gu ...

  5. Linux进程线程学习笔记:运行新程序

    Linux进程线程学习笔记:运行新程序 周银辉 在上一篇中我们说到,当启动一个新进程以后,新进程会复制父进程的大部份上下文并接着运行父进程中的代码,如果我们使新进程不运行原父进程的代码,转而运行另外一 ...

  6. ESMTP邮件发送程序

    用汇编语言写ESMTP邮件发送程序 下载本节例子程序和源代码 (9.67 KB) 最近在CSDN论坛上看到许多人问着同一个问题--如何编写带服务器验证的 ESMTP 邮件发送程序,回答的人还真不少:有 ...

  7. python学习笔记[3]-邮件的发送

    本文摘抄自:http://www.cnblogs.com/xiaowuyi/archive/2012/03/17/2404015.html 一.相关模块介绍 发送邮件主要用到了smtplib和emai ...

  8. python-基于yagmail库开发自动邮件发送程序

    目录: 前言: 一,准备工作; 1.安装第三方库 2.邮箱设置步骤 二,编写程序 1.发送单个邮件的程序 2.发送单个邮件的进阶程序 前言: 很多时候,我们发送网络邮件都需要进入邮箱网站或App,可能 ...

  9. java发送邮件354_基于SMTP的JAVA邮件发送程序

    这个程序没有使用JavaMail API,而是根据SMTP协议的要求直接处理协议的细节发送邮件,虽然比较麻烦了一些,但是对了解邮件协议的细节很有帮助的. 本文分两部分,第一部分是SMTP命令介绍(这个 ...

最新文章

  1. [文章集合] 在Windows Server 2012上关于Vmware的几点
  2. 测试分类 --- 根据项目流程阶段和代码可见度划分
  3. nginx服务器绑定域名和设置根目录的方法
  4. 爬动的蠕虫(C++)
  5. [LeetCode]LRU Cache有个问题,求大神解答【已解决】
  6. 查看容器ID以及如何在docker和宿主机之间复制文件
  7. (57)FPGA条件选择无优先级(case)
  8. 组态软件运行在云服务器_能在云服务器上运行软件吗
  9. 漫画:什么是外部排序?
  10. Linux系统centos7+VMwareWorkstation创建共享文件夹错误解决方法集锦
  11. 2022考研-高等数学教程
  12. JAVA菜鸟教程(一)
  13. QListView自定义Item
  14. 计算机exce常用功能,EXCEL常用函数介绍(1)EXCEL 函数 -电脑资料
  15. input框输入文本限制
  16. 推挽变压器与正激变压器的功率比较
  17. 我招聘了一名程序员,试用期都过了,结果发现他学历是假的...
  18. Uav开发杂记-4-无人机开发的C-C++
  19. VIO中的角速度和四元数
  20. 【ABBYY FineReader】pdf文件很清晰但是复制或导出都是乱码

热门文章

  1. 不能连接到 mysql_怎么无法连接到数据库?
  2. mysql记录当前表数据的数据条数据类型_MySQL学习记录:数据类型与操作数据表...
  3. java中paint_java中paint()的具体用法是什么?
  4. java 类型 转换 valueOf和parse...
  5. promise then返回值
  6. nginx 小简单指令
  7. vim shell命令
  8. linux systemctl
  9. matplotlib.pyplot.figure
  10. 信息安全完全参考手册之信息安全概述(第一章)