0

mit Mehrfachfeld ein Auswahlfeld abfragen

Stelle mich wahrscheinlich sehr Laienhaft an. aber bekomme die Abfrage aus einer Mehrfachauswahl mit den selben Werten des Auswahlfeldes der anderen Tabelle nicht auf die Reihe. Danke für Eure Hilfe.

8 Antworten

null
    • Ninox-Professional
    • planoxpro
    • vor 6 Monaten
    • Gemeldet - anzeigen

    Hallo Dirk, im Dashboard ist 'Broker' ein Mehrfach-, in 'Positionen' ein Einfachauswahlfeld? Dann wundert mich, dass du für Zeile 11 keine Fehlermeldung bekommst. Denn dort versuchst du, ein einfaches Auswahlfeld mit einem Array abzufragen.

    Ich vermute mal, dass du alle Positionen mit einem der 'Broker'-Werte filtern willst, die im Merfachauswahlfeld ausgewählt wurden. Wahrscheinlich geht das eleganter, aber auf die Schnelle fiele mir diese Lösung dazu ein:

    let myB := numbers(Broker);
    let myA := [first(select Positionen)];
    for x in select PositionenX do
        for y in myB do
            if x.Broker = y then
                myA := array(myA, [x])
            end
        end
    end;
    slice(myA, 1, cnt(myA))

     

      • Dirk_Weidensdorfer
      • vor 6 Monaten
      • Gemeldet - anzeigen

       das Funktioniert. Danke

      Wie kann ich diese Abfrage da noch einbringen: 

      Positionen where 'Datum Verkauf' >= von and 'Datum Verkauf' <= bis

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

       Ähm, du meinst, nach dem "select" in der X-Schleife? Genau so, wie du es geschrieben hast.

      • Dirk_Weidensdorfer
      • vor 6 Monaten
      • Gemeldet - anzeigen

       ja, er soll außer die Auswahlfelder noch den Datum abgleichen.

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

      Wie gesagt:

      select Positionen where 'Datum Verkauf' >= von and 'Datum Verkauf' <= bis

      Wobei 'von' und 'bis' Variablen sind, die vor der Abfrage definiert und mit den gewünschten Datums-Werten bestückt werden müssen. Also bspw.

      let von := Startdatum;

      Wobei 'Startdatum' ein Feld vom Typ Datum in der aufrufenden Tabelle wäre.

      • Dirk_Weidensdorfer
      • vor 5 Monaten
      • Gemeldet - anzeigen

       Die Frage wo ich genau die Select Abfrage nach Datum in Deine bestehende Formel einbringe ;-). Sorry falls ich mich etwas ungeschickt anstelle. 

      let myB := numbers(Broker);
      let von := 'Datum von';
      let bis := 'Datum bis';
      let myA := [first(select Positionen)];
      for x in select Positionen do
          for y in myB do
              if x.Broker = y then
                  myA := array(myA, [x])
              end
          end
      end;
      slice(myA, 1, cnt(myA))

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

       

      In der for-Schleife. Die bedeutet ja: Gehe sämtliche Datensätze durch, die vom "select" geliefert werden. Ohne "where"-Filter sind das alle, mit eben nur die, welche der Bedingung entsprechen.

      for x in select Positionen where 'Datum Verkauf' >= von and 'Datum Verkauf' <= bis do
      • Dirk_Weidensdorfer
      • vor 5 Monaten
      • Gemeldet - anzeigen

       Komme da leider nicht klar damit. Sorry

      let myB := numbers(Broker);
      let von := 'Datum von';
      let bis := 'Datum bis';
      let myA := [first(select Positionen)];
      for x in select Positionen do
          for y in myB do
              if x.Broker = y then
                  myA := array(myA, [x])
              end
          end
      end;
      slice(myA, 1, cnt(myA));
      let myA := [first(select Positionen)];
      for x in select Positionen do
          for y in von do
              if x.'Datum Verkauf' < y then
                  myA := array(myA, [x])
              end
          end
      end;
      slice(myA, 1, cnt(myA));
      let myA := [first(select Positionen)];
      for x in select Positionen do
          for y in bis do
              if x.'Datum Verkauf' > y then
                  myA := array(myA, [x])
              end
          end
      end;
      slice(myA, 1, cnt(myA))

Content aside

  • vor 5 MonatenZuletzt aktiv
  • 8Antworten
  • 83Ansichten
  • 2 Folge bereits