Bericht für einen bestimmten Zeitraum erstellen
Moderator: Moderatoren
Bericht für einen bestimmten Zeitraum erstellen
Hallo,
ich habe eine Tabelle, in der Arbeitszeiten notiert sind, jetzt möchte ich einen Bericht für einen bestimmten Zeitraum definieren.
Bei der Datenbankabfrage habe ich das hinbekommen, aber wo definiere ich das?
(ich bin gerade erst dabei, mit in die Datenbank einzuarbeiten, also Newbie, habe das schon gegoogelt, aber nix gefunden...)
Danke!
Robert170
ich habe eine Tabelle, in der Arbeitszeiten notiert sind, jetzt möchte ich einen Bericht für einen bestimmten Zeitraum definieren.
Bei der Datenbankabfrage habe ich das hinbekommen, aber wo definiere ich das?
(ich bin gerade erst dabei, mit in die Datenbank einzuarbeiten, also Newbie, habe das schon gegoogelt, aber nix gefunden...)
Danke!
Robert170
Re: Bericht für einen bestimmten Zeitraum erstellen
Hi,
anbei ein kleines Beispiel. So mache ich es meist. Du nimmst eine kleine, einzeilige Tabelle Filter hinzu.
Die Felder von und bis kannst Du im Formular DatumsFilter eintragen.
Wenn Du dann filtern drückst, werden sie in die Tabelle Filter geschrieben.
Da die Abfrage qGefilterteDaten nur die Datensätze anzeigt, die zwischen von und bis liegen, und diese Abfrage auch der Dateninhalt des Unterformulares Datenformular ist, siehst du nur noch die gefilterten Datensätze im Formular.
Machst Du die Abfrage qGefilterteDaten zur Grundlage deines Berichtes, kannst du den Zeitraum im Formular DatumsFilter einstellen und dann den Bericht öffnen.
Gruß und viel Erfolg R
anbei ein kleines Beispiel. So mache ich es meist. Du nimmst eine kleine, einzeilige Tabelle Filter hinzu.
Die Felder von und bis kannst Du im Formular DatumsFilter eintragen.
Wenn Du dann filtern drückst, werden sie in die Tabelle Filter geschrieben.
Da die Abfrage qGefilterteDaten nur die Datensätze anzeigt, die zwischen von und bis liegen, und diese Abfrage auch der Dateninhalt des Unterformulares Datenformular ist, siehst du nur noch die gefilterten Datensätze im Formular.
Machst Du die Abfrage qGefilterteDaten zur Grundlage deines Berichtes, kannst du den Zeitraum im Formular DatumsFilter einstellen und dann den Bericht öffnen.
Gruß und viel Erfolg R
- Dateianhänge
-
- Arbeitszeiten_Bericht.odb
- (24.47 KiB) 189-mal heruntergeladen
- miniKasse MMove 1.0.6 Base Videotutorial
- Windows 11: AOO, LO Linux Mint: AOO, LO
Re: Bericht für einen bestimmten Zeitraum erstellen
Ah, super, danke, jetzt verstehe ich die Logik so langsam, man führt _erst_ eine Abfrage aus und nimmt diese dann als Grundlage des Berichts....
Das war mir vorher nicht so klar, ich habe nur immer versucht im Bericht zu filtern....
Jetzt versuche ich gerade noch in den Bericht die Summe der Arbeitszeit, die Summe der Fahrtzeit und die Summe AZ + FZ/2 hinzubekommen, da die Fahrtzeit nur halb gerechnet wird.
Die Abfragen als Summe habe ich sogar hinbekommen
Allerdings frage ich mich
- wie ich die Summe AZ + FZ/2 hinbekomme
- wie ich das unten in den Bericht einbaue, denn der Bericht scheint nur auf eine Abfrage zugreifen zu können
Datei ist im Anhang
Das war mir vorher nicht so klar, ich habe nur immer versucht im Bericht zu filtern....
Jetzt versuche ich gerade noch in den Bericht die Summe der Arbeitszeit, die Summe der Fahrtzeit und die Summe AZ + FZ/2 hinzubekommen, da die Fahrtzeit nur halb gerechnet wird.
Die Abfragen als Summe habe ich sogar hinbekommen

