Domino 9 und frühere Versionen > ND6: Entwicklung

Drucken per Maske

<< < (2/9) > >>

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