• LotusScript中的命名文档


    大家好,才是真的好。

    本篇我们主要讲述Domino V12.0.x中的LotusScript语言新特性。

    首先进行一下概念普及,LotusScript是主要是Notes/Domino产品中使用的面向对象编程语言,当然LotusScript也可以在另外一些产品中使用,不过现在的人肯定很陌生,例如Lotus 1-2-3。另外,LotusScript也可以通过OLE库来访问MS Office文档。

    很多外行把LotusScript直接称之为VB,这是有一定道理,因为LotusScript和VB都是从B语言演化而来,具有非常类似的代码语法和结构,不过其中的对象类大有不同。

    Notes/Domino平台这几年升级很快,更多人主要关注平台整体特性,很少有人关注,LotusScript这几年到底发生了什么进步。今天介绍的是Notes Domino V12.0.1中带来的一项新的LotusScript特性,就是Notes命名文档。

    Notes命名文档和以前我们用到的简要表文档非常类似,用来存储用户或应用参数,不显示在任何文件夹或视图中,只能通过后台代码的方式来进行访问;但同时也有很大的不同,命名文档使用字符串键存储和检索Notes文档,存储读取速度也快,而且命名文档没有NoteID属性等。

    我们先看下面几行简单代码:

    Dim s As New NotesSession
    Dim db As NotesDatabase
    Dim doc As NotesDocument
    	
    Set db = s.CurrentDatabase
    Set doc = db.GetNamedDocument("docName1")
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    该代码中的db.GetNamedDocument一行,就是在当前的Notes数据库中创建了一个docName1名称的文档。

    这个文档是一个空文档,啥也没有。GetNamedDocument方法是Domino V12.0.1中的NotesDatabase对象新增的方法,里面有两个参数,语法是Set doc = db.GetNamedDocument( , ),name参数即文档的名称,userame参数用来指定和命名文档相关的用户。

    这个文档不需要使用save方法即已经保存在Notes数据库中,现在你可以给它创建字段并进行数据存储,例如

    Dim s As New NotesSession
    Dim db As NotesDatabase
    Dim doc As NotesDocument
    	
    Set db = s.CurrentDatabase
    Set doc = db.GetNamedDocument("docName1")
    Call doc.ReplaceItemValue("subject","我是一个命名文档")
    Call doc.ReplaceItemValue("body","这是我的body字段,也不用保存,我就会存在数据库中")
    Msgbox doc.body(0)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    运行该代码则出现下列提示:
    在这里插入图片描述
    现在我们总结一下:Notes命名文档是一类特殊的文档,类似于以前的简要表文档,用来存储用户自己想存放的参数或数据。这些参数和数据不会出现在任何Notes数据库属性、文件夹和视图当中,它通过字符串键存储和检索,访问后也可以使用普通的Notes文档操作来进行字段读取、更新等,特点是存取速度快,可以和已有的数据进行分离。

    为了匹配Notes命名文档,其实LotusScript还更新了一些的方式和属性,如下图:
    在这里插入图片描述
    本篇主要是让大家了解Notes命名文档的概念,也能在应用开发过程中灵活运用。

    限于篇幅,今天我们就讲这么多吧。

    更多精彩内容,请关注微信公众号:协作者

  • 相关阅读:
    HBase的flush(刷写)及compact(合并)机制
    【Python机器学习】零基础掌握QuadraticDiscriminantAnalysis判别分析
    万能的python:实用小功能
    github 自定义主页,使用waka-readme配合wakapi统计代码时长
    如今摆地摊不比当年了
    mysql不是内部或外部命令,也不是可运行的程序或批处理文件解决
    C++过河卒问题
    算法题--从尾到头打印链表
    模拟一个js底层数据类型隐式转换
    CSS之grid布局
  • 原文地址:https://blog.csdn.net/XZZ_2018/article/details/125524716