Allerdings frage ich mich
- wie ich die Summe AZ + FZ/2 hinbekomme
- wie ich das unten in den Bericht einbaue, denn der Bericht scheint nur auf eine Abfrage zugreifen zu können
Datei ist im Anhang
- Dateianhänge
-
- Arbeitszeiten_Bericht-v2.odb
- (66.87 KiB) 98-mal heruntergeladen
Re: Bericht für einen bestimmten Zeitraum erstellen
Hi,
eigentlich sollte man die Summen nicht in einer Abfrage berechnen müssen, der Reportbuilder müsste es selbst können, allein ich habe es nicht hinbekommen.
Darum gibt es eine weitere Abfrage, in der ich jeder Zeile die Summen zugefügt habe, die im Bericht dann in den Detailfuß, der erst eingeschaltet werden musste, gelegt sind.
In der Abfrage sind zwei IFNULL Spalten, sonst klappt der Bericht nicht.
Gruß R
eigentlich sollte man die Summen nicht in einer Abfrage berechnen müssen, der Reportbuilder müsste es selbst können, allein ich habe es nicht hinbekommen.
Darum gibt es eine weitere Abfrage, in der ich jeder Zeile die Summen zugefügt habe, die im Bericht dann in den Detailfuß, der erst eingeschaltet werden musste, gelegt sind.
In der Abfrage sind zwei IFNULL Spalten, sonst klappt der Bericht nicht.
Gruß R
- Dateianhänge
-
- Arbeitszeiten_Bericht-v2.odb
- (79.05 KiB) 112-mal heruntergeladen
- miniKasse MMove 1.0.6 Base Videotutorial
- Windows 11: AOO, LO Linux Mint: AOO, LO
Re: Bericht für einen bestimmten Zeitraum erstellen
ah danke, das beruhigt mich, ich hatte es nämlich im Reportbuilder auch versucht.
Es klappt immerhin, dass ich die Summe aus Arbeits- und Fahrtzeit mit Hilfe der Summenfunktion hinbekomme, ich habe es noch etwas angepasst.
Jetzt hänge ich noch an zwei Sachen, die Syntax ist echt immer so ne Sache
- Ich will verschiedene Arten von Berichten machen, je nach Tätigkeitsart, da habe ich jetzt auch ein Feld eingefügt und im Eingabeformular eine Combobox vorgehsehen, die Daten dazu stehen in einer Extra-Tabelle. Ich bekomme es aber nicht genau hin, danach zu filtern... Das sollen dann drei oder vier verschiedene Berichte sein, je nach Tätigkeitsart
- Ähnliches gilt für den Bericht für die Reiseabrechnung und den Steuerberater, da sollen dann natürlich nur die Datensätue auftauchen, bei denen das Feld markiert ist. (Aber natürlich alles im anfangs gewählten Zeitraum).
Ich verzweifel da manchmal echt an der Syntax, ich weiß zwar ziemlich genau, was ich will, aber das Umsetzen ist dann echt so ne Sache..
Datei in der Dropbox, leider etwas größer als die erlaubten 250 kB
https://dl.dropboxusercontent.com/u/281 ... ht-v2a.odb
PS: Wohin darf ich den Bierkasten schicken
Es klappt immerhin, dass ich die Summe aus Arbeits- und Fahrtzeit mit Hilfe der Summenfunktion hinbekomme, ich habe es noch etwas angepasst.
Jetzt hänge ich noch an zwei Sachen, die Syntax ist echt immer so ne Sache
- Ich will verschiedene Arten von Berichten machen, je nach Tätigkeitsart, da habe ich jetzt auch ein Feld eingefügt und im Eingabeformular eine Combobox vorgehsehen, die Daten dazu stehen in einer Extra-Tabelle. Ich bekomme es aber nicht genau hin, danach zu filtern... Das sollen dann drei oder vier verschiedene Berichte sein, je nach Tätigkeitsart
- Ähnliches gilt für den Bericht für die Reiseabrechnung und den Steuerberater, da sollen dann natürlich nur die Datensätue auftauchen, bei denen das Feld markiert ist. (Aber natürlich alles im anfangs gewählten Zeitraum).
Ich verzweifel da manchmal echt an der Syntax, ich weiß zwar ziemlich genau, was ich will, aber das Umsetzen ist dann echt so ne Sache..
Datei in der Dropbox, leider etwas größer als die erlaubten 250 kB
https://dl.dropboxusercontent.com/u/281 ... ht-v2a.odb
PS: Wohin darf ich den Bierkasten schicken

