Formelergebnis wird nicht richtig angezeigt.
Hallo,
wir wollen unsere Aktivitäten auswerten und zählen hierzu die an einem Tag neu angelegten Datensätze in einer Tabelle in einem Formelfeld:
let me := this;
cnt(select 'Schriftstücke' where date('erzeugt am / um') = date(me.Datum))
Nun wird das Ergebnis der Formel auf der rechten Seite richtig, auf der linken Seite falsch angezeigt. Natürlich fehlt der WErt dann auchim Diagramm im Dashboard...
Hat jemand eine Idee, was ich hier falsch mache?
Danke für Eure Hilfe
Martin
11 Antworten
-
Hallo Martin,
aus dem Bild kann man natürlich wenig herauslesen, deshalb ein paar Fragen:
- Ist das in jeder Zeile so? Auch in Zeile 5 zum Beispiel?
- Gibt es in der Tabelle eine Formatierung?
-
Hallo Lars,
Danke für Deine Nachfragen.
Das ist eben nicht in allen Zeilens so, in manchen Feldern wird das ERgebnis richtig angezeigt.
Eine spezielle Formatierung verwende ich nicht, im Feld ist das Zahlenformat mit #.##0 angegeben.
Beste Grüße
Martin
-
Hi Martin,
versuche es mal ohne die date() Befehle, das sollte auch funktionieren.let me := this; cnt(select 'Schriftstücke' where 'erzeugt am / um' = me.Datum)
Ich hatte mal den Fall, da hatte ich mit zu viel date-Befehlen in einer Abfrage gearbeitet und es gab dort kuriose Anzeigen im FX-Feld, die aber auch immer den selben kuriosen Inhalt anzeigten (reproduzierbar).
Ist das bei dir auch so?Viel Erfolg
Ronald -
Hallo Ronald,
danke auch für diesen Tipp.
Hab mal die date() Funktionen weggelassen, leider kein anderes Ergebnis. Bei "Datum des Schriftstücks" und bei "Datum" ist das ja kein Problem, da es Datumsfelder sind, bei "erzeugt am / um" schon, da es sich hier um ein Datum-/Zeitfeld handelt. Ich habe 2 FX-Felder, hier nochmals beide Formeln:
let me := this; cnt(select 'Schriftstücke' where 'Datum des Schriftstücks' = me.Datum)
let me := this; let myD := Datum; cnt(select 'Schriftstücke' where date('erzeugt am / um') = myD)
Bei mir sind die komischerweise nicht reproduzierbar. Mal sind einige Ergebnisse richtig, mal stehen sie auf 0. Immer wenn ich die Tabelle neu öffne, sehe ich andere Ergebnisse. Die este Berechnung. Wobei der erst Codeblock (vergleich mit "Datum des Schriftstücks" häufiger das richtige Ergebnis liefert.
Irgendwie steckt die Lösung aber in den Formaten. mit folgendem Code (wandle das die Vergleichsfelder vorher in Text um) erhalte ich jetzt für das Datum-/Zeitfeld richtige Ergebnisse:
let me := this; let myD := format(Datum, "YYYYMMDD"); cnt(select 'Schriftstücke' where format('erzeugt am / um', "YYYYMMDD") = myD)
Immerhin ein Teilerfolg
Bei dem reinen Datumsfeldvergleich funktioniert das aber wieder nicht ...
Beste Grüße
Martin
-
Was allerdings immer bleibt, ist die ganz am Anfang beschriebene Problematik, dass das richtige Ergebnis nur in Ansicht des Datensatzes angezeigt wird. in der Tabelle aller Datensätze steht die 0. Damit bleibt auch die Anzeige im Dashboard als Grafik leer ...
Wäre prima, wenn hier noch jemad eine Idee hätte.
Grüße
Martin
-
Hi Martin,
Ich gehe davon aus, dass Du in der "Ninox Cloud" arbeitest.
Was passiert denn, wenn Du auf das Aktualisierungszeichen links oben klickst.
Ändert sich dann in der Tabellenansicht etwas? -
Hallo Ronald,
nein, mit dem Aktualisierungszeichen ändert sich nichts.
Hier nochmals 2 Bilder:
1. so wie ich die Tabelle aufrufe erscheint zumindest kein Ergebnis richtig.
2. dann mache ich die ganze Anendung zu, rufe wieder auf und plötzlich ist zumindest ein Ergebnis so wie es sein soll... aber halt nur 1 Ergebnis...
irgendwie ist das nicht sehr vertrauenserweckend.
Kann das mit irgendwelchen Laufzeit probelmen zu tun haben? Gibt es eine Möglichkeit die Formelberechnung "as server" oder so was ähnliches auszuführen.Vielen Dank, dass Du Dich hiermit beschäftigst!
Beste Grüße
Martin
-
Hallo Martin. Eine etwas skurrile Möglichkeit wäre folgende. Man kann in der Tabellenansicht eigene Funktionen anlegen und denen den gleichen Namen geben, wie in der Formularansicht. Wenn die hinterlegte Funktion aber verschieden ist, dann hat man andere Ergebnisse.
-
Hallo Mirko,
coole Frage, da musste ich nachdenken. Die meisten Felder lege ich tatsächlich in der Formularansicht an, aber gleiche Felder in der Tabellenansicht gibt es nicht.
Habe trotzdem mal alle Formelfelder aus der Tabellen- und aus der Formularansicht gelöscht und dann mit den ebkannten Formeln in der Tabellenansicht neue Formelfelder eingefügt. Leider ist mit dem identischen Ergebnis.
Martin
-
hab möglicherweise eine Lösung, auch wenn ich nicht verstehe wieso das funktioniert...
let me := this; let myD := format(Datum, "YYYYMMDD"); do as server cnt(select 'Schriftstücke' where format('erzeugt am / um', "YYYYMMDD") = myD) end
und
let me := this; do as server cnt(select 'Schriftstücke' where 'Datum des Schriftstücks' = me.Datum) end
und im Bild dann das passende Ergebnis.
Grüße
Martin -
hab jetzt auch die Grafiken aktualisiert. Es scheint mit dem "do as server" tatsächlich zu funtkionieren.
Ich danken nochamsl allen für die guten Fragen!
Martin
Content aside
- vor 2 JahrenZuletzt aktiv
- 11Antworten
- 114Ansichten
-
3
Folge bereits