Seite 1 von 1

Base Report Builder - Datenfeld per Formel erstellen

Verfasst: Do 16. Okt 2014, 20:52
von merlot
Moin zusammen!
Ich versuche die Differenz zweier Datumsfelder (HH:MM formatiert) als Feld in einem Report einzufügen.
Dazu verwende ich die Funktion DATEDIF([VON];[BIS];HH:MM) - Ergebnis negativ, s. Anhang :(
Wie komme ich zum gewünschten Ergebnis?
Danke für jegliche Hilfe!

Gruß aus dem Norden!

Re: Base Report Builder - Datenfeld per Formel erstellen

Verfasst: Do 16. Okt 2014, 22:10
von RobertG
Hallo Merlot,

Die Funktion "DATEDIF" heißt in Calc "DATUMDIF". Da wird eine Angabe mit "d", "m", "y" erwartet - und ein Datum.
Was sind denn das für Felder, die Du in [VON] und [BIS] stehen hast? Timestampfelder oder Zeitfelder der Datenbank?
Ich würde Dir raten, die Differenz innerhalb der Datenbank in einer Abfrage auszurechnen (dort heißt das dann auch "DATEDIFF" - allerdings mit 2 F). Allerdings musst Du davon ausgehen, dass die Formatierung von Zeiten etwas umständlich ist. Ich habe erst kürzlich daraus lieber in der Abfrage einen Text gemacht als das entsprechend umzuwandeln. das Folgende in einer Abfrage müsste aber gehen:

Code: Alles auswählen

SELECT DATEDIFF('mi',"VON","BIS")/1440.00000 AS "formatierbare_Zeit" FROM "Tabelle"
Durch 1440 musst Du teilen, weil die Zeiten von einem Tag ausgehen. In der Abfrage erscheinen dann Dezimalzahlen mit insgesamt 5 Stellen hinter dem Komma (siehe die Nullen hinter 1440). Lässt Du die Spalte formatieren, so wird daraus eine korrekte Zeit - auch über einen Tag hinaus.

Im Bericht getestet habe ich das jetzt nicht. Schau einfach auch einmal in dem Verzeichnis http://robert.familiegrosskopf.de/lo_hb_dev/ nach. Da ist gerade neu so etwas bei Abfragen hinzugekommen. Ich bastele zwar noch etwas dran, habe das aber jetzt sofort rauf geladen, da das zum Thema passt - auch die Datenbank mit Default_Datum ...

Gruß

Robert

Re: Base Report Builder - Datenfeld per Formel erstellen

Verfasst: Fr 17. Okt 2014, 15:08
von merlot
Hallo Robert!
RobertG hat geschrieben: Was sind denn das für Felder, die Du in [VON] und [BIS] stehen hast? Timestampfelder oder Zeitfelder der Datenbank?
Erst mal ein dickes Dankeschön für die ausführliche Antwort!
Die Felder VON und BIS sind Time-Felder und mit HH:MM formatiert.
Ich lese gerade, dass unter Datenfeld-Typ "Feld oder Formel" entweder ein Feld oder eine _Formel_ einzugeben ist.
Nun ist im engeren Sinn die Funktion DATEDIF ja keine Formel. Vielleicht erwarte ich auch zu viel vom Datenbakmodul.
Andererseits lässt sich der Funktions-Assistent aufrufen, wo eben dies Funktion gewählt werden kann.
Unter Access ist so etwas jedenfalls ein Klacks.

So, dann probiere ich jetzt Deinen Vorschlag...

Gruß
Peter

Re: Base Report Builder - Datenfeld per Formel erstellen

Verfasst: Fr 17. Okt 2014, 20:33
von RobertG
Hallo Peter,

ich hatte in der Formel noch einen Fehler: 'mi' in einfachen Anführungsstrichen ergibt den Text. Ansonsten meint Base, dass es sich um ein Feld handelt.

DATEDIF im Report-Builder ist natürlich eine Formel. Das sind Formeln wie im Tabellenkalkulationsmodul Calc (Formeln siehe: OpenFormula). Der ReportBuilder hat nichts mit der eingebauten Datenbank zu tun. Er liest nur Werte aus der Datenbank. Und die Differenz von Zeiten beherrscht er eben, im Gegensatz zu Calc und in etwas abgespeckter Form auch der eingebauten Datenbank, nicht.

Gruß

Robert