1

mehrere Filter kombinieren sowie Dropdownfeld einbauen

Habe eine Haupttabelle "Hockey" mit 3 Feldern "Name" "Status" und Datum

Im Dashboard sind die Felder "Name" und Status vorhanden sowie eine Ansicht. In die Ansicht habe ich geschrieben

let mySuche := Name;
select Hockey where Name = mySuche

Sobald ich den Namen händisch schreiben funktioniert es wollte aber nun einen 2. Filter kombinieren und schaffe es nicht das Feld "Status" einzubauen wie kann ich da vorgehen. Habe es mit or versucht und komme da nicht zurecht. Wäre es vieleicht sinnvoller das mit einem Button zu starten? Verstehe aber nicht wie ich da die Ansicht ansteueren kann. Sorry wegen der vielen Fragen.

 

Das 2. Problem ich würde gerne die Felder im Dashboard mit der Hockey Tabelle  Feld "Name" als Dropdown verbinden wie geht man da vor. Damit ich nicht händisch alles in der Dropdownliste eintragen muss. Gibt es da eine Möglichkeit?

Vielen Dank für Eure Tipps und Hilfen

Grüße Claus

3 Antworten

null
    • Leonid_Semik
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Hallo Claus,

    zu 1.

    ---

    let myName := Name;
    let myStatus:=Status;
    select Hockey where Name = myName and Status=myStatus

    ---

    zu 2.

    Man kann momentan die Dropdowns nicht dynamisch füllen. Eine Abhilfe kann man schaffen in dem man in der Tabelle Dashboard eine Verknüpfung zu der Tabelle Hockey hinzufügt und einen Trigger nach Änderung:

    ---

    if Hockey then Name:=Hockey.Name end;
    Hockey:=0

    ---

    So wählst du den Namen aus der Tabelle Hockey, Ninonx überträgt den Namen in den Textfeld und nullt das Verknüpfungsfeld.

    Leo

    • Claus.1
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Herr Leo Danke für die schnelle Antwort.

     

    Punkt 1

    Habe ein Dropdownfeld "Status" händisch gefüllt. Wie bekomme ich den korrekten Wert/Text in das feld geschrieben. Es scheint zwar auf, aber in der Ansicht/Tabelle filtert er mir diesen Wert nicht heraus. Es bleibt einfach leer.  Ist soetwas Möglich.

    Habe dieses Beispiel genommen. 

    let myName := Name;
    let myStatus:=Status;
    select Hockey where Name = myName and Status=myStatus

     

    Bei Punkt 2 bräuchte ich nochmal ihre Hilfe in der Verknüpfung sind viele Doppelte Namen drinnen kann man das umgehen das man nur immer einen Namen sehen kann anstelle der ganzen 4000 Einträge (es sind 150 Personennamen).

    Danke für Hilfe

    • Leonid_Semik
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Hallo Claus,

    1. es ist wichtig dass die IDs der Einträge des Feldes Status in beiden Tabellen gleich sind. Ist es nicht der Fall, muss man die Textwerte vergleichen:

    ---

    let myName := Name;
    let myStatus:=text(Status);
    select Hockey where Name = myName and text(Status)=myStatus

    ---

    2. wenn in der Tabelle ein Name mehrmals vorkommt, verstößt diese Tabelle gegen Normalisierungsregeln. In diesem Fall ist es ratsam, eine neue Tabelle "Personen" zu erstellen. Dort ein Textfeld "Name". Jetz in die Tabelle Hockey gehen und dort die Verknüpfung zu Personen hinzufügen. Die Tabelle Personen kann man per Skript füllen. Dafür in der Tabelle Hockey einen Button erstellen:

    ---

    for i in Hockey do

    if cnt(select Personen wehre Name=i.Name)=0 then 

    (let new:=create Personen;

    new.Name=i.Name;

    i.Personen:=new)

    else

    (let my:=first (select Personen wehre Name=i.Name);

    i.Personen:=my)

    end

    end

    ---

    jetzt kann man die Tabelle Personen in Dashboarg verknüpfen und die Ansicht so formulieren:

    ---

    if Personen then

    let myP:=Personen.Name;

    select Hockey where Name=myP

    else

    select Hockey

    end

    ---

    Leo