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

Bilder je nach Kategorie hintereinander anzeigen

Guten Tag

Ich versuche in einem Formular folgendes zu erreichen:
Hat ein Produkt die Eigenschaft 1 dann soll Bild 1 an Position 40x40y angezeigt werden. Hat dieses Produkt auch Eigenschaft 2 dann soll Bild 2 an Position 40x80y angezeigt werden.
Hat ein Produkt nur Eigenschaft 2 soll das Bild 2 an Position 40x40y angezeigt werden.
Dies mit insgesamt 6 Eigenschaften.
Sprich im Extremfall werden 6 Bilder (Symbole) nebeneinander angezeigt.
Bis jetzt bin ich mit einer Verschachtelten If und Contains gefahren, jedoch dauert so die Formularaufbereitung sehr lange.
Gibt es dafĂĽr eine einfachere Variante?

freundliche GrĂĽsse

Dominik Huber

Evtl. pro Bild eine Formel in die Eigenschaft Darstellungsbedingung setzten. Bei Bild 1 wäre es dann “Eigenschaft1” bei Bild2 “Eigenschaft2” usw.

Guten Tam Marco MĂĽller

Genau das habe ich jetzt, aber da sich dadurch viele Varianten ergeben, dauert die Erstellung sehr lange.
nur so als Beispiel fĂĽr das Bild fĂĽr Eigenschaft 3 an erster Stelle wenn die Eigenschaften 1 und 2 nicht aktiv sind:

Blockquote
If(If(Contains(KriteriumsWert10,“Eigenschaft 1”) and not Contains(KriteriumsWert10,“Eigenschaft 2”) and
Contains(Pflanzenattribute.Besonderheiten,“Eigenschaft 3”),True,False),true,If(not Contains(KriteriumsWert10,“Eigenschaft 1”) and Contains(KriteriumsWert10,“Eigenschaft 2”) and Contains(Pflanzenattribute.Besonderheiten,“Eigenschaft 3”),True,False))

FĂĽr die 6 Position ergibt dies einen riesen Rattenschwanz an IFs und Contains dass die Aufbereitung von mehreren Seiten (meist zwischen 10 und 100) Ewigkeiten dauert.

freundliche GrĂĽsse

Dominik Huber

Hmmm. Contains kostet natĂĽrlich Zeit. Das System muss ja immer den ganzen String durchsuchen und das x-mal.
Wenn Sie Zugriff auf die Datenquellen haben, könnten Sie das schon in der Query (effzient) einbauen und dann nur noch true/false Werte in LL abfragen.

Eine andere Idee, die aber ausprobiert werden muss: Definieren Sie die einzelnen Contains als Benutzervariablen. Das mĂĽssten ja dann nur 6 verschiedene sein, fĂĽr jeden Eigenschaft eine. Und in den Ifs fragen sie diesen Variablen ab. Evtl. werden pro Zeile nur 6 und nicht zig Berechnungen durchgefĂĽhrt.

1 Like

Sie könnten auch zwischen dem Produkt und den Eigenschaften eine 1:n-Relation in der Datenquelle vorstehen. Dann könnten Sie das ganze als horizontal ausgegebene mehrspaltige Untertabelle realisieren, ähnlich wie ich es im zweiten Teil in diesem Blogpost beschrieben habe.

Guten Tag Herr Bartlau

Unsere Branchensoftware setzt leider noch auf Version 24. Ansonsten könnte ich mir vorstellen, dass damit das gewünschte Ergebnis möglich wäre.
Ich werde mich gleich mit der Idee von Herr MĂĽller oben auseinandersetzen. Vielleicht geht dass dann einfacher.

1 Like

Guten Tag Herr MĂĽller

Die Benutzervariable fĂĽr die Contains Abfrage funktioniert soweit, jedoch bleiben da wohl die ganzen if-Abfragen bestehen. Es ist sicherlich mal ein Zwischenschritt.
Da die Contains Abfrage jeweils nur für eine Seite ist und nur einmal gebraucht wird, ist die Geschwindigkeit nicht viel höher.
Nur zur Vorstellung:
Wir drucken pro Artikel eigene Schilder mit den genannten Eigenschaften. Daher wird fĂĽr jede Seite die Contains Abfrage, auch als Benutzervariable, durchgefĂĽhrt.

Ausser die Datenquelle zu ändern, fällt mir da aktuell auch nicht mehr ein. Sorry.

Wäre eventuell eine Variante dies über die Verkettung zu lösen?
Quasi wenn Eigenschaft 1 = True dann Bild 1 wenn nicht prĂĽfe Eigenschaft 2 usw. So dass alle Bilder bei denen die Eigenschaft = True (mittels Contains Abfrage) haben, hintereinander gedruckt werden?

HA!
Ich habs!
Die Verkettung machts!
Alle Symbolbilder mittels if(Contains(Suchfeld, Suchparameter)true,false) versehen, danach in der gewĂĽnschten Reihenfolge verketten. Anschliessend die horizontale Positionsanpassung relativ zu Ende anhaken, die vertikale Positionsanpassung abhaken und voila: die Bilder (Symbole) werden je nachdem welches die If-Formel erfĂĽllt nacheinander angezeigt und rĂĽcken auf, wenn ein Bild vorher als Ergebnis False hat.
Nun muss ich nur noch rausfinden, wie ich verhindere, dass der Abstand, je weiter das Symbol in der Verkettungsreihenfolge ist, grösser wird. Momentan wirds immer circa 1mm mehr.
Dies hier als Lösung falls noch jemand vor dem Problem stehen sollte.

Cheers & Out

Dominik Huber

1 Like

Oke, nicht ganz.
Durch das NachrĂĽcken entsteht vor jedem Symbol ein Abstand von circa 1mm. Dadurch passiert es, dass wenn das letzte Symbol als einziges die Bedingung erfĂĽllt, es um circa 7mm verschoben wird.
Wie kann ich das in der Verkettung ausgleichen?

Sie mĂĽssten die Bilder im Design exakt aneinander ausrichten, ohne eine LĂĽcke zu lassen.

© combit GmbH