0

承認ボタンと拒否ボタンがあるフォームがあります。これらのボタンは、ドキュメントが編集モードの場合にのみ表示されます。

ドキュメントのステータスは「マネージャーの承認待ち」になり、ユーザーが承認ボタンを押すと、変更を保存するかどうかを尋ねられます。ユーザーが「はい」と答えると変更が保存され、「いいえ」と答えるとドキュメントが閉じられ、「キャンセル」と答えると承認ボタンを押したときと同じようにドキュメントに戻ります。 .

これが私の問題です。ドキュメントが「マネージャーの承認待ち」で、ユーザーが「いいえ」を押すと、ドキュメントは自動的に閉じます。ドキュメントがワークフローの次のステップである「販売承認待ち」に進むと、ユーザーは [承認] ボタンを押してから、前のステップと同じように [いいえ] を押します。ドキュメントを保存するかどうかを尋ねる 2 番目のメッセージ。

私はコードを見て、両方とも「承認」ボタンで次のスクリプトを使用していますが、サブフォームまたはフォームの両方でクエリの終了イベントには何もありません。

ワークフローの 2 番目のステップでメッセージが表示される理由を誰か教えてもらえますか? ユーザーが「いいえ」と答えたので、メッセージを表示したくありません。

以下は、承認ボタンのコードです。

LotusScript のボタンのコード:

Sub Click(Source As Button) 
        Dim workspace As New NotesUIWorkspace 
        Dim askme As Integer 
        Dim tellme As Integer 
        Dim holdValue As String 
        Dim holdValue2 As String 
        Dim uidoc As NotesUIDocument 
        Dim doc As NotesDocument 
        Dim boxType As Long, answer As Integer 
        boxType& = MB_YESNOCANCEL + MB_ICONQUESTION 
        Set uidoc = workspace.CurrentDocument 

        Set doc = uidoc.Document         
        Dim num As Integer 


        If (uidoc.EditMode = True) And (DocWasSaved = False) Then 
                holdvalue = uidoc.EditMode                         
                askMe = Messagebox("Do you wish to continue?",  boxType&, "Continue?") 
                Select Case askme 

                Case 2 
                       'Equals Cancel response - no action - goes back into document.         
                Case 6         
                       'Equals Yes response - saves document                 
                       Call uidoc.FieldSetText("Action", "Approve")                 
                       Call uidoc.FieldSetText("PostAction", "Approve") 
                       Call uidoc.FieldSetText("SaveOptions", "1") 
                       Call uidoc.FieldSetText("CloseFlag", "Yes")                                 
                       Call uidoc.Save                                 
                       Call uidoc.close                         
                Case 7 
                       'User answered No, doesn't save and closes document. 
                        Call uidoc.Close                         
                End Select 
        Else                         
        End If         

End Sub
4

2 に答える 2

2

このフィールドを使用して、SaveOptions「このドキュメントを保存しますか?」という追加のダイアログを抑制してみてください。フィールド値を「0」に設定すると、そのプロンプトなしでドキュメントを閉じることができます。詳細については、この記事を参照してください。

したがって、コード サンプルは次のようになります。

Call uidoc.Save
Call uidoc.FieldSetText("SaveOptions", "0")
Call uidoc.Close
于 2013-05-20T13:20:02.540 に答える
0

SaveOpetions フィールドをいじる代わりに、ドキュメントを閉じた後、バックエンドで変更を行うこともできます。フォームのいずれかのフィールドが修正/変更された場合、そのプロンプトが表示されることを覚えておいてください。そのため、キャンセルする場合でも uidoc.Save() をお勧めします。

ここに私の(テストされていない)コードがあります:

Sub Click(Source As Button)
 Dim ws As New NotesUIWorkspace
 Dim uidoc As NotesUIDocument
 Dim doc As NotesDocument
 Dim result As Integer
 Dim boxType As Long

 boxType = MB_YESNOCANCEL + MB_ICONQUESTION
 Set uidoc = workspace.CurrentDocument

 result = Messagebox("Do you wish to continue?", boxType, "Continue?")
 Select Case result
 Case 2
   'Equals Cancel response - no action - goes back into document. 
 Case 6 
   'Equals Yes response - saves document and closes it
   Call uidoc.Save()
   set doc = uidoc.Document
   Call uidoc.Close(True)
   Call doc.ReplaceItemvalue("Action", "Approve") 
   Call doc.ReplaceItemvalue("PostAction", "Approve")
   Call doc.ReplaceItemvalue("SaveOptions", "1")
   Call doc.ReplaceItemvalue("CloseFlag", "Yes") 
   Call doc.Save(True,False)
 Case 7
   'User answered No, doesn't save and closes document.
   'Note: If any field has changed, the user will get the save yes/no prompt.
   'I would add:
   'Call uidoc.Save()
   Call uidoc.Close 
End Select

End Sub 
于 2013-05-20T14:34:49.210 に答える