0

Suche auf ein verstecktes Feld

Hallo.

Ich möchte eine Suche in meine DB integrieren. Dabei habe ich ...

Eine Tabelle mit Datumswerten einem Switch-Feld (Wert 1, Wert 2, Wert 3) und einem verknüpften Feld "Aufgaben", von dem ich Daten (Werte) aus der Tabelle "Aufgaben" hole.

Dieses Feld ist nur sichtbar, wenn Switch-Feld der Wert 2 oder Wert 3 ausgewählt ist.

Nun habe ich auf einem Register ein Dashboard erstellt, das alle DS in einer Ansichttabelle "Tabelle" anzeigt. Hier habe ich ein Suchfeld "Suche" eingefügt, das wie in Beispiel 225_Dashboard, die Suche auf diese Ansichttabelle ausführt und hier in dem Feld "Aufgabe" nach dem Suchbegriff sucht und filtert.

Ich bekomme aber schon beim Code eine Meldung, das das Feld nicht in der Tabelle ist.

Nun ist meine Vermutung, weil es nicht immer sichtbar ist.

Ich bin mit dem Code bis hier:

 

----

let mySuche :lower(Suche);

if Suche != null then

select Arbeitstage where contains(lower(Aufgabe), mySuche)

else

select Arbeitstage

end

---

Kann jemand Helfen?

Vielen Dank

Peer

6 Antworten

null
    • Torsten_Stang.1
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Hallo Peer,

     

    wenn ich's richtig verstehe, befindet sich das Feld "Aufgabe" aus Sicht der Tabelle "Arbeitstage" in der verknüpften Tabelle "Aufgaben"?

     

    let mySuche :lower(Suche);
    if Suche != null then
    select Arbeitstage where contains(lower(Aufgaben.Aufgabe), mySuche)
    else
    select Arbeitstage
    end

     

    lg, Torsten

    • Peer
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Hallo Torsten.

    Ich konnte das seit Freitag nicht mehr am PC sein, deshalb die verspätete Antwort.

    Sorry.

    Vielen Dank. Es funktioniert. Ich hatte es auch so gedacht und geschrieben, aber es funktionierte bei mir nicht. Warum? Wahscheinlich Schreibfehler und bin nicht darauf gekommen.

    Dank dir, wieder alles gut.

    LG

    Peer

    • Peer
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Wenn ich jetzt das Suchefeld mit meinen vorhandenen Auswahlfeld "'Auswahl Monat' in den Code einbezihen möchte, wie sieht dann der Code aus? Das Auswahlfeld hat die Werte Januar, Februar... und als ersten Wert "alle", damit man auch alle DS anzeigen kann. Der Wert "leer" habe ich ausblenden lassen und "alle" als Standard gelegt.

    Ich habe bis jetzt das...

    let myMonat := number('Auswahl Monat');
    let allDS := text('Auswahl Monat') = "alle";
    let mySuche := lower(Suche);
    let myCHOICE := number('Auswahl Monat');
    if Suche != null then
    select Arbeitstage where contains(lower(Aufgaben.Aufgabe), mySuche)
    else
    if 'Auswahl Monat' = allDS then
    select Arbeitstage
    else
    (select Arbeitstage)[month(date(Arbeitsbeginn)) = myCHOICE]
    end
    end

    Die Suche klappt immer noch. 

    Wenn ich jetzt aber auf "alle", dann ist die Liste leer. Die anderen Monate werden korrekt (bis jetz) angezeigt. Auch wenn die Tabelle leer ist, findet die Suche den/die richtigen DS.

    Ist eventuell die Reihenfolge meines Code falsch? 

    Ich komme nicht drauf

    LG

    Peer

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

    Hallo Peer,

    so vielleicht:

     

    let myMonat := number('Auswahl Monat');
    let mySuche := lower(Suche);
    let myCHOICE := number('Auswahl Monat');
    if Suche != null then
    select Arbeitstage where contains(lower(Aufgaben.Aufgabe), mySuche)
    else
    if text('Auswahl Monat') = "alle" then
    select Arbeitstage
    else
    (select Arbeitstage)[month(date(Arbeitsbeginn)) = myCHOICE]
    end
    end

     

    lg, Torsten

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

    ... wobei mir gerade auffällt, dass Du myMonat und myCHOICE gleich belegt, eins davon ist also obsolete. Davon ausgehend, dass "alle" bei Auswahlfeld die Option mit der ID 13 ist, geht's auch so:

     

    let myMonat := number('Auswahl Monat');
    let mySuche := lower(Suche);
    if Suche != null then
    select Arbeitstage where contains(lower(Aufgaben.Aufgabe), mySuche)
    else
    if myMonat = 13 then
    select Arbeitstage
    else
    (select Arbeitstage)[month(date(Arbeitsbeginn)) = myMonat]
    end
    end

     

    lg, Torsten

    • Peer
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Hallo Torsten.

    Hast du richtig entdeckt. Beide Variablen tun das gleiche. Es ist noch ein Rückbleibsel aus den Anfangsversuchen.

    Dein Beispiel funktioniert prima, aber was ist bei mir falsch, wenn ich statt deiner Zeile 

    ---

    if text('Auswahl Monat') = "alle" then

    ---

    diese Zeile schreibe?

    ---

    if 'Auswahl Monat' = allDS then

    ---

    Und wie kann ich die Suche mit dem Auswahlfeld 'Auswahl Monat' so kombinieren, dass alle DS der Suche angezeigt werden und zusätzlich durch das Auswahlfeld gefiltert werden? Oder auch umgekehrt, also der Monat ausgewählt wird und die Suche eingebunden.

    LG

    Peer