科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道Notes类的继承和包含

Notes类的继承和包含

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

Lotus Script是一种面向对象的语言。 使用它时,需要理解Notes类的继承和包含。

作者:www.chinaitpower.com 来源:www.chinaitpower.com 2007年9月11日

关键字: 技巧 继承 IBM lotus Office

  • 评论
  • 分享微博
  • 分享邮件

Lotus Script是一种面向对象的语言。 
使用它时,需要理解Notes类的继承和包含。 

1.继承 
比较容易理解。所谓类的继承,子类(派生类)继承其父类的属性和方法。 
比如 NotesRichTextItem 是 NotesItem 的子类,所以 NotesRichTextItem 
类的实例(对象)可以使用 NotesItem 的所有属性和方法。 

2.包含 
这个概念不太好理解。 
所谓包含是一种概念上的包含,即Notes的对象是一个容器(container),它 
包含了其中的对象。例如,我们使用 NotesSession 对象来创建 NotesDatabase 
  
对象,并且 NotesDatabase 对象创建 NotesDocument 对象。这是因为 
NotesSession 包含了 NotesDatabase,而 NotesDatabase 包含了 NotesDocumen 
t。 
关闭一个容器(container),它其中的对象也会被关闭。 
这使得我们很多时候 使用Lotus Script 编程时会有疑惑,明显的得到了对象 
突然就变为Null了,这是为什么啊? 
请见下面一段程序: 
Sub Click(Source as Button) 
    Dim session as New NotesSession 
    Dim db as NotesDatabase 
    set db = session.GetDatabase(servername , dbname) 
'    set getDocs = db.Alldocuments 
    Dim dc1 as NotesDocumentCollection 
'    set dc1 = getDocs("Myserver" , "MyTestDb.nsf") 
    Set dc1 = db.Alldocuments 
    msgbox "Ok It's Work Well!" 
End Sub 
会发生什么结果呢? 
你会看到一个窗口。"OK It's Work Well!" 
然而你把上面一段程序写成 
Function getDocs(servername As String , dbname As String) as NotesDocu 
mentCollection 
    Dim session as New NotesSession 
    Dim db as NotesDatabase 
    set db = session.GetDatabase(servername , dbname) 
    set getDocs = db.Alldocuments 
End Function 

Sub Click(Source as Button) 
    Dim dc1 as NotesDocumentCollection 
    set dc1 = getDocs("Myserver" , "MyTestDb.nsf") 
    msgbox "Ok It's Work Well!" 
End Sub 
会发生什么结果呢? 
实际上这个程序运行时,会产生一个“Object Not Set”的运行错误! 
尽管这时在逻辑上看不出区别。但实际上是错误的。 
因为 db 在函数 getDocs中得到的,退出了getDocs函数,就自动关闭了, 
而此时 db 包含的文档集合也关闭了。所以会产生运行错误。 
(当然这也涉及到变量的工作范围,用在这里只表示一下包含的关系) 
还有许多情况是这样的: 
比如  
set doc = db.createdocument 
之后 set db = ....... 
此时 db先关闭,在重新设置,doc 也自动关闭,值为Null.  
-------- 
原著:丁香书 

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章