Hier möchte ich auf ein Problem eingehen das bei NextReports entsteht, wenn man Jahreszahlen, die als Integer in der Datenbank stehen, nach *.xlsx exportiert. Dort steht dann ein falscher Jahreswert aus dem vorigen Jahrundert. Ursache dafür ist das vorgegebene Referenzdatum von Excel, Open Office und Libre Office. Zu diesem Referenzdatum wird die aus der Datenbank kommende Integerzahl als Tage dazu addiert. Nun kann man natürlich das Format der Spalte von Standard auf Datum manuell ändern, was aber irgendwann lästig wird. Im alten Exelformat *.xls funktioniert es etwas besser. Leider hat man dort dann anstatt der Jahreszahl 2015 (als Beispiel) dann 2,015 stehen.
Alternativ könnte man jetzt den Export als *.csv machen, aber dann muss man beim Import in Excel die Spalten ebenfalls händisch als Text definieren.
Die Suche in der Dokumentation von NextReports nach einem Escape-Character verlief erfolglos, denn die Idee war, den Integer-Wert aus der MySQL-Spalte der Datenbank mit Anführungszeichen einzuschliessen, so dass Excel gezwungen wäre den Wert als Text zu interpretieren. Ohne Escape-Character werden die Anführungszeichen im Expression-Editor von NextReports nämlich als Stringbegrenzer interpretiert.
Auch das Herumprobieren mit Slashes, Backslashes, Hochkommas und anderen üblichen Escape-Zeichen half hier nicht weiter. Besonders ärgerlich dabei ist, dass man das Problem erst dann bemerkt, wenn der Report auf dem Server liegt und von dort gestartet wird. Im NextReport-Designer funktioniert nämlich alles tadellos.
Nun steckt ja hinter einer Expression auch Programmcode und daher lag die Idee nahe, einfach den Spaltenwert in die Expression zu schreiben und siehe da, die Expression gibt alle Ergebniswerte als Strings zurück.
Damit wird sowohl im xls-Format als auch im xlsx-Format das Jahr korrekt angezeigt.
Ähnliche Beiträge:
-> Multiple Parameter in NextReports verwenden
-> Werte in NextReports Charts vergleichen