Lineas descuadradas en oPrn:CmSay

Post Reply
User avatar
Pedro
Posts: 457
Joined: Tue Mar 21, 2006 7:30 pm
Location: Córdoba (España)

Lineas descuadradas en oPrn:CmSay

Post by Pedro »

Hola a todos

Alguien me podría decir por qué estas tres líneas salen descuadradas en la impresora....

oPrn:cmSay( nRow,18.5, Transf(CFAC->bruto,"@E 999,999.99"), aoFont[2])
oPrn:cmSay( nRow,18.5, Transf(CFAC->cuota,"@E 999,999.99"), aoFont[2])
oPrn:cmSay( nRow,18.5, Transf(CFAC->total,"@E 999,999.99"), aoFont[2])

Hay algun parametro mas a parte de (Row, Col, Texto, Font) en la clase tprinter? ya que no la veo bien documentada por ningun sitio.
Más que nada es por saber si se pueden colocar los números cuadrados unos debajo de otros.

Gracias a todos y un saludo

Pedro
User avatar
Ricardo Ramirez E.
Posts: 161
Joined: Wed Jan 25, 2006 10:45 am
Location: Praia - Cape Verde
Contact:

cmsay..

Post by Ricardo Ramirez E. »

Pedro...

oPrn:oRpt:cmSay(nLin+13.8,19.5, transform(d,"9,999,999.99"), oPrn:aFonts[6],,,,1 )

Saludos.
Ricardo
User avatar
Armando
Posts: 2479
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México
Contact:

Post by Armando »

Pedro:

La sintáxis es

<oPrn>:CMSAY(nRow,nCol,cText,oFont,nWidth,nClrText,nBkMode,nPad)

Casi todo esta muy claro a excepción de nBkMode y nPad

nBkMode es un valor numerico que indica la forma en que se mezcla el texto con lel fondo:

1 = Transparente
2 = Opaco

nPad es un valor numerico indicando como se alinea el texto a imprimir, por omision se usa PAD_LEFT

#Define PAD_LEFT 0
#Define PAD_RIGHT 1
#Define PAD_CENTER 2

Ejemplo:

oPrn:cmSay( nRow,18.5, Transf(CFAC->bruto,"@E 999,999.99"),aoFont[2],,,,2)

Saludos, Armando
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
manuramos
Posts: 219
Joined: Mon Dec 26, 2005 7:25 pm
Location: Jerez de la Frontera (Spain)

Post by manuramos »

No sé exactamente por donde se te descuandran los digitos. Por la derecha o por la izquierda.
En teoría, según tu código, deberían salir alineados a la derecha, pues seguramente enviaras menos dígitos que "9" tiene la máscara (picture). Si quieres que salgan justificados a la izquierda, a pesar de la máscara, utiliza el parámetro "B" dentro de ésta: osea "@EB 999,999.99"
Nos Gusta Programar
User avatar
Pedro
Posts: 457
Joined: Tue Mar 21, 2006 7:30 pm
Location: Córdoba (España)

Post by Pedro »

Gracias a los tres por sus respuestas.

Manuramos la idea es que queden alineados a la derecha, y no a la izquierda. Efectivamente como tu dices, a pesar de la máscara, si envío menos números que ella se desalinean, precisamente por ahí, por ejemplo
100,00 , 7,00 y 107,00 de aqui el primero y el último quedan bien alineados, pero el segundo se queda una posición menos a la derecha que los otros dos.
Probaré con la secuencia descrita por Ricardo y Armando.

Saludos a todos
Post Reply