Seite 1 von 2

Bericht: Funktion Minute funktioniert nicht

Verfasst: Mi 27. Jan 2016, 22:18
von mhonline
moin

In einem Bericht:
Feld enthält eine Zeitangabe: 21:30:00

a)
die (etwas perverse) Kontruktion >>right("0"&HOUR([ZEITFELD]);2)<<
funktioniert: Ergebnis: 21
b)
die Kontruktion >>right("0"&Minute([ZEITFELD]);2)<<
funktioniert nicht : Soll-Ergebnis: 30

Was auch nicht funktioniert:
right("0"&Hour([zeitfeld]-(01:00:00));2)
Soll-Ergebnis: 20:30
funktioniert ebenfalls nicht

Irgendwelche Ideen?

m,

Re: Bericht: Funktion Minute funktioniert nicht

Verfasst: Do 28. Jan 2016, 13:23
von Pit Zyclade
Erstens solltest Du Deine LO-Version angeben...

Meine Idee (als Laie) ist die, den "Bericht" zu mit dem eingebauten Reportbuilder so zu bearbeiten, dass Du auf die Formatierung des Feldes "Zeitfeld" zugreifst. Dort kannst Du mit dem Format HH die Stunden, mit MM die Minuten usw. anzeigen lassen, so dass Du gar keine Formelkonstruktionen brauchst. Das funktioniert tadellos.

Re: Bericht: Funktion Minute funktioniert nicht

Verfasst: Fr 29. Jan 2016, 20:59
von mhonline
Der Vorschlag ist das übliche Verfahren, und wurde natürlich ausprobiert,
führt aber wie schon im OP angemerkt zu keinem sinnvollen Ergebnis.
die Ausgabe mit der benutzerdefinierten Formatierung HHMMSS ist 23:45:00
Ziel der Aktion: einen Zeitwert tatsächlich in der Form HHMMSS = 234500 auszugeben.
Weitere Vorschläge?

m.


P.S.:
5.0.2 portable auf W7HP/32 - Methode wi im OP beschrieben nicht getestet mit 5.0.3 und 5.0.4, da diese Versionen insgesamt zu buggy sind.

Re: Bericht: Funktion Minute funktioniert nicht

Verfasst: Fr 29. Jan 2016, 21:51
von F3K Total
mhonline hat geschrieben:Soll-Ergebnis: 20:30
mhonline hat geschrieben:Ziel der Aktion: einen Zeitwert tatsächlich in der Form HHMMSS = 234500 auszugeben.
Ja, was denn nun???
Ich habe in der vermeintlich "zu Buggy Version" 5.0.4 überhaupt keine Probleme, alle deine Formatwünsche hinzubekommen, siehe Beispieldatei und Bild anbei.
Zeit.PNG
Zeit.PNG (4.07 KiB) 4191 mal betrachtet
Gruß R

Re: Bericht: Funktion Minute funktioniert nicht

Verfasst: Fr 29. Jan 2016, 22:02
von mhonline
Vielleicht einfach noch mal lesen.
m.

Re: Bericht: Funktion Minute funktioniert nicht

Verfasst: Sa 30. Jan 2016, 00:30
von F3K Total
Minute() geht auch:
Zeit2.PNG
Zeit2.PNG (70.84 KiB) 4170 mal betrachtet
Vielleicht einfach mal richtig machen.
EDIT: Beispieldatei, da bisher noch nicht heruntergeladen, ausgetauscht.

Re: Bericht: Funktion Minute funktioniert nicht

Verfasst: Sa 30. Jan 2016, 12:26
von RobertG
Hallo *,

ich habe die Datei von F3K Total einmal heruntergeladen. Funktioniert doch einwandfrei - auch mit der gewünschten Version LO 5.0.2, zumindest unter OpenSUSE 42.1 64bit rpm Linux.
Was vielleicht noch erwünscht war, wenn ich die Konstruktion zu aus der Threaderöffnung sehe:
Bei den Minutenangaben würden Zeiten wie 22:05:00 eben eine '5' statt einer '05' darstellen. Wenn das geändert werden soll, dann muss die Funktion für die Minute schlicht etwas angepasst werden:

Code: Alles auswählen

