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.