1

Zwei Auswahlfelder kombinieren

Hallo. Ich stehe vor einem Problem. Ich habe eine Tabelle "Feststellungen" mit den  Feldern (Bereich, Feststellung und Maßnahmen) - Ein Bereich kann mehrere Feststellungen haben.  siehe hier

 Nun möchte ich in einem Formular mit einem Dropbox-Feld den Bereich wählen (z. Beispiel Brandschutz) und er zeigt mir im Feld daneben (Feststellung) alle Einträge an, die dem Bereich Brandschutz zugeordnet sind.

 Wie mache ich das ?

Wäre für jede Hilfe dankbar.

36 Antworten

null
    • UweG
    • vor 1 Jahr
    • Gemeldet - anzeigen

    Um welche Feldtypen handelt es sich bei beiden Feldern?

      • jewasch
      • vor 1 Jahr
      • Gemeldet - anzeigen

       

      Feldtyp? Ich habe zwei Verknüpfungen zu der Tabelle eingefügt . Einmal mit Bereich und einmal mit Feststellung.

      • jewasch
      • vor 1 Jahr
      • Gemeldet - anzeigen

       

       

    • UweG
    • vor 1 Jahr
    • Gemeldet - anzeigen

    Dann must du bei der Verknüpfung 'Feststellung' eine Einschränkung setzen.
    Wobei ich aus den gegebenen Informationen nicht sehen kann, wie 'Bereich' und 'Feststellung' zusammenhängen.
     

      • jewasch
      • vor 1 Jahr
      • Gemeldet - anzeigen

       

      Hallo Uwe

      Hilft dir das? Bereich und Feststellung kommen aus einer Tabelle. Nämlich die Tabelle Feststellung.

      In AMS-Details sind die Mandantenbezogenen Feststellungen gespeichert und in Begehungen die Kopfdaten zur Begehung. In AMS Details will ich dann eine Vorlagen-Feststellung (die sich wiederholt) auswählen. 

       

      Am liebsten würde ich aber einen BEreich auswählen und die dazu passenden Feststellungen (in einem seperaten Combobox) auswählen. Geht das ? Wie setze ich denn eine Einschränkung ?

       

      Vielen Dank

      • UweG
      • vor 1 Jahr
      • Gemeldet - anzeigen

      Und um welche Feldtypen handelt es sich bei den Feldern Bereich/Feststellung.
      Es ist etwas konfus für verschiedene Sachen den gleichen Namen zu verwenden.
      Wenn ich es richtig verstehe, befindet sich das Formular in Tabelle 'AMS-Detail'.
      In dem Formular gibt es einen Link mit Namen 'Bereich' und einen Link mit Namen 'Feststellung'.
       

    • Horst_Fertig
    • vor 1 Jahr
    • Gemeldet - anzeigen

    Servus!

    Wenn das ungefähr so etwas (ähnliches) werden soll... (?)

    Hilft möglicherweise so etwas in der Richtung...

    In "DynamicValues"

    let xBereich := text(SelectBereich);
    (select Test)[Bereich = xBereich]

    Wobei das unschöne Problem (wenn alle Werte aus ein- und derselben Tabelle stammen) bleibt (bzw. noch zu lösen wäre), dass das Auswahlfeld 1 (SelectBereich) ALLE Feldwerte von allen Datensätzen anbietet (also Duplikate hier nicht unterdrückt werden)...

    Da gibt es aber bestimmt auch noch einen Trick dazu !??

    Vielleicht hilft's ja schon ein wenig weiter...

    Grüße

    HF

      • UweG
      • vor 1 Jahr
      • Gemeldet - anzeigen

       
      Auch eine Lösung für ein neues Problem.
      Lt. jewasch handelt es sich jedoch um Verknüpfungen (Link).

      • Horst_Fertig
      • vor 1 Jahr
      • Gemeldet - anzeigen

       

      Servus!

      Ja, aber ich habe noch nicht wirklich erkennen können, in welchem Formular (welcher Tabelle) denn nun auf diese Werte (beide in Tabelle "Feststellungen") zugegriffen werden soll. Diese Tabelle selbst, oder eine andere?

      Und ich würde so etwas vielleicht grundsätzlich mit zwei (zusätzlichen) Stammdaten-Tabellen ("Bereich" und "Feststellung") angehen, mit entsprechender 1:N Verknüpfung womit m.E. solch eine Auswahl über dynamische Auswahllisten viel einfacher und eleganter wird...

      Grüße

      HF

      • UweG
      • vor 1 Jahr
      • Gemeldet - anzeigen

       
      Viele Wege führen nach Rom.
      Und das ist das Gute an Ninox, dass manchmal verschiedene Wege das richtige Ergebnis liefern.

      • Horst_Fertig
      • vor 1 Jahr
      • Gemeldet - anzeigen

       

      Da kann ich nur zustimmen...  ;-)

    • UweG
    • vor 1 Jahr
    • Gemeldet - anzeigen

    Anbei eine Bsp-DB wie ich es verstanden habe.
     

      • jewasch
      • vor 1 Jahr
      • Gemeldet - anzeigen

        Hallo Uwe. Ihr seid wirklich SPITZE!!!. Genau das habe ich gesucht. Jetzt wäre es tatsächlich nur schön, wenn ich in Link 1 die Auswahl eine Gruppe darstellen würde. Also einmal Brandschutz und dazu in LINK2 die jeweiligen Feststellungen. Das wäre super geil. Nochmals TAUSEND DANK!

      • jewasch
      • vor 1 Jahr
      • Gemeldet - anzeigen

      Ich habe noch eine Frage. Wenn ich in LINK2 einen langen Text habe, kann ich den dann auch nach so ca. 60 Zeichen abschneiden? Also das er mir in der Auswahl nur bis zu den 60 Zeiechen angezeigt wird?

      • UweG
      • vor 1 Jahr
      • Gemeldet - anzeigen

       

      • jewasch
      • vor 1 Jahr
      • Gemeldet - anzeigen

      Hallo Uwe. Vielen Dank.  Aber das funktioniert nicht. Habe die Datenbank eingespielt. Nur bekomme ich bei Link1 kann ich nichts auswählen.

      • jewasch
      • vor 1 Jahr
      • Gemeldet - anzeigen

        Das sieht jetzt so aus.

      • jewasch
      • vor 1 Jahr
      • Gemeldet - anzeigen

        Hast Du noch eine Idee zu dem Thema? Ich habe jetzt noch verschiendenste Formeln ausprobiert. Keine hat das gewünschte Ergebnis geliefert.

      1. Möglichkeit:

      cnt(a.Bereich.Bereich) = 0
      

      Ergebnis:

      2. Möglichkeit:

      concat(unique((select 'Feststellung').'Bereich'))
      

      4.

      Ergebnis:

      cnt(b.Bereich) = 0

      3. Habe es auch nur mit unique und select ausprobiert. Ich bin jetzt richtig Lost.

      Zur Info: Link1 ist bei mir Bereich und Link2 ist Feststellung.
      Ich habe einfach mal die Datenbank angefügt. Dann ist es vielleicht leichter ? :-)

      Und nochmals vielen Dank für die Hilfe.

      • Ninox-Professional
      • planoxpro
      • vor 1 Jahr
      • Gemeldet - anzeigen

       Falls ich die Aufgabenstellung richtig verstehen sollte, würde ich die Feststellungen in Untertabellen strukturieren und im Detail-Formular über Dynamische Auswahlfelder zugänglich machen (siehe angehängte Beispiel-DB). Nur so als Idee.

      • Horst_Fertig
      • vor 1 Jahr
      • Gemeldet - anzeigen

       

      Servus!

      Also ich würde es ja immer noch (ganz) anders angehen (ich hatte das weiter oben schon mal angedeutet) und für "Bereiche" und "Feststellungstexte" zwei separate Tabellen anlegen und beide über eine entsprechende Beziehung miteinander verbinden (1:N)...

      Also etwa so...

       

      Dann lässt sich doch die Auswahl der zum jeweiligen Bereich gehörenden (oder passenden) Texte über dyn. Auswahlfelder sehr einfach umsetzen, oder nicht?

      Nach Auswahl von z.B. dem Bereich "Erste Hilfe"...

      steht alles, was dazu "passt" im nächsten Feld zur Auswahl...

      Und falls es dann möglicherweise auch noch unterschiedliche Maßnahmen(texte) zu einzelnen Feststellungen geben kann, wären die ein Fall für die nächste (verknüpfte) "Stammdaten"-Tabelle aus der dann wiederum je nach Feststellungstext die passende Maßnahme gewählt wird.

      Falls es aber tatsächlich zu jeder "Feststellung" nur exakt EINE einzige Maßnahme geben kann, dann wird man die sicherlich auch noch gleich in der Tabelle "FS-TexteZuBereichen" (oder wie immer man sie nennen mag) dazufügen können und nach Auswahl der "Feststellung" die Maßnahme gegebenenfalls auch noch von dort auslesen und in ein entsprechendes Feld in AMS-Detail einfügen.

      Grüße und gutes Gelingen

      HF

      • jewasch
      • vor 1 Jahr
      • Gemeldet - anzeigen

      Hallo Horst. WOW. Das klingt irgendwie so einfach, schaffe es aber nicht. Haber auch das mehrfach versucht. Ich scheitere schon an der 1:N Verknüpfung. Das was du da gemacht hast, könntest du mir das vielleicht schicken? Nicht weil ich zu faul dafür bin. Einfach gerade ratlos. Wäre dir super dankbar dafür. Grüße, Jens

      • Horst_Fertig
      • vor 1 Jahr
      • Gemeldet - anzeigen

       

      Servus und Moin!

      Ja, natürlich kannst Du deine DB (die ich jetzt in meinem Sinne natürlich etwas vermurkst habe) zurück bekommen. Darin findest Du dann die "Stammdaten"-Tabellen, wie ich sie für mich anlegen würde und in dem Formular zur Tabelle "AMS-Detail" (bzw. in der Tabelle) habe ich die beiden Beziehungen gelöscht und an deren Stelle eben die Dyn. Auswahlfelder "Bereich" und "Feststellung" eingebaut...

      Der "Rest" sollte unverändert sein und noch genau so, wie Du es gebaut hattest. 

      Falls es nun noch zu jeder "Feststellung" eine (oder mehrere?) mögliche Maßnahme geben sollte, wäre das dann meine nächste "Stammdaten"-Tabelle, die ich dann wiederum als "Child" meiner "FS_TexteZuBereichen" genannten Tabelle anlegen und auf deren Texte (Textbausteine) dann wiederum per Auswahlfeld (dyn.) oder evtl. Mehrfachauswahlfeld (dyn). darauf zugreifen.

      Die erste Auswahl "Bereich" bestimmt dann somit die zur Auswahl stehenden Werte in "Feststellung" und die getroffene Auswahl in "Feststellung" würde dann die möglichen "Massnahmen" einschränken und zur Auswahl anbieten.

      Hoffe, das hilft Dir etwas weiter...

      Grüße

      HF

      • jewasch
      • vor 1 Jahr
      • Gemeldet - anzeigen

      Hallo Horst. Jetzt habe ich es fast hinbekommen. Nur mit der Trigger nach Änderung funktioniert nicht. Ich will halt erreichen, dass er es in das Textfeld schreibt. Es steht dort aber nur die ID.

      'Gefährdung / Feststellung' := Feststellung
      

      • Horst_Fertig
      • vor 1 Jahr
      • Gemeldet - anzeigen

       

      Funktion in Trigger nach Änderung (Feststellung):

      'Gefährdung / Feststellung' := text(Feststellung)

      Dann steht da in diesem Datensatz aber 2x das Gleiche !?!?

      Und: Mit dieser ganz banalen Funktion hier oben würde ein eventuell bereits vorhandener Text in "Gefährdung..." gnadenlos überschrieben werden, von daher dann vielleicht lieber etwas "feiner"...

      if not 'Gefährdung / Feststellung' then
          'Gefährdung / Feststellung' := text(Feststellung)
      end

      ODER vielleicht auch so, dass die (neue, oder zusätzliche) Auswahl in "Feststellung" an einen eventuell vorhandenen Text noch mit angefügt wird, etwa so...

      if not 'Gefährdung / Feststellung' then
          'Gefährdung / Feststellung' := text(Feststellung)
      else
          'Gefährdung / Feststellung' := 'Gefährdung / Feststellung' +
              "
          " +
              text(Feststellung)
      end

      Führt dann also in etwa zu so etwas...

      Nur mal so als kleine Anregungen gedacht und je nachdem, wie das Ergebnis zu guter Letzt ausschauen soll, sicherlich noch (sehr) verbesserungswürdig...  ;-)

      Grüße

      HF

      • jewasch
      • vor 1 Jahr
      • Gemeldet - anzeigen

      Oh vielen lieben Dank. Aber woran kann es liegen, das die Formel auf dem Rechner funktioniert, auf dem Tablett aber nicht. ???