0

bei auswahl ja alle mit ja auflisten

Guten Morgen!

 

Habe folgendes vor:

Ich habe eine Tabelle (Kunden) und eine Untertabelle (Software).

In der Untertabelle kann ich per Auswahlfeld auswählen ob eine Software bei dem Kunden installiert ist oder nicht (Ja oder Nein).

Nun möchte ich in einer neuen Tabelle genau das abfragen.

Die Tabelle sollte nur ein Auswahlfeld und ein Ausgabefeld haben.

Wählt man Ja, sollen alle Kunden aufgelistet werden, die diese Software installiert haben,

wählt man Nein, sollen alle Kunden aufgelistet werden, die diese Software nicht installiert haben.

 

Bin ein Nixon-Noop und für jede Hilfe dankbar!

23 Antworten

null
    • Ninox-Professional
    • planoxpro
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Hallo Karl, das Vorhaben ist sicher möglich, für konkrete Tipps müsste man aber etwas mehr über das Datenmodell wissen, also den Aufbau der beteiligten Tabellen, insbesondere den der Untertabelle 'Software'. 

    Fragen, die sich bspw. stellen: Wird der Name der betreffenden Software jeweils in ein Textfeld getippt oder gibt es eine Verknüpfung zu einer weiteren Tabelle mit den Stammdaten der Software? Ist die "Installiert?"-Angabe ein Auswahlfeld oder ein Ja-/Nein-Feld?

    Hier könnten bspw. Screenshots des Datenmodells und/oder der Datenformulare helfen.

    • Ludwig Gmbh
    • Karl_Ludwig
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Hallo Copytexter, vielen Dank für die Antwort!

    Die betreffende Software wird rein statistisch durch Auswahlfeld in der Untertabelle der Tabelle Kundenstamm erfasst.

    Man legt einen Kunden an und erfasst in der Untertabelle Software, jeweils per Auswahlfeld, ob

    Software_eins installiert ist (Ja/Nein), Datev Mandant installiert ist (Ja/Nein) und ob Software_drei installiert ist (Ja/Nein).

     

    In der Tabelle Abfrage soll per Auswahlfeld Datev Mandant, verknüpft mit dem Auswahlfeld (Datev Mandant aus der Untertabelle Software),  gefiltert werden, welche Kunden die Software Datev Mandant installiert haben und welche nicht.

     

    Nochmal die Beschreibung des Textfeldes aus der Tabelle Abfrage:

     

    Liste/Ausgabe der Kundennamen sortiert nach Auswahlfeld Datev Mandant aus Untertabelle Software ob Ja / Nein      (Software installiert bei dem Kunden oder nicht). Bei Auswahl Ja, alle Kunden auflisten die mit Ja ausgewählt sind,               bei Nein alle Kunden auflisten, die diese Software nicht installiert haben.

     

    Anbei, Screenshots zum noch besseren Verständnis.

    Tabelle Kundenstamm mit Untertabelle Software_1

    Tabelle Kundenstamm mit Untertabelle Software_2

    Untertabelle Software_1

    Untertabelle Software_2

    Tabelle Abfrage_1

    Datenmodell

    • Ninox-Professional
    • planoxpro
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Hallo Karl, danke für die Screenshots. Mal sehen, ob ich es jetzt richtig verstanden habe: Es gibt nur drei Softwares, die bei allen Kunden jeweils als Ja/Nein-Feld abgebildet werden? Aber wozu dann die Untertabelle? Die würde doch sowieso immer nur einen Datensatz mit den drei Software-Ja/Nein-Feldern enthalten. Und dann könnte man die ja auch gleich mit in der Kundentabelle abbilden.

    Davon abgesehen: Die Abfrage ließe sich ebenfalls in der Kundentabelle vornehmen, in dem man die betreffenden Spalten hinzufügt:

    Klick auf Spaltentitel -> "Spalte einblenden" -> "Software" -> "Software_eins" -> "Auflisten"

    Und dasselbe dann noch mal für die beiden anderen Ja/Nein-Felder. 

    NX_KarlL_Software01

    Nun ließe sich diese Spalte entsprechend gruppieren:

    NX_KarlL_Software02

    • Ludwig Gmbh
    • Karl_Ludwig
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Hallo Copytexter,

    vielen Dank für die Antwort!

    Ja, das mit den Spalten (ein- oder ausblenden) habe ich meinem Chef schon gezeigt:

    funktioniert ja auch, das gewünschte Ergebnis wird genauso erzielt.

    Trotzdem möchte er etwas "gecodetes" haben.

    Kannst Du mir bei der Abfrage noch anders weiterhelfen?

    • Ninox-Professional
    • planoxpro
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Etwas "Gecodetes" - hm, aber einen Sinn sollte der Code ja schon haben ... ;)

     

    Gut, man könnte eine "Abfragetabelle" mit nur einem Datensatz erstellen und dort eine Ansicht (Gestaltungslement) platzieren. Dazu ein Auswahl- sowie ein Ja/Nein-Feld. Und in die "Funktion" der Ansicht folgenden Code:

     

    if Software != null and 'Ja / Nein' != null then
        let JN := 'Ja / Nein';
        switch Software do
        case 1:
            (select Software where Software_eins = JN)
        case 2:
            (select Software where 'Datev Mandant' = JN)
        case 3:
            (select Software where Software_drei = JN)
        end
    else
        select Software
    end

     

    NX_KarlL_Software03

     

    Das Formular könnte man so breit ziehen, dass die Tabelle, welche ja sowieso nur einen Datensatz enthält, überdeckt wird (oder eine neue Ansicht als "Formular").

    • Ludwig Gmbh
    • Karl_Ludwig
    • vor 3 Jahren
    • Gemeldet - anzeigen

    ...das Gestaltungselement Ansicht gibt folgenden Fehlercode zurück:

     

    Eine Tabellenspalte wurde nicht gefunden: Software_eins in Zeile 5, Spalte 44

    Fehler in der Ansicht

    Fehler in der Ansicht_2

    • Ninox-Professional
    • planoxpro
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Ich habe die Feldnamen aus den Screenshots übernommen. Wenn die Ja/Nein-Felder in der Tabelle 'Software' anders heißen, dann müssen die Bezeichnungen entsprechend angepasst werden. 

    • Ludwig Gmbh
    • Karl_Ludwig
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Die Felder heißen nicht anders, siehe screenshots.

    Muss da noch eine Verknüpfung zur Tabelle Software in die Abfrage?

    Fehler in der Ansicht_3

    • Ninox-Professional
    • planoxpro
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Hallo Karl, ich hatte den Code für die Ansicht auf das von dir ganz oben mit Screenshots abgebildete Datenmodell bezogen. Da gab es eine Tabelle 'Kundenstamm' mit einer Untertabelle 'Software', außerdem eine Tabelle 'Abfrage' ohne jegliche Verknüpfung.

    Und die braucht man für eine Ansicht auch nicht. Die Tabelle Abfrage enthält deshalb keine Verknüpfungen, sondern nur diese drei Elemente:

    1 Auswahlfeld 'Software' (Optionen: "Software_eins" / "Datev Mandant" / "Softare_drei")
    1 Ja/Nein-Feld 'Ja / Nein'
    1 Ansicht ("Funktion": siehe Code oben)

    Um sicher zu gehen: Mit "Ansicht" ist das gleichnamige Gestaltungselement gemeint, mit dem man in einem Datenformular auch nicht(!)-verknüpfte Tabellen darstellen kann.

     

    NX_KarlL_Software04

    • Ludwig Gmbh
    • Karl_Ludwig
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Hallo Copytexter,

    irgendwie krieg ich es nicht hin!

    Benutze das Datenmodell wie oben beschrieben:

    Kundenstamm mit Untertabelle Software, Abfrage ohne Verknüpfung.

    Halte mich genau an deine Anweisungen!

    Trotzdem diese Fehlerbeschreibung, wenn ich es in die Funktion von der Ansicht schreibe!

     

    Eine Tabellenspalte wurde nicht gefunden: Software_eins in Zeile 5, Spalte 44

     

    Fehler in der Ansicht_4

    • UweG
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Vielleicht solltest du statt Software_eins 'Software_eins' schreiben.

    • UweG
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Das Gleiche auch bei Software_drei in Hochkomma-Zeichen einfassen.
    Ninox sieht den Unterstrich als Sonderzeichen an wie das Leerzeichen.
    Sobald ein Leerzeichen oder Sonderzeichen im Namen enthalten ist helfen meist Hochkomma

    • Ludwig Gmbh
    • Karl_Ludwig
    • vor 3 Jahren
    • Gemeldet - anzeigen

    ...umgesetzt.

    Jetzt liegt das Problem in Zeile 46...

    Aber, danke!

    • UweG
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Ist das die gleiche Fehlermeldung?

    Vielleicht das let JN := .... außerhalb der if-Anweisung verschieben. (Als erste Zeile)

    • Ludwig Gmbh
    • Karl_Ludwig
    • vor 3 Jahren
    • Gemeldet - anzeigen

    ...gleiche Fehlermeldung, nur andere Zeile.

    wenn ich das let JN := in die erste Zeile schreibe, dann selbe Fehlermeldung : Zeile 6, Spalte 46

    • UweG
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Hast du mal einen Screenshot bitte

    • Ludwig Gmbh
    • Karl_Ludwig
    • vor 3 Jahren
    • Gemeldet - anzeigen

    ...von der Fehlermeldung

     

    Fehler in der Ansicht_5

    • UweG
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Gibt es denn in der Tabelle Software ein Feld mit Namen Software_eins das verglichen wird?

    Die Fehlermeldung besagt, das das Feld Software_eins in der Tabelle Software nicht existiert oder anders geschrieben wird.

    • UweG
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Bei den vorigen Screenshots soeht es so aus als ob das Feld folgendermaßen geschrieben wurde: Software _eins nicht Software_eins.

    • Ludwig Gmbh
    • Karl_Ludwig
    • vor 3 Jahren
    • Gemeldet - anzeigen

    In der Tabelle Software gibt es ein Feld mit dem Namen Software_eins, siehe screenshots.

    Datenbank genau so beschrieben wie die screenshots von Seite 1.

    • UweG
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Schau dir mal dein drittes und viertes screenshot an.
    Das sieht aus wie ein Leerzeichen vor dem Unterstrich.

    • Ludwig Gmbh
    • Karl_Ludwig
    • vor 3 Jahren
    • Gemeldet - anzeigen

    sehr gut aufgepasst!!!

    das war's!!!

    keine Fehlermeldung!

     

    Hoffe, Chef ist erstmal zufrieden damit!

    1000 Dank!!!

    • UweG
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Das ist uns allen schon passiert.

Content aside

  • vor 3 JahrenZuletzt aktiv
  • 23Antworten
  • 1828Ansichten