Page 1 of 1

Lineas descuadradas en oPrn:CmSay

Posted: Sat Apr 22, 2006 12:28 pm
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

cmsay..

Posted: Sat Apr 22, 2006 2:50 pm
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

Posted: Sun Apr 23, 2006 2:15 pm
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

Posted: Mon Apr 24, 2006 6:46 pm
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"

Posted: Mon Apr 24, 2006 7:49 pm
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