0

Datensatz mittels Button suchen

Hallo, 
bin Ninox Anfänger und habe Ninox nur lokal auf meinem MAC.
In meiner Tabelle sind meine Aufgaben gespeichert. Jetzt möchte ich mittels eines Button bestimmte andere Aufgabe(n) suchen und anzeigen oder auch ggf. bearbeiten. 

Meine Tabelle: = "TAUFGABEN"
TextFeld: = "Titel", DatumsFeld: = "Start", DatumsFeld: = "Soll-Ende", Auswahlfeld: = "Status", Auswahlfeld: ="Prio" usw.

Wie kann ich diese an besten umsetzen? Wenn ich z. B. bei dem Suchbegriff zu dem genauen "Titel" der Aufgabe oder das genaue "Datum" in der Tabelle nicht kenne.

Beispiel:  
Aufgaben Titel in der Tabelle lautet: "Kontrolle Kontoauszug" 
Aufgabe hat den Starttermin "1.5.22" und den Endtermin "20.5.22"
Aufgabe befindet sich im Status "in Arbeit"

Suchbegriffe sind:
"Kontrolle" + Zeitraum "1.4.22" bis "heute" oder bis Datum: "30.5.22"

Wie baue ich mir die Suchfelder und den Button?
Benötige ich dafür eine neue Tabelle?

Vielen Dank für Eure Hilfe.
Schöne Grüße 
Werner

2 Antworten

null
    • Dirk_Pulver
    • vor 1 Jahr
    • Gemeldet - anzeigen

    Mit einem Gestaltungs-Element "Ansicht" kann man die Abfrage, welche Tabelle mit welchen Kriterien angezeigt wird per Code generieren. Nun kann man im Code ja auf ein oder mehrere Suchfelder zugreifen, so dass je nach Eingabe in den Suchfeldern die Abfrage gebaut wird.

    Hier ein Beispiel - so sähe dann ein Code für das Ansichts-Element aus:

    let zz := this;
    "#### Projektzeiten ###";
    if zz.Auswahl = 1 then
        if zz.'Mitarbeiter Auswahl' and not zz.Projektnr then
            let ma := first(select Mitarbeiter where text(Benutzer) = text(zz.'Mitarbeiter Auswahl'));
            let a := (select Zeitbuchungen where Benutzer = ma.Benutzer and year(Datum) = year(zz.Datum) and month(Datum) = month(zz.Datum) and Buchungsart = 1);
            a
        else
            if zz.'Mitarbeiter Auswahl' and zz.Projektnr then
                let ma := first(select Mitarbeiter where text(Benutzer) = text(zz.'Mitarbeiter Auswahl'));
                let a := (select Zeitbuchungen where Benutzer = ma.Benutzer and year(Datum) = year(zz.Datum) and month(Datum) = month(zz.Datum) and Auftrag.Projekt.Projektnummer = zz.Projektnr and Buchungsart = 1);
                a
            else
                if not 'Mitarbeiter Auswahl' and zz.Projektnr then
                    let ma := first(select Mitarbeiter where text(Benutzer) = text(zz.'Mitarbeiter Auswahl'));
                    let a := (select Zeitbuchungen where year(Datum) = year(zz.Datum) and month(Datum) = month(zz.Datum) and Auftrag.Projekt.Projektnummer = zz.Projektnr and Buchungsart = 1);
                    a
                end
            end
        end
    else
        "#### Abwesenheiten ###";
        if zz.Auswahl = 2 and Rechte("GF") then
            let ma := first(select Mitarbeiter where text(Benutzer) = text(zz.'Mitarbeiter Auswahl'));
            let a := (select Zeitbuchungen where Benutzer = ma.Benutzer and year(Datum) = year(zz.Datum) and month(Datum) = month(zz.Datum) and Buchungsart != 1);
            a
        end
    end
    

     

    Hier wird eine Zeitbuchungs-Tabelle gefiltert, je nachdem was man in den Suchfeldern "Auswahl", "Datum", "Mitarbeiter Auswahl" und "Projektnr" eingegeben hat. Man kann nur auf einzelne Felder filtern oder auf mehrere. Ist ein bisschen Hirnschmalz drin, geht aber am Ende geht sowas.
     

    • info.51
    • vor 1 Jahr
    • Gemeldet - anzeigen

    DANKE

Content aside

  • vor 1 JahrZuletzt aktiv
  • 2Antworten
  • 107Ansichten
  • 2 Folge bereits