Umstellung bestehender List & Label-Projekte auf Cross Platform (LLCP)

Click here for the English article.

Einleitung

In diesem KB-Artikel zeigen wir dir, wie du ein List & Label Classic-Projekt (z. B. .lst, .lbl, .blg, …) in das mit List & Label Cross Platform (LLCP) kompatible JSON-Format konvertierst: entweder mit dem mitgelieferten Converter-Tool oder per eigener Konvertierung im Code mithilfe der ProjectConverter-Klassen.

Hintergrund

LLCP unterscheidet sich konzeptionell von List & Label Classic und ist von Grund auf als plattformübergreifende Reporting-Engine konzipiert, d. h. also nicht nur für Windows, sondern auch für Linux, macOS, iOS, Android und Container-Umgebungen. Deine Classic-Projekte müssen deshalb in ein plattformunabhängiges Format umgewandelt werden, das keine Windows-spezifischen Designer-Dateien mehr voraussetzt.

Ein Vorteil ist auch, dass JSON ein offenes, weit verbreitetes Standardformat darstellt, das z. B. leicht in Versionsverwaltungen wie Git verglichen oder automatisiert verarbeitet werden kann.

Umsetzung

Du hast zwei Möglichkeiten, dein Projekt zu konvertieren: Entweder nutzt du das mitgelieferte Converter-Tool aus unseren Samples oder du führst die Konvertierung über die entsprechenden ProjectConverter-Klassen in deiner eigenen Anwendung durch.

Möglichkeit 1: Konvertierung mit dem mitgelieferten Cross Platform Project Converter

Das ist der schnellste Weg, wenn du Classic-Projektdateien manuell in das LLCP-Format JSON umwandeln möchtest. Du nutzt dafür das Converter-Tool, das zusammen mit unseren Samples mitgeliefert wird.

Unter deinem List & Label-Installationspfad findest du den Project Converter in den Cross-Platform-Samples, z. B.:

"C:\Program Files (x86)\combit\LL31\Beispiele\Microsoft .NET\.NET 8\Cross Platform\Project Converter\ProjectConverter31.App.exe"

Die Bedienung ist bewusst einfach gehalten: Wähle die zu konvertierende Classic-Projektdatei sowie den gewünschten Zielpfad aus und starte die Konvertierung. Das Ergebnis ist eine JSON-Projektdatei, die mit List & Label Cross Platform verwendet werden kann.

Möglichkeit 2: Konvertierung über die ProjectConverter-Klassen

Wenn du die Konvertierung nicht manuell über das Tool durchführen willst, sondern sie automatisiert oder direkt in deine eigene Anwendung integrieren möchtest, ist die ProjectConverter-API das Mittel der Wahl. Damit kannst du Classic-Projekte programmatisch nach JSON konvertieren und die Umwandlung flexibel in deine bestehenden Abläufe integrieren.

Benötigte Pakete / Referenzen

Für die Konvertierung benötigst du das combit.ListLabel31.ProjectConverter-NuGet-Paket, welches alle ProjectConverter-Klassen enthält, mit denen du Classic-Projekte, z. B. .lst oder .lbl, in das LLCP-Format JSON konvertieren kannst.

Weitere Informationen zur Umwandlung deiner Projekte über die ProjectConverter-Klassen findest du in der LLCP-Dokumentation.

Wichtiger Hinweis bei der Verwendung von Maßeinheiten in Formeln

Unabhängig davon, welche der beiden Möglichkeiten du zur Konvertierung deiner Projekte verwendest, gibt es einen sehr wichtigen Punkt, den unbedingt beachten musst: sobald Koordinaten, Breiten, Höhen oder Abstände als Formel definiert sind, musst du numerische Werte in dieser Formel immer mit UnitFromSCM(...) kapseln.

Warum ist das wichtig?

Je nach Plattform und Umgebung kann intern mit unterschiedlichen Maßeinheiten gearbeitet werden. Während du in vielen Projekten gedanklich in Millimetern oder Zentimetern arbeitest, verwenden andere Systeme bzw. Plattformen teilweise andere Basiseinheiten, zum Beispiel Inch statt Zentimeter. Dadurch können Formeln, die kein UnitFromSCM(...) verwenden, auf verschiedenen Plattformen unterschiedlich interpretiert werden.

Was ist SCM?

SCM ist eine interne Maßeinheit von List & Label. Dabei entspricht 1 SCM genau 1/1000 Millimeter.

  • 1 mm = 1000 SCM
  • 10 mm = 10000 SCM
  • 20 mm = 20000 SCM
  • 1 cm = 10000 SCM

SCM dient als einheitliche, geräte- und plattformunabhängige Basis für Positions- und Größenangaben. Dadurch wird sichergestellt, dass Layouts unabhängig vom verwendeten Einheitensystem, z. B. Millimeter oder Inch, konsistent berechnet und dargestellt werden.

Weitere Informationen zur Funktion UnitFromSCM(...) findest du in der List & Label Designer-Dokumentation unter UnitFromSCM.

Beispiel: Fester Seitenabstand von 2 cm

Du möchtest die Tabellenbreite um 2 cm vom rechten Rand verkleinern. 2 cm entsprechen 20 mm = 20000 SCM.

Richtig ist: TableWidth() - UnitFromSCM(20000)

Falsch wäre: TableWidth() - 20000

Eigenschaften, die du besonders prüfen solltest, sind vor allem alle Stellen, an denen Positionen, Größen oder Abstände per Formel berechnet werden, zum Beispiel:

  • Positionen von Objekten, z. B. Left und Top
  • Breite und Höhe von Objekten, z. B. Width und Height
  • Abstände und Einzüge, z. B. Margins, Padding, Spacing, Ränder oder Rahmen
  • Berechnete Breiten und Höhen nach dem Muster „X minus Y“ oder „X plus Y“
  • Cond-Formeln und andere Ausdrücke, in denen feste Zahlenwerte vorkommen

Wenn du nach der Konvertierung Layout-Unterschiede feststellst oder merkst, dass der Ausdruck nicht korrekt aussieht, ist ein sehr guter erster Schritt, genau diese Formeln zu prüfen und sicherzustellen, dass alle Zahlenwerte in den Formeln korrekt mit UnitFromSCM(...) gekapselt sind.