ich teste gerade den Export unserer verschiedenen Berichten (Reports) List & Label Cross Platform-Version (31.0.0).
Hierbei habe ich festgestellt, dass die Barcodes auf einigen unserer Berichten nicht mehr dargestellt werden. Dies hatte zuvor mit der List and Label Enterprise Version 31 funktioniert.
wird der Barcode nach dem Export nicht auf der PDF angezeigt.
In der Vorschau des List and Label Designers wird dieser korrekt dargestellt.
In der Logdatei (logdatei.log (51.8 KB)) die beim Export erstellt wurde, wird kein Fehler aufgeführt.
Ein Beispiel für den Inhalt des Barcodes ist: “123456-1-Test-001-1-1“
Woran könnte das liegen?
Vielen Dank schon Mal im Voraus.
Ich habe das eben hier ausprobiert - bei mir erscheint der Barcode korrekt im mit LLCP exportierten PDF:
Ich würde am ehesten ein Problem mit den Koordinaten vermuten - die sind in deinem Log leider nicht zu sehen. Ich habe bei meinem Test Debwin4 mitlaufen lassen (im LLCP-Modus), da sind in den Debugausgaben alle Rechtecke zu sehen:
Dafür muss der LogLevel auf “Debug” erhöht werden - kannst du das in deinem Logging-Framework machen? Wenn du auch Debwin4 verwendest wäre es diese Einstellung hier im Filter-Panel:
Kannst du das einmal bei dir prüfen? Haben - dumme Frage - die Balken vielleicht “weiß” als Farbe? Ansonsten kannst du dich gerne einmal mit einem minimierten Sample bei unserem Support melden, das muss grundsätzlich klappen.
Danke für die Antwort.
Ich benutze bereits den DebwinLogger wie in der Dokumentation beschrieben.
Danke für den Hinweis mit dem Log Level. Ich habe dieses jetzt von Info auf Debug erhöht.
Ich bekomme nun auch eine Fehmeldung in der Log Datei:
Ich weiß leider nicht genau was mit “AI not found“ gemeint ist.
Könntest du mir das erklären?
Die Balken sind übrigens auf Schwarz (LL.Color.Black) eingestellt.
Offenbar wird versucht, einen GS1-Barcode auszugeben, der keinen gültigen Application Identifier besitzt. Das kann eigentlich nur passieren, wenn der Zieltyp eben ein GS1 Barcode ist. Der Code 128 sollte das Problem nicht auslösen können. Ein volles Logfile - ggf. über den Support ausgetauscht - könnte Licht ins Dunkel bringen.
Ich werde mir das morgen mit dem Inhalt aus deinem letzten Post nochmal genauer ansehen.
Soweit ich sehe wird die in der Meldung genannte Funktion nur bei Verwendung eines EAN128-Barcodes aufgerufen. Kann es sein, dass es sich nicht um einen Code128 sondern einen GS1-128 (früher EAN128) handelt?
Ich hänge dir mal mein Spielprojekt mit dem Code-128 Barcode an. Du könntest vielleicht versuchen, das Projekt “kaputt” zu machen? Die entscheidende Stelle ist
Ich habe jetzt herausgefunden warum der Fehler auftritt:
In meinem Bericht (JSON Datei) ist der Barcode Typ (Eigenschaft: BarcodeType) auf: 1073741836 eingestellt.
Nachdem ich den Barcode Typen auf: 1073741867 geändert habe (wie in der Beispieldatei Code128.json) ist der Fehler nicht mehr aufgetreten und der Barcode wurde in der PDF dargestellt.
Du kannst den Fehler auch bei dir nachstellen indem du den BarcodeType in der JSON Datei auf: 1073741836 änderst. Code128.zip (4.5 KB)
Meine Frage wäre jetzt folgende:
Wie kann ich den Barcode Typen auch in der Berichtsdatei (lst) bzw. im List and Label Designer (Desktop) ändern?
Beziehungsweise wie genau wird dieser Barcode Typ bei der Konvertierung der .lst in die .json Datei bestimmt?
Hm - bei dir entspricht das dann diesem Typen (-> den Wert auf hexadezimal gewandelt):
#define LL_BARCODE_GS1_128 0x4000000C
Genau wie - im Problemfall - gedacht. Ich vermute, dass das hierher kommt, das ist der Property-Getter für den Barcode-Typen im Classic Mode:
public LlBarcodeType BarcodeType
{
get
{
string barcodeType = GetProperty(nameof(BarcodeType));
if (!string.IsNullOrEmpty(barcodeType))
{
return ((LlBarcodeType)Enum.Parse(typeof(LlBarcodeType), string.Format("{0}", int.Parse(barcodeType) + 0x40000000)));
}
else
{
return LlBarcodeType.EAN128;
}
}
set
{
SetProperty(nameof(BarcodeType), string.Format("{0}", (int)value - 0x40000000));
}
}
Wenn also kein Barcodetyp ermittelt werden kann wird EAN128 (was dem von dir beobachteten Wert entspricht) geliefert. Ich kann diesen Problemfall bei mir aber nicht nachstellen. Wo/wie hast du deinen Barcode eingefügt? Ist es ein Feld? Oder ein Barcodeobjekt? Könntest du deine Projektdatei (ggf. nur auf dieses eine Objekt reduziert) mal als ZIP hier reinstellen? Dann könnten wir uns das einmal ansehen. Abgesehen davon scheint mir aber Code128 ohnehin der sinnvollere Fallback, da dies der Default für einen neuen Barcode ist. Das werden wir anpassen (und damit vermutlich auch dein Problem lösen), dennoch wäre es interessant zu wissen, wie genau dein Projekt aussieht.
Ich konnte auch noch etwas herausfinden warum bei Konvertierung der List and Label Berichtsdatei Barcodetyp falsch ist:
Wird in der Barcode Methode ein statischer String übergeben (bspw.: Barcode(“567001-3-ZE-011-1-5”, “CODE128-FULL”)) wird der Barcodetyp korrekt ermittelt.
Wird jedoch die Variable übergeben (bspw.: Barcode(ReportDto.barcodeContent,“CODE128-FULL”) wird der Barcodetyp nicht korrekt ermittelt bzw. der Standardwert genutzt.
Bei der verwendeten Variable (kein Feld): barcodeContent gehört zu der Root Tabelle: ReportDto.
Der Wert der Variable an sich ist ein String.
Du kannst dieses Verhalten auch reproduzieren wenn du diese Report Datei: Report.lst (11.8 KB)
mit dem in der List and Label Version bereitgestellten Konvertierungsprogramm (ProjectConverter31.App.exe) konvertierst.
Hinweis: Der Inhalt der Report Datei ist deutlich (auf den Barcode) reduziert.
Die Daten für den Report werden über den ObjectDataProvider bereitgestellt und der AutoMasterMode ist auf “AsVariables“ eingestellt.
Vielen Dank - ja, das hilft sehr. Das Problem scheint in diesem Fall in der Classic-DLL zu liegen, wenn ich mir dein Projekt mit dem DOM-Viewer ansehe steht dort ebenfalls als Typ die “12” drin, was hier dem EAN128 entspricht:
Hallo,
gibt es schon Neuigkeiten bezüglich dem angesprochenen Problem?
Ich habe leider noch ein weiteres Problem mit 2D Barcodes festgestellt:
Aktuell bekomme ich folgende Fehlermeldung beim Rendern eines 2D Datamatrix Barcodes:
Ein Beispiel für den Inhalt der im Barcode dargestellt werden soll ist:
{\“urls\”:[Task/160.000.210.200.882.37/$accept?ac=31c8a6d8f2e1326f0a72f95fe56a6d8517f44a5df6e8fbea8d8a49537166b105]}
Es wird bereits der richtige Barcode Typ erkannt was man daran erkennen kann, dass die richtige Methode aufgerufen wird: GetDataMatrixBarcode.
Im Designer (Desktop Version) kann der Barcode und mit älteren Versionen von List and Label konnte der Barcode problemlos dargestellt werden.
Gibt es noch etwas zu beachten damit der Barcode mit List and Label Cross Plattform dargestellt werden kann?
Wir werden das Problem voraussichtlich im Laufe der kommenden Woche lösen. Solange kannst du für Strichcodes mit dem Workaround arbeiten, den “BarcodeType” manuell zu patchen. Könntest du mir für das Problem mit dem DataMatrix ebenfalls eine LST und das bei dir konvertierte JSON bereitstellen? Das Problem scheint beim Auslesen der Eigenschaft “PreferredFormat” zu passieren, da wird eine Zahl erwartet, es scheint aber ein Leerstring in der Datei zu stehen. Das mag ein Folgefehler des anderen Problems sein, ich würde mir das aber gerne ebenfalls anschauen.
Dankeschön schonmal für die Infos.
Ja, ich kann bestätigen das der Barcode angezeigt wird, wenn ein statischer String übergeben wird, allerdings funktioniert es nicht mit Variablen.
Natürlich stelle ich gerne eine minimierte Version meiner Report Dateien zur Analyse des Problems bereit.
Im Anhang in der ZIP Datei Report files.zip (8.3 KB) befindet sich die Projektdatei (lst), die konvertierte Datei (json) und das Dto Model mit Beispieldaten.
Gute Nachrichten - wir haben das Problem eben behoben. Voraussichtlich ab morgen früh kannst du die Änderung mit dem Latest Prerelease Service Pack aus dem Supportbereich testen.
Hallo,
sorry für die Verspätete Antwort.
Ich habe nun die neuste Servicepack und List and Label Cross Plattform Nuget Paket Version (31.1.0-stable.163) installiert.
Die Barcodes scheinen schonmal grundsätzlich zu funktionieren und die Konvertierung der Barcode Objekte (einschließlich des Barcode Typen) funktioniert nun auch.
Vielen Dank schonmal für die Hilfe soweit
Leider bin ich allerdings noch auf ein bestimmtes Problem gestoßen was auch mit Barcodes zusammenhängt:
Wird ein Barcode und danach ein Text (mit Inhalt aus einer Variable) gerändert kommt es aktuell zu folgendem Fehler:
Dieser Fehler tritt nur auf wenn ein Barcode und ein Text angezeigt werden soll.
Ist nur eines von beidem vorhanden (nur Barcode oder nur Text) tritt dieser Fehler nicht auf.
Der Fehler tritt unabhängig vom Inhalt des Barcodes auf und ist nur der Barcode vorhanden kann dieser auch fehlerfrei angezeigt werden.
Mit den in der ZIP Datei: New Report files.zip (8.3 KB) enthaltenden Dateien lässt sich das Problem reproduzieren.
Es wäre sehr nett wenn du dir das Problem einmal anschauen könntest.
Trotzdem schonmal Danke für die bisherige Hilfe
Das konnte ich unter bestimmten Umständen nachvollziehen. Mein Testcode sieht so aus:
try
{
ListLabel listLabel = new ListLabel
{
DataSource = new List<ReportDto>() { new ReportDto() },
AutoProjectFile = projectFilePath,
LicensingInfo = "...",
DataMember = "ReportDto",
AutoMasterMode = LlAutoMasterMode.AsVariables
};
ExportConfiguration exportConfiguration = new ExportConfiguration(LlExportTarget.Pdf, exportFilePath, projectFilePath);
exportConfiguration.ShowResult = true;
listLabel.Export(exportConfiguration);
Console.WriteLine($"Thread {threadId} finished exporting to {exportFilePath}");
}
catch (Exception ex)
{
Console.WriteLine($"Thread {threadId} encountered an error: {ex.Message}");
}
Ich weiß nicht, ob du das mit dem AutoMasterMode auch schon so gemacht hast, das ist wichtig dafür, dass die Variablen theoretisch angemeldet werden. Damit es auch praktisch klappt musste ich eben noch ein Problem bei der Formelevaluierung beseitigen . Sollte ab morgen früh mit dem aktuellen Package dann klappen. Ich bekomme damit:
Hallo,
Ich habe die Barcodes nochmal mit der neusten List and Label Prerelease Version nachgetestet.
Es scheint jetzt alles Fehlerfrei angezeigt werden zu können.