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
    • Felix.5
    • vor 11 Monaten
    • Gemeldet - anzeigen

    Hallo Jutta, 

    es folgt eine ganz nette Möglichkeit: ("do as server" kannst Du theoretisch auch weglassen) 

    "Suche" ist ein Textfeld, welches Du vorher erstellen müsstest, es dient der Eingabe der Suchbegriffe. 

    "Nachname", "Vorname" und "Firma" sind Beispiele, hier kannst Du alle Felder platzieren nach denen Du später suchen möchtest. 

    do as server
        let mySuche := Suche;
        if Suche != null then
            (select 'Kunden')[Nachname like mySuche or Vorname like mySuche or
                Firma like mySuche]
        else
            if Suche = null then select 'Kunden' end
        end
    end

    So würde es dann aussehen: 

      • Jutta_Lotze
      • vor 11 Monaten
      • Gemeldet - anzeigen

       Danke für die schnelle Antwort. Das Formelfeld zeigt mir aber leider Fehler an in den Zeilen 1, 2 und 5.

      Ich hatte die Firma rausgenommen, weil ich kein Feld für Firma haben. (Kosmetikstudio)

        let mySuche := Suche;
          if Suche != null then
              (select 'Kunden')[Nachname like mySuche or Vorname like mySuche]
          else
              if Suche = null then select 'Kunden' end
          end
       Vielleicht hast Du ja noch eine Idee was falsch ist. Brauchst Du weitere Infos über die Tabellen?

      Gruß und Danke Jutta

      • Felix.5
      • vor 11 Monaten
      • Gemeldet - anzeigen

      Sehr gerne! 

      Sofern Du vorher ein "Textfeld" namens "Suche" erstellt hast, dürfte es in Zeile 1 zu keinem Fehler kommen. Zeile 2 und 5 sieht es vermutlich ähnlich aus, auch hier findet er kein Feld namens "Suche". Du kannst dem Feld natürlich auch irgendeinen anderen Namen geben. 

       eine Button-Lösung ist mir auf Anhieb leider nicht eingefallen, vielleicht ist diese passender für Dich,  . :)

      Das Ausblenden der Feldbezeichnung war auch etwas unnötig von mir, so sieht es in meinem Test aus: 

      • Jutta_Lotze
      • vor 10 Monaten
      • Gemeldet - anzeigen

       Hallo, da ich leider in meinem Abo keine Felder wie -Auswahl dynamisch - habe, habe ich jetzt mich noch einmal an Deiner Lösung versucht. Habs es auch hingekriegt. Musste nur, wie Du sagtest, die erste Zeile rausnehmen. Jetzt funktioniert es. Danke für die Hilfe. Das mit der dynamischen Auswahl gefällt mir auch sehr gut  aber da muss ich wohl erst mal mit dem Abo was machen. Gruß

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

    Hallo Jutta, der Code für den Button könnte bspw. so aussehen:

    let myS := upper(TEXTFELD);
    let myK := first(select Kunden where upper(Name) = myS);
    if myK then
       openRecord(myK)
    else
       alert(“Kunde nicht gefunden.“)
    end

    Statt openRecord() könnte man auch popupRecord() nehmen.

    Edit: Sehe gerade, dass über eine Ansicht geredet wird. Ich hatte angenommen, der gefundene Kunden-Datensatz solle direkt geöffnet werden.

      • Jutta_Lotze
      • vor 11 Monaten
      • Gemeldet - anzeigen

       Hi und auch Dank an Dich für die Antwort. 

      Hab den Code probiert und leicht angepasst (Name= Nachname) Aber in Zeile 1 wird (Textfeld) bemängelt und lässt sich leider deswegen nicht speichern. 

      In der Kundentabelle wird der Nachname in einem Textfeld eingetragen.

      Danke und vielleicht hast Du auch noch ne Idee wo es hakt. Gruß Jutta

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

       TEXTFELD war nur ein Platzhalter. Hast du ihn durch den tatsächlichen Namen deines Feldes ersetzt? Ich vermute, es heißt 'Suche' (was ich zu dem Zeitpunkt noch nicht wusste).

      Davon ab: Willst du eine Ansicht (Tabelle mit mehreren Einträgen) oder den gefundenen Datensatz ggf. direkt öffnen?

      • Jutta_Lotze
      • vor 11 Monaten
      • Gemeldet - anzeigen

       Datensatz direkt

      🤦‍♀️ Natürlich muss ich ,Textfeld' durch das Eingabefeld des ,Namens; ersetzen. Manchmal ....

      Funktioniert super.

      Danke an Euch beide. Habt mir sehr weitergeholfen. Komm gerne auf Euch zurück.

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

       

      Felix‘ Ansatz mit der Ansicht hätte den Vorteil, dass auch mehrere Treffer berücksichtigt würden. Also, wenn man bspw. nach „Müller“ sucht und es drei davon gibt. Die würden dann alle mit weiteren Infos in der Ansicht-Tabelle gezeigt und man könnte den tatsächlich gemeinten auswählen.

      Bei der Button-Variante würde immer gleich der erste gefundene „Müller“-Datensatz geöffnet. Deshalb arbeite ich selber auch meistens mit Ansichten.

      Nur so als Anregung.

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

     Schon wieder! Ich bin einfach zu langsam ... 😄

      • Jutta_Lotze
      • vor 11 Monaten
      • Gemeldet - anzeigen

       🙂

    • Klaus_J
    • vor 11 Monaten
    • Gemeldet - anzeigen

    Hallo ich habe die Suche nach dem Kunde so gelöst .

    1. Ein Textfeld für Nachname wenn ich den Kenne .

    und eine Ansicht die den Datensatz anzeigt , wenn es mehre gibt

    wird es schwierig ,

    2. Habe ich ein Dynamische Feld für die suche ,da kann ich bei der suche schon viel mehr sehen .

    if '【SucheKundeDy】' then
        let myFF := record(Kunde,number('【SucheKundeDy】'));
        'Suche Kunde Nachname Eingabe' := myFF.Nachname;
        myFF.(BestellungAusEmailErstellen := 1);
        myFF.(KundeBearbeiten := 1);
        openRecord(myFF)
    else
        '【SucheKundeDy】' := null;
        'Suche Kunde Nachname Eingabe' := null
    end

      • Jutta_Lotze
      • vor 11 Monaten
      • Gemeldet - anzeigen

       Hi, da ich mehrere Kunden mit gleichem Nachnamen habe, wäre das eine prima Lösung. Nur brauch ich noch ein paar Erklärungen. Ich brauche ein Textfeld mit welcher Bezeichnung? und wo muss der Code rein (Button)? Danke im Voraus.

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

       Ich habe in meinem Kundenstamm ein Formelfeld erstellt in dem ich "Name","Vorname","Strasse","PLZ" und Ort hinterlege. Dies Feld nennt sich bei mir fxSuche und ist in der Datenansicht des Kundenstamms nicht sichtbar (Feldeigenschaft Sichtbar =null).

      Hier ist die Formel für dieses Feld: Vorname + " " + Nachname + " " + Strasse + " " + Ort +
      " " +
      PLZ

      Dann habe ich in meinem Dashboard ein Textfeld "Suche" und einen Button der das Suchfeld wieder leert.

      In dem Dashboard habe ich eine Ansicht welchen den Kundenstamm anzeigt wenn ich nach Eingabe im Suchfeld Enter drücke.

      In der Eigenschaft der Ansicht ist dann ein Code hinterlegt der so aussieht:

      let myS := Suche(das Textfeld im Dashboard);
      select Kunden
          where contains(fxSuche, myS)

      Und nach Eingabe des Suchtextes und anschließend die Entertaste bringt mir die Ansicht alle Datensätze die dem Suchfeld entsprechen.

      Vielleicht hilft es dir ja weiter

      • Jutta_Lotze
      • vor 10 Monaten
      • Gemeldet - anzeigen

        Danke. Ich habe leider kein Feld -Auswahl dynamisch- . Offensichtlich nicht in meinem Abo enthalten. Deswegen klappt das nicht. Ich muss mir die Abos mal anschauen.

    • Klaus_J
    • vor 11 Monaten
    • Gemeldet - anzeigen

    hallo hier eine klein Erklärung .

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

       Das ist auch eine sehr gute Lösung 👍

      • Rafael_Sanchis
      • vor 11 Monaten
      • Gemeldet - anzeigen

       

      hi Klaus.

      between my little Knowledge and the German, it is very dificultad for me to recrearte this example, there is a small example. Appreciate.

      • Rafael_Sanchis
      • vor 11 Monaten
      • Gemeldet - anzeigen

       

      This give me a error on line 3 

      The 'Search Staff' is Search field, and the Staff is my my table.

      I place it on choice(dynamic) and on tigger

      • Kruna
      • vor 10 Monaten
      • Gemeldet - anzeigen

      Hallo Klaus, Deine Lösung ist Klasse! Zwei Fragen hätte ich auch noch.

      In deinem erdsten screenshot sieht man unter dem DAF eine Ansicht. Was für ein Code kommt denn dort hin oder hat die Ansicht erst einmal gar nichts damit zu tun?

      Könnte man auch zB nach Firma suchen?

      Vieln Dank schon mal.

      Gruß Kruna

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

       So wie ich es sehe hat Klaus dort zwei Möglichkeiten verbaut.

      1. über das DAF dann springt er direkt zum Kunden (sehr gute Lösung leider auf iPad nicht nutzbar am Desktop aber super)

      2. sucht über ein Textfeld was dann die eingebettete Ansicht filtert

      Über Firma kannst du auch suchen mußt dann nur im DAF das mit einbauen

      Gruß

      Christian

      • Kruna
      • vor 10 Monaten
      • Gemeldet - anzeigen

      HAllo Christian, vielen Dank für Deine Hilfe.

      Ok, jetzt verstehe ich - nur leider weiß ich nicht, wie ich das mit der Ansicht umsetzen kann bzw welcher Code wohin kommt und leider auch nicht wie ich die Suche mit Firma einbauen kann. Geht das mit or oder if - mir fehlt da gerade die Idee dazu. 

      Weißt Du, wie das geht?😅

      Gruß Kruna

      • Kruna
      • vor 10 Monaten
      • Gemeldet - anzeigen

      Hallo Christian, das Thema Firma habe ich gelöst, indem ich beim DAF einfach noch die Firma im Name des dynamischen Werts hinzugefügt habe.

       

      Gruß Kruna

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

      Hab mal ne Test DB gemacht zur Ansicht

      • Jutta_Lotze
      • vor 10 Monaten
      • Gemeldet - anzeigen

       👍