Seite 1 von 1

Summe einer Zeile bei Eingabe anzeigen

Verfasst: Mo 16. Feb 2015, 16:48
von chico
Hallo,
mit einem Tabellenkontrollfeld zeige ich in einem Sub-Sub-Formular das Ergebnis folgender Abfrage an:

Code: Alles auswählen

SELECT "k"."Ausweis", "e".*, IFNULL( "e"."ArblosenGeld1", 0 ) + IFNULL( "e"."ArblosenGeld2", 0 ) + IFNULL( "e"."ArbLohn1", 0 ) + IFNULL( "e"."ArbLohn2", 0 ) + IFNULL( "e"."KindErzGeld", 0 ) + IFNULL( "e"."HeizZuschuss", 0 ) + IFNULL( "e"."ErsteRente", 0 ) + IFNULL( "e"."ZweiteZusatzR", 0 ) + IFNULL( "e"."KinderZuschlag", 0 ) + IFNULL( "e"."UnterhaltZuschuss", 0 ) + IFNULL( "e"."Aushilfslohn", 0 ) + IFNULL( "e"."Sonstiges", 0 ) AS "Einkommen" FROM "Einkuenfte" "e", "Kunden" "k" WHERE "k"."Ausweis" = "e"."Kunden_ID"
Das Einkommen wird angezeigt, nachdem ein neuer Datensatz aufgerufen wird. Soweit, so gut.
Nun möchte ich, dass nach jedem Eintrag einer Einkommensart beim Verlassen der Tabellenzelle die Summe sofort angezeigt wird.
Dazu habe ich aus dem Handbuch folgendes Makro zum Testen angepasst:

Code: Alles auswählen

SUB Einkommen
	DIM oForm AS OBJECT
	DIM oFeld AS OBJECT
	DIM oFeld1 AS OBJECT
	DIM oFeld2 AS OBJECT
	DIM oFeld3 AS OBJECT
	DIM doFeld1 AS DOUBLE 
	DIM doFeld2 AS DOUBLE 
	oForm = thisComponent.drawpage.forms.getByName("Filter")
	oFeld = oForm.getByName("F_Kunden").getByName("Sub_Einkuenfte").getByName("Sub_GridEinkuenfte")
	oFeld1 = oFeld.getByName("B_ArbLosG1")
	oFeld2 = oFeld.getByName("B_ArbLosG2")
	oFeld3 = oFeld.getByName("Einkommen")
	doFeld1 = oFeld1.getCurrentValue()
	doFeld2 = oFeld2.getCurrentValue()
	oFeld3.text = doFeld1+doFeld2         'das hier funktioniert nicht

END SUB
Das Auslesen der Felder funktioniert, das Anzeigen der Summe im Feld Einkommen funktioniert nicht.
Außerdem bin ich unsicher, mit welchem Ereignis ich das Makro starten soll.
Vielleicht kann mir jemand einen Tipp geben.

MfG

chico

Re: Summe einer Zeile bei Eingabe anzeigen

Verfasst: Mo 16. Feb 2015, 17:49
von RobertG
Hallo chico,

das Makro musst Du an das Verlassen der Felder oFeld1 und oFeld2 knüpfen. Dann müsste der Betrag des einen zu dem anderen addiert werden und auch angezeigt werden können.
Kommt irgendeine Fehlermeldung oder wird die Summierung nur nicht ausgeführt?

Gruß

Robert

Re: Summe einer Zeile bei Eingabe anzeigen

Verfasst: Mo 16. Feb 2015, 20:30
von chico
Hallo Robert,
danke für Deine schnelle Antwort.
Nachdem ich die beiden Spalten B_ArbLosG1 und B_ArbLosG2 an das Ereignis Bei Fokusverlust geknüpft habe, steht in der Variablen oFeld3.txt die richtige Summe. Diese wird aber nicht in die Spalte Einkommen geschrieben.
Gruß
chico

Re: Summe einer Zeile bei Eingabe anzeigen

Verfasst: Di 17. Feb 2015, 07:36
von RobertG
Hallo chico,

ich nahm an, dass die Spalte "Einkommen" nur ein Abfragekonstrukt ist. Deswegen stellst Du das Ergebnis ja eigentlich auch nur dar: oFeld3.text
Wenn die Daten in eine Tabelle kommen sollen, dann musst Du mit

Code: Alles auswählen

oFeld3.BoundField.updateDouble(doFeld1+doFeld2)
arbeiten - auch wenn mir der Sinn nicht klar ist, irgendwelche Daten noch einmal in eine Datenbank zu schreiben, die an anderer Stelle berechnet werden ...

Gruß

Robert

Re: Summe einer Zeile bei Eingabe anzeigen

Verfasst: Di 17. Feb 2015, 10:41
von chico
Hallo Robert,

Entschuldigung! Ich habe einen Fehler gemacht und die Tabelle anstelle der Abfrage als Datenquelle für das Sub-Formular eingestellt. Durch das viele hin- und herschalten beim Ausprobieren ist mir das passiert.
Wenn ich die Abfrage als Datenquelle einstelle, wird die Summe der bestehenden Daten nicht angezeigt, und ich kann weder Datensätze hinzufügen, noch ändern.
Obwohl es nicht die feine englische Art ist Datensummen abzuspeichern, habe ich die Tabelle um ein Feld "Einkommen" erweitert und mit

Code: Alles auswählen

oFeld3.BoundField.updateDouble(doFeld1+doFeld2)
das Mahro geändert. Nun funktioniert alles richtig.
Trotzdem möchte ich gerne wissen, was ich bei der Abfrage-Lösung falsch mache.

Gruß

Jens

Re: Summe einer Zeile bei Eingabe anzeigen

Verfasst: Mi 18. Feb 2015, 19:08
von RobertG
Hallo Jens,

wenn Du Dich noch fragst, warum Deine Abfrage nicht editierbar ist:
Du hast 2 Tabellen in der Abfrage: Einkünfte und Kunden. Beide Abfrage hast Du durch einen Alias angesprochen. Dadurch bist Du bereits durchs Raster der Editierbarbeit gefallen:
- Alle Tabellen müssen mit ihrem Primärschlüssel vertreten sein.
- Keine Tabelle darf mit einem Alias angesprochen sein, wenn mehrere Tabellen enthalten sind.

Siehe dazu auch das Kapitel "Eingabemöglichkeiten in Abfragen" aus dem Handbuch.

Gruß

Robert