🙏 Helfen Sie jetzt mit, unser LibreOffice Forum zu erhalten! 🙏
Mit Ihrer Spende sichern Sie den Fortbestand, den Ausbau und die laufenden Kosten dieses Forums. 🌱

🍀 Jeder Beitrag zählt – vielen Dank für Ihre Unterstützung!🍀

❤️ DANKE >> << DANKE ❤️

>> Dank Ihrer Unterstützung -> Keine Werbung für alle registrierten LibreOffice-Forum User! <<
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗

Summe einer Zeile bei Eingabe anzeigen

Base ermöglicht es Ihnen, Ihre Daten in einer Datenbank direkt mit LibreOffice zu bearbeiten.
Antworten
chico
Beiträge: 17
Registriert: Mo 28. Jul 2014, 15:13

Summe einer Zeile bei Eingabe anzeigen

Beitrag von chico » Mo 16. Feb 2015, 16:48

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

RobertG
* LO-Experte *
Beiträge: 2884
Registriert: Sa 19. Mai 2012, 17:37
Kontaktdaten:

Re: Summe einer Zeile bei Eingabe anzeigen

Beitrag von RobertG » Mo 16. Feb 2015, 17:49

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
https://de.libreoffice.org/get-help/documentation/
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare

chico
Beiträge: 17
Registriert: Mo 28. Jul 2014, 15:13

Re: Summe einer Zeile bei Eingabe anzeigen

Beitrag von chico » Mo 16. Feb 2015, 20:30

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

RobertG
* LO-Experte *
Beiträge: 2884
Registriert: Sa 19. Mai 2012, 17:37
Kontaktdaten:

Re: Summe einer Zeile bei Eingabe anzeigen

Beitrag von RobertG » Di 17. Feb 2015, 07:36

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
https://de.libreoffice.org/get-help/documentation/
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare

chico
Beiträge: 17
Registriert: Mo 28. Jul 2014, 15:13

Re: Summe einer Zeile bei Eingabe anzeigen

Beitrag von chico » Di 17. Feb 2015, 10:41

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

RobertG
* LO-Experte *
Beiträge: 2884
Registriert: Sa 19. Mai 2012, 17:37
Kontaktdaten:

Re: Summe einer Zeile bei Eingabe anzeigen

Beitrag von RobertG » Mi 18. Feb 2015, 19:08

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
https://de.libreoffice.org/get-help/documentation/
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare


An alle, die das LibreOffice-Forum gern nutzen und unterstützen wollen:


Bitte helfen Sie uns mit 7 Euro pro Monat.
Durch Ihren Beitrag tragen Sie dazu bei, unsere laufenden Kosten für die kommenden Monate zu decken.
Unkompliziert per Kreditkarte oder PayPal.
Als ein kleines Dankeschön werden Sie im LO-Forum als SUPPORTER gekennzeichnet.



Antworten