Domino 9 und frühere Versionen > ND6: Entwicklung
Drucken per Maske
Thomas Schulte:
Den Umweg über die View kannst du dir Sparen wenn du das direkt mit
--- Code: ---Set doc = thisdoccol.getfirstdocument()
Do While Not doc Is Nothing
doc.Form="Druckmaske"
Call workspace.EditDocument(False,Doc)
Set uidoc=WorkSpace.CurrentDocument
Call uidoc.Print( 1 )
Call uidoc.close(True)
Set doc = thisdoccol.GetNextDocument(doc)
Loop
--- Ende Code ---
machst
Wanderwiesel:
FTSearch bringt mir in dem Fall nichts.
Mein Agent sollte von Prinzip her so ausschaun:
Dim session As New NotesSession
Dim ws As New NotesUIWorkSpace
Dim db As NotesDatabase
Dim view As NotesView
Dim dc As NotesDocumentCollection
Dim doc As NotesDocument
Dim xdoc As NotesDocument
Dim uidoc As NotesUIDocument
Set db = session.CurrentDatabase
Set view = db.GetView( "LookupLehrjahr" )
Set db = session.CurrentDatabase
Set dc = db.UnprocessedDocuments
Set doc = dc.GetFirstDocument
While Not doc Is Nothing
Set xdoc = view.GetNextDocument(doc)
If doc.Einsatz_Jahr(0) = UiDoc.FieldGetText("Druck.Jahr") Then
If doc.Org(0) = UiDoc.FieldGetText("Druck.Einheit") Then
Call uidoc.Save
Call uidoc.print(1)
uidoc.close
End If
End If
Set doc = xdoc
Ausgabe: "Dokument noch nicht gespeichert"
Kann sein, das ich manche Variablen net brauche. Aber sonst sollte das eigentlich so gehen, oder?
Thomas Schulte:
Das was du da an Code geschrieben hast und das was du als Frage formuliert hast hat nichts aber auch absolut gar nichts miteinander zu tun.
Gefragt hast du nach einer Methode mit der du aufgrund von Schlüsselfeldern Dokumente finden und die gefundenen Dokumente dann ausdrucken kannst.
Dein Code geht erst auf die unprocessed Documents Eigenschaft der Datenbank los, die für sich schon abhängig vom Kontext sehr variabel ist, um dann in einer Ansicht ein Getnextdocument bezogen auf das erste unprocessed document zu machen, welches ein Xdoc Objekt erzeugt, das hinterher das Doc aus den Unprocessed Dokuments überschreibt. Dann vergleichst du das gefundene Doc mit dem Uidoc aus dem du das Ganze wohl irgendwie aufrufst, was wiederum mit deiner Beschreibung eines "Agents" kollidiert, denn da hat man (sollte man haben) in der Regel kein Uidoc, und um die Verwirrung komplett zu machen speicherst und druckst du dann das Uidoc aus in dem du deine Werte eingetragen hast und nicht das Dokument das du gefunden hast.
Aus der Beschreibung heraus merkst du jetzt vielleicht wie Wirr dein Konstrukt als Ganzes ist.
Also bitte ich dich für das folgende schon mal im Voraus um Entschuldigung denn du wirst das nicht gerne hören wollen
.
Bitte lern doch erst einmal strukturiert zu denken, bevor du Codeschnipsel von anderen die du nicht verstanden hast abänderst.
robertpp:
Ich wirst ein wenig Probleme bekommen den agent am server laufen zu lassen, da gibt es keine UIDOC's. (nur Frontend)
Wanderwiesel:
Das Script ist übrigens von mir, aber egal. Das das Ding net läuft merk ich selbst.
Dachte ich könnte durch einen Vergleich mit Feldern was bewirken, aber nix da.
Set doc = thisdoccol.getfirstdocument()
Do While Not doc Is Nothing
doc.Form="Druckmaske"
Call workspace.EditDocument(False,Doc)
Set uidoc=WorkSpace.CurrentDocument
Call uidoc.Print( 1 )
Call uidoc.close(True)
Set doc = thisdoccol.GetNextDocument(doc)
Loop
Das Zeug funktioniert ebenfalls nicht. Zumal ich hier nur sehe, das ich ne Maske öffne, die mit Feldern aus ner anderen Maske fülle und dann drucke. Klappt nur, wenn man keine Einschränkung angeben möchte.
Navigation
[0] Themen-Index
[#] Nächste Seite
[*] Vorherige Sete
Zur normalen Ansicht wechseln