0

Dashboard mit Suchfunktion für Kunden

Hallo, vielleicht kann mir jemand weiterhelfen. 

Ich habe eine kleine Kundendatenbank mit einem vorgeschalteten Dashboard (Tabelle). Auf diesem Dashboard möchte ich nun eine Suchfunktion für einen Kunden eingeben. Das heisst:

Ein Textfeld wo ich den Kundennamen eingeben kann und einem Button, der dann die gespeicherten Kundendaten aufruft.  

Die Tabelle für die Kunden heisst:  'Kunden'

Ich krieg es leider nicht hin. Einfache Funktionen ja, so komplexe leider nicht.

Vielleicht kann mit ja jemand mit dem Code helfen.

Vielen Dank im Voraus

48 Antworten

null
    • Klaus_J
    • vor 11 Monaten
    • Gemeldet - anzeigen

    hallo hier eine klein Erklärung .

      • Rafael_Sanchis
      • vor 10 Monaten
      • Gemeldet - anzeigen

       Danke Cristian 👋

      • Kruna
      • vor 10 Monaten
      • Gemeldet - anzeigen

      wow!!! Ich bin echt begeistert, vielen tausend Dank. Das erleichtert den workflow und die 'ständige' Suche nach Datensätzen uvm.

      So, jetzt wird ein wenig 'aufgeräumt'😄

      Gruß Kruna

    • Klaus_J
    • vor 11 Monaten
    • Gemeldet - anzeigen

    Hallo.   'Search Staff' ohne Eckige klammer . [ ]

      • Rafael_Sanchis
      • vor 11 Monaten
      • Gemeldet - anzeigen

       

      Thanks Klaus , forget the last paréntesis on 2do line 😪 now work.

      Appreciate.

    • Ninox-Professional
    • planoxpro
    • vor 10 Monaten
    • Gemeldet - anzeigen

    Whow, das sind ja eine Menge Ideen hier ... Top. So stelle ich mir Community vor! 👍

    • Klaus_J
    • vor 10 Monaten
    • Gemeldet - anzeigen

    hallo die Dynamischen Felder und etwas versteckt unter Daten Felder nach unten scrollen.

    • mirko3
    • vor 10 Monaten
    • Gemeldet - anzeigen

    Ich habe auch mit Interesse die Beiträge gelesen. Tolle Arbeit. Auch wenn meine Version langsamer ist, da getippt werden muß, stelle ich sie mal hier mit rein, da noch ein kleines Schmankerl dabei ist. 

    Ich habe das logische und/oder mit eingepflegt. Es kann also nach zwei Begriffen gesucht werden, die durch die in Script- und Programmiersprachen gängigen Zeichen "&&" für "und" und "||" für "oder" interpretiert werden. Also Mei&&Dü bringen Kontakte mit z.B. Meier und Düsseldorf und Mei||Dü dementsprechend Meier oder Düsseldorf usw. Witzig ist, wenn man Dü&&Mär eingibt, erscheinen alle die in z.B. Düsseldorf wohnen und im März Geburtstag haben. Na gut, das braucht man nicht oft. Diese Form ist also mehr für die diffizile als für die schnelle Suche gedacht.

    Das HTML-Feld benötigt man im Grunde auch nicht, aber man spart sich die Entertaste für das suchen des Begriffs. Im Adminmodus ist das eigentliche Suchfeld als Textfeld hinterlegt. Wenn man es doch nutzen will, muß man per API die Feld-ID des Textfelds suchen und in das kurze Script nachtragen. Dank an Christian - auf Deine sehr schöne Version der Suche wäre ich nie gekommen - für die DB, die ich gleich mal benutzt habe. Mirko

      • Rafael_Sanchis
      • vor 10 Monaten
      • Gemeldet - anzeigen

       

      Hi Mirko.

      Wenn man es doch nutzen will, muß man per API die Feld-ID des Textfelds suchen und in das kurze Script nachtragen.

      I saw your versión a few Months ago 'Birds' DB, but I have never been able get it working 😓. Frustrating 

      • mirko3
      • vor 10 Monaten
      • Gemeldet - anzeigen

       Do you have public cloud and/or use API?

      • Rafael_Sanchis
      • vor 10 Monaten
      • Gemeldet - anzeigen

      Yes

      • Heinrich Frey Maschinenbau GmbH
      • Christian_Rott
      • vor 10 Monaten
      • Gemeldet - anzeigen
      • mirko3
      • vor 10 Monaten
      • Gemeldet - anzeigen

       Hi, Rafael try this.

      1. Place the function in a function-field (it is on basis of Uwes Code)

      2. Use the table name as text as the parameter of the function and change the "xxxx" to your API

      3. Result is something like this: 

      ID: A - Feldname: Text

      ID: B - Feldname: Bild

      4. Find the Name of your text field where the search results from the input field is landing!!

      5. put the ID in the code of the input field instead of 'A' -> database.update(idNX, 'A', result);

      6. delete the function field with your API

      function findFieldId(nameOfTable : text) do
          let vUrl := "https://api.ninox.com/v1/teams/" + teamId() + "/databases/" + databaseId() +
              "/tables/";
          let vHeader := {
                  Authorization: "Bearer xxxxxxxxxxxxxxxxxxxxxxxx",
                  'Content-Type': "application/json"
              };
          let resultJSON := do as server
                  formatJSON(http("GET", vUrl, vHeader, ""))
              end;
          let resultObjekt := parseJSON(resultJSON);
          let howMany := cnt(resultObjekt.result);
          let result := for i in range(0, howMany) do
                  if item(resultObjekt.result, i).name = nameOfTable then
                      item(resultObjekt.result, i)
                  end
              end;
          let aryFields := item(result, 0).fields;
          join(for i in range(0, cnt(aryFields)) do
              "ID: " + item(aryFields, i).id + " - Feldname: " + item(aryFields, i).name
          end, "
      ")
      end;
      findFieldId("TABELLE")
      
      • Kruna
      • vor 10 Monaten
      • Gemeldet - anzeigen

      Hallo Mirko,

      Deine 'Input' ist ja auch super toll! Soweit habe ich das gut hinbekommen.

      Ich hätte da noch zwei Fragen, die ich gerne umsetzen würde, falls es möglich ist.

      1. Der Button (wie Christian in seiner Beispiel DB), soll quasi das Suchfeld quasi leeren - wie leere ich denn das Formelfeld? Input := null geht ja nicht.

      2. Ich würde gerne das Formelfeld Input etwas anpassen, so dass es in einer Linien mit dem Feld 'Suche' ist. Ich habe es mit margin und padding versucht, aber leider ohne Erfolg. Hast Du eien Idee dazu?

       

      Vielen Dank und Gruß Kruna

      • mirko3
      • vor 10 Monaten
      • Gemeldet - anzeigen

       Hallo Kruna. Das Ausrichten von Funktionsfeldern mit html geht m.W. nicht. Aber ich habe hier noch mal zwei Sachen eingepflegt. Nach Eingabe des Suchwortes mit Enter bestätigen (Feld verlassen) und dann wieder hineinklicken löscht den Sucheintrag und das Textfeld. Letzteres über einen Befehl in den Einstellungen des Funktionsfeld "Beim Klicken" und ersteres durch einen JS-Befehl, wenn der Fokus wieder in das Input-Feld gesetzt wird. Manchmal muss man bei Änderungen am JS-Script erst die Tabelle verlassen um die Änderung zu aktivieren. Also, wenn es nicht gleich funktioniert... Vieleicht hilft Dir das. Mirko

      • Kruna
      • vor 10 Monaten
      • Gemeldet - anzeigen

      das ist schade, aber damit muss ich dann bzw kann ich gut leben auch wenn diesbezüglich mein zweiter Name Monk lautet.😅

      Auch wenn man das Formelfeld nicht 'leeren' kann, finde ich Deine Lösung sehr elegant und sogar besser, denn ob ich nun auf ein Button klicke oder in das Feld selbst - das Ergebnis ist das gleiche. Ich habe es eben angepasst und - einfach TOP!

      Vielen Dank für Deine Hilfe und eine guten Start in die Woche.

      Gruß Kruna

    • Klaus_J
    • vor 10 Monaten
    • Gemeldet - anzeigen

    Hallo Die Ansicht habe ich nur noch zur Kontrolle Das Textfeld ' Suche Kunde Nachname Eingabe' sucht nur nach Nachname in der Tabelle Kunde, seit ich das Auswahlfeld (Dynamisch) benutze brauche ich die Ansicht eigentlich garnicht mehr.

    Das tolle ist ja bei der Auswahl ,das ich Name  oder Vorname oder PLZ oder Ort oder KundenNr, eingeben kann . Denn bei den Kunden Adressen geht es Wild durcheinander , Nachnahme Vorname verdeht oder Firmenname mit Zusatz .

    Die Ansicht Zeigt die Datensätze an.

    let mySuche := lower('Suche Kunde Nachname Eingabe');
    (select Kunde)[Nachname like mySuche]

      • Kruna
      • vor 10 Monaten
      • Gemeldet - anzeigen

      Hallo Klaus, vielen Dank für Deine Erläuterung 👍

      Gruß Kruna

    • Ninox-Professional
    • planoxpro
    • vor 10 Monaten
    • Gemeldet - anzeigen

    Ich habe mir die Datenbanken nicht alle angesehen, es gibt aber Vorschläge, die im Änderungs-Trigger des Dynamischen Auswahlfeldes gleich ein openRecord() für den gewählten Eintrag auslösen.

    Ich will kein Spielverderber sein, aber das funktioniert m. W. nur in den Apps, nicht im Browser, da sich in selbigem dort einige Funktionen wie dialog(), openRecord() oder popupRecord() nicht per Trigger auslösen lassen.

    Das nur als Hinweis für alle, die das im Browser ausprobieren und sich wundern, dass es nicht funktioniert. Beziehungsweise für jene, die es in einer App ausprobieren, die DB aber auch im Browser nutzen wollen.

    In letzterem Fall könnte man bspw. mit ninoxApp() die Plattform abfragen und beim Rückgabewert „web“ einen zusätzlichen Button einblenden, mit dem sich der gewählte Datensatz öffnen lässt.

      • Heinrich Frey Maschinenbau GmbH
      • Christian_Rott
      • vor 10 Monaten
      • Gemeldet - anzeigen

       Axel ich kann das nur bestätigen auf der Mac App läuft dies super. Im Browser nicht und auf dem iPad geht es auch nicht weil man dort nicht im DAF Combobox eine Texteingabe machen kann.

      Also für alle die in der Mac App arbeiten sollte es gehen.

      Gruß

      Christian

      • Rafael_Sanchis
      • vor 10 Monaten
      • Gemeldet - anzeigen

      On Tablet Android work perfect

      • Ninox-Professional
      • planoxpro
      • vor 10 Monaten
      • Gemeldet - anzeigen

       It's also an app. 😉

    • Kruna
    • vor 10 Monaten
    • Gemeldet - anzeigen

    Guten Morgen zusammen,

    wie kann ich die Suche einschränken kann, wenn das Feld 'Status' (Auswahlfeld) eine bestimmten Status hat?

    Desweiteren ist mir aufgefallen, dass bei der Suche via DAF, wenn man auf den gewünschten Datensatz klickt, das Script zwar die Tabelle öffnet, aber bei manchen Datensätzen nicht den entsprechenden Datensatz. Man sieht dann nur oben rechts ein Kästchen mit einem Pfeil nach links. Wenn ich darsuf klicke, passiert jedoch nichts.

     

    Hat jemand eine Idee woran das liegen könnte - eventuell ein bug?

    Gruß Kruna

    • tschijoh
    • vor 10 Monaten
    • Gemeldet - anzeigen

    Guten Morgen zusammen,

    ...gibt es eine maximale Anzahl von Datensätzen in ein DAF? 

    Gruß Tschijoh