Zeitberechnung / SunReportBuilder 1.1.0
Moderator: Moderatoren
Zeitberechnung / SunReportBuilder 1.1.0
Hallo,
in einem SunReportBuilder-Bericht habe ich ein Zeitfeld mit einer einfachen Funktion: [Uhrzeit-Beginn]+[Dauer1] (sind 2 Datenbankfelder)
Das funktioniert eingentlich auch ganz gut. Seit der Umstellung auf OpenOffice 3.1 und damit auch auf den SunReportBuilder 1.1.0 zeigt dieses Feld im Ergebnis nur noch 00:00 an.
Hat sich die Syntax zur Berechnung geändert, oder hat jemand einen anderen Tip?
in einem SunReportBuilder-Bericht habe ich ein Zeitfeld mit einer einfachen Funktion: [Uhrzeit-Beginn]+[Dauer1] (sind 2 Datenbankfelder)
Das funktioniert eingentlich auch ganz gut. Seit der Umstellung auf OpenOffice 3.1 und damit auch auf den SunReportBuilder 1.1.0 zeigt dieses Feld im Ergebnis nur noch 00:00 an.
Hat sich die Syntax zur Berechnung geändert, oder hat jemand einen anderen Tip?
Zuletzt geändert von geimist am Mi, 27.05.2009 11:28, insgesamt 2-mal geändert.
Gruß
Stephan
LibreOffice 5.3 - MAC OS/X 10.11
Stephan
LibreOffice 5.3 - MAC OS/X 10.11
Re: Zeitberechnung / SunReportBuilder 1.1.0
Hallo Stephan,
mir fällt auf, daß Du [Uhrzeit-Beginn]+[Dauer1] schreibst.
Wenn Uhrzeit oder Beginn Datenbankfelder sind, müsstest Du das anders codieren.
Datenbankfelder müssen in eckige Klammern gesetzt werden (jedes Feld), wenn sie in einer Formel eingesetzt werden: (([Uhrzeit]-[Beginn])+[Dauer1])
Möglicherweise hat das die Version 1.06 toleriert. Bis jetzt konnte ich jedenfalls keinen Fehler in 1.10 feststellen, habe aber erst gestern vorsichtshalber nur auf meinem Laptop umgestellt. Ich glaube aber, daß die Reports schneller laufen (subjectiver Eindruck).
Gruss eBayer
mir fällt auf, daß Du [Uhrzeit-Beginn]+[Dauer1] schreibst.
Wenn Uhrzeit oder Beginn Datenbankfelder sind, müsstest Du das anders codieren.
Datenbankfelder müssen in eckige Klammern gesetzt werden (jedes Feld), wenn sie in einer Formel eingesetzt werden: (([Uhrzeit]-[Beginn])+[Dauer1])
Möglicherweise hat das die Version 1.06 toleriert. Bis jetzt konnte ich jedenfalls keinen Fehler in 1.10 feststellen, habe aber erst gestern vorsichtshalber nur auf meinem Laptop umgestellt. Ich glaube aber, daß die Reports schneller laufen (subjectiver Eindruck).
Gruss eBayer
Intel(R) Core(TM)2 Quad CPU Q8200 @ 2.33GHz mit 4 GB Memory (3,2 GB aktiv)
Vista Home Premium 32 Bit
openOffice 3.1.1 mit Sun Report Builder 1.1.0 und MySql 5.1
Hauptinteresse ooBase seit 12.2008
Vista Home Premium 32 Bit
openOffice 3.1.1 mit Sun Report Builder 1.1.0 und MySql 5.1
Hauptinteresse ooBase seit 12.2008
Re: Zeitberechnung / SunReportBuilder 1.1.0
Es ist eine einfache Addition aus dem Feld "Uhrzeit-Beginn" und "Dauer1" (dem Sinn nach: 12:00 Uhr + 45 min. soll die Schlußzeit von 12:45 Uhr ausgeben)
Ich habe auch nochmal wie in deinem Beispiel alles in eine gesamte Klammer gesetzt: ([Uhrzeit-Beginn]+[Dauer1]), aber so erfolgt gar keine Ausgabe.
Gibt es noch eine andere Idee?
Ich habe auch nochmal wie in deinem Beispiel alles in eine gesamte Klammer gesetzt: ([Uhrzeit-Beginn]+[Dauer1]), aber so erfolgt gar keine Ausgabe.
Gibt es noch eine andere Idee?
Gruß
Stephan
LibreOffice 5.3 - MAC OS/X 10.11
Stephan
LibreOffice 5.3 - MAC OS/X 10.11
Re: Zeitberechnung / SunReportBuilder 1.1.0
Ich hatte vorgeschlagen, jedes in einer Formel verwendete Feld in eckige Klammern zu setzen, was auch irgendwo dokumentiert ist.
Ich verwende beispielsweise zur Darstellung von Nachname + Vorname die folgende Syntax: [Nachname] & ", " & [Vorname]
Deshalb würde ich sowohl Uhrzeit, wie auch Beginn in eckige Klammern setzen, wenn es sich dabei um Datenbankfelder handelt.
so: [Uhrzeit]-[Beginn]
Einen Versuch sollte es wert sein.
Gruß eBayer
Ich verwende beispielsweise zur Darstellung von Nachname + Vorname die folgende Syntax: [Nachname] & ", " & [Vorname]
Deshalb würde ich sowohl Uhrzeit, wie auch Beginn in eckige Klammern setzen, wenn es sich dabei um Datenbankfelder handelt.
so: [Uhrzeit]-[Beginn]
Einen Versuch sollte es wert sein.
Gruß eBayer
Intel(R) Core(TM)2 Quad CPU Q8200 @ 2.33GHz mit 4 GB Memory (3,2 GB aktiv)
Vista Home Premium 32 Bit
openOffice 3.1.1 mit Sun Report Builder 1.1.0 und MySql 5.1
Hauptinteresse ooBase seit 12.2008
Vista Home Premium 32 Bit
openOffice 3.1.1 mit Sun Report Builder 1.1.0 und MySql 5.1
Hauptinteresse ooBase seit 12.2008
Re: Zeitberechnung / SunReportBuilder 1.1.0
Der Bindestrich zwischen Uhrzeit und Beginn ist wirklich etwas iritierend, aber so ist nun einmal der Feldname in der Datenbank: "Uhrzeit-Beginn". Den soll ich doch nicht wirklich trennen, oder? In der Formel kommen nur 2 Felder vor: 1. Feld: "Uhrzeit-Beginn" 2. Feld: "Dauer1"
Gruß
Stephan
LibreOffice 5.3 - MAC OS/X 10.11
Stephan
LibreOffice 5.3 - MAC OS/X 10.11
Re: Zeitberechnung / SunReportBuilder 1.1.0
OK, das konnte ich wirklich so nicht erkennen.
Aber der Bindestrich im Feldnamen ist ein potenzieller Problemfall. Wenn Du so nicht weiterkommst, würde ich vorschlagen, den Feldnamen zumindest testweise mal zu ändern (Bindestrich in Unterstrich ändern) ...... nicht nur in der Tabelle, sondern natürlich auch im Report
Gruss eBayer
Aber der Bindestrich im Feldnamen ist ein potenzieller Problemfall. Wenn Du so nicht weiterkommst, würde ich vorschlagen, den Feldnamen zumindest testweise mal zu ändern (Bindestrich in Unterstrich ändern) ...... nicht nur in der Tabelle, sondern natürlich auch im Report

