🙏 Helfen Sie jetzt mit, unser LibreOffice Forum zu erhalten! 🙏
Mit Ihrer Spende sichern Sie den Fortbestand, den Ausbau und die laufenden Kosten dieses Forums. 🌱

🍀 Jeder Beitrag zählt – vielen Dank für Ihre Unterstützung!🍀

❤️ DANKE >> << DANKE ❤️

>> Dank Ihrer Unterstützung -> Keine Werbung für alle registrierten LibreOffice-Forum User! <<
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗

Bericht: Funktion Minute funktioniert nicht

Base ermöglicht es Ihnen, Ihre Daten in einer Datenbank direkt mit LibreOffice zu bearbeiten.
mhonline
Beiträge: 24
Registriert: Mi 6. Apr 2011, 18:42

Re: Bericht: Funktion Minute funktioniert nicht

Beitrag von mhonline » So 31. Jan 2016, 00:27

Moin

sehr schön, daß das jetzt offensichtlich doch ein Thema geworden ist.
Meine "strange observations":
-- der von Robert mit der Testdatenbank mitgelieferte Bericht funktioniert, die gleiche Geschicht in meinem Bericht eingetragen (Format HH) funktioniert nicht = keine Ausgabe/blank (LO 5.0.2)
--darauf, daß das Format MM als Monat interpreiert wird, wäre ich nicht gekommen, aber es stimmt offensichtlich - Respekt -
-- Das erklärte Ziel ist, einen "timestamp" der Form 234500 zu konstruieren, wie er in VCARD vorkommt. Wenn ich dieses in meinem
Bericht tue (Format HHMMSS), gibt es keine Ausgabe, wenn ich dieses in Roberts bericht tue, funktionioert die Ausgabe. Merkwürdig.
-- wie erwähnt, funktioniert die Teil-Zeit-Ausgabe Minuten bei mir nicht. bei Robert aber schon. Allerdings ist, um die führende Null zu erzeugen,
tatsächlich diese verrückte Kontruktion "right("0"&right(([Zeitfeld]);2)" notwendig. Die Formatierung (@ oder 11) ist egal.
-- der Rundungsfehler ist ärgerlich, weswegen ich diese aktuell immer mit &"00" angebe.

Warum auch immer es so ist, ich werde Roberts Bericht jetzt als Vorlage nehmen und meine Felder da einbauen, mal sehen was passiert.

m.

F3K Total
* LO-Experte *
Beiträge: 2501
Registriert: So 10. Apr 2011, 10:10

Re: Bericht: Funktion Minute funktioniert nicht

Beitrag von F3K Total » So 31. Jan 2016, 00:58

Sehr freundlich!
Dir ist schon klar, das die hier freiwillige Helfer in ihrer Freizeit Tipps geben?
Gruß R

mhonline
Beiträge: 24
Registriert: Mi 6. Apr 2011, 18:42

Re: Bericht: Funktion Minute funktioniert nicht

Beitrag von mhonline » So 31. Jan 2016, 02:05

Nachklapp zu eben:


-- die Ausgabe "nur" des Feldes Zeitfeld mit der Formatierung HHMMSS ist korrekt: 190000

-- diese Ausgabe ist nicht verknüpfbar, die Konstruktion "T"&([Zeitfeld]) ergibt : TDonnerstag, 1. Januar 1970 19:00 Uhr MEZ
Formatierungen werden im UI der Benutzer-Definition richtig und im Bericht IMMER falsch dargestellt, dort haben Formatierungen keinen Einfluß. Dies ist auch in der ODB bei Robert so.

-- die Konstruktion "M"&right("0"&MINUTE([Zeitfeld]);2) ergibt beim ersten Datensetz einen merkwürdigen Fehler:
--- 020000 wird M-1 dargestellt - 020100 wird richtig als M01 dargestellt - 020001 ebenfalls richtig als M00
--- die nachfolgenden Datensätze/Ausgaben waren bei mir jetzt richtig, aber wie schon im Bericht der Beispiel-DB von Robert zu sehen, tritt der "Sekunden-Fehler" offensichtlich willkürlich auf und führt bei Zeitwerten mit vollen Stunden deshalb wohl gelegentlich zu Fehlern.

m.

Pit Zyclade
* LO-Experte *
Beiträge: 3041
Registriert: Mo 12. Nov 2012, 16:59

Re: Bericht: Funktion Minute funktioniert nicht

Beitrag von Pit Zyclade » So 31. Jan 2016, 11:14

Hallo Robert,
Pit Zyclade hat geschrieben: 1. Der Formatcode allein MM und auch nur M oder kleingeschrieben mm funktioniert nicht (!), HH oder SS aber schon
RobertG hat geschrieben: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.
Du hast aber schon in der Hilfe das Beispiel gelesen? Dort wird nämlich entgegen der zuvor gemachten Erklärung, wo kleine Buchstaben bei Zeitcode gelistet werden, Großbuchstaben verwendet. (So etwas dürfte aus didaktischen Gründen niemals vorkommen).
Pit Zyclade hat geschrieben: 2. eine Formel MINUTE([Zeitfeld]) oder SECOND([Zeitfeld]) sogar mit Formatcode HH:MM:SS bringt nur Nullwerte.
RobertG hat geschrieben: 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.
Als Zahl "00" geht es schon. Aber Dank für den Hinweis. So wird man klüger.

