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

LL18: Problem nach LL_User_Aborted_Exception

print

(Guest) #1

Guten Tag

Wenn der Benutzer einen Druckvorgang abbricht, wird eine LL_User_Aborted_Exception geworfen. Diese wird “gecatchet” und ignoriert, da diese Situation keine Ausnahme darstellt. Mit LL18 kann nun jedoch nicht erneut eine andere Auswertung gedruckt werden. Die Druckvorschau bleibt leer. Mit der bisher eingesetzten Version LL15 hat dies ohne Problem funktioniert. In der Hilfe und den Demos zu LL18 konnten wird keine Angaben darüber finden, wie in LL18 diese Exception korrekt behandelt werden sollte. Weiss jemand, was bei LL18 anders zu machen ist? Handelt es sich möglicherweise um einen Bug in LL18? Wir verwenden LL18 mit der dotNet Komponente.

Besten Dank,
Reto S.


(Guest) #2

Da würde ich mal bei combit fragen - hatte bei mir einen ähnlichen Effekt, habe nicht weiter drüber nachgedacht, da konnte ich drumrumarbeiten, indem ich für den Druck einfach jeweils eine neue LL-Komponente erzeugt habe, dann ging es. Vielleicht ist das Problem ja auch schon bekannt?!

G.


(Guest) #3

Wenn nicht das Databinding verwendet wird - also eigene Druckschleife - dann mal noch nach beim Auftreten dieser Exception ein LlPrintEnd() aufrufen.

Sonst mal auch ins Logfile (Debwin) reinschauen, was bei der Exception da genau passiert bzw. wird dort schon ein LlPrintEnd() gemacht? Welche Ausgaben sind im Logfile, wenn der nochmaliege Druck ausgeführt werden?


(Guest) #4

Besten Dank für die raschen Antworten. Der Aufruf von ListLabel.Core.LlPrintAbort() im catch der LL_User_Aborted_Exception löst das Problem nicht.
Der Druckvorgang des ersten Ausdruckts (welcher abgebrochen wird), liefert folgenden Debug Output:

CMLL18 : 11:23:59.709 00001a40/00 9 [clr.dll] =-99 (Der Benutzer hat den Vorgang abgebrochen.)
CMLL18 : 11:23:59.709 00001a40/00 0 [clr.dll] LlSetOption(1,53,00000000)
CMLL18 : 11:23:59.709 00001a40/00 1 [clr.dll] =0 (OK)
CMLL18 : 11:23:59.709 00001a40/00 2 [clr.dll] LlPrintEnd(1,0)
CMLL18 : 11:23:59.709 00001a40/00 3 [clr.dll] @NOTIF.(code= 21, param=0X068AC7C8, user=00000000)
CMLL18 : 11:23:59.709 00001a40/00 4 [clr.dll] -> 00000000
CMLL18 : 11:23:59.709 00001a40/04 5 [clr.dll] >OpenForPRN(page=3, lastpage=1)
CMLL18 : 11:23:59.709 00001a40/04 6 [clr.dll] <OpenForPRN(page=3) -> ‘\rmiprint01\Samsung ML-2850 Series PCL6’ (from ‘Standard-Layout’)
CMLL18 : 11:23:59.709 00001a40/04 7 [clr.dll] @NOTIF.(code= 37, param=0X068AC6FC, user=00000000)
CMLL18 : 11:23:59.709 00001a40/04 8 [clr.dll] -> 00000000
CMLL18 : 11:23:59.709 00001a40/04 9 [clr.dll] @NOTIF.(code= 37, param=0X068AC6FC, user=00000000)
CMLL18 : 11:23:59.709 00001a40/04 0 [clr.dll] -> 00000000
CMLL18 : 11:23:59.709 00001a40/04 1 [clr.dll] @NOTIF.(code= 37, param=0X068AC6FC, user=00000000)
CMLL18 : 11:23:59.709 00001a40/04 2 [clr.dll] -> 00000000
CMLL18 : 11:23:59.709 00001a40/04 3 [clr.dll] @NOTIF.(code= 37, param=0X068AC6FC, user=00000000)
CMLL18 : 11:23:59.709 00001a40/04 4 [clr.dll] -> 00000000
CMLL18 : 11:23:59.709 00001a40/04 5 [clr.dll] >ResetDevices()
CMLL18 : 11:23:59.709 00001a40/02 6 [clr.dll] <ResetDevices()
CMLL18 : 11:23:59.709 00001a40/03 7 [clr.dll] >ResetDevices()
CMLL18 : 11:23:59.709 00001a40/03 8 [clr.dll] <ResetDevices()
CMLL18 : 11:23:59.709 00001a40/03 9 [clr.dll] =-99 (Der Benutzer hat den Vorgang abgebrochen.)
CMLL18 : 11:23:59.709 00001a40/03 0 [clr.dll] LlGetErrortext(-99,0X0EABAE08,16384)
CMLL18 : 11:23:59.709 00001a40/03 1 [clr.dll] =0 (OK) -> ‘Der Benutzer hat den Vorgang abgebrochen.’
CMLL18 : 11:23:59.756 00001a40/05 2 [clr.dll] LlPrintAbort(1)
CMLL18 : 11:23:59.756 00001a40/05 3 [clr.dll] =0 (OK)
CMLL18 : 11:23:59.756 00001a40/05 4 [clr.dll] LlDefineVariableStart(1)
CMLL18 : 11:24:19.414 00001908/03 5 [ntdll.dll] LIC: thread: 0X10020000: ‘steimen/STEIMEN:298072181’
CMLL18 : 11:24:19.414 00001908/03 6 [ntdll.dll] LIC: thread: 0X10020000: ‘steimen/STEIMEN:298072181’
CMLL18 : 11:24:19.414 00001908/03 7 [ntdll.dll] LIC: *********************************

