DesignerFunction mit ResultType Barcode

Hallo,

ich habe ein Datenbank-Feld, in dem unformatiert die Zahlen für einen Barcode stehen (inkl. Prüfziffer). Das kann bunt gemischt ein EAN-8, EAN-13, UPC-A oder UPC-E sein. Wenn ich nun auf einem Etikett diese Zahlen als Barcode darstellen möchte, dann geht das nicht so einfach, weil die Funktion Barcode() den Typ als Parameter benötigt und außerdem der String mit den Zahlen speziell formatiert sein muss.

Um dies zu vereinfachen, wollte ich eine DesignerFunction erstellen, die den ResultType Barcode hat. Diese könnte den Typ des Barcodes ermitteln und ein entsprechendes Barcode-Objekt erzeugen. Also habe ich im Event EvaluateFunction den ResultValue gesetzt:

e.ResultValue = new LlBarcode(sEAN, typ, true)

Das LlBarcode-Object ist auch gültig, IsWellFormed ist true, der Content passt auch. Aber wenn ich den Wert einem Barcode-Feld im Etikett via Formel zuweisen möchte, kommt ein “Fehler: Barcode-Text hat falsches Format” und im Expression-Editor erscheint als Ergebnis der Formel “combit.Reporting.LlBarcode”.

Wenn ich als ResultValue den Content nehme:

e.ResultValue = new LlBarcode(sEAN, typ, true).Content

dann kommt das richtige Ergebnis heraus, aber ich kann den Typ des Barcodes nicht mehr beeinflussen (z.B. drucken wir als Fallback einen Code-39, wenn die Nummer kein UPC oder EAN ist).

Ich konnte in der Dokumentation leider nichts finden, wie man korrekt einen Barcode als Return-Value einer DesignerFunction erstellt, der dann auch in der Formel beim Barcode-Inhalt im Designer verwendet werden kann.

Vielleicht kann mir hier jemand weiter helfen?

Hallo Jürgen,

willkommen in unserem Forum!

Wir sind dabei, uns das Verhalten näher anzuschauen. Sobald neue Informationen vorliegen, werden wir den Thread aktualisieren.

Hi Jürgen, ich denke das für den Resulttype Barcode ein Standardbarcode Typ gesetzt wird, diesen wirst nicht mehr ändern können, eine Idee meinerseits wäre eventuelle eine eigene Action die dann ein Barcode Objekt (DOM) mit allen gewünschten Parametern erstellt, aber waren wir mal ab was der Onursal noch rausfindet :slight_smile:

@Jurgen_Erhardt1 Wir haben hier eine Anpassung vorgenommen.
Die EvaluateFunctionEventArgs enthalten nun ein FieldType-Member, mit dem der Barcode-Subtyp für Funktionen angegeben werden kann, die einen Barcode zurückgeben.

Das kann im Event z.B. wie folgt verwendet werden:

designerFunction.EvaluateFunction += (s, e) =>
{
	e.ResultValue= e.Parameter1 as string;
	e.ResultValue = e.Parameter2 as string;

	e.ResultType = LlParamType.Barcode;
	e.ResultFieldType = LlFieldType.Barcode_Code3of9;
};

Ein aktuelles “LatestPrerelease”-Servicepack für List & Label 31 mit den entsprechenden Anpassungen steht im Supportcenter bereit.

1 Like