Gruss eBayer
Intel(R) Core(TM)2 Quad CPU Q8200 @ 2.33GHz mit 4 GB Memory (3,2 GB aktiv)
Vista Home Premium 32 Bit
openOffice 3.1.1 mit Sun Report Builder 1.1.0 und MySql 5.1
Hauptinteresse ooBase seit 12.2008
Vista Home Premium 32 Bit
openOffice 3.1.1 mit Sun Report Builder 1.1.0 und MySql 5.1
Hauptinteresse ooBase seit 12.2008
Re: Zeitberechnung / SunReportBuilder 1.1.0
Deinem Vorschlag entsprechend habe ich einmal den Ausgabefeldnamen in der zugrundeliegenden Abfrage entsprechende Aliase vergeben. Das Ergebnis bleibt allerdings unverändert.
Anbei habe ich mal schnell ein Beispieldatenbank zusammengestellt. Ich habe keinerlei Zeitberechnungen hinbekommen.
Anbei habe ich mal schnell ein Beispieldatenbank zusammengestellt. Ich habe keinerlei Zeitberechnungen hinbekommen.

- Dateianhänge
-
- TEST_Zeitberechnung.odb
- Beispieldatenbank für Zeitberechnungen mit SunReportBuilder 1.1.0
- (14.14 KiB) 99-mal heruntergeladen
Gruß
Stephan
LibreOffice 5.3 - MAC OS/X 10.11
Stephan
LibreOffice 5.3 - MAC OS/X 10.11
Re: Zeitberechnung / SunReportBuilder 1.1.0 UNGELÖST
Bisher habe ich die Formeln immer von Hand eingegeben. Ab Version 1.1.0 des Reportbuilders steht ja nun auch der Formeleditor zur Verfügung (Release-Notes: 1.1.0: formula editor and support of the ODF formula syntax). Damit habe ich es auf folgende Weise versucht: SUM([Uhrezeit];[Dauer]) - leider ohne Erfolg
Kennt sich jemand mit dem Formeleditor aus? Welche Funktionen muss ich für eine Zeitberechnung verwenden?

