Domino 9 und frühere Versionen > Entwicklung

Dokumente werden nicht ausgedruckt.

(1/2) > >>

rar:
Hallo!

Mir ist klar, dass Notes und Drucken nicht zusammen gehören. Was soll man aber machen, wenn es unbedingt sein muss...!?  :P

Folgendes Problem habe ich:
In einer Ansicht ist die erst Spalte kategorisiert. In dem Feld, das kategorisiert angezeigt wird, sind Mehrfachwerte erlaubt.
Wenn ich in der Ansicht mit Strg+a alle Dokumente auswähle und dann die Dokumente ausdrucke, werden nicht alle Dokumente gedruckt. (Die DB liegt auf einem Server)

Bei der Fehlersuche, bin ich draufgekommen, dass, wenn die DB lokal liegt, die Dokumente richtig gedruckt werden.

Ich habe mal eine kleine Test-DB angehängt.
In der DB sind 3 Dokumente. Das erste wird 2 mal angezeigt. Wenn ich dann alle Doks makiere sind in der Ansicht dann vier Haken. Irgendwie denkt Notes "3 Dokumente, also druck ich die ersten 3 Haken aus".
Sehr blöde Sache.

Hat jemand eine Idee, warum das so ist bzw. wie ich den Fehler beheben könnte?!

lG
-daniel

TMC:
Gerade mit Deiner DB gestetet: Ist bei mir auch so:
Strg+A, dann Drucken --> es werden 2 statt 3 Dokumente gedruckt. Das letzte nicht.

Testumgebung: ND 6.5.3 Englisch, lokal

Die UnproccessedDocuments - Methode funktioniert aber korrekt, ich hab mal folgenden Code in einem View-Button getestet:


--- Code: ---Sub Click(Source As Button)

On Error Goto ErrorHandler

Dim session As New NotesSession
Dim db As NotesDatabase
Dim collection As NotesDocumentCollection
Dim doc As NotesDocument

Set db = session.CurrentDatabase
Set collection = db.UnprocessedDocuments
Set doc = collection.GetFirstDocument

While Not(doc Is Nothing)
Msgbox "Kategorie: " & doc.Kategorie(0) & Chr(10) & "Text: " & doc.Text(0),64, "Test"
Set doc = collection.GetNextDocument(doc)
Wend

GoOut:
Exit Sub
ErrorHandler:
Msgbox "Fehler " & Err & " - " & Error$ & Chr(10) _
& "in Zeile " & Erl, 48, "Laufzeitfehler"
Resume GoOut
End Sub
--- Ende Code ---

Ist also ein Bug so wie ich das sehe.
Könntest halt mit obigem Codebeispiel einen Workaround reinbauen. Und statt der Messagebox dann:

--- Code: ---Set uidoc = uiws.EditDocument( False, doc, True)
Call uidoc.Print (1)
Call uidoc.close(True)
--- Ende Code ---

rar:
Danke fürs nachschauen und den Tipp Matthias.  :)

Leider hilft mir das nicht so recht weiter. Ich soll nämlich die Dokumente mit einer Alternativen Maske auf einer Seite ausdrucken.
Eigentlich sollte es fein gehen.
Die Zeilen
Call uiview.Print(1, 0, 0, False, 0,"Alternative Maske", False) oder
@Command([FilePrint] ; "" ; "" ; "" ; "" ; "" ; "Alternative Maske" )
machen genau das was ich will. Bei beiden tritt aber der Bug auf.

Bei uidoc.Print habe ich aber keine Möglichkeit eine alternative Maske mitzufgeben.

lg

Semeaphoros:
Doch, kannst Du, indem Du vor dem Print die alternative Maske ins Form-Feld hineinschreibst und nach dem Print wieder die ursprüngliche Maske hineinschreibst

rar:
Auf die Idee bin ich nicht gekommen. Danke Jens.
Jedoch gibt es da 2 Probleme.... :-\

1.) Die es wird jede Kategorie seperat ausgedruckt. D.H. Dokumente, die 2 mal angezeigt werden, werden auch 2 mal ausgedruckt. Soll aber nicht sein.

2.) Ich muss unbedingt mehrere Dokumente auf eine Seite ausdrucken. Das geht so aber nicht.


Leider.


Hier noch ein paar Infos zu dem Ablauf und ein ev. weiterer Lösungsansatz, der aber auch nicht so richtig funktioniert:

In der DB gibt es viele Dokumente. Durch ein Klick auf ein Button werden bestimmte Doks gesucht und mit  Call coll.PutAllinFolder() in ein SPOFU Folder geschoben. Dann wird mit Call Call ws.ComposeDocument( "","", "DruckMaske") ein Dok erstellt. Im Queryopen der DruckMaske befindet sich der Code:
@Command([OpenView] ; "SPOFUFolder" ; "" ; "1" );
@Command([EditSelectAll]);
@Command([FilePrint] ; "" ; "" ; "" ; "" ; "" ; "alternativeMaske" );
@Command( [RemoveFromFolder] );
@Command([EditDeselectAll]);
@Command([FileCloseWindow])
Durch das FileCloseWindow wird der Ordner wieder geschlossen und es ist nur noch das erstellte Dok offen.
Das geht soweit. Wenn da nicht der Bug wäre.
Wie aber schon oben erwähnt werden alle Dokumente richtig ausgedruckt wenn die DB Lokal liegt. Daher dachte ich mir, dass ich den SPOFU Ordner in ein Gemeinsam, für Desktop privat bei Erstbenutzung Ordner ändere. Dadurch liegt der Ordner ja lokal am Desktop und alles sollte richtig ausgedruckt werden.
Hier kommt aber bei der Zeile Call coll.PutAllinFolder() die Fehlermeldung:
Can't move document to shared Private On First Use folder (FolderName)
Wenn ich die Doks händisch dorthin verschiebe und ausdrucke passt es. Das einzige Problem ist in dem Fall also nur noch das Call coll.PutAllinFolder(). Warum geht das nicht?  ???  :'(
Vielleicht ist das Problem so einfacher zu lösen.

lG
-daniel

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln