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

LL18: Textpositionen via Formel bestimmen


(Daniel Hoffmann) #1

Hallo Zusammen,

nun hänge ich wieder einmal etwas in der Luft. Wir erstellen ein ERP System und wollen nun nach langer Überlegung LL integrieren. Nun sind wir dabei, die ersten Formulare zu erstellen, welches meine Aufgabe ist. Wir nutzen ein Formular (das auch Formular genannt wird) für Rechnungen, Lieferscheine, Kostenvoranschläge usw. Hinzu kommt, dass wir unter Service und Verkauf unterscheiden. Also ist es ein Verkaufsauftrag (Geräte, Ersatzteile) oder ein Serviceauftrag (Wartung).

Dazu wird folgendes deklariert:
Art: (V)erkauf, (S)ervice
Druckart: (RG) Rechnung, (KV) Kostenvoranschlag, (AB) Auftragsbestätigung, usw.

Nun gibt es Felder und Texte, die z.B. auf einer Servicerechnung stehen, jedoch nicht auf einer Verkaufsrechnung, oder die AB im Service anders aufgebaut ist wie im Verkauf. Z.B. werden im Service zus. Felder angedruckt, z.B. nächste Wartung oder nächste UVV, aktuelle Betriebsstunden (wird bei Neugeräteverkauf oder Ersatzteilen alles nicht benötigt. Daher müssen die folgenden Variablen entsprechend nach oben geschoben werden, wenn verschiedene Felder nicht angedruckt werden/dürfen/sollen.

Ich habe das ganze mit einer If-Verschachtelung versucht, jedoch wird es unübersichtlich und im Prinzip müsste ich auch fragen, ob es eine (S)(RG) ist oder eine (V)(RG) ist. Aber irgendwie komm ich bei der If-Verschachtelung nicht dazu, beides gleichzeitig abzufragen.

Hier mal ein Auszug einer If-Verschachtelung

if(Druckart=“KV”, False, if(Druckart=“AB”, False, if(Druckart=“AN”, False, if(Druckart=“LS”, False, if(Art=“S”, True, if(Art<>“S”, False))))))

Vielleicht hat einer dazu eine einfachere Lösung oder kann mir sagen, wie ich einfach nach Druckart UND Art gleichzeitig fragen kann.

Danke im Voraus und ich hoffe, dass ich diesmal ausreichend Infos gegeben habe, sodass mir jemand helfen kann. Ansonsten einfach nachfragen.

Daniel Hoffmann


(combit Support - Patrick Preuschoff) #2

Hallo Herr Hoffmann,

vielen Dank für Ihren Beitrag.

Eine alternative Lösung wäre der Einsatz von Ausfertigungen. Jede Kombination aus Druckart und Art ist hierbei eine Ausfertigung. Die benötigte Information welche Ausfertigung gedruckt werden soll können Sie vor dem Beginn des Drucks über eine Variable definieren.

Die einzelnen Objekte erhalten nach dem Setzen der Gesamtzahl der Ausfertigungen (siehe Projekt > Eigenschaften) eine weitere Option: Anzeigebedingung für Ausfertigungsdruck. Hier können Sie nun bestimmen in welche Ausfertigung das Objekt gedruckt werden soll. Zudem eignet sich die Arbeit mit Ebenen.

Für Tabellen gäbe es folgendes zu bedenken:

Erstellen Sie mehrere Tabellen und passen diese für den jeweiligen Typ entsprechend an oder wird nur eine einzige Tabelle verwendet, bei der Zeilendefinitionen, Spalten oder einzelne Zeilen über Darstellungsbedingungen aus- oder eingeblendet werden? Insofern Sie den Weg über die Darstellungsbedinungen bevorzugen könnten Sie redundante Felder anlegen, die jeweils nur bei einem fest definierten Typ gedruckt werden, ansonsten aber identisch sind. Als Darstellungsbedingung hinterlegen Sie nur noch eine If()-Bedingung mit der zuvor definierten Variable.

Weitere Informationen zum Thema Ausfertigungen erhalten Sie im List & Label Designer-Handbuch.

Zu guter Letzt wäre es möglich die Projektdatei auch dynamisch über die DOM-API (welche ab der Professional Version zur Verfügung steht) zu generieren. Hierzu finden Sie neben der Informationen in der Programmierer-Referenz auch programmierbare Beispiele im List & Label-Installationsverzeichnis.

Mit freundlichen Grüßen

Patrick Preuschoff
Technischer Support
combit GmbH