0

Hilfe für Ansicht

Hallo,

ich möchte folgendes erreichen, wenn dieses möglich ist.

In einem Feld stehen Werte mit Komma getrennt. In der Ansicht sollen alle Datensätze angezeigt werden, die mindestens einem Werten im Suchfeld entsprechen.   

Ich bedanke mich für eure Hilfe

Alex

5 Antworten

null
    • Heinrich Frey Maschinenbau GmbH
    • Christian_Rott
    • vor 1 Monat
    • Gemeldet - anzeigen

    Dazu müßte man noch etwas mehr zu der Datenstruktur wissen.

    Wie und was soll wo angezeigt werden. Das wäre hilfreich

      • Alexander_Prochnow
      • vor 1 Monat
      • Gemeldet - anzeigen

       

      Habe das Feld Re-Nummer, in dem die Rechnungsnummern bei Zahlungseingang kommasepariert eingetragen werden. Dann habe ich die Ansicht, in der alle Rechnungen zu den Rechnungsnummern angezeigt werden sollen. Ich habe dieses jetzt mal mit dem Code so weit hinbekommen, jedoch wird es wohl noch eine bessere oder einfachere Codevariante geben, denke ich. Hier der Code in der Ansicht.

      let myRE := item(split('Re-Nummer', ", "), 0);
      let myRE1 := item(split('Re-Nummer', ", "), 1);
      let myRE2 := item(split('Re-Nummer', ", "), 2);
      let myRE3 := item(split('Re-Nummer', ", "), 3);
      let myRE4 := item(split('Re-Nummer', ", "), 4);
      let myRE5 := item(split('Re-Nummer', ", "), 5);
      let myRE6 := item(split('Re-Nummer', ", "), 6);
      let myRE7 := item(split('Re-Nummer', ", "), 7);
      let myRE8 := item(split('Re-Nummer', ", "), 8);
      let myRE9 := item(split('Re-Nummer', ", "), 9);
      let myRE10 := item(split('Re-Nummer', ", "), 10);
      let myRE11 := item(split('Re-Nummer', ", "), 11);
      let myRE12 := item(split('Re-Nummer', ", "), 12);
      select Buchungen
          where 'Re-Nummer' = myRE or 'Re-Nummer' = myRE1 or 'Re-Nummer' = myRE2 or
                                              'Re-Nummer' = myRE3 or
                                          'Re-Nummer' = myRE4 or
                                      'Re-Nummer' = myRE5 or
                                  'Re-Nummer' = myRE6 or
                              'Re-Nummer' = myRE7 or
                          'Re-Nummer' = myRE8 or
                      'Re-Nummer' = myRE9 or
                  'Re-Nummer' = myRE10 or
              'Re-Nummer' = myRE11 or
          'Re-Nummer' = myRE12
      
      • Ninox-Professional
      • planoxpro
      • vor 1 Monat
      • Gemeldet - anzeigen

       

      Hallo Alexander, versuch‘s mal so:

      let myR := split(‘Re-Nummer‘, ",");
      for i in myR do
         first(select Buchungen where 'Re-Nummer' = trim(i))
      end
      • Ninox-Professional
      • planoxpro
      • vor 1 Monat
      • Gemeldet - anzeigen

      Nachtrag: 

      Die Performance ließe sich wahrscheinlich durch eine zusätzliche Vorab-Filterung noch verbessern. Dann müssten beim „select“ nicht immer alle Datensätze in ‚Buchungen‘ durchsucht werden - da kann über die Jahre ja einiges zusammenkommen -, sondern von vornherein nur eine kleine Teilmenge.

      Beispiel: Angenommen, die Datensätze in ‚Buchungen‘ hätten ein Ja/Nein-Feld namens „Bezahlt“. Und es sollen bei der Abfrage nur unbezahlte berücksichtigt werden. Dann könnte man die relevante Teilmenge der ‚Buchungen‘ in ein Array packen und dann dieses zum Abgleich heranziehen:

      let myRe := split('Re-Nummer', ",");
      let myArray := (select Buchungen where not Bezahlt);
      for i in myRe do
         first(myArray['Re-Nummer' = trim(i)])
      end

      Bei ein paar hundert Datensätzen wird es vermutlich keinen spürbaren Unterschied machen, bei ein paar tausend möglicherweise schon.

      • Alexander_Prochnow
      • vor 1 Monat
      • Gemeldet - anzeigen

      Vielen lieben Dank. Mit einer Schleife wollte ich es auch machen, aber ich bekomme das einfach nicht hin. Da fehlen mir schlichtweg die Kenntnisse bzw. das Verständnis.

Content aside

  • vor 1 MonatZuletzt aktiv
  • 5Antworten
  • 38Ansichten
  • 3 Folge bereits