FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Ayuda: caractéres graficos al modo MS-DOS en TReport.
Posts: 139
Joined: Sun Apr 23, 2006 09:00 AM
Ayuda: caractéres graficos al modo MS-DOS en TReport.
Posted: Tue Jun 29, 2010 03:10 PM

Hola.
Estoy creando un informe para una factura con la clase TReport y quiero incluir caractéres gráficos Alt+179, Alt+196 (│, ─, ├, ┼ ) al igual que hacia en MS-DOS, pero no consigo que me los muestre al imprimir; siempre me los convierte a otros caractéres. Sin embargo, me he dado cuenta de que en la clase TReport se utilizan este tipo de caractéres y los muestra bien . ¿Alguna ayuda al respecto?

Un saludo,

Fernando

Las Palmas de Gran Canaria
Posts: 989
Joined: Thu Nov 24, 2005 03:01 PM
Re: Ayuda: caractéres graficos al modo MS-DOS en TReport.
Posted: Wed Jun 30, 2010 06:32 AM

Fernando,

TReport no usa los caracteres especiales, sino que dibuja líneas. Puedes ver como lo hace mirando el código, es algo complejo pero seguramente te aclarará muchos conceptos y te dará ideas.

Saludos
Carlos Mora
http://harbouradvisor.blogspot.com/
StackOverflow http://stackoverflow.com/users/549761/carlos-mora
“If you think education is expensive, try ignorance"
Posts: 139
Joined: Sun Apr 23, 2006 09:00 AM
Re: Ayuda: caractéres graficos al modo MS-DOS en TReport.
Posted: Wed Jun 30, 2010 09:43 AM

Hola Carlos.
Mirate el fuente de TReport (más menos línea 710) y verás que utiliza caractéres gráficos para montar el separator, aunque no sé por qué ahí funciona y a mi no.

Un saludo,

Fernando

Las Palmas de Gran Canaria
Posts: 989
Joined: Thu Nov 24, 2005 03:01 PM
Re: Ayuda: caractéres graficos al modo MS-DOS en TReport.
Posted: Wed Jun 30, 2010 10:49 AM
Si, lo ví, dice

Code (fw): Select all Collapse
   if ! ::lPrinter .and. ! ::lScreen

      cSeparator := ""
      AEval( ::aColumns,;
         {|val| cSeparator += Replicate( "Ä", Val:nWidth) + "Å" } )
      cSeparator := "Ã" + Substr( cSeparator,1, Len( cSeparator ) - 1 ) + "´"
      ::oDevice:Say( nRow, nLeft - ::nSeparator, cSeparator )
      ::Shadow( ::nStdLineHeight )
      ::nRow += ::nStdLineHeight
      return nil

   endif


es decir si no es ni impresora ni pantalla arma los separadores, que creo que no es nuestro caso.
Saludos
Carlos Mora
http://harbouradvisor.blogspot.com/
StackOverflow http://stackoverflow.com/users/549761/carlos-mora
“If you think education is expensive, try ignorance"

Continue the discussion