Der zweite Ausdruck(welcher nicht mehr funktioniert) liefert am Anfang nachfolgenden Output.Der Fehler, dass Report.BasisReportFullName nicht interpretiert werden kann scheint falsch. Beim Aufruf des Designers wird kein Fehler angezeigt und die Variable ist korrekt definiert.

CMLL18 : 11:24:39.744 00001a40/00 8 [clr.dll] LlDbAddTableEx(1,’’,’’,0)
CMLL18 : 11:24:39.744 00001a40/00 9 [clr.dll] =0 (OK)
CMLL18 : 11:24:39.775 00001a40/02 0 [clr.dll] LlSetPrinterInPrinterFileW(1,2,‘c:\Entwickeln\ TFS\RMIProd\Main\Finanz\MesserliFinanz\Layouts\KstBuchungsJournal.de.lst’,-1,’\rmiprint01\Samsung ML-2850 Series PCL6’,0X06ACA0C8)
CMLL18 : 11:24:39.775 00001a40/02 1 [clr.dll] >ResetDevices()
CMLL18 : 11:24:39.775 00001a40/02 2 [clr.dll] <ResetDevices()
CMLL18 : 11:24:39.775 00001a40/02 3 [clr.dll] >ResetDevices()
CMLL18 : 11:24:39.775 00001a40/02 4 [clr.dll] <ResetDevices()
CMLL18 : 11:24:39.775 00001a40/02 5 [CMLL18.DLL] Printer ‘\rmiprint01\Samsung ML-2850 Series PCL6’ is in PAI -> available=1
CMLL18 : 11:24:39.775 00001a40/04 6 [CMLL18.DLL] Printer ‘\rmiprint01\Samsung ML-2850 Series PCL6’ is in PAI -> available=1
CMLL18 : 11:24:39.791 00001a40/02 7 [clr.dll] Printer ‘\rmiprint01\Samsung ML-2850 Series PCL6’ is in PAI -> available=1
CMLL18 : 11:24:39.791 00001a40/04 8 [clr.dll] Printer ‘\rmiprint01\Samsung ML-2850 Series PCL6’ is in PAI -> available=1
CMLL18 : 11:24:39.791 00001a40/00 9 [clr.dll] removing the DM_ORIENTATION flag from DEVMODE as this is defined by the project
CMLL18 : 11:24:39.791 00001a40/00 0 [clr.dll] >ResetDevices()
CMLL18 : 11:24:39.791 00001a40/00 1 [clr.dll] <ResetDevices()
CMLL18 : 11:24:39.791 00001a40/00 2 [clr.dll] Printer ‘\rmiprint01\Samsung ML-2850 Series PCL6’ is in PAI -> available=1
CMLL18 : 11:24:39.791 00001a40/04 3 [clr.dll] Printer ‘\rmiprint01\Samsung ML-2850 Series PCL6’ is in PAI -> available=1
CMLL18 : 11:24:39.791 00001a40/00 4 [clr.dll] >ResetDevices()
CMLL18 : 11:24:39.791 00001a40/00 5 [clr.dll] <ResetDevices()
CMLL18 : 11:24:39.791 00001a40/00 6 [clr.dll] =0 (OK)
CMLL18 : 11:24:39.791 00001a40/00 7 [clr.dll] LlXSetParameter(1,1,)
CMLL18 : 11:24:39.791 00001a40/00 8 [clr.dll] =0 (OK)
CMLL18 : 11:24:39.791 00001a40/00 9 [clr.dll] LlGetOption(1,135)
CMLL18 : 11:24:39.791 00001a40/00 0 [clr.dll] =0X00000001 (OK (1))
CMLL18 : 11:24:39.806 00001a40/00 1 [clr.dll] LlSetOption(1,162,0X00000001)
CMLL18 : 11:24:39.806 00001a40/00 2 [clr.dll] =0 (OK)
CMLL18 : 11:24:39.806 00001a40/00 3 [clr.dll] LlPreviewSetTempPath(1,‘C:\Users\steimen\AppData\Roaming\Roland Messerli AG Informatik\MesserliFINANZ\LL’)
CMLL18 : 11:24:39.806 00001a40/00 4 [clr.dll] =0 (OK)
CMLL18 : 11:24:39.806 00001a40/00 5 [clr.dll] LlGetUsedIdentifiersEx(1,c:\Entwickeln\TFS\ RMIProd\Main\Finanz\MesserliFinanz\Layouts\ KstBuchungsJournal.de.lst,0x00000007,0X0EB7BDB8,32768)
CMLL18 : 11:24:39.806 00001a40/00 6 [CMLL18.DLL] @NOTIF.(code= 62, param=0X068AA204, user=00000000)
CMLL18 : 11:24:39.806 00001a40/00 7 [CMLL18.DLL] -> 00000000
CMLL18 : 11:24:39.806 00001a40/00 8 [CMLL18.DLL] @NOTIF.(code= 62, param=0X068AA204, user=00000000)
CMLL18 : 11:24:39.806 00001a40/00 9 [CMLL18.DLL] -> 00000000
CMLL18 : 11:24:39.806 00001a40/00 0 [CMLL18.DLL] *Syntaxfehler: ‘Report.BasisReportFullName’ kann nicht interpretiert werden
CMLL18 : 11:24:39.806 00001a40/00 1 [CMLL18.DLL] error parsing formula ‘Report.BasisReportFullName’: Syntaxfehler: ‘Report.BasisReportFullName’ kann nicht interpretiert werden
CMLL18 : 11:24:39.806 00001a40/00 2 [clr.dll] [formula was ‘Report.BasisReportFullName’]
CMLL18 : 11:24:39.806 00001a40/00 3 [clr.dll] @NOTIF.(code= 62, param=0X068AA574, user=00000000)
CMLL18 : 11:24:39.806 00001a40/00 4 [clr.dll] -> 00000000
CMLL18 : 11:24:39.806 00001a40/00 5 [clr.dll] @NOTIF.(code= 62, param=0X068AA574, user=00000000)
CMLL18 : 11:24:39.806 00001a40/00 6 [clr.dll] -> 00000000
CMLL18 : 11:24:39.806 00001a40/00 7 [clr.dll] *Syntaxfehler: ‘Report.BasisReportFullName’ kann nicht interpretiert werden
CMLL18 : 11:24:39.806 00001a40/00 8 [clr.dll] error parsing formula ‘Report.BasisReportFullName’: Syntaxfehler: ‘Report.BasisReportFullName’ kann nicht interpretiert werden
CMLL18 : 11:24:39.806 00001a40/00 9 [clr.dll] [formula was ‘Report.BasisReportFullName’]
CMLL18 : 11:24:39.806 00001a40/00 0 …‘Report.BasisReportFullName’ not found
CMLL18 : 11:24:39.806 00001a40/00 1 [clr.dll] =0 (‘Buchungen.Beleg;Buchungen.Betrag; Buchungen.BuchungsText;Buchungen.KostenArtBezeichnung; Buchungen.KostenArtIde;Buchungen.KostenstelleBezeichnung; Buchungen.KostenstelleIde;Buchungen.RecId;Buchungen.Valuta;Mandant.Abteilung; Mandant.Adrnum;Mandant.EMail; Mandant.Fax;Mandant.FirmenKopf; Mandant.FirmenKopfBildAnzeigen;Mandant.FirmenKopfTextAnzeigen;Mandant.IsoLw;Mandant.Land;Mandant.Mobile; Mandant.Name;Mandant.Ort; Mandant.Plz;Mandant.Strasse;Mandant.Telefon;Man
dant.TelefonPrivat;Mandant.Vorname;Mandant.Zustaendig; Report.BasisReportFullName;Report.BenutzerKurzName; Report.IsReportBaseFooterVisible;Report.IsReportBaseTitelVisible; Report.IsUserShortVisible;Report.Titel’)
CMLL18 : 11:24:39.806 00001a40/00 2 [clr.dll] LlGetUsedIdentifiersEx(1,c:\Entwickeln\TFS\RMIProd\ Main\Finanz\MesserliFinanz\Layouts\KstBuchungsJournal.de.lst,0x00000008,0X0EB7BDB8,32768)
CMLL18 : 11:24:39.822 00001a40/00 3 [CMLL18.DLL] @NOTIF.(code= 62, param=0X068AA10C, user=00000000)
CMLL18 : 11:24:39.822 00001a40/00 4 [CMLL18.DLL] -> 00000000
CMLL18 : 11:24:39.822 00001a40/00 5 [CMLL18.DLL] @NOTIF.(code= 62, param=0X068AA10C, user=00000000)
CMLL18 : 11:24:39.822 00001a40/00 6 [CMLL18.DLL] -> 00000000
CMLL18 : 11:24:39.822 00001a40/00 7 [CMLL18.DLL] *Syntaxfehler: ‘Report.BasisReportFullName’ kann nicht interpretiert werden
CMLL18 : 11:24:39.822 00001a40/00 8 [CMLL18.DLL] error parsing formula ‘Report.BasisReportFullName’: Syntaxfehler: ‘Report.BasisReportFullName’ kann nicht interpretiert werden
CMLL18 : 11:24:39.822 00001a40/00 9 [clr.dll] [formula was ‘Report.BasisReportFullName’]
CMLL18 : 11:24:39.822 00001a40/00 0 [clr.dll] @NOTIF.(code= 62, param=0X068AA47C, user=00000000)
CMLL18 : 11:24:39.822 00001a40/00 1 [clr.dll] -> 00000000
CMLL18 : 11:24:39.822 00001a40/00 2 [clr.dll] @NOTIF.(code= 62, param=0X068AA47C, user=00000000)
CMLL18 : 11:24:39.822 00001a40/00 3 [clr.dll] -> 00000000
CMLL18 : 11:24:39.822 00001a40/00 4 [clr.dll] *Syntaxfehler: ‘Report.BasisReportFullName’ kann nicht interpretiert werden
CMLL18 : 11:24:39.822 00001a40/00 5 [clr.dll] error parsing formula ‘Report.BasisReportFullName’: Syntaxfehler: ‘Report.BasisReportFullName’ kann nicht interpretiert werden
CMLL18 : 11:24:39.822 00001a40/00 6 [clr.dll] [formula was ‘Report.BasisReportFullName’]
CMLL18 : 11:24:39.822 00001a40/00 7 …‘Report.BasisReportFullName’ not found
CMLL18 : 11:24:39.822 00001a40/00 8 [clr.dll] =0 (‘Buchungen;Mandant;Report’)
CMLL18 : 11:24:39.822 00001a40/00 9 [clr.dll] LlDbAddTableEx(1,’(NULL)’,’’,0)


