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öffentlicht Bodo von Zeit zu Zeit technische Kabinettstückchen aus der Welt von Dynamics NAV und .NET.NAV 2009 – Copy & Paste und böse Zeichen in Text- und Code-Feldern
In den Zeiten zunehmender Beliebtheit von Copy & Paste möchte auch ich mich diesem Thema annehmen und auf ein Problem im Zusammenhang mit Dynamics NAV hinweisen.
Machen wir ein Beispiel. Besuchen Sie unser Impressum (http://www.comporsys.de/impressum) und kopieren den Firmennamen „Comporsys Hansa GmbH“ (Namen markieren und dann Strg+C drücken). Danach starten Sie den NAV 2009 Classic Client, legen einen neuen Debitor an und fügen den gerade kopierten Inhalt ein (Strg+V). Das Ergebnis sieht wie folgt aus:

Ich habe in der Abbildung oben extra den Namen markiert, damit das Problem offensichtlich wird. Beim Kopieren sind zwei nicht sichtbare Zeichen mit kopiert worden: Carriage Return (ASCII Code 13) und Line Feed (ASCII Code 10). Böse Zeichen.
Wenn Sie diesen Zeichen nicht entfernen, haben Sie den Salat, sobald Sie zum Beispiel die Daten als Textdatei exportieren. Dann haben Sie unerwartete Zeilenumbrüche in der Textdatei. Das führt unter anderem beim GDPdU-Export zu Programmfehlern, die sehr schwer zu lokalisieren sind.
Wie sieht die Lösung aus?
In Codeunit 1 finden Sie eine Funktion „MakeText“. Diese Funktion wird vom NAV Client aufgerufen, wenn Sie Zeichen in einem Text-Feld eingeben. Und hier ist die richtige Stelle einzugreifen, um die bösen Zeichen aus dem Text zu entfernen. Dazu rufen wir unsere eigene Funktion „RemoveBadChars“ auf. Siehe unten.

Der Quellcode der Funktion „RemoveBadChars“ sieht wie folgt aus. Neben den bereits genannten Zeichen Carriage Return und Line Feed entfernen wir auch noch das Tabulator-Zeichen.
VAR
Ch@1000000001 : Text[3];
BEGIN
Ch[1] := 9; // TAB
Ch[2] := 10; // LF
Ch[3] := 13; // CR
EXIT(DELCHR(t, '=', Ch));
END;
Und wie sieht die Lösung für Code-Felder aus? Eine Funktion „MakeCode“ gibt es in Codeunit 1 nicht. Sie können diese aber mit der ID 109 erstellen. Diese Funktion wird der NAV Client dann aufrufen.
BEGIN
CodeText := RemoveBadChars(CodeText);
EXIT(0);
END;
PS: Der NAV 2009 Role Tailored Client kennt das Problem der bösen Zeichen nicht.
Neueste Einträge
- Dynamics NAV und das Ausdrucken externer Dateien
- Fehlende Icons in der Toolbar der Seitenansicht für die Berichte
- Dynamics NAV Web Services und die Reihenfolge der Ereignistrigger
- Der Unterschied zwischen den Sicherheitsmodellen Standard und Enhanced
- NAV 2009 R2 – Login-Dialog für den Role Tailored Client
- [UPDATE] NAV 2009 – Kritischer Fehler in Berichten für den Role Tailored Client
- NAV 2009 – Kritischer Fehler in Berichten für den Role Tailored Client
- NAV 2009 – Security Filter, Buchungsdatum und Rec.READPERMISSION
- NAV 2009 – Funktion FORMAT, Datentyp OPTION und unterschiedliches Verhalten von Classic Client und Role Tailored Client
- NAV 2009 – Quellcode des Transformation Tools veröffentlicht
- NAV 2009 – Copy & Paste und böse Zeichen in Text- und Code-Feldern
- NAV 2009 – Unerwartetes Verhalten von Codeunit.RUN
- NAV 2009 – Notizen und Benachrichtigungen an Active Directory Gruppen
- NAV 2009 – Interner Fehler 12 in Modul 40
- NAV 2009 Form Transformation – Wo sind die deutschen (DEU) Captions hin?
- NAV 2009 und die Frage, warum die Anzahl der Inforegister PAGE.RUNMODAL beeinflusst
- NAV 2009 Web Services und das Geheimnis der Extension Codeunits
- Der NAV-Client zeigt in der Übersicht der aktiven Sessions nur die eigene Session an
- Der NAV-Client versucht, eine externe Komponente auszuführen
Nach Datum
Tag Cloud
2009 active directory add-in addin ascii bericht buchungsdatum caption classic codeunit copy drucken enhanced export extension form format gdpdu icons inforegister ldap login nav option page paste pdf r2 readpermission reihenfolge report rtc run runmodal securtiy service princial name session sicherheit sicherheitsmodelle spn sqlserver standard toolbar transformation transformation tool trigger webservices übersicht