Was bleibt ist die falsche Berechnung der Sekunden. Offenbar werden die Laufzeiten abgezogen... :lol:
Würde mich freuen, wenn Du da irgendetwas erreichen würdest. Komisch nur, dass andere Nutzer nichts reklamierten oder doch?

Gruß

Pit
LO 24.8.7.2 (X86_64) / Windows 11 64bit
Problem gelöst? Dann bitte im Betreff der ersten Nachricht [gelöst] voranstellen.

Pit Zyclade
* LO-Experte *
Beiträge: 3041
Registriert: Mo 12. Nov 2012, 16:59

Re: Bericht: Funktion Minute funktioniert nicht

Beitrag von Pit Zyclade » So 31. Jan 2016, 13:04

Hallo Martin,
mhonline hat geschrieben: -- diese Ausgabe ist nicht verknüpfbar, die Konstruktion "T"&([Zeitfeld]) ergibt : TDonnerstag, 1. Januar 1970 19:00 Uhr MEZ
Ja, die Verknüpfung führt immer dazu, dass das Zeitfeld als Datum formatiert wird, leider
mhonline hat geschrieben: -- die Konstruktion "M"&right("0"&MINUTE([Zeitfeld]);2) ergibt beim ersten Datensetz einen merkwürdigen Fehler:
--- 020000 wird M-1 dargestellt - 020100 wird richtig als M01 dargestellt - 020001 ebenfalls richtig als M00
--- die nachfolgenden Datensätze/Ausgaben waren bei mir jetzt richtig, ...
Bei mir wird der Bericht korrekt dargestellt, d.h. immer M mit der korrekten zweistelligen Minute verknüpft
(siehe Bericht 2 in der beigefügten Datenbank.)

Nachtrag:
Korrekt aber nur in LO 4.4.7.2, nicht aber in AOO 4.1.2. In letzterer führen die beiden ersten Datensätze zu Fehlern, statt 00 bei Minute() 01 und in Deiner Formel entsteht wird M01, statt 09 wird bei Minute() 10 und bei Deiner Formel M10 angezeigt. Höhere Werte hingegen werden korrekt behandelt.
Dateianhänge
base - Testdatenbank mit Zeitfeld 3.zip
*.zip in *.odb umbenennen
(16.24 KiB) 215-mal heruntergeladen
LO 24.8.7.2 (X86_64) / Windows 11 64bit
Problem gelöst? Dann bitte im Betreff der ersten Nachricht [gelöst] voranstellen.

RobertG
* LO-Experte *
Beiträge: 2884
Registriert: Sa 19. Mai 2012, 17:37
Kontaktdaten:

Re: Bericht: Funktion Minute funktioniert nicht

Beitrag von RobertG » So 31. Jan 2016, 17:07

Hallo *,

ich habe jetzt die fehlerhafte Berechnung der Sekunde als Bug weiter gegeben. Dabei ist mir aufgefallen, dass ich etwas Ähnliches bereits für die Minuten gemacht hatte - das wurde von Julien für die letzten 4.4-Versionen und ab 5.0 gefixt:
https://bugs.documentfoundation.org/sho ... i?id=97462

--- und noch einmal der Hinweis: Macht Berechnungen der Zeit, auch die Anwendung von Funktionen wie SECOND(), in der Abfrage/Ansicht, auf die der Report-Builder aufbaut. Kombinationen von Textfeldern, Text und Datum usw. können ebenfalls dort erstellt werden. Mutet dem Report-Builder möglichst wenig zusätzliche Funktionen zu. Der Report-Builder hat mit der Erstellung des Dokumentes so schon genug zu tun. ---

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

mhonline
Beiträge: 24
Registriert: Mi 6. Apr 2011, 18:42

Re: Bericht: Funktion Minute funktioniert nicht

Beitrag von mhonline » So 31. Jan 2016, 18:56

Nachklapp II

-- das Problem der Führenden Null läßt sich nur lösen, wenn der Ausdruck am Ende als Text behandelt wird
um ein vernünftiges Ergebnis zu bekommen ist es deshalb notwendig, für diesem Fall dem Zeitfeld eine Funktion (Hour oder Minute)
voranzustellen, und dann (vom nicht sichtbaren) String die letzten zwei Ziffern zu übernehmen

-- ZEIT wird intern als Dezimalwert des Bruchteils eines Tages gespeichert - so wie im Handbuch beschrieben

die Konstruktion:
right("0"&Minute(([Zeitfeld])+0.00001);2)
löst das Problem und kommt zum richtigen Ergebnis (man beachte den Dezimalpunkt)

m.

Pit Zyclade
* LO-Experte *
Beiträge: 3041
Registriert: Mo 12. Nov 2012, 16:59

Re: Bericht: Funktion Minute funktioniert nicht

