+1 800 256 3608 (toll-free in North America) or +49 7531 90 60 10| service@combit.com

Fehler beim mehrfachen Aufrufen des Drucks


(Guest) #1

Guten Tag,

ich nutze die List & Label Komponente (LL18) zum Drucken unterschiedlichster Vorgänge.
In einem bestimmten Falle wird diese Druckroutine mehrfach hintereinander aufgerufen. In diesem Falle um mehrere Rechnungen hintereinander zu drucken.

Folgende Fehlermeldung erscheint allerdings gelegentlich beim Kunden und das Hauptprogramm ist nicht mehr Bedienbar und muss über den Taskmanager beendet werden.

Fehlermeldung(en):

Die Druckroutine zum Drucken der Rechnungen funktioniert an sich Problemlos. Erst beim Aufrufen dieser innerhalb einer Schleife/nacheinander kann dies geschehen.

Der Quellcode:

Dim dt As New DataTable
Dim ds As New DataSet
Dim LL As New ListLabel

LL.LicensingInfo = "xxxxxx"

'Daten werden gesammelt...
....
....
ds.Tables.Add(dt)
ds.Relations.Add("Document_Position", ds.Tables("document").Columns("document"), ds.Tables("position").Columns("document"), False) 
'Relationen werden gesetzt
....
LL.SetDataBinding(ds)
'Manche Variablen werden noch gefüllt
LL.Variables.Add("Zusatzdaten.Benutzername", Username)
LL.AutoProjectFile = Print_Document
LL.AutoShowSelectFile = False

'Je nach Art des Drucks (Vorschau, Designer, PDF etc...) wird beim Aufruf unterschieden.
'In diesem wird der Drucker übergeben damit nur beim ersten Druck der Drucker ausgewählt wird. In diesem Falle wird diese Routine durchgehen aufgerufen
LL.Core.LlSetPrinterInPrinterFile(LlProject.List, Print_Document, sPRINTERNAME)
LL.AutoShowPrintOptions = False
LL.AutoDestination = LlPrintMode.Normal
LL.Print()

'Anschließen
LL.Dispose()

Diese Routine (vieles nur Sinngemäß) wird eben nacheinander ausgeführt. Nach dem Druck wird noch eine wichtige Routine ausgeführt die diverse Dinge ausführt(aber nichts mit LL zu tun hat).

Jemand eine Idee wo das Problem liegen könnte oder wie man ggf. LL abfragen könnte, ob noch ein Druck in Arbeit ist? Vielleicht gibt es auch eine bessere Möglichkeit einen Sammeldruck auszuführen wo zu jedem Druck eine Routine ausgeführt werden kann?

Vielen Dank


(Guest) #2

Sehr geehrter Herr Knoll,

vielen Dank für Ihren Beitrag.

Ihrem Beitrag entsprechend möchte ich Ihnen zwei Knowledgebase-Artikel ans Herz legen:

(1) Log-Datei erstellen und analysieren

Anhand einer Log-Datei können Sie weitere Informationen über das Verhalten bekommen und sehen bereits mögliche Fehler, die Sie beheben können.

(2) Multithreading mit List & Label

Insbesondere dem Absatz 2 sollten Sie Beachtung schenken:

#2

Diesbezüglich finden Sie ebenfalls einen Hinweis in der Programmierer-Referenz:

Mit freundlichen Grüßen

Patrick Preuschoff
Technischer Support
combit GmbH