Domino 9 und frühere Versionen > ND7: Entwicklung
Feldinhalte werden in Ansichten nicht angezeigt
(1/1)
Keydins:
Hallo zusammen,
ich hab mal wieder ein kleines Problem, für das ich einen Schubs in die richtige Richtung brauche.
Folgendes Szenario:
Ich habe ein Workflowdokument, das verschiedene Stationen durchläuft. Einige der Beteiligten müssen den Workflow kommentieren, andere müssen ein Votum abgeben und der Chef muss am Ende eine Entscheidung treffen.
Kommentare, Votum und Entscheidung werden mit Hilfe einer Dialog-Maske eingegeben, in deren QueryClose Event dann das Responsedoc erzeugt wird. Klappt soweit alles problemlos.
Um allen Beteiligten einen schnellen Zugriff auf die Antworten zu ermöglichen gibt es im Hauptdokument eine eingebettete Ansicht, die die zu diesem Doc gehörenden Antworten anzeigt. Funktioniert auch, aber ich kann in der Ansicht nicht auf alle Felder der Dokumente zugreifen.
Öffne ich die jeweiligen ResponseDocs, werden mir alle Feldinhalte korrekt angezeigt, speichere ich die Dokumente jetzt nochmals ab, stehen die Werte auch in der Ansicht zur Verfügung. Und genau hier liegt mein Problem: Wie sorge ich dafür, dass alle Feldwerte zur Verfügung stehen, ohne dass die Dokumente nochmals im Client geöffnet und gespeichert werden müssen? (Auf die Dokumente sollen nach der Anlage keine Schreibzugriffe mehr erfolgen.)
Hier mein für die Anlage der Antwordokumente verwendeter Scriptcode (nicht lachen ;))
--- Code: --- Dim session As New NotesSession
Dim db As NotesDatabase
Dim doc As NotesDocument
Dim docResp As NotesDocument
Dim AdminRead As NotesItem
Dim AllReader As NotesItem
Dim AllRoles As NotesItem
Dim UserAutor As NotesItem
Dim uComment As NotesItem
Dim typeTM As NotesItem
Dim datAnlage As NotesItem
Dim item As NotesItem
Set db = session.CurrentDatabase
Set doc = db.GetDocumentByUNID( baseID ) 'Zugehöriges Hauptdokument
Set docResp = db.CreateDocument
docResp.Form = "Kommentar"
Set item = doc.GetFirstItem("gwflow_ReaderResp")
item.IsReaders= True 'Für die Zugriffssteuerung auf die Kommentardokumente Textliste in ReaderListe wandeln
Call item.CopyItemToDocument(docResp, "gwflow_resp_ReaderWF")
item.IsReaders= False 'Zurücksetzen der Änderung
Set item = doc.GetFirstItem("gwflow_LeserImmer")
Call item.CopyItemToDocument(docResp, "gwflow_resp_ReaderRoles")
Set UserAutor = New NotesItem( docResp, "gwflow_resp_Ersteller", readerUser , AUTHORS)
Set uComment = New NotesItem( docResp, "gwflow_resp_Kommentar", comment)
Set datAnlage = New NotesItem( docResp, "gwflow_resp_AnlageDat", Today)
Select Case aktNr
Case "1":
Set typeTM = New NotesItem( docResp, "gwflow_resp_TypTM", "TM_gwflow_resp_Stellung")
Case "2":
Set typeTM = New NotesItem( docResp, "gwflow_resp_TypTM", "TM_gwflow_resp_Stellung")
Case "4":
Set typeTM = New NotesItem( docResp, "gwflow_resp_TypTM", "TM_gwflow_resp_Vstd")
Set VoteVstd = New NotesItem( docResp, "gwflow_resp_Entscheidung", voteVstd)
Case "6":
Set typeTM = New NotesItem( docResp, "gwflow_resp_TypTM", "TM_gwflow_resp_BR")
Set VoteVstd = New NotesItem( docResp, "gwflow_resp_Votum", voteBR)
Case "8":
Set typeTM = New NotesItem( docResp, "gwflow_resp_TypTM", "TM_gwflow_resp_Vstd")
Set VoteVstd = New NotesItem( docResp, "gwflow_resp_Entscheidung", voteVstd)
Case Else
Set typeTM = New NotesItem( docResp, "gwflow_resp_TypTM", "ups")
End Select
'Speichern, zum Antwortdokument machen und erneut speichern
Call docResp.Save( True, False )
Call docResp.MakeResponse( doc )
Call docResp.Save( True, False )
--- Ende Code ---
Peter Klett:
Überprüfe die items, die nicht angezeigt werden. z.B. item.IsSummary, wenn das False ist, wird es nicht angezeigt.
Ich würde auch in der Felderliste des erstellten und noch nicht geöffneten und gespeicherten Dokuments nachsehen, welchen Inhalt das nicht angezeigte Feld hat. Vielleicht ist es leer und berechnet sich erst innerhalb der Maske.
TRO:
Aus der Hilfe zur Klasse NotesItem:
Usage
When you create a NotesItem using New, the IsSummary property of the item defaults to False, which means that the item value cannot be displayed in a view or folder.
--> ich würde deshalb die ganzen Konstrukte ala
Set typeTM = New NotesItem( docResp, "gwflow_resp_TypTM", "TM_gwflow_resp_Stellung")
ersetzen durch set itm = doc.ReplaceItemValue( "ItemName", "Wert" )
Dabei wird die IsSummary-Eigenschaft automatisch gesetzt.
(bei den Author-Feldern wäre dann allerdings noch ein itm.IsAuthors anzufügen)
hth
Thomas
Keydins:
Vielen Dank euch beiden, jetzt funktioniert es so wie es soll. :D
Gruß Dirk
Navigation
[0] Themen-Index
Zur normalen Ansicht wechseln