1

まず最初に、私はドミノ アプリケーションを開発する初心者です。したがって、私の馬鹿げた質問に答えるときは、この事実を考慮してください。

次の問題があります。
次のコードを実行すると、最初のコードがMsgBox正常に表示されます。しかし、それは 2 番目に実行されませんMsgBox! 代わりに、次のエラー メッセージが表示されます。

Type mismatch in method RunStkCoerceVal in Lotusscript agent STRING found Null expected.

コードは次のとおりです。

    Dim session As NotesSession
    Dim db As NotesDatabase
    Dim ws As New NotesUIWorkspace
    Dim thisDoc As notesUIDocument
    Dim docSMBPrivateProfile As notesDocument
    Dim test As Variant

    Set session = New NotesSession
    Set db = session.CurrentDatabase
    Set thisDoc = ws.CurrentDocument
    Set docSMBPrivateProfile = db.GetDocumentByUNID(thisDoc.FieldGetText("SMB_PRIVATE_PROFILE_DOCUMENT_ID"))

    Msgbox("This message will appear")
    Set test = docSMBPrivateProfile.FieldGetText("DOCUMENT_ID_TEST")
    Msgbox("This message won't appear")

thisDoc.FieldGetText("SMB_PRIVATE_PROFILE_DOCUMENT_ID")コールは期待どおり正常に機能することに注意してください。

型の不一致の問題を回避するために、データ型をtesttoに設定しました。Variant実際、私はString.

この問題について私が見つけた唯一のトピックは、http ://www.secure-eserver.com/?p= 3431 にあります。

何か助けてもらえますか?

4

3 に答える 3

4

docSMBPrivateProfile は NotesDocument オブジェクトであるためです。メソッド FieldGetText は NotesDocument クラスに存在しません。次のコードを使用して、フィールド値を取得できます。

dim myStringVar as string
myStringVar = docSMBPrivateProfile.DOCUMENT_ID_TEST(0)
...

あなたがすでに言ったように、そのエラーのためだけにバリアントを使用します。そのため、上記のコードで文字列を使用することをお勧めします。型の不一致エラーを生成するべきではありません。

コード内の 2 つのドキュメントに少し混乱しているようです。2 番目の文書「thisDoc」は NotesUIDocument オブジェクトであるため、FieldGetText を使用できます。フィールドにアクセスするためのさらに良い方法は(Panuが提案したように)

docSMBPrivateProfile.GetItemValue("DOCUMENT_ID_TEST")(0)
于 2013-01-22T16:28:22.087 に答える
2

docSMBPrivateProfileメソッドNotesDocumentを持たないクラスに基づいています。代わりにFieldGetText使用してください。test = docSMBPrivateProfile.GetItemValue("DOCUMENT_ID_TEST")(0)

于 2013-01-22T16:20:40.370 に答える
0

[ツール] -> [LotusScript のデバッグ] メニュー オプションに移動します。次に、コードを実行します。それをステップスルーして、問題の行で何が失敗しているのかを正確に確認してください。

実際、私は文字列を期待しています。

フィールドが存在すると仮定すると、文字列ではなく配列が返されます。したがって、次のようなことを行う必要があります (ここでも、フィールド内の文字列が 1 つだけであると想定しています)。

Set test = docSMBPrivateProfile.FieldGetText("DOCUMENT_ID_TEST") (0)
于 2013-01-22T16:04:35.210 に答える