0

dynamisches Auswahlfeld - Werte filtern

kann man bei der dynamischen Auswahl die "auswählbaren" Werte filtern? Also z.B.

unique((select Automodelle).Hubraum)

? Ich würde gerne die Werte nur einmal anzeigen lassen, sollten sie doppelt vorhanden sein.

LG

Johannes

11 Antworten

null
    • mirko3
    • vor 3 JahrenTue, January 11, 2022 at 1:03 PM UTC
    • Gemeldet - anzeigen

    Hallo Johannes. Wenn Du das folgende Script in Dynamic values einträgst, müßte es gehen. Dir wird dann jeweils der erste Datensatz bei gleichen Werten im Feld Hubraum angezeigt. Die vielen Schleifen könnten aber Performanceprobleme bei großen Datensatzmengen machen. Gruß Mirko
    *
    let uniqueTab := unique((select Automodelle).Hubraum);
    let minNr := for i in uniqueTab do
    min(for x in (select Automodelle)[Hubraum = i] do
    x.number(Nr)
    end)
    end;
    for y in minNr do
    record(Automodelle,y)
    end
    *

    • john_eans
    • vor 3 JahrenTue, January 11, 2022 at 5:44 PM UTC
    • Gemeldet - anzeigen

    Sehr cool! Vielen Dank!
    Funktioniert wie gewünscht. Von der Performance her geht es eigentlich auch ganz gut. Zumindest merke ich kein Unterschied zu dem dynamischen Auswahlfeld mit "allen" Werten.

     

    Ich hab das noch nicht so verinnerlicht, dass "for ... in ... do" genau so wie select ein Array wiedergibt...ich glaub die Lösung hilft mir bei ein paar anderen Datenbanken ebenfalls weiter. 👍

    • Tristan_Fuchs
    • vor 2 JahrenWed, April 12, 2023 at 11:33 PM UTC
    • Gemeldet - anzeigen

    Wie würde diese Formel lauten, wenn noch ein zweiter Wert davon abhängig wäre? Ich greife einfachmal ins blaue uns sage dass wenn sich die Zylinderanzahl unterscheidet ich einen Eintrag für den gleichen Hubraum aber für verschiedene Zylinder haben möchte. Vielen Dank aber schonmal für die bereits gegebene Antwort!

    • mirko3
    • vor 2 JahrenThu, April 13, 2023 at 5:22 AM UTC
    • Gemeldet - anzeigen

    Das geht auch. Heute würde ich es so machen. Mirko

    let uniqueName := unique((select Automobile).(text(Hubraum) + "#" + text(Zylinder)));
    for i in uniqueName do
        first((select Automobile)[text(Hubraum) + "#" + text(Zylinder) = i])
    end
    
      • Rafael_Sanchis
      • vor 2 JahrenTue, April 25, 2023 at 9:06 PM UTC
      • Gemeldet - anzeigen

      Mirko Hi Mirko this script can use in ?

      • mirko3
      • vor 2 JahrenWed, April 26, 2023 at 5:58 AM UTC
      • Gemeldet - anzeigen

      Rafael Sanchis In this case, it is used to filter a dynamic choice field or a dynamic multiple choice field

      • Rafael_Sanchis
      • vor 2 JahrenWed, April 26, 2023 at 7:06 AM UTC
      • Gemeldet - anzeigen

      Mirko Thank for your answer, there are some db example.

      • mirko3
      • vor 2 JahrenWed, April 26, 2023 at 7:24 AM UTC
      • Gemeldet - anzeigen

      Rafael Sanchis You'll have to ask Tristan. I only wrote the script without this database.

    • Tristan_Fuchs
    • vor 2 JahrenTue, April 25, 2023 at 8:39 PM UTC
    • Gemeldet - anzeigen

    vielen vielen Dank das funktioniert wunderbar!

      • Rafael_Sanchis
      • vor 2 JahrenWed, April 26, 2023 at 7:26 AM UTC
      • Gemeldet - anzeigen

      Tristan Fuchs Hi Tristan, sorry, have you some example DB, look too interisting.

      appreciate.

      • Tristan_Fuchs
      • vor 2 JahrenWed, April 26, 2023 at 7:37 AM UTC
      • Gemeldet - anzeigen

      Rafael Sanchis I don't but check your DM and I'll try to help you understand the code