[Gelöst] Sonderzeichen im Report

26. November 2008 12:08

Ich möchte in einem Report einen Baum ausgeben und dort für die bessere Optik Sonderzeichen verwenden - insbesondere den Haken Oben-Mitte-Rechts (└). Laut Zeichentabelle für Courier New ist es das Unicode-Zeichen Ux2514 bzw. ASCII 192. Wenn ich dieses Zeichen in den Code von Navision einfüge erscheint ein ? und das wird dann auch gedruckt. Da ich die Daten in einer temporären Tabelle aufbereite sollte ich diese Sonderzeichen mit dahinein schreiben und irgendwie gelingt mir das nicht. Die temporäre Tabelle verwende ich weil ich so die Daten über eine rekursive Funktion zusammentragen kann. Eine Section bzw. ein DataItem kann ja wohl nicht rekursiv benutzt werden.
Auch alle Recherche zu dem Thema Sonderzeichen war bisher vergeblich obwohl es dazu viel gibt - das meiste allerdings in Data-/XML-Ports.

Einzige Möglichkeit die mir bisher eingefallen ist: eine Grafik einbinden - nur das ist ein erheblicher Aufwand weil die ja immer an einer anderen Stelle ausgegeben werden muss. Ich müsste also für jeden Level eine eigene Section machen und dann die Richtige aussuchen.

Hat einer von Euch eine bessere Idee?

Dank Euch
WoF
Zuletzt geändert von WoF am 27. November 2008 13:07, insgesamt 1-mal geändert.

Re: Sonderzeichen im Report

26. November 2008 13:25

NAV verwendet so weit ich weiß nur ANSI.
Versuch es mal über die ANSI2ASCII Funktion aus der CU 11501.
ggf. noch den String erweitern!?

Re: Sonderzeichen im Report

26. November 2008 16:06

soweit ich weiss hat Christoph recht... evtl. nen Font dafuer nutzen? Webdings 3 or so?

Re: Sonderzeichen im Report

26. November 2008 17:19

Hat nicht funktioniert. Jetzt kommt ein < . Ich hab sowas schon befürchtet - dann bleibt es eben so wie es ist.

Ich danke euch trotzdem.

WoF

Mal gucken ob sich da mit NAV 5 was geändert hat. Irgendwann müssen die schließlich auch mal auf Unicode gehen. Da kommt mir doch glatt noch ne Idee: Man legt eine Tabelle an und gibt dort auf SLQ-Ebene das gewünschte Zeichen ein. Wenn dann beim auslesen keine Konvertierung stattfindet (weil sich Navision drauf verlässt das nur gültige Daten in der DB stehen) hat man vllt eine Chance... In dem Fall würde ich die Idee vom mündigen User mal befürworten.

Re: Sonderzeichen im Report

26. November 2008 18:04

Ich würde einfach ein anderes Zeichen nehmen um den Baum darzustellen.
> oder +

Re: Sonderzeichen im Report

26. November 2008 22:07

für die Baumdarstellung haben wir uns ein Paar Bitmaps erstellt und sprechen sie über die Bitmaplist an. Damit siehts zumindest in einer Form brauchbar aus, sollte aber auch in Reports funktionieren.

Re: Sonderzeichen im Report

27. November 2008 09:43

Hallo WoF,

das mit den Zeichensätzen ist in NAV ein wenig vertrackter :roll: . 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. :wink:

Gruß, Fiddi

Re: [Gelöst] Sonderzeichen im Report

27. November 2008 13:10

Danke Euch allen.

Ich hab mir nach fiddis Anleitung nen Report gebastelt der mir die 223 relevanten Zeichen eines Fonts ausgibt und damit mehrere Fonts durchprobiert. Nachdem ich keinen finden konnte der meinen Ansprüchen genügt hab ich mit nem Fonteditor aus Courier New einen Courier NAV gemacht der nun den gewünschten Winkel beinhaltet. Da ich den nicht publizieren will sondern nur hier intern verwende sollte das auch lizenzrechtlich kein Problem sein.

Problem gelöst und viel gelernt.

WoF