BITTE helfen Sie uns HEUTE mit einer SPENDE
Helfen Sie das LibreOffice Forum zu erhalten!
> KEINE WERBUNG FÜR REGISTRIERTE BENUTZER!<
Ihre Spende wird für die Deckung der laufenden Kosten sowie den Erhalt und Ausbau 🌱 des LibreOffice Forums verwendet.
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗
Brechnung in Formular durchführen
Brechnung in Formular durchführen
Hallo zusammen,
ich brauche etwas Hilfe bei Base.
Im Hauptformular in dem ein Unterformular (Tabellen-Steuerelement) eingebettet ist soll eine Berechnung durchgeführt und der Wert angezeigt werden.
Im Unterformular stehen Projektnr, Datum, Beginn und Ende im Zeitformat (HH:MM), hieraus soll die Arbeitszeit berechnet werden. Die DS im Unterformular sollen noch nach Datum gefiltert werden können.
Ich bin dankbar für jeden Tip.
Gruß Helles58
ich brauche etwas Hilfe bei Base.
Im Hauptformular in dem ein Unterformular (Tabellen-Steuerelement) eingebettet ist soll eine Berechnung durchgeführt und der Wert angezeigt werden.
Im Unterformular stehen Projektnr, Datum, Beginn und Ende im Zeitformat (HH:MM), hieraus soll die Arbeitszeit berechnet werden. Die DS im Unterformular sollen noch nach Datum gefiltert werden können.
Ich bin dankbar für jeden Tip.
Gruß Helles58
Re: Brechnung in Formular durchführen
Hallo Helles58,
die normalen Lösung dafür ist, dies nicht im Hauptformular sondern im Unterformular zu erledigen. Schließlich liegen die dazu zugehörigen Daten im Unterformular. Im Hauptformular reicht es nicht aus, das Formular mit einer Abfrage auszustatten. Du muss dabei dann auch noch beständig die Abfrage aktualisieren und das Formular aktualisieren und wieder auf den entsprechenden Datensatz springen - geht nicht ohne Makros.
Du baust das Unterformular auf einer Abfrage auf. Du nimmst alle Felder der betreffenden Tabelle in diese Abfrage auf. Wichtig sind hier der Primärschlüssel (da sonst die Abfrage nicht zur Eingabe genutzt werden kann) und der Fremdschlüssel zum Hauptformular (da sonst das Abfrageergebnis nicht zum Hauptformular passt.)
So ein Code für die Abfrage könnte z.B. sein:
Bei der HSQLDB muss 'hour' in einfachen Anführungszeichen stehen, bei Firebird hast Du jetzt bereits das erste Problem: die Anführungszeichen müssen weg, das Ding funktioniert dann nur in direktem SQL und damit ist die Abfrage nicht mehr für Eingaben funktionstüchtig.
Also: Erst einmal ein paar mehr Informationen und dann nachschauen, wie da überhaupt mit wenig Aufwand etwas möglich ist.
Gruß
Robert
die normalen Lösung dafür ist, dies nicht im Hauptformular sondern im Unterformular zu erledigen. Schließlich liegen die dazu zugehörigen Daten im Unterformular. Im Hauptformular reicht es nicht aus, das Formular mit einer Abfrage auszustatten. Du muss dabei dann auch noch beständig die Abfrage aktualisieren und das Formular aktualisieren und wieder auf den entsprechenden Datensatz springen - geht nicht ohne Makros.
Du baust das Unterformular auf einer Abfrage auf. Du nimmst alle Felder der betreffenden Tabelle in diese Abfrage auf. Wichtig sind hier der Primärschlüssel (da sonst die Abfrage nicht zur Eingabe genutzt werden kann) und der Fremdschlüssel zum Hauptformular (da sonst das Abfrageergebnis nicht zum Hauptformular passt.)
So ein Code für die Abfrage könnte z.B. sein:
Code: Alles auswählen
SELECT "Tabelle".*, DATEDIFF('hour',"Beginn", "Ende") AS "Stunden" FROM "Tabelle"
Also: Erst einmal ein paar mehr Informationen und dann nachschauen, wie da überhaupt mit wenig Aufwand etwas möglich ist.
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
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare
Re: Brechnung in Formular durchführen
Hallo Robert,
danke für die schnelle Beantwortung.
Ich probier das mal aus.
Wenn es noch klemmt melde ich mich wieder.
Gruß Helles58
danke für die schnelle Beantwortung.
Ich probier das mal aus.
Wenn es noch klemmt melde ich mich wieder.
Gruß Helles58
Re: Brechnung in Formular durchführen
Hallo Robert,
hab den SQl-Code in eine abfrage eingebaut. Funktioniert soweit, nur der Wert wird nicht richtig berechnet.
Es werden nur die vollen Stunden berücksichtigt.
Würde passen wenn die Stunden im UF angezeigt werden und im HF die Summe der angezeigten Daten aus dem UF.
Im HF ist ein Kontrollfeld für die Datumsauswahl daneben ein Textfeld für die Summenanzeige.
Im Anhang ist die DB mit ein paar Daten.
Gruß Helles58
hab den SQl-Code in eine abfrage eingebaut. Funktioniert soweit, nur der Wert wird nicht richtig berechnet.
Es werden nur die vollen Stunden berücksichtigt.
Würde passen wenn die Stunden im UF angezeigt werden und im HF die Summe der angezeigten Daten aus dem UF.
Im HF ist ein Kontrollfeld für die Datumsauswahl daneben ein Textfeld für die Summenanzeige.
Im Anhang ist die DB mit ein paar Daten.
Gruß Helles58
Re: Brechnung in Formular durchführen
Bei den Zeiten kommt es darauf an, wie Du sie am besten präsentiert haben willst.
Gibt Dir die Stundenb und die Minuten als Stundenbruchteile an. Die Anzahl der Nachkommastellen kannst Du über die Zusätzlichen Nullen im Nachkommabereich der '60' regulieren.
Für die Abfrage der Summe benutze so etwas wie
als komplette Abfrage.
Das mit dem Hauptformular hatte ich Dir vorher schon geschrieben: Änderungen, die Du im Unterformular machst, kannst Du nur mit vielen Klimmzügen auch im Hauptformular sehen. Viel einfacher ist es, die im Unterformular mit anzuzeigen. Das hat mit der Position des Feldes aber nichts zu tun. Du kannst das Feld also auch einfach über den Formularnavigator ins Unterformular verschieben und dann mit "Stunden_Projekt" verbinden. Nur zeigt das Feld nur dann etwas an, wenn auch im Unterformular bereits die Berechnung erfolgt ist. Bei Neueingaben steht da dann grundsätzlich nichts. Schließlich wird die Berechnung nach der Eingabe gemacht.
Gruß
Robert
Code: Alles auswählen
… DATEDIFF( 'mi', "Beginn", "Ende" )/60.00 AS "Stunden" …
Für die Abfrage der Summe benutze so etwas wie
Code: Alles auswählen
SELECT "ID", "ProjektNr.", "Datum", "Beginn", "Ende", "Tätigkeit", DATEDIFF( 'mi', "Beginn", "Ende" )/60.00 AS "Stunden", (SELECT SUM(DATEDIFF( 'mi', "Beginn", "Ende" )/60.0000) FROM "T-Zeiterfassung" WHERE "ProjektNr." = "a"."ProjektNr.") AS "Stunden_Projekt" FROM "T-Zeiterfassung" AS "a" ORDER BY "ProjektNr." ASC, "Datum" ASC, "Beginn" ASC
Das mit dem Hauptformular hatte ich Dir vorher schon geschrieben: Änderungen, die Du im Unterformular machst, kannst Du nur mit vielen Klimmzügen auch im Hauptformular sehen. Viel einfacher ist es, die im Unterformular mit anzuzeigen. Das hat mit der Position des Feldes aber nichts zu tun. Du kannst das Feld also auch einfach über den Formularnavigator ins Unterformular verschieben und dann mit "Stunden_Projekt" verbinden. Nur zeigt das Feld nur dann etwas an, wenn auch im Unterformular bereits die Berechnung erfolgt ist. Bei Neueingaben steht da dann grundsätzlich nichts. Schließlich wird die Berechnung nach der Eingabe gemacht.
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
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare
Re: Brechnung in Formular durchführen
Hallo Robert,
Danke für deine Hilfe.
Ich denke ich komme jetzt zurecht.
Zumindest mit diesem Problem.
Gruß
Helles58
Danke für deine Hilfe.
Ich denke ich komme jetzt zurecht.
Zumindest mit diesem Problem.
Gruß
Helles58
Re: Brechnung in Formular durchführen
Moin,
ich hätte da noch folgende Idee: Wenn mannimmt, kann man im Formular ein "Zeitfeld" oder ein zur Zeit formatiertes "formatiertes Feld" verwenden, das zeigt dann die Zeit z.B als 7:20 an.
Gruß R
ich hätte da noch folgende Idee: Wenn man
Code: Alles auswählen
DATEDIFF( 'mi', "Beginn", "Ende" )/(60.00000*24) AS "Stunden"
Gruß R
Windows 10: AOO, LO Linux Mint: AOO, LO
An alle, die das LibreOffice-Forum nutzen:
Bitte beteiligen Sie sich mit 7 Euro pro Monat und helfen uns bei unserem Budget für das Jahr 2024.
Einfach per Kreditkarte oder PayPal.
Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet.
❤️ Vielen lieben Dank für Ihre Unterstützung ❤️