Seite 1 von 1

Euro-Symbol darstellen/drucken v1.9

Verfasst: Do, 16. Feb 2017 13:05
von bendixen
Nachdem ich beginnend 1986 mit dBase, dann Clipper, 1999 mit xBase++ und seit 2012 mit der Version 1.9 ganz gut klargekommen bin, habe ich es nun auch gerade geschafft, die Druckausgabe auf Windows-Drucker mit Ausnahme des €-Zeichens hinzubekommen. Die Lektüre in diesem Forum hat mir leider bezügl. des €-Zeichens nicht geholfen. Alaska verspricht mir beim Kauf einer Version 2.0 würde mein Problem mit dem €-Zeichen keines mehr sein. Da ich mit Windows 10 Prof. 64-bit Betriebssystem ansonsten keinerlei Schwierigkeiten habe, sträubt sich mein Geldbeutel allein wegen des €-Zeichens gegen seine Entleerung. Gibt es unter Version 1.9 keine brauchbare Druckdarstellung des €-Zeichens? Ich verwende den OEM-Zeichensatz wegen der Umlaute.

Re: Euro-Symbol darstellen/drucken v1.9

Verfasst: Do, 16. Feb 2017 13:07
von Koverhage
euro_symbol := chr( 213 )

Re: Euro-Symbol darstellen/drucken v1.9

Verfasst: Do, 16. Feb 2017 13:20
von Martin Altmann
Und ggf. noch ein SetLocale( NLS_ICURRENCYEURO, "1" )

Viele Grüße,
Martin

Re: Euro-Symbol darstellen/drucken v1.9

Verfasst: Do, 16. Feb 2017 17:36
von Koverhage
Ja, das hatte ich vergessen zu erwähnen ;-)

Re: Euro-Symbol darstellen/drucken v1.9

Verfasst: Do, 16. Feb 2017 17:47
von bendixen
Danke für die schnelle Hilfe: Im Ausdruck habe ich jetzt das €-Zeichen durch SetLocale(NLS_ICURRENCYEURO,"1") erreicht.

Müsste es nicht auch am Bildschirm möglich sein, oder verhindert mein cFontName = 'Lucida Console' die Bildschirm-Darstellung.

Re: Euro-Symbol darstellen/drucken v1.9

Verfasst: Do, 16. Feb 2017 17:51
von bendixen
... und natürlich viele Grüße von Jürgen (Jahrgang 1940).

Re: Euro-Symbol darstellen/drucken v1.9

Verfasst: Do, 16. Feb 2017 22:05
von AUGE_OHR
bendixen hat geschrieben:Müsste es nicht auch am Bildschirm möglich sein, oder verhindert mein cFontName = 'Lucida Console' die Bildschirm-Darstellung.
compilierst du mit /PM:PM ?
wenn NEIN dann wird "Alaska CRT" im VIO Modus verwendet.

wo jetzt das € sitzt habe ich nicht zur Hand aber das kannst kannst du ja selbst ausprobieren mit einer Schleife

Code: Alles auswählen

PROCEDURE MAIN
LOCAL i

   SET ALTER TO EURO.TXT
   SET ALTER ON

   FOR i := 128 TO 255
      ? CHR(i)
   NEXT

   SET ALTER OFF
   SET ALTER TO

WAIT
RETURN

Re: Euro-Symbol darstellen/drucken v1.9

Verfasst: Fr, 17. Feb 2017 7:41
von brandelh
Hallo,

hier muss man zunächst zwingend unterscheiden wie du den Drucker ansprichst !
Falls du noch nach Clipper Art druckst und somit die Schriftarten des Druckers verwendest,
dann muss der Drucker dieses Zeichen enthalten und der passende Zeichensatz gewählt werden (nicht ganz einfach).

Angemerkt wurde schon dass diese Zeilen nötig sind (OEM und ANSI haben einen anderen Code, daher am Besten als Variable hinterlegen !):

Code: Alles auswählen

SetLocale( NLS_ICURRENCYEURO, "1" )
...
if IsOEM()
   euro_symbol := chr( 213 ) // bei OEM
else
   euro_symbol := chr( 128 ) // bei Ansi 
endif

*--------------------------------------------------------------------------------
function IsOEM()
return ( set(_SET_CHARSET) = 1 )
*--------------------------------------------------------------------------------
function IsAnsi()
return ( set(_SET_CHARSET) = 0 )

Ein XbpCrt() Programm, verwendet nun den CRT Font, dieser muss aber an der betreffenden Stelle auch ein € Zeichen besitzen !
"Alaska Crt" hat dies eingebaut, bei den anderen OEM Zeichensätzen ist das meist nicht der Fall.
Oft ist auch das § Zeichen falsch, Lucida Console kann zwar § aber eben kein € !

Solange man beim Drucken die XbpPrinter() (am Besten über meine HBPrintX Klasse) Klasse nutzt werden die Schriften von Windows verwendet.
Alle Standard Windowsschriften (Arial etc.) beherrschen das € Zeichen, somit ist so auch kein Druck Problem vorhanden.

Das ganze ist in der 1.90.x Hilfe als Suchbegriff "Euro Zeichen" zu finden, wobei auf die Seite
"SetLocale() - Landesspezifische Literale, Formate und Trennzeichen abfragen oder ändern." gesprungen wird.

In etwa der Mitte des Textes wird das dann schön erklärt.

"