Kennt sich jemand mit dem Formeleditor aus? Welche Funktionen muss ich für eine Zeitberechnung verwenden?
Gruß
Stephan
LibreOffice 5.3 - MAC OS/X 10.11
Stephan
LibreOffice 5.3 - MAC OS/X 10.11
Re: Zeitberechnung / SunReportBuilder 1.1.0 UNGELÖST
Hallo Stephan,
schau doch mal hier nach..... (da geht es um SRB und Formel Editor)
http://www.mail-archive.com/dev@dba.ope ... 01928.html
Alternative: die Zeit selbst berechnen und das Ergebnis dem Report zur Verfügung stellen.
Gruß eBayer
schau doch mal hier nach..... (da geht es um SRB und Formel Editor)
http://www.mail-archive.com/dev@dba.ope ... 01928.html
Alternative: die Zeit selbst berechnen und das Ergebnis dem Report zur Verfügung stellen.
Gruß eBayer
Intel(R) Core(TM)2 Quad CPU Q8200 @ 2.33GHz mit 4 GB Memory (3,2 GB aktiv)
Vista Home Premium 32 Bit
openOffice 3.1.1 mit Sun Report Builder 1.1.0 und MySql 5.1
Hauptinteresse ooBase seit 12.2008
Vista Home Premium 32 Bit
openOffice 3.1.1 mit Sun Report Builder 1.1.0 und MySql 5.1
Hauptinteresse ooBase seit 12.2008
Re: Zeitberechnung / SunReportBuilder 1.1.0 UNGELÖST
Hallo eBayer,
Danke für den Tipp! Auf die einfachsten Sachen kommt man manchmal nicht
Aber so einfach, wie gedacht, ging es dann noch wieder nicht.
Fehler: SQL-Status: 37000
Fehler-Code: -16
Wrong data type: java.lang.NumberFormatException in statement [SELECT "Uhrezeit" + "Dauer" FROM "Tabelle1" AS "Tabelle1"]
Gibt es einen Tipp vom Fachmann?
Danke
Danke für den Tipp! Auf die einfachsten Sachen kommt man manchmal nicht

