Wie wird ein "Feld x" des letzten Datensatzes mit dem "Feld X" des aktuellen Datensatzes z.B. multipliziert?
Wie wird ein "Feld x" des letzten Datensatzes mit dem "Feld X" des aktuellen Datensatzes z.B. multipliziert?
18 Antworten
-
Hi HGO49,
let akt_Feld_X := this.'Feld X';
let letztes_DS_Feld_X := last(select Tabelle1).'Feld X';
Ergebnis := akt_Feld_X * letztes_DS_Feld_XGruß
Mirko
-
Vielen Dank lieber Mirko, mache mich gleich ans Werk. Wie immer: Eine schnelle und fachmännische Hilfe!
-
Danke Dir,
dafür ist das Forum ja da.
Schönes Wochenende!
-
Hallo Mirko,
meine Anpassung:
let akt_Feld_X := this.'Abgelesener Zählerstand kWh';
let letztes_DS_Feld_X := last(select 8.1 Stromverbrauch).'Abgelesener Zählerstand kWh';
Ergebnis := akt_Feld_X - letztes_DS_Feld_X
Fehlermeldung: ID erwartet in Zeile 2 Spalte 38
Vielen Dank!
-
hast du hochkomma bei der Tabelle gesetzt?
last(select '8.1 Stromverbrauch').'Abgelesener Zählerstand kWh';
-
Habe ich korrigiert und nachdem ich (hihi) "
Ergebnis :=
" herausgenommen habe, bekomme ich auch ein Ergebnis. Das wird aber nicht im aktuellen Datensatz, sondern im letzten Datensatz angezeigt. Im aktuellen Datensatz wird eine 0 angezeigt. Nicht schlimm, aber, wie könnte man das noch verbessern?Ganz herzliche Grüße
Hans Georg -
Hallo Hans Georg,
Du ziehst den Zählerstand im letzten Datensatz (aktueller Datensatz) vom Zählerstand im letzten Datensatz (last()) ab - das kann dort nur "0" als Ergebnis haben ;-)
let my := this;
let akt_Feld_X := this.'Abgelesener Zählerstand kWh';
let letztes_DS_Feld_X := last(select '8.1 Stromverbrauch' where Nr < my.Nr).'Abgelesener Zählerstand kWh';
Ergebnis := akt_Feld_X - letztes_DS_Feld_X
lg, Torsten
-
Vielen Dank an "Ninox" für die Hilfe bis in die Nacht hinein!
Jetzt funktioniert es! Sage mir bitte noch: Warum schreibt ihr
Ergebnis :=
? Das Skript funktioniert nur, wenn ich es weglasse.Viele Grüße und nochmal ganz herzlich: Danke!
-
„Ergebnis“ ist das DB-Feld, dem der Wert zugewiesen wird, wahrscheinlich hast du kein Feld, dass so heißt
-
Verstehe, ich habe ein Formelfeld in dem das Skript erfasst wurde, dann ist der Verweis auf das Feld nicht nötig! Vielen Dank! Hans Georg
-
Nachdem ich das Datenfeld Ergebnis erstellt hatte, werde ich im Skript-Editor darauf hingewiesen, dass die Tabellenspalte kein einfaches Datenfeld sei? Viele Grüße Hans Georg
-
hast du ein Berechnungsfeld hinzugefügt? Nimm mal ein Zahlen-Datenfeld. Aber wenn Du die Funktion in das Berechnungsfeld schreibst, weil du das Ergebnis der Rechnung dort stehen haben möchtest, musst du im Code die Zeile
Ergebnis:=......
weglassen.
-
Vielen Dank und ein schönes Wochenende!
-
Habe es mit einem Zahlen-Datenfeld ausprobiert. Beim Verlassen des Skriptes kommt die Meldung: Diese Funktion darf keine Datenänderung vornehmen.
-
Also so müsste es gehen, im letzten DS steht dann zwar 0 aber das ist ja auch klar, da ja dort aktueller DS = letzter DS ist, oder was willst du da stehen haben?
-
Lieber Mirko, mach Dir keine Mühe mehr. Ich habe mit dem Skript von Torsten ein optimales Ergebnis. Ich musste nur "Ergebnis :=" löschen und das richtige Ergebnis steht im Berechnungsfeld des aktuellen Datensatz. Wollte dann wegen eurer Anregung auch mal die Sache mit einem zusätzlichen Feld "Ergebnis" ausprobieren. Das geht aus irgend einem Grund leider nicht. Nochmal vielen Dank und alles Gute Hans Georg
-
Hallo Georg,
das Berechnungsfeld kann keine Datenänderung in anderen Feldern (die ":="-Anweisung) vornehmen. Das Script könnte alternativ in einem Änderungstrigger z.B. im Feld 'Abgelesener Zählerstand kWh' stehen und dann ein Feld 'Ergebnis' füllen. Die Variante wäre für Dich aber in der Tat ungünstiger, weil sich bei Korrekturen der Ablesung lediglich der aktuelle Datensatz ändern würde, nicht aber der folgende, der ja auch auf den Ablesungswert zugreift.
lg, Torsten
-
Wieder ein guter Service, vielen Dank allen Beteilgten!
Content aside
- vor 5 JahrenZuletzt aktiv
- 18Antworten
- 3277Ansichten