0

保存機能がフォームのフィールドを保存しない理由について、誰かが明白な理由を見つけることができますか?ドキュメントは保存されますが、開いたときにフィールドが空になります。次のコードは私が使用しているものです:

 Public Sub co_loopNamesAndSaveDocs()

'Dim variables  
 Dim s As New NotesSession
 Dim thisDatabase As NotesDatabase
 Set thisDatabase = s.CurrentDatabase
 Dim ws As New NotesUIWorkspace
 Dim uidoc As NotesUIDocument
Set uidoc = ws.CurrentDocument
Dim currentDoc As NotesDocument 
Set currentDoc = uidoc.Document
Dim newDoc As NotesDocument
Dim PersonNameField As NotesItem
Set PersonNameField = currentDoc.GetFirstItem("PersonName")

'Loop through values in PersonNameField and create a new document for each value found

Forall pName In PersonNameField.Values

Set newDoc = New NotesDocument (thisDatabase)
newDoc.Form="newLocationForm"
newDoc.StartDate = currentDoc.StartDate(0)
newDoc.EndDate = currentDoc.EndDate(0)
newDoc.Duration = currentDoc.Duration(0)
newDoc.StartTime = currentDoc.StartTime(0)
newDoc.EndTime = currentDoc.EndTime(0)
newDoc.Comments = currentDoc.Comments(0)
newDoc.Status = currentDoc.Status(0)
newDoc.LocationCode = currentDoc.LocationCode(0)
newDoc.PersonName = pName
Call newDoc.Save (True, False, False)

End Forall

End Sub

前もって感謝します。

4

1 に答える 1

4

コーディングに明らかなエラーが見られないので、currentDoc のフィールドが空白であるため、newDoc のフィールドは空白であると言えます。また、currentDoc が uidoc.Document に設定されているため、フロントエンド ドキュメントとバックエンド ドキュメント間の同期に問題がある可能性があります。つまり、値は uidoc に存在しますが、このコードを呼び出す前にまだバックエンドに保存されていません。私が正しければ、currentDoc を割り当てる前に uidoc.save() を呼び出してみてください。バックエンドに保存したくない場合は、バックエンドをデータ ソースとして使用する代わりに、uidoc.fieldGetText("PersonName") を使用して値を解析する必要があります。

于 2012-01-23T17:50:23.070 に答える