Aber so einfach, wie gedacht, ging es dann noch wieder nicht.
Fehler: SQL-Status: 37000
Fehler-Code: -16
Wrong data type: java.lang.NumberFormatException in statement [SELECT "Uhrezeit" + "Dauer" FROM "Tabelle1" AS "Tabelle1"]
Gibt es einen Tipp vom Fachmann?
Danke
- Dateianhänge
-
- TEST_Zeitberechnung.odb
- mit Abfrage zum berechnen der Zeit
- (14.18 KiB) 64-mal heruntergeladen
Gruß
Stephan
LibreOffice 5.3 - MAC OS/X 10.11
Stephan
LibreOffice 5.3 - MAC OS/X 10.11
Re: Zeitberechnung / SunReportBuilder 1.1.0 UNGELÖST
Hallo geimist,

Im Ernst. HSQLDB unterstützt derzeit keine Berechnung von Zeiten, wie man es von anderen DB Systemen gewohnt ist. Insofern sollte es eine Überlegung wert sein.
Trotzdem habe ich einmal versucht, das Problem mit der Base internen DB zu lösen.
("SQL direkt ausführen" muss aktiviert sein)
mit folgendem Ergebnis:
Gruß Barlee
Benutze für solche Berechnungen nicht HSQLDB, sondern eine richtige DB.Gibt es einen Tipp...

Im Ernst. HSQLDB unterstützt derzeit keine Berechnung von Zeiten, wie man es von anderen DB Systemen gewohnt ist. Insofern sollte es eine Überlegung wert sein.
Trotzdem habe ich einmal versucht, das Problem mit der Base internen DB zu lösen.
("SQL direkt ausführen" muss aktiviert sein)
Code: Alles auswählen
SELECT
"Start", "Dauer", "STD_NEU","MIN_NEU","SEK_NEU",
CAST("STD_NEU"||':'||"MIN_NEU"||':'||"SEK_NEU" AS TIME)as "ZEIT_NEU"
FROM
(
SELECT
"Start", "Dauer", "std","min","sek",
(CASE
WHEN "sek" >= 60 THEN
CASE
WHEN "min"+1 >=60 THEN
CASE
WHEN "std"+1 >=24 THEN "std"+1-24
ELSE "std"+1
END
ELSE --min <60
CASE
WHEN "std" >=24 THEN "std"-24
ELSE "std"
END
END
ELSE --sekunden <60
CASE
WHEN "min" >=60 THEN
CASE
WHEN "std"+1 >=24 THEN "std"+1-24
ELSE "std"+1
END
ELSE --min <60
CASE
WHEN "std" >=24 THEN "std"-24
ELSE "std"
END
END
END) as "STD_NEU",
(
CASE
WHEN "sek" >= 60 THEN
CASE
WHEN "min"+1 >=60 THEN "min"+1-60
ELSE "min"+1
END
ELSE --sek <60
CASE
WHEN "min" >=60 THEN "min"-60
ELSE "min"
END
END
) as "MIN_NEU",
(
CASE
WHEN "sek" >= 60
THEN "sek"-60
ELSE "sek"
END
)
as "SEK_NEU"
FROM
(
SELECT
"Uhrezeit" as "Start",
"Dauer" as "Dauer",
EXTRACT(HOUR from "Uhrezeit")+EXTRACT(HOUR from "Dauer") as "std",
EXTRACT(MINUTE from "Uhrezeit")+EXTRACT(MINUTE from "Dauer") as "min",
EXTRACT(SECOND from "Uhrezeit")+EXTRACT(SECOND from "Dauer") as "sek"
from "Tabelle1"
)
as "Zeit"
)
as "Zeit1"
Re: Zeitberechnung / SunReportBuilder 1.1.0 UNGELÖST
Hallo Barlee,
erst einmal vielen Dank für deine Mühe. Ich werde noch ein wenig Zeit benötigen, bis ich deinen Vorschlag in meine Datenbank implementieren kann. Ich melde mich dann noch mal. Danke.
erst einmal vielen Dank für deine Mühe. Ich werde noch ein wenig Zeit benötigen, bis ich deinen Vorschlag in meine Datenbank implementieren kann. Ich melde mich dann noch mal. Danke.
Gruß
Stephan
LibreOffice 5.3 - MAC OS/X 10.11
Stephan
LibreOffice 5.3 - MAC OS/X 10.11