Re: Bericht für einen bestimmten Zeitraum erstellen
Ich bin jetzt schon ein Stück weiter, allerdings werden bei Eingabeformular die Daten aus dem Kombo-Feld "Verfpflegungspauschale" nicht in die Tabelle übernommen, ich habe einfach das "Art"-Feld übernommen und die SQL-Abfrage abgeändert, angezeigt wird es.
Bei der Summenfunktion im Abrechnungsbericht ging das mit der Summe nur mit der SUMA-Funktion, vielleicht, weil es Währungen sind, davon hatten wir es ja gestern, dass die Summenfunktion da scheinbar nicht richtig funktioniert...
Bei der Summenfunktion im Abrechnungsbericht ging das mit der Summe nur mit der SUMA-Funktion, vielleicht, weil es Währungen sind, davon hatten wir es ja gestern, dass die Summenfunktion da scheinbar nicht richtig funktioniert...
- Dateianhänge
-
- Arbeitszeiten_Bericht-v2b.odb
- (124.17 KiB) 110-mal heruntergeladen
Re: Bericht für einen bestimmten Zeitraum erstellen
Hi,
da hast du bei der Übernahme des Art-Feldes vergessen das Datenfeld auf Verpflegungspauschale umzustellen, momentan überschreibst Du mit dem Listenfeld gerade die Tätigkeitsart. Siehe Bild. Gruß R
da hast du bei der Übernahme des Art-Feldes vergessen das Datenfeld auf Verpflegungspauschale umzustellen, momentan überschreibst Du mit dem Listenfeld gerade die Tätigkeitsart. Siehe Bild. Gruß R
- miniKasse MMove 1.0.6 Base Videotutorial
- Windows 11: AOO, LO Linux Mint: AOO, LO
Re: Bericht für einen bestimmten Zeitraum erstellen
Naja,
trage doch die tatsächliche Pauschale ein, indem du den SQL-Befehl des Listenfeldes vereinfachst und das gebundene Feld auf 0 setzt.
EDIT: Das klappt nicht, wieso auch immer. Ist mir ein Rätsel.
EDIT 2 Mit diesem SQL-Befehl geht es:
EDIT 3: Komisch, ein Listenfeld innerhalb eines Tabellenkontrollfeldes, oder eines, was Text schreibt, benötigt nur eine Spalte im SQL-Befehl, so wie ich es oben geschrieben hatte, mit dem Schreiben von Dezimalzahlen sieht es komischerweise anders aus. EDIT 4: Nur mit AOO geht es nicht mit einer Spalte, siehe unten ...
Gruß R
trage doch die tatsächliche Pauschale ein, indem du den SQL-Befehl des Listenfeldes vereinfachst
Code: Alles auswählen
SELECT "Verpflegungspauschale" FROM "Verpflegungspauschalen"
EDIT: Das klappt nicht, wieso auch immer. Ist mir ein Rätsel.
EDIT 2 Mit diesem SQL-Befehl geht es:
Code: Alles auswählen
SELECT "Verpflegungspauschale", "Verpflegungspauschale "FROM "Verpflegungspauschalen"
Gruß R
Zuletzt geändert von F3K Total am So, 29.12.2013 22:39, insgesamt 1-mal geändert.
- miniKasse MMove 1.0.6 Base Videotutorial
- Windows 11: AOO, LO Linux Mint: AOO, LO
Re: Bericht für einen bestimmten Zeitraum erstellen
ja komisch, ich hatte es nämlich auch erst mal so versucht wie du und eine Fehlermeldung erhalten.
Dummerweise liefert mir Libreoffice auf den zweiten SQL-Befehl auch eine Fehlermeldung:
EDIT: Sorry, der erste Befehl funktioniert bei mir doch, hatte einen Kopierfehler, aber der zweite nicht (LibreOffice 4.1.4.2)
Dummerweise liefert mir Libreoffice auf den zweiten SQL-Befehl auch eine Fehlermeldung:
EDIT: Sorry, der erste Befehl funktioniert bei mir doch, hatte einen Kopierfehler, aber der zweite nicht (LibreOffice 4.1.4.2)
- Dateianhänge
-
- Bildschirmfoto 2013-12-29 um 22.24.26.png (39.11 KiB) 4747 mal betrachtet
Re: Bericht für einen bestimmten Zeitraum erstellen
Jetzt werd ich noch ganz verrückt, mit LO geht's, AOO geht nicht, scheint ein Bug zu sein.
EDIT Und jetzt der Oberknaller: Eine mit LO geändertes Listenfeld funktioniert dann auch wieder in AOO mit einer Spalte.
Gruß R
EDIT Und jetzt der Oberknaller: Eine mit LO geändertes Listenfeld funktioniert dann auch wieder in AOO mit einer Spalte.
Gruß R
- miniKasse MMove 1.0.6 Base Videotutorial
- Windows 11: AOO, LO Linux Mint: AOO, LO
Re: Bericht für einen bestimmten Zeitraum erstellen
Willkommen im Club 
Ich habe jetzt im Bericht "Abrechnung" noch zwei Sachen, die ich nicht kapiere:
1. Die Zeilensumme wird nur in der ersten Zeile gebildet??? Warum nicht in den weiteren Zeilen
2. Die Spaltensumme wird zwar bei der Verpflegungspauschale gebildet, bei der Übernachtungspauschale und beim Parken aber nicht, die Felder sind aber exakt gleich, außer dass halt der Bezug zum Datenfeld anders ist??