(Guest) #5

Das Problem wurde mit dem Support von Combit analysiert. Es handelt sich dabei um einen Bug in LL18 der voraussichtlich mit dem nächsten Service Pack korrigiert wird.


(Karsten Sarez) #6

Hallo zusammen,

wir haben das gleiche (oder zumindest sehr ähnliche) Problem mit LL22 in Delphi, d.h. nach Abbruch einer Vorschau kann die Vorschau nicht erneut aufgerufen werden. Auch hier scheint sich die Exception LL_ERR_USER_ABORTED noch im cache zu befinden, und die Applikation muss neu gestartet werden, um die Vorschau wieder aufrufen zu können.

Leider ist nicht ersichtlich, welche Lösung damals gefunden wurde, bzw. ob der Bug korrigiert wurde.


(combit - Jochen Bartlau) #7

Wenn ich mir die Release-Notes für LL22 anschaue scheint das in 22.001 gefixt worden zu sein:

The “aborted” state was remembered in the LL-job, even if the printing job was a new one. Now we reset the aborted flag before starting a new print job. NB: it is advised to start a new LL job for every print out anyway.

Die einfachste und sicherste Lösung wäre demnach, die zum Druck verwendete Komponente nach jedem Druck freizugeben und vor jedem Druck neu zu instanzieren. Ansonsten sollten Sie - wenn Sie noch eine aktive Subscription haben - das aktuelle Servicepack 22.009 einspielen.