0

Hilfe & Frage zum dynamischen Mehrfachauswahl

Hallo ihr Ninox-Nutzer. Ich stehe vor einer weiteren Herausforderung und weis kein Ausweg mehr. 

Ich habe in der Tabelle "Produkte" ein dynamisches Mehrfachauswahl mit dem Namen PV-Eingänge. Hier treffe ich eine Auswahl.

 

In der Tabelle "PV-String" sollen nur die ausgewählten in einem dynamischen Mehrfachfeld auftauchen, damit ich sie zuordnen kann. 

Mit einem Formelfeld bekomme ich die ja Angezeigt, aber ich möchte den Eingang zuweisen können.

Ist es überhaupt machbar oder bin ich auf einem Holzweg?

Vielen Dank für jede Hilfe!

10 Antworten

null
    • UweG
    • vor 1 Jahr
    • Gemeldet - anzeigen

    Ein dyn.MAF befüllt man per Script über ein ZahlenArray, welches die RecordID's aus dem zugehörigen select beinhaltet.
     

    Wenn bei beiden dyn.MAF die select-Quelle identisch ist, erhält man mit
    let vdMAF:= numbers(dyn.MAF1)
    die ID's der ausgewählten Records des ersten dyn.MAF und schreibt mit
    dyn.MAF2 := vdMAF 
    diese Auswahl in das zweite dyn.MAF.

    Wenn die Datenquellen beider dyn.MAF nicht identisch sind, musst du über eine Schleife die entsprechenden ID's des zweiten dyn.MAF ermitteln, dessen Textanzeige mit dem des ersten übereinstimmt und daraus ein Array mit den dann geltenden ID's bauen.

      • chalvi // WERBEAGENTUR GbR
      • VS2021
      • vor 1 Jahr
      • Gemeldet - anzeigen

      UweG Vielen Dank für die Antwort. Es gibt mir Hoffnung, dass meine Gedanken irgendwie umgesetzt werden können.

      Trotzdem brauche ich noch einige Unterstützung bei der Umsetzung. Hab schon einiges gelernt, aber merke das ich einige Sachen noch nicht verstehe.

      Das heißt ich muss bei beiden dyn.MAF denselben select "PV-Eingänge" angeben? 

      Und wo muss ich genau beim ersten dyn.MAF die Variable 

      let vdMAF:= numbers(dyn.MAF1) einsetzen? 

      Und wo die zweite Variable bei dem zweiten dyn.MAF

      dyn.MAF2 := vdMAF

      Vielen Dank für die Hilfe

      • chalvi // WERBEAGENTUR GbR
      • VS2021
      • vor 1 Jahr
      • Gemeldet - anzeigen

      UweG Vielleicht ist es einfachen zu erklären was ich genau machen will mit einer Beispiel Datenbank. 

      Ich habe vier Tabellen. In der Tabelle "dyn.MAF-PV-Eingänge" sind die Auswahlmöglichkeiten abgelegt. In der Tabelle "Produkte" lege ich ein Produkt an und bestimme die PV-Eingänge. 

      In der Tabelle "Projekt" wir ein neues Projekt eröffnet ein Produkt ausgewählt. Dann füge ich einen neuen Datensatz in der Tabelle "Dach" hinzu. Hier soll ich dann durch ein dyn.MAF nur die Felder auswählen können, die bei dem Produkt ausgewählt sind. 

      Ich hoffe es ist verständlich. 

      Vielen, vielen Dank für die Hilfe! Han schon selber unzählige Stunden mit dem Problem verbracht. 

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

      VS2021 Versuch's mal so (Code für "Dynamic Values" im DAF in der Tabelle 'Dach'):

      let myChoice := numbers(Projekt.Produkt.'Mehrfachauswahl (dynamisch)');
      let myA := for i in myChoice do
        record('dyn.MAF-PV-Eingänge',i)
      end;
      myA
      

      Voraussetzung ist allerdings immer eine bestehende Verknüpfung zu 'Projekt'.

      • chalvi // WERBEAGENTUR GbR
      • VS2021
      • vor 1 Jahr
      • Gemeldet - anzeigen

      planox. pro Vielen Dank! Es hat auf anhieb funktioniert in der Beispiel-Datenbank. Einfach genial! Nach dem langen ausprobieren einfach der Hammer!

      Ich habe nur in der Beispiel-Datenbank die Produkte falsch verknüpft, und er zeigt mir einen Fehlen an! Die Funktion ist nicht definiert numbers([dmulti])

      Ich habe mal meine Beispiel-Datenbank jetzt so angepasst, wie ich es in meiner Originalen Daten habe. Könntest du mir da helfen.

      Herzlichen Dank!

      MAF2.ninox 

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

      VS2021 Vorher waren 'Projekte' und Produkte N:1 miteinander verknüpft. Das heißt, man konnte zu jedem Projekt nur ein Produkt angeben und darüber auf die Eigenschaften dieses Produktes zugreifen. Jetzt ist 'Projekte' statt dessen 1:N mit einer Tabelle 'Wechselrichter' verknüpft, so dass immer ein Array zurückgegeben wird (auch, wenn es nur einen oder gar keinen Datensatz enthält). Deshalb hat man aus der Tabelle 'Dach' heraus keinen direkten Zugriff mehr auf 'Produkte'.

      Anders gesagt: Der "Pfad" Projekt.Produkt.DMAF hat funktioniert, weil die Verknüpfungen 'Projekt' und 'Produkt' jeweils auf der N-Seite angesprochen wurden und demzufolge auch jeweils nur 1 Datensatz-ID zurückgaben, die dann weiter verfolgt werden konnten. Projekt.Wechselrichter.Produkt.DMAF funktioniert hingegen nicht, weil 'Wechselrichter' auf der 1-Seite angesprochen wird, also mehrere (N) verknüpfte Datensätze beinhalten kann und Ninox nicht weiß, welcher davon gemeint ist.

      Ich würde mir deshalb noch mal genau den Prozess anschauen und das Datenmodell überdenken.

      PS: Zum Grundverständnis von Verknüpfungen habe ich zufälligerweise gerade gestern was geschrieben ... 
      https://forum.ninox.de/t/p8h0t0r/einsteiger-tutorial-zu-verknupfungen-in-ninox

    • UweG
    • vor 1 Jahr
    • Gemeldet - anzeigen

    Wenn beide dyn. MAF die selbe Datenbasis haben ist es einfacher.
    Warum sollte man unterschiedliche Datenbasen wählen, wenn bei beiden die gleichen Dinge angezeigt werden sollen?

    Aus dem Stehgreif kann ich es nicht beantworten, da ich dein Datenbankmodell nicht kenne.
    Wie sieht denn das Script von deinem Formelfeld aus, in dem die Auswahl des anderen dMAF angezeigt wird?

    • UweG
    • vor 1 Jahr
    • Gemeldet - anzeigen

    Schön das die Lösung von Axel funktioniert.
    Da habe ich es wohl wieder falsch gelesen.
    Ich dachte, du möchtest in dem 2. dMAF nur noch die in dem 1. dMAF ausgewählten Punkte angezeigt bekommen und alle anderen Werte sollen nicht mehr angezeigt  werden oder auswählbar sein.

    Bsp. Im 1, dMAF sind von 4 möglichen Werten der 1, und 3, Wert ausgewählt.
    Im 2. dMAF werden nur noch der 1. und 3. Wert angezeigt und die Werte 2 und 4 treten überhaupt nicht mehr in Erscheinung und können auch nicht zusätzlich ausgewählt werden.

    Ich denke wohl immer zu kompliziert.

    Habe ich wieder mal ein falsches Script erstellt.
     

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

      UweG Nein, du hattest das im Prinzip schon richtig verstanden: Das zweite DAF in 'Dach' sollte nur die Datensätze zur Auswahl anbieten, die im ersten DMAF ('Produkte') ausgewählt waren. Nur in der Umsetzung unterscheiden sich unsere Lösungen geringfügig.

    • chalvi // WERBEAGENTUR GbR
    • VS2021
    • vor 1 Jahr
    • Gemeldet - anzeigen

    UweG planox. pro Vielen Dank euch für eure Hilfe. Hat mir sehr geholfen Einges zu verstehen. Und ich habe jetzt meine Verknüpfung Struktur etwas überarbeitet. Jetzt funktioniert es super! 

    Danke euch!

Content aside

  • Status Answered
  • vor 1 JahrZuletzt aktiv
  • 10Antworten
  • 153Ansichten
  • 3 Folge bereits