RIGHT("0"&MINUTE([Zeit]);2)
Den Ansatz hattest Du, mhonline, doch auch schon. Funktioniert in der Beispieldatei von F3K einwandfrei. Was an so einer Konstruktion "pervers" sein soll durchschaue ich nicht.

Bei der Arbeit mit Formeln innerhalb des Berichtsmoduls solltest Du vorsichtig sein. Leider neigen manche LO-Versionen hier schnell zu abstürzen. Ist aber erst einmal ein Bericht komplett erstellt, so tauchen läuft dieser auch stabil - abgesehen von solchen Bugs wie zur Zeit der fehlenden Möglichkeit, einen Bericht mit Diagrammen auszugeben.
Ich neige eher dazu, alle Berechnungen Vorformatierungen über Ansichten innerhalb der Datenbank zu erstellen und dem Report-Builder seine originäre Aufgabe machen zu lassen: Die Datendarstellung sauber zu gestalten.

Gruß

Robert

Re: Bericht: Funktion Minute funktioniert nicht

Verfasst: Sa 30. Jan 2016, 15:18
von Pit Zyclade
Jetzt muß ich noch mal meinen Senf dazugeben. Ich habe eine Testdatenbank ohne Abfragen, aber mit einem Bericht mit dem "Zeitfeld" in mehrfacher Formatierung erzeugt:
1. Der Formatcode allein MM und auch nur M oder kleingeschrieben mm funktioniert nicht (!), HH oder SS aber schon
2. eine Formel MINUTE([Zeitfeld]) oder SECOND([Zeitfeld]) sogar mit Formatcode HH:MM:SS bringt nur Nullwerte.

Die experimentelle Datei befindet sich im Anhang.

Wenn man das Funktionsergebnis als Text behandelt und formatiert, dann funktionieren diese (im Anhang)

Re: Bericht: Funktion Minute funktioniert nicht

Verfasst: Sa 30. Jan 2016, 15:57
von F3K Total
Hallo Pit,
zu 1.) Sieht so aus als ob LO aus MM den Monat macht. Und der ist nunmal am 30.12.1899, Beginn der Zeitrechnung in LO, der Dezember.
zu 2.) Die Formeln sind i.O., stelle mal das Format auf Zahl 00 oder Text.
Allerdings scheint in der Funktion SECOND() ein wirklicher BUG zu liegen, denn bei mir wird in mehreren Datensätzen eine Sekunde unterschlagen.
Gruß R

Re: Bericht: Funktion Minute funktioniert nicht

Verfasst: Sa 30. Jan 2016, 16:58
von RobertG
Hallo Pit,
Pit Zyclade hat geschrieben: 1. Der Formatcode allein MM und auch nur M oder kleingeschrieben mm funktioniert nicht (!), HH oder SS aber schon
Da scheint die Formatierung in der Tat Probleme zu haben. Nach Formulierung in der Hilfe müsste mit mm der konkrete Wert kommen. Das wird leider zu MM und damit zum Monatswert umgewandelt.
Pit Zyclade hat geschrieben: 2. eine Formel MINUTE([Zeitfeld]) oder SECOND([Zeitfeld]) sogar mit Formatcode HH:MM:SS bringt nur Nullwerte.
Das Ergebnis ist keine Zeit, sondern lediglich eine Zahl. Lässt Du Dir das als Zahl anzeigen, so werden 0-Werte nicht angezeigt. Bei der Formatierung als Text jedoch schon. Fehlerhaft ist dann wieder die Darstellung der Sekunden, wie F3K bereits angemerkt hat.
Dazu habe ich im aktuellen Handbuch ein Kapitel "Rechenfehler in Abfragen" stehen, die die Gründe dafür aufführen, dass plötzlich Minuten oder Sekunden verschwinden. Hier liegt ein Rundungsproblem vor, das vermutlich mit dem von der HSQLDB übermittelten Wert zusammen hängt. Ich werde das noch einmal genauer testen.
----
Nachtrag: Die Wiedergabe der Sekunden erfolgt in einer Abfrage einwandfrei. Lasse ich im ReportBuilder allerdings in einer Funktion den TIMEVALUE auslesen, so stimmt das Ergebnis schon nicht. Da scheint bei den Funktionen im Bereich der Zeiten ein Problem zu bestehen.

Gruß

Robert