Zugriff auf Base-Datenbank mit Calc-Datenpilot
Verfasst: Fr 6. Sep 2013, 12:50
Hallo allerseits,
dies ist mein erster Post hier, daher bin ich nicht ganz sicher, ob ich im richtigen Bereich bin. Aber es geht um ein Problem, dass ich mit der Kombination aus Base und Calc habe, und noch nicht weiß, woher es kommt, deswegen erstmal im übergreifenden Bereich.
Vorweg, es geht um eine HSQL-Datenbank bei einer installierten LO-Version von 4.1.0.4. Das Problem ist neu aufgetreten seit dem letzten Update (ich denke, von einer 3er auf die 4er Version).
Wir haben eine Datenbank über unsere Kunden, ggw. etwa 300 Einträge in der relevanten Tabelle. Es sind verschiedene Daten gespeichert, hauptsächlich INTEGER, VARCHAR und DATE. Die DATE Einträge haben das Format TT.MM.JJ. Diese Daten hole ich dann jeweils für einen der Kunden mittels eines Datenpiloten in eine Calc-Tabelle, um sie dort weiterzubearbeiten. Gleich vorneweg, das geht leider nicht anders. Für unsere Zwecke können wir nicht alles in BASE machen (an Ende wird aus den Daten TeX-Code), aber ich bin mir bewusst, dass dass das Problem verhindern /würde/.
Das Problem nach dem Update ist folgendes:
In Fällen, wo in der Datenbanktabelle eines der DATE-Felder in Base noch nicht eingetragen ist (z.B. weil eine Zahlung noch nicht bei uns eingegangen ist, also der Zahlungstermin noch nicht feststeht) wurde bisher von Calc der Wert "(leer)" im Datenpilot ausgegeben. Das ist insofern nützlich, als ich diesen Wert abfangen kann, und solange Feld xy="(leer)" ist, generieren wir eben eine pdf-Datei ohne Zahlungseingangsbestätigung, und niemand kann sie aus Versehen ausdrucken.
Neuerdings zeigt der Datenpilot im Calc aber für leere DATE-Felder der Datenbank immer einen Wert, z.B. im Moment "36895". Wenn ich diesen Wert dann in ein Datum umrechne, ist es immer der 04.01.2001.
Ich habe das mit einer neuen, leeren Datenbank getestet, mit einem neuen Datenpiloten, gleiches Ergebnis. Auch das Umstellen des Datums im DATE-Feld auf TT.MM.JJJJ hat nichts geändert.
Das führt dazu, dass auch neu angelegte Kunden sofort (da ja laut Calc alle Daten bereits feststehen) wie abgeschlossene Fälle behandelt werden, und wir ständig aufpassen müssen, nichts, dass auf den 4.Januar 2001 datiert ist auszudrucken. *Ausser*, wenn es laut parallel geführter Papierakte wirklich am 04.01.2001 passiert ist. Sollte aber eigentlich nicht vorkommen. Ich könnte also -als schlechteste Lösung- alle Daten die =04.01.01 von einer WENN()-Abfrage ersetzen lassen zu "Datum fehlt". Aber ganz wohl wäre mir mit so einer 'brute force'-Lösung nicht...
Hat noch jemand dieses Problem, oder vielleicht eine Idee dazu?
Dankeschön und schönen Gruß,
JanN
dies ist mein erster Post hier, daher bin ich nicht ganz sicher, ob ich im richtigen Bereich bin. Aber es geht um ein Problem, dass ich mit der Kombination aus Base und Calc habe, und noch nicht weiß, woher es kommt, deswegen erstmal im übergreifenden Bereich.
Vorweg, es geht um eine HSQL-Datenbank bei einer installierten LO-Version von 4.1.0.4. Das Problem ist neu aufgetreten seit dem letzten Update (ich denke, von einer 3er auf die 4er Version).
Wir haben eine Datenbank über unsere Kunden, ggw. etwa 300 Einträge in der relevanten Tabelle. Es sind verschiedene Daten gespeichert, hauptsächlich INTEGER, VARCHAR und DATE. Die DATE Einträge haben das Format TT.MM.JJ. Diese Daten hole ich dann jeweils für einen der Kunden mittels eines Datenpiloten in eine Calc-Tabelle, um sie dort weiterzubearbeiten. Gleich vorneweg, das geht leider nicht anders. Für unsere Zwecke können wir nicht alles in BASE machen (an Ende wird aus den Daten TeX-Code), aber ich bin mir bewusst, dass dass das Problem verhindern /würde/.
Das Problem nach dem Update ist folgendes:
In Fällen, wo in der Datenbanktabelle eines der DATE-Felder in Base noch nicht eingetragen ist (z.B. weil eine Zahlung noch nicht bei uns eingegangen ist, also der Zahlungstermin noch nicht feststeht) wurde bisher von Calc der Wert "(leer)" im Datenpilot ausgegeben. Das ist insofern nützlich, als ich diesen Wert abfangen kann, und solange Feld xy="(leer)" ist, generieren wir eben eine pdf-Datei ohne Zahlungseingangsbestätigung, und niemand kann sie aus Versehen ausdrucken.
Neuerdings zeigt der Datenpilot im Calc aber für leere DATE-Felder der Datenbank immer einen Wert, z.B. im Moment "36895". Wenn ich diesen Wert dann in ein Datum umrechne, ist es immer der 04.01.2001.
Ich habe das mit einer neuen, leeren Datenbank getestet, mit einem neuen Datenpiloten, gleiches Ergebnis. Auch das Umstellen des Datums im DATE-Feld auf TT.MM.JJJJ hat nichts geändert.
Das führt dazu, dass auch neu angelegte Kunden sofort (da ja laut Calc alle Daten bereits feststehen) wie abgeschlossene Fälle behandelt werden, und wir ständig aufpassen müssen, nichts, dass auf den 4.Januar 2001 datiert ist auszudrucken. *Ausser*, wenn es laut parallel geführter Papierakte wirklich am 04.01.2001 passiert ist. Sollte aber eigentlich nicht vorkommen. Ich könnte also -als schlechteste Lösung- alle Daten die =04.01.01 von einer WENN()-Abfrage ersetzen lassen zu "Datum fehlt". Aber ganz wohl wäre mir mit so einer 'brute force'-Lösung nicht...
Hat noch jemand dieses Problem, oder vielleicht eine Idee dazu?
Dankeschön und schönen Gruß,
JanN