0

Verwendung von dyn. Auswahlfeldern

Ich verwende die Werte von einem dynamischen Auswahlfeld in Carbone-Berichten. Bisher konnte ich den Wert des dynamischen Auswahlfeldes als text(dyn. Auswahlfeld) an Carbone übergeben. Das hat immer funktioniert. Bei anderen Verwendungen, z.B. wenn ein dyn. Auswahlfeld eine Filterung von einem zweiten dyn. Auswahlfeld bewirkt, konnte man das oft nicht mit der Abfrage des Textwertes machen. 

Im Erstgenannten Fall, hat der Textwert aber funktioniert und tut er auch jetzt noch, jedoch nicht mehr zuverlässig. Jetzt habe ich festgestellt, dass in einigen Fällen als Textwert die Number des zugrunde liegenden Datensatzes übergeben wird und nicht mehr der Textwert, von dem das angezeigt wird. 

Das ist grundsätzlich kein Problem, wenn man wüsste, wie man das zuverlässig lösen kann. Ich fände es etwas schade, wenn man für jedes dyn. Auswahlfeld den Wert so übergeben müsste:

record(Tabelle,number(dyn. Auswahlfeld)).Wert

einfacher und etwas kompakter wäre

text(dyn. Auswahlfeld)

Was sagt Ninox dazu? Ist es gar nicht vorgesehen, dass man text(dyn. Auswahlfeld) verwenden kann? Oder was sind die Gründe, dass es mal funktioniert und mal nicht?

5 Antworten

null
    • Ninox-Professional
    • planoxpro
    • vor 1 Monat
    • Gemeldet - anzeigen

    Hallo Mathias ...

     said:
    record(Tabelle,number(dyn. Auswahlfeld)).Wert
    einfacher und etwas kompakter wäre
    text(dyn. Auswahlfeld)

    Wobei das genau genommen ja zwei verschiedene Dinge sind. Mit record(Tabelle, number(DynAF).Wert liest du ein bestimmtes Feld des Datensatzes aus (z. B. Name), mit text(DynAF) lässt du dir den „Name des dynamischen Werts“ anzeigen, welcher aber Ergebnis einer Funktion ist, die einen String generiert, der auch aus mehreren Feldern bestehen kann:
    (z. B. Vorname + " " + Nachname + ", " + Abteilung).

    Ich selbst arbeite bei DynAF seit jeher eigentlich immer nur mit record(). Das hat von Anfang an funktioniert (bei text() bin ich mir nicht sicher) und es erscheint mir auch technisch „richtiger“ zu sein, weil der Rückgabewert eines DynAF ja nur die Datensatznummer des gewählten Eintrags sein kann. Denn im Gegensatz zu normalen AF ist der anzuzeigende Text halt nicht fester Bestandteil des Auswahlfeldes, sondern wird dynamisch aus dem betreffenden Datensatz geholt und kann wie gesagt auch eine Kombination aus mehreren Feldern sein.

    Will sagen: Es sollte natürlich nicht sein, dass text(DynAF) unterschiedliche Werte zurückgibt, aber ich würde davon ausgehen, dass es zuverlässig nur mit number() und record() funktioniert. Damit ist man auf der sicheren Seite.

      • m2apla gmbh
      • Mathias_Muller
      • vor 1 Monat
      • Gemeldet - anzeigen

       Hallo Axel

      Da hast du natürlich recht. Der Textwert von eine dynamischen Auswahlfeld und ein Wert von einem Feld auf der zugrunde liegenden Tabelle müssen definitiv nicht zwingend die gleiche Information enthalten. 

      Das Verwenden der Funktion record(...) ist definitiv der sicherere Weg. Zukünftig werde ich wohl auch konsequent auf diesen Weg setzen. Habe das in der Vergangenheit schon gemacht, aber halt nicht immer konsequent. 

       vielleicht könnte man die Doku hinsichtlich der Auswertbarkeit von solchen Feldern auch noch ergänzen. Dann wäre die Information offiziell.

    • UweG
    • vor 1 Monat
    • Gemeldet - anzeigen


    Ich pack mal hier eine Bsp-DB rein, wie man über globale Funktionen bei dynAuswahlfeldern die Auswahl weiter verarbeiten kann ohne die text()-Funktion zu benutzen.
    Die globalen Funktionen sind universell und können auf alle existierenden single/multi dyn.Auswahlfelder angewandt werden.
    Mit einer kleinen Modifikation könnte man sie auch für Carbone-Printausgaben als nested Array für Tabellen nutzen.
    Wichtig ist eine permanente Page, die auch versteckt sein kann. Sie darf nur niemals gelöscht werden.

    • UweG
    • vor 1 Monat
    • Gemeldet - anzeigen
    • Leonid_Semik.2
    • vor 1 Monat
    • Gemeldet - anzeigen

    Hallo Mathias, kannst ein Beispiel nennen wo text(dchoice) eine Id statt Wert anzeigt? dies würde helfen den Fehler zu lokalisieren.

Content aside

  • vor 1 MonatZuletzt aktiv
  • 5Antworten
  • 79Ansichten
  • 4 Folge bereits