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?
6 Antworten
-
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), mittext(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.
-
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. -
-
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
- 6Antworten
- 126Ansichten
-
5
Folge bereits