Syntax where Bedingung
Hallo,
ich bin neu mit Ninox, die Syntax lässt mich (noch) verzweifeln.
Ich möchte in einer Tabelle mit Bankbuchungen im Formular den jeweiligen Saldo anzeigen, und zwar nur bis zu dem Datensatz, bei dem ich mich befinde. Das kann eigentlich nicht schwer sein. Ich versuche mit
let Position:=Nr;
sum(Datenfeld where Position<=Nr)
und ähnlichem, u.a. Vorschlägen aus dem Forum. Der Texteditor meckert in allen Fällen rum und erwartet ein Symbol nach dem where. Welches Symbol bitte? Bin ratlos.
Danke
2 Antworten
-
Hallo Udo,
versuche es mal so:
---
let me:=this;
sum((select DEINETABELLE where number(Nr)<=number(me.Nr)).Datenfeld)---
mit let me:=this definiert man den auktuellen Datensatz. So kann man mit me.Faldname alle Felder in dem Datensatz ansprechen. Mit (select DEINETABELLE where number(Nr)<=number(me.Nr)) definiert man die Datensätze, die deinen Bedingungen entsprechen. Intern speichert Ninox einen Array aus Datensatz-IDs. Und als letztes notiert man alle Datenfelder im Array und errechnet eine Summe. Die Umwandlung number(Nr) ist hier notwendig, weil bei Ninox intern die Datensatz-ID aus Tabellen-ID und einer fortlaufenden Nummer zusammengesetzt wird. (z.B. A1, A2, A3). Beim Vergleich der Texte ist A2>A10. number(Nr) wandelt die IDs in Zahlen und dann sind die logische vergleiche auch korrekt.
Man kann es auch so schreiben:
---
let me:=this;
let myChoice:=select DEINETABELLE where number(Nr)<=number(me.Nr);
sum(myChoice.Datenfeld)
---
Leo
-
Hallo Leo,
vielen Dank für die Vorschläge und Deine Erklärung. Funktioniert prima und ich beginne zu verstehen.
Danke nochmal
Udo
Content aside
- vor 3 JahrenZuletzt aktiv
- 2Antworten
- 418Ansichten