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

Q. *_*sse 2 lotus-notes lotusscript lotus-domino

我是 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
Run Code Online (Sandbox Code Playgroud)

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

Kar*_*son 6

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

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

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

您的代码应该更像这样:

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
Run Code Online (Sandbox Code Playgroud)

你会看到这本书读起来容易得多,更不用说它既简短有效。

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

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