Bodo's Dynamics NAV Blog

Bodo ist ein Dynamics NAV Urgestein. Er programmiert NAV seit DOS Zeiten und hat auch keine Scheu vor .NET. Viele Neueinsteiger wurden von ihm in den letzten Jahren zu NAV Entwicklern ausgebildet.

In diesem Blog veröffentlichen Bodo und andere Superhelden Interessantes aus der Welt von Dynamics NAV.

NAV 2009 – Kritischer Fehler in Berichten für den Role Tailored Client

Verfasst von Bodo am Samstag, 19. November 2011

Tags: 2009, rtc, report, bericht

[Update vom 15. Dezember 2011]

Microsoft Support hat dieses Verhalten bestätigt. Betroffen ist nicht nur der Datentyp Decimal wie unten beschrieben, sondern auch der Datentyp Date. Die Ursache liegt in der Interpretation der Filterangabe durch den Dynamics NAV Server. Dieser erwartet die Filterangabe im XML Format (siehe dazu die Beschreibung in der Microsoft Dynamics NAV Dokumentation zum Property „Format“). Diese Erwartung kollidiert mit dem eingegebenen Format. Während es bei Date zur Laufzeit zu der Fehlermeldung „Mindestens ein Filter ist ungültig und wird ignoriert“ kommt, wird Decimal falsch interpretiert und der Bericht ohne Fehlermeldung ausgeführt.

Microsoft wird dieses Verhalten nicht ändern, und empfiehlt auf die Verwendung von Date und Decimal Filterkriterien in der Eigenschaft DataItemTableView zu verzichten. Stattdessen soll der Filter im Trigger OnPreDataItem über SETFILTER gesetzt werden.

[Originaltext]

In einem aktuellen Upgrade-Projekt auf Dynamics NAV 2009 R2 sind wir über einen kritischen Fehler in den Berichten für den Role Tailored Client gestolpert.

Falls Sie auf einem Report-DataItem über die Eigenschaft DataItemTableView einen Filter auf eine Spalte vom Typ Decimal legen, wird der Filter nicht korrekt angewendet, wenn es sich bei dem Filterwert um einen Dezimalwert mit Nachkommastellen handelt.

Der Beispielbericht (Download hier) zeigt eine einfache Liste der Sachposten der CRONUS AG. Dabei ist ein Filter aktiv, der nur die Sachposten anzeigt, deren Betrag > 10.000,50 EUR ist.

Wenn Sie die beiden Screenshots unten vergleichen, stellen Sie fest, dass die gelb markierten Posten in der Seitenansicht des Role Tailored Client fehlen.

Die Abbildung oben zeigt das Ergebnis in der Seitenansicht des Dynamics NAV Role Tailored Client.

Die Abbildung oben zeigt das Ergebnis in der Seitenansicht des Dynamis NAV Classic Client.

Wenn Sie den Filter in der DataItemTableView-Eigenschaft auf einen ganzzahligen Wert ändern, z.B. Betrag > 10.000, ist die Berichtsausführung korrekt.

Wir werden das Problem Microsoft melden. Sobald ich Neuigkeiten zu diesem Thema habe, werde ich diese hier berichten.