0

Lotus notes 5にアプリケーションがあります。ビューが開いている場合、getdocumentbykey関数は機能しません。他のビューが開いている場合、またはデータベースが閉じている場合、関数は正しく機能しており、ドキュメントを検索しています。ビューが開いている場合でも、どうすればそれを機能させることができますか?以下のコードの一部を示しました。ありがとうございました。

    BillNo2 = cdoc.fieldgettext("Bill_No2")
    Set view = db2.GetView("Bill No.")
    Set doc = view.getdocumentbykey(BillNo2)
    If Not doc Is Nothing Then
        doc.DOdone = "Done"
        doc.LorryNo = cdoc.fieldgettext("Lorry_No")
        doc.TripNo = cdoc.fieldgettext("Trip_No")
        Call doc.save(True, True)
    End If

デバッグ中は、「If Not doc is Nothing」の行をスキップして、ドキュメントがある場合でもループを終了します。ビューが開いていない場合、同じコードが正常に機能します。親切に私を助けてください。ありがとう。

4

2 に答える 2

3

逆に作業すると、fieldGetText が期待どおりに返されない場合、getDocumentByKey 呼び出しは失敗します。呼び出しの前に、デバッガーで BillNo2 の値を確認しましたか?

さらにさかのぼって、fieldGetText が期待したものを返さない理由は、cdoc が期待したものではないためです。このコードをどのように実行していますか? そして、cdoc を設定するためのコードは何ですか? fieldGetText を使用しているので、これは NotesUIDocument であると推測されます。名前から推測すると、NotesUIWorkspace.currentDocument から取得していると思われます。おそらく、コードが実行されているコンテキストの currentDocument は、期待したものとはまったく異なります。つまり、コードが、読み取り元のドキュメントのコンテキストではなく、ビューのコンテキストで実行されている場合、それが機能することは期待できません。

于 2012-12-20T15:55:19.437 に答える