Beitrag von Pit Zyclade » Mo 1. Feb 2016, 09:52

mhonline hat geschrieben:-- das Problem der Führenden Null läßt sich nur lösen, wenn der Ausdruck am Ende als Text behandelt wird
um ein vernünftiges Ergebnis zu bekommen ist es deshalb notwendig, für diesem Fall dem Zeitfeld eine Funktion (Hour oder Minute)
voranzustellen, und dann (vom nicht sichtbaren) String die letzten zwei Ziffern zu übernehmen
Nö. Formatierung "00" geht ebenfalls und man benötigt keine Formel (siehe in meinem Beispiel Bericht 2 der dritten db unter minute() )
mhonline hat geschrieben: -- ZEIT wird intern als Dezimalwert des Bruchteils eines Tages gespeichert - so wie im Handbuch beschrieben

die Konstruktion:
right("0"&Minute(([Zeitfeld])+0.00001);2)
löst das Problem und kommt zum richtigen Ergebnis (man beachte den Dezimalpunkt)
Das aber sieht nach einem Rundungsfehler aus. Solche Forderungen sind weder exakt, noch zu fördern, sondern nur eine Krücke. Wenn minute() die Minute herauslöst, dann muss die Zahl genau so sein, wie unter zeitfeld eingegeben.
LO 24.8.7.2 (X86_64) / Windows 11 64bit
Problem gelöst? Dann bitte im Betreff der ersten Nachricht [gelöst] voranstellen.

mhonline
Beiträge: 24
Registriert: Mi 6. Apr 2011, 18:42

Re: Bericht: Funktion Minute funktioniert nicht

Beitrag von mhonline » Mo 1. Feb 2016, 20:19

Nachklapp III

die in dem anderen Thread unter http://www.libreoffice-forum.de/viewtop ... 10&t=15884 vorgestellte Lösung "ZEITAUFGABE" funktioniert leider nicht.

1. TO_CHAR als Funktion und die Formatierung HH24MISS funktionieren, stehen allerdings nicht im Base-Handbuch. Würd mich mal interessieren, wo die herkommen.
-- TO_CHAR wertet keine nachfolgenden und geklammerten Ausdrücke aus , der Ausdruck TO_CHAR(HOUR("Zeitfeld")) funktioniert nicht
-- die Formatierenung HH24MISS funktioniert nur im Zusammenhang mit TO_CAST - sonst - zB in anderen Ausdrücken - nicht

2. Im Prinzip ist der Versuch charmant, alle Operationen im SQL vorzunehmen und in ein Virtuelles Feld zu packen. Leider funktioniert das nicht.
Zwar werden bei der Ausgabe in ODT die Variablen richtig dargestellt, dann gibt es allerdings das Steiten-Kopf/-Fuß-Problem.
Bei der Ausgabe in ein ODS werden die Zeilenumbrüche im SQL nicht ausgewertet und es entsteht ein unbrauchbarer Bandwurmstring
Zur Lösung müssen virtuelle Felder jeweils nur für eine Zeile angelegt werden.

3. die Konstruktion "Zeitfeld", 'HH24MISS' kann keine führenden Nullen darstellen aus 08:00:00 wird 80000 - das geht nicht

Der Lösungsvorschlag ist:
TO_CHAR( "Datumsfeld", 'YYYYMMDD' ) || 'T' || RIGHT( '0' || HOUR( "Zeitfeld" ), 2 ) || RIGHT( '0' || MINUTE( "Zeitfeld" ), 2 ) || '00Z' AS TIMESTAMP

m.

RobertG
* LO-Experte *
Beiträge: 2884
Registriert: Sa 19. Mai 2012, 17:37
Kontaktdaten:

Re: Bericht: Funktion Minute funktioniert nicht

Beitrag von RobertG » Mo 1. Feb 2016, 20:47

Hallo mhonline,
mhonline hat geschrieben: 1. TO_CHAR als Funktion und die Formatierung HH24MISS funktionieren, stehen allerdings nicht im Base-Handbuch. Würd mich mal interessieren, wo die herkommen.
Die Funktion taucht in der Beschreibung zur HSQLDB 1.8 (siehe http://hsqldb.org/doc/guide/ch01.html, insbesondere http://hsqldb.org/doc/guide/ch09.html) nicht auf. Sie gehört offiziell zu HSQLDB 2.0 (siehe http://www.hsqldb.org/doc/2.0/guide/bui ... chapt.html).

Da mit LO die Version 1.8 ausgeliefert wird, habe ich nur die Funktionen verarbeitet, die auch in der Beschreibung zu 1.8 auftauchen.

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


An alle, die das LibreOffice-Forum gern nutzen und unterstützen wollen:


Bitte helfen Sie uns mit 7 Euro pro Monat.
Durch Ihren Beitrag tragen Sie dazu bei, unsere laufenden Kosten für die kommenden Monate zu decken.
Unkompliziert per Kreditkarte oder PayPal.
Als ein kleines Dankeschön werden Sie im LO-Forum als SUPPORTER gekennzeichnet.



Antworten