27. November 2008 09:43
Hallo WoF,
das mit den Zeichensätzen ist in NAV ein wenig vertrackter
. Zunächst einmal hat NAV noch nichts von Unicode gehört.
NAV arbeitet intern mit IBM850- Zeichensatz d.h. alle Texte und Stammdaten in NAV werden in dieser Codepage abgespeichert (ein ä ist z.B. der Wert 132). Wenn du diese Texte mit einem Dataport ausgibst, bekommst du das ä auch mit dem Wert 132 ausgegeben. Gibst du das ganze aber als Report aus, wird das Zeichen in den entsprechenden Ansi-Code umgewandelt (bei dem 'ä' der Wert 228), damit ein Drucker das Ganze ausdrucken kann.
Bei deinem Sonderzeichen gibt es jetzt noch ein spezielles Problem. Die normalen Windows- Zeichensätze beherrschen das von dir gewünschte Sonderzeichen nicht, d.h. du musst im Report bei dem Textfeld in dem du das Sonderzeichen ausgibst einen anderen Font wählen z.B. 'Terminal', damit du in den Genuss der Sonderzeichen kommst.
Verwendest du allerdings 'Terminal' ist dort das 'ä' z.B. wieder der Wert 132.
Deshalb meine Empfehlung:
- Verwende an allen Stellen im NAV nie ein direkt eingegebenes Sonderzeichen z.B. über ALT+132, sondern nur eine Textvariable Text[1] die du dir mit der Zuweisung AE[1]:=132 baust. Nur dann kannst du dir sicher sein, das dein Sonderzeichen auch so verwendet wird, wie du es geplant hast. (NAV wandelt bei der Eingabe alle Zeichen von ANSI nach IBM850-Zeichenkodierung um {bei dem 'ä' 228 >132})
- prüfe ob der Font, den du beim Ausdrucken verwenden willst auch dein Sonderzeichen enthält. Ansonsten musst du dir in den Textbox- bzw. Label- Properties deines Reports einen anderen Font auswählen (hier z.B. 'Terminal').
- Definiere den Code deines Sonderzeichens so, das es in dem gewählten Font auch tatsächlich angesprochen wird.
- Wenn dir das ganze zu kompliziert ist, versuche deine Sonderzeichen durch Standardzeichen zu ersetzten.
Gruß, Fiddi