Class 或未找到类型名称 - 类型对象

Class or type name not found - type Object

我是 LotusScript 的初学者,我的代理中出现以下错误:

我的目标是能够使用以下代码连接到服务器:

Option Public
Option Declare    

Sub Initialize
    Dim myServer As String
    Dim myMailfile As String
    myServer = "server"
    myMailfile = "mailfile"

    Dim filePath As String
    Dim intErgebnis As Integer
    Dim objNotes As Object
    Dim LNdb As Object
    Dim LNView As Object
    Dim LNDoc As Object
    Dim LNItem As Object
    Dim strSubject As String
    Dim LNWorkspace As Object
    Dim LNAttachment As Variant
    intErgebnis = 0
    Set objNotes = GetObject("", "Notes.NotesSession")
    Set LNdb = objNotes.GETDATABASE(myServer, myMailfile)
    Set LNWorkspace = CreateObject("notes.notesuiworkspace")
    LNWorkspace.OpenDatabase myServer, myMailfile
End Sub

有人知道如何解决这个问题吗?感谢您的帮助

Lotusscript 中没有名为 Object 的数据类型。 您需要使用适当的对象类型声明这些变量,例如NotesDatabase、NotesView、NotesDocument 等

此外,您应该声明并初始化 NotesSession 对象,而不是在 Lotusscript 中使用 GetObject()。看来您正在尝试编写 COM 代码,而不是 Lotusscript。

另一个建议是使用符合事实上(既定)命名约定的变量名。如果您查看其他 Lotusscript 代码,您会注意到变量通常以相同的方式命名,这使得阅读其他开发人员的代码变得更加容易。另一个建议是首先声明所有注释 objects/classes,grouped/sorted 按照它们的使用顺序,然后是其余变量,然后再为它们中的任何一个赋值。

您的代码应该更像这样:

Sub Initialize
    Dim session As New NotesSession
    Dim db As NotesDatabase
    Dim view As NotesView
    Dim doc As NotesDocument
    Dim item As NotesItem
    Dim ws As New NotesUIWorkspace
    Dim uidoc as NotesUIDocument

    Dim mailServer As String
    Dim mailFileName As String
    Dim filePath As String
    Dim resultCount As Integer
    Dim subject As String

    mailServer = "server"
    mailFileName = "mailfile.nsf"
    resultCount = 0
    ' *** Open the specified mail file using back-end classes
    Set db = new NotesDatabase(mailServer, mailFileName)
    ' *** Get the document currently open in the Notes client using front-end classes
    Set uidoc = ws.CurrentDocument
    
End Sub

你看这读起来有多容易,更不用说它更短 工作。

我还建议始终使用英文变量名。如果您需要向某人寻求帮助,例如在 Stack Overflow 上,如果您使用易于理解的变量名称,他们将更容易理解您的代码。这也是为什么你应该为 Notes 使用标准化名称的原因 objects/classes.

我写了一系列关于如何编写更好的 Lotusscript 代码的文章,我认为它们可能对您有所帮助:http://blog.texasswede.com/how-to-write-better-code-in-notesdomino/