Ich habe jetzt im Bericht "Abrechnung" noch zwei Sachen, die ich nicht kapiere:
1. Die Zeilensumme wird nur in der ersten Zeile gebildet??? Warum nicht in den weiteren Zeilen
2. Die Spaltensumme wird zwar bei der Verpflegungspauschale gebildet, bei der Übernachtungspauschale und beim Parken aber nicht, die Felder sind aber exakt gleich, außer dass halt der Bezug zum Datenfeld anders ist??
- Dateianhänge
-
- Arbeitszeiten_Bericht-v2b.odb
- (134.87 KiB) 107-mal heruntergeladen
Re: Bericht für einen bestimmten Zeitraum erstellen
Tja,
1.) Darum verwende ich möglichst wenige Berichtsfunktionen, rechne stattdessen in der Abfrage, siehe Anhang.
2.) Es gibt einen Unterschied zwischen der Zahl 0.0 und einem leeren Datenbankfeld (is null).
Während die Berechnung von 10 * 0 = 0 ist, ergibt die Berechnung von 10 * nix (is Null) eben nix. Oder anders ausgedrückt, mit einem leeren Feld kann man nicht rechnen. Darum gibt es die SQL-Funktion IFNULL oder auch COALESCE, die, wenn ein Feld leer ist, einen Alternativwert erzeugen, der kann z.B. als 0.0 gesetzt werden. Mit leeren Feldern muss man wirklich aufpassen.
Gruß R
1.) Darum verwende ich möglichst wenige Berichtsfunktionen, rechne stattdessen in der Abfrage, siehe Anhang.
2.) Es gibt einen Unterschied zwischen der Zahl 0.0 und einem leeren Datenbankfeld (is null).
Während die Berechnung von 10 * 0 = 0 ist, ergibt die Berechnung von 10 * nix (is Null) eben nix. Oder anders ausgedrückt, mit einem leeren Feld kann man nicht rechnen. Darum gibt es die SQL-Funktion IFNULL oder auch COALESCE, die, wenn ein Feld leer ist, einen Alternativwert erzeugen, der kann z.B. als 0.0 gesetzt werden. Mit leeren Feldern muss man wirklich aufpassen.
Gruß R
- Dateianhänge
-
- Arbeitszeiten_Bericht-v2c.odb
- (168.25 KiB) 110-mal heruntergeladen
- miniKasse MMove 1.0.6 Base Videotutorial
- Windows 11: AOO, LO Linux Mint: AOO, LO
Re: Bericht für einen bestimmten Zeitraum erstellen
ok, wieder nen Schritt weiter und um eine Erkenntnis reicher. Jetzt hängts daran, dass ich die Reiselänge berechnen will, als Differenz von Reiseende – Reisebeginn.
Geht aber wieder mal nicht so einfach: Die Funktion Datedif liefert in ihrer höchsten Auflösung Tage, ich brauche aber Stunden.. Wenn ich ein neues Feld definiere bleibt das mal wieder leer, siehe Anhang, ich habe es auch mit verschiedenen Formaten versucht.
Vermutlich sollte man es auch in die Abfrage einbauen, siehe deinen letzen Post, aber dann habe ich vermutlich auch wieder das Formatproblem...
Geht aber wieder mal nicht so einfach: Die Funktion Datedif liefert in ihrer höchsten Auflösung Tage, ich brauche aber Stunden.. Wenn ich ein neues Feld definiere bleibt das mal wieder leer, siehe Anhang, ich habe es auch mit verschiedenen Formaten versucht.
Vermutlich sollte man es auch in die Abfrage einbauen, siehe deinen letzen Post, aber dann habe ich vermutlich auch wieder das Formatproblem...
- Dateianhänge
-
- Arbeitszeiten_Bericht-v2d.odb
- (190.4 KiB) 108-mal heruntergeladen
Re: Bericht für einen bestimmten Zeitraum erstellen
jut,
Datediff kann viel mehr. z.B. 'mi'-> Minuten
Mit errechnest du die Zeit in "Dezimaltagen". Wenn Du dann das anzeigende Kontrollfeld mit formatierst, ist alles in Butter.
Gruß R
EDIT: Nicht das IFNULL vergessen
Datediff kann viel mehr. z.B. 'mi'-> Minuten
Mit
Code: Alles auswählen
Datediff('mi',"Reisebeginn", "Reiseende")/1440.0000000 as "Reisedauer"
Code: Alles auswählen
[HH]:MM
Gruß R
EDIT: Nicht das IFNULL vergessen
Code: Alles auswählen
IFNULL((DATEDIFF( 'mi', "Reisebeginn", "Reiseende" ) / 1440.0000000),0) AS "Reisedauer"
- miniKasse MMove 1.0.6 Base Videotutorial
- Windows 11: AOO, LO Linux Mint: AOO, LO
Re: Bericht für einen bestimmten Zeitraum erstellen
ok, so langsam verstehe ich die Logik, hat gut funktioniert, thx.
So langsam komme ich zur letzten Frage, damit ich das Thema noch in diesem Jahr abschließen kann...
Die eben berechnete Reisedauer sollte schon im Eingabeformular angezeigt werden, damit sie entscheiden kann, welche Verpflegungspauschale gewählt werden sollte (sie will das mit den Pauschalen mit der Hand machen, daher werden die nicht automatisch berechnet).
Ich habe es gerade versucht, allerdings sollte es ja direkt nach Verlassen des Reiseende-Feldes berechnet und angezeigt werden, da hänge ich im Moment...
So langsam komme ich zur letzten Frage, damit ich das Thema noch in diesem Jahr abschließen kann...
Die eben berechnete Reisedauer sollte schon im Eingabeformular angezeigt werden, damit sie entscheiden kann, welche Verpflegungspauschale gewählt werden sollte (sie will das mit den Pauschalen mit der Hand machen, daher werden die nicht automatisch berechnet).
Ich habe es gerade versucht, allerdings sollte es ja direkt nach Verlassen des Reiseende-Feldes berechnet und angezeigt werden, da hänge ich im Moment...