10. März 2015 17:05
Hallo zusammen,
derzeit untersuche ich folgendes Problem:
Beim Druck des Berichts 25 werden die angezeigten Dezimalwerte formatiert. Dies geschieht in der Funktion FormatCellAsText in der Codeunit 8.
- Code:
WITH ColumnLayout2 DO
IF Value <> 0 THEN BEGIN
CASE "Rounding Factor" OF
"Rounding Factor"::None:
//ValueAsText := FORMAT(ROUND(Value));
ValueAsText := FORMAT(Value,0,NormalFormatString);
"Rounding Factor"::"1":
ValueAsText := FORMAT(ROUND(Value,1));
"Rounding Factor"::"1000":
ValueAsText := FORMAT(ROUND(Value / 1000,1));
"Rounding Factor"::"1000000":
ValueAsText := FORMAT(ROUND(Value / 1000000,1));
END;
Im betreffenden Fall läuft er in den "Rounding Factor"::None Case und formatiert wie im Code zu sehen.
Hier das betreffende Beispiel:
Value: 24,9996812257409723
ValueAsText (nach dem Formatieren): '24,00'
NormalFormatString: '<Precision,2:2><Standard Format,0>'
Der erwartete Wert, 25,00, wird in der Matrix so auch angezeigt. Dort entsteht er durch das Nutzen der Funktion "RoundValue" in selbiger Codeunit. Den dort aufgerufenen Code habe ich im obigen Abschnitt mal kommentiert eingefügt.
Nach diversen Tests habe ich festgestellt, dass es immer so auftritt, wenn er eigentlich auf die nächste Ganzzahl aufrunden sollte. Ich kann mir das Verhalten nicht erklären. Einen Hotfix o.ä. konnte ich leider auch nicht finden.
Hat jemand schon einmal dieses Problem festgestellt? Gibt es eine Möglichkeit, die entsprechende Formatierung und die gewünschte Rundung zu erzielen?
Vielen Dank und viele Grüße