Ayuda Imprimir Liquidacion de Sueldo
Ayuda Imprimir Liquidacion de Sueldo
Hola Amigos
Necesito crear el código para imprimir liquidaciones de sueldo, usando impresora inyección de tinta.
Me han recomendado que use "CmSay( nRow, nCol, cText, oFont, nWidth, nClrText, nBkMode, nPad, lO2A )", no se si será la mejor forma?.
1. Lo primero que necesito es centrar el Titulo considerando el total del ancho de una pagina Letter 8 1/2 x 11 in.
Como hacerlo u obtener el valor de la columna donde debo imprimir.
Si algún amigo, tuviera un código ejemplo, estaré muy agradecido.
Muchos Saludos
Antonio
Necesito crear el código para imprimir liquidaciones de sueldo, usando impresora inyección de tinta.
Me han recomendado que use "CmSay( nRow, nCol, cText, oFont, nWidth, nClrText, nBkMode, nPad, lO2A )", no se si será la mejor forma?.
1. Lo primero que necesito es centrar el Titulo considerando el total del ancho de una pagina Letter 8 1/2 x 11 in.
Como hacerlo u obtener el valor de la columna donde debo imprimir.
Si algún amigo, tuviera un código ejemplo, estaré muy agradecido.
Muchos Saludos
Antonio
FWH 22.10 - HARBOUR - PELLES C
- FranciscoA
- Posts: 2163
- Joined: Fri Jul 18, 2008 1:24 am
- Location: Chinandega, Nicaragua, C.A.
Re: Ayuda Imprimir Liquidacion de Sueldo
remtec wrote:Hola Amigos
Necesito crear el código para imprimir liquidaciones de sueldo, usando impresora inyección de tinta.
Me han recomendado que use "CmSay( nRow, nCol, cText, oFont, nWidth, nClrText, nBkMode, nPad, lO2A )", no se si será la mejor forma?.
1. Lo primero que necesito es centrar el Titulo considerando el total del ancho de una pagina Letter 8 1/2 x 11 in.
Como hacerlo u obtener el valor de la columna donde debo imprimir.
Si algún amigo, tuviera un código ejemplo, estaré muy agradecido.
Muchos Saludos
Antonio
Antonio.
En \Samples está TESTPRN3.PRG que creo te ayudará a resolver, para el caso de centrar titulos usando CmSay().
Saludos.
Francisco J. Alegría P.
Chinandega, Nicaragua.
Fwxh-MySql-TMySql
Chinandega, Nicaragua.
Fwxh-MySql-TMySql
Re: Ayuda Imprimir Liquidacion de Sueldo
Hola Francisco.
Deseo que estés muy bien.
Muchas gracias por tu ayuda.
Revisare lo que me recomiendas.
Igual me queda la duda si usar CmSay() para imprimir en impresoras inyeccion de tinta, sea lo correcto o hay otra forma mas conveniente?
Muchos Saludos.
Antonio
Deseo que estés muy bien.
Muchas gracias por tu ayuda.
Revisare lo que me recomiendas.
Igual me queda la duda si usar CmSay() para imprimir en impresoras inyeccion de tinta, sea lo correcto o hay otra forma mas conveniente?
Muchos Saludos.
Antonio
FWH 22.10 - HARBOUR - PELLES C
- nageswaragunupudi
- Posts: 10721
- Joined: Sun Nov 19, 2006 5:22 am
- Location: India
- Been thanked: 8 times
- Contact:
Re: Ayuda Imprimir Liquidacion de Sueldo
What is your FWH version?
If you are using any recent version, there many improved methods, and now cmSay() is an obsolete method.
If you are using any recent version, there many improved methods, and now cmSay() is an obsolete method.
Regards
G. N. Rao.
Hyderabad, India
G. N. Rao.
Hyderabad, India
-
- Posts: 149
- Joined: Tue Jul 15, 2008 7:12 pm
- Location: Argentina
Re: Ayuda Imprimir Liquidacion de Sueldo
Buenas
te paso como imprimo yo los recibos de sueldo en laser/tinta
aqui configurado para A4, original y duplicado en la misma hoja
si no alcanza se puede imprimir en Legal
te paso como imprimo yo los recibos de sueldo en laser/tinta
aqui configurado para A4, original y duplicado en la misma hoja
si no alcanza se puede imprimir en Legal
Code: Select all | Expand
TPreview():lListViewHide := .T.
PRINT oPrn NAME "Recibo de Sueldo en PDF" PREVIEW
oPrn:SetPage(9) // A4
PrnPortrait() ///vertical
IF Empty( oPrn:hDC )
MsgStop( OemToAnsi( "¡ No hay IMPRESORA para imprimir !" ))
Return NIL
EndIF
nPixVert := oPrn:nVertRes()
nPixHorz := oPrn:nHorzRes()
IF nPixHorz < 3000
nAnch := 8913290
nAlto := 12255652
nAncho_1 := 4
nAncho_2 := 7
ELSE
nAnch := 8913494
nAlto := 12256000
nAncho_1 := 6
nAncho_2 := 11
EndIf
DEFINE FONT oFont1 NAME "Courier New" SIZE 0, -9 OF oPrn //Negrita
DEFINE FONT oFont2 NAME "Courier New" SIZE 0, -9 BOLD OF oPrn //Negrita
DEFINE FONT oFont3 NAME "Arial" SIZE 0, -9 OF oPrn
DEFINE PEN oPen1 WIDTH nAncho_1
DEFINE PEN oPen2 WIDTH nAncho_2
person->(dbSeek(Desde))
Do While (!person->(EOF()) .AND. person->pm_legajo <= Hasta)
Antig2()
If (person->pm_fegre = CToD(Space(8)))
Fila=5.10
Fila2=19.10
CantCon=0
PAGE
nFil := 1.00 //arriba
nCol := 1.00 //izquierda
nTop := 2.00 //ALTO
nBot := 20.00 //ANCHO
aCoord1 := oPrn:Cmtr2Pix( @nFil, @nCol )
aCoord2 := oPrn:Cmtr2Pix( @nTop, @nBot )
oPrn:Box ( nFil, nCol, nTop, nBot, oPen1 )
//oPrn:CmSay ( 1.10, 1.10, 'Empleador: '+empresa->em_nombre + ' Razon Social: Ostinelli Hnos. S.H.', oFont2 )
oPrn:CmSay ( 1.10, 1.10, 'Empleador: '+ OemToAnsi(empresa->em_nombre) , oFont2 )
oPrn:CmSay ( 1.10, 14.10,'C.U.I.T. Nº ' + empresa->em_cuit, oFont2 )
oPrn:CmSay ( 1.60, 1.10, 'Domicilio: '+ OemToAnsi(alltrim(empresa->em_dire)) + ' / LOCALIDAD: '+empresa->em_loca, oFont2 )
oPrn:CmSay ( 1.60, 14.10,'DiEGeP Nº ' + empresa->em_ninsc, oFont2 )
///recuadro superior que dice los datos del empleador //DEL DUPLICADO
nFil := 15.80 //arriba
nCol := 1.00 //izquierda
nTop := 16.80 //ALTO
nBot := 20.00 //ANCHO
aCoord1 := oPrn:Cmtr2Pix( @nFil, @nCol )
aCoord2 := oPrn:Cmtr2Pix( @nTop, @nBot )
oPrn:Box ( nFil, nCol, nTop, nBot, oPen1 )
//oPrn:CmSay ( 1.10, 1.10, 'Empleador: '+empresa->em_nombre + ' Razon Social: Ostinelli Hnos. S.H.', oFont2 )
oPrn:CmSay ( 15.90, 1.10, 'Empleador: '+ OemToAnsi(empresa->em_nombre) , oFont2 )
oPrn:CmSay ( 15.90, 14.10,'C.U.I.T. Nº ' + empresa->em_cuit, oFont2 )
oPrn:CmSay ( 16.40, 1.10, 'Domicilio: '+ OemToAnsi(alltrim(empresa->em_dire)) + ' / LOCALIDAD: '+empresa->em_loca, oFont2 )
oPrn:CmSay ( 16.40, 14.10,'DiEGeP Nº ' + empresa->em_ninsc, oFont2 )
///reacuadro titulo donde van datos de Empleado
nFil := 2.10 //arriba
nCol := 1.00 //izquierda
nTop := 2.60 //ALTO
nBot := 20.00 //FIN ANCHO
aCoord1 := oPrn:Cmtr2Pix( @nFil, @nCol )
aCoord2 := oPrn:Cmtr2Pix( @nTop, @nBot )
oPrn:Box ( nFil, nCol, nTop, nBot, oPen1 )
oPrn:CmSay ( 2.20, 1.10, 'Legajo', oFont2 )
oPrn:CmSay ( 2.20, 3.50, 'Apellido y Nombres', oFont2 )
oPrn:CmSay ( 2.20, 10.00, 'C.U.I.L.', oFont2 )
oPrn:CmSay ( 2.20, 12.10, 'Rem. Asignada', oFont2 )
oPrn:CmSay ( 2.20, 16.00, 'Fecha de Ingreso', oFont2 )
///reacuadro titulo donde van datos de Empleado DUPLICADO
nFil := 16.90 //arriba
nCol := 1.00 //izquierda
nTop := 17.40 //ALTO
nBot := 20.00 //FIN ANCHO
aCoord1 := oPrn:Cmtr2Pix( @nFil, @nCol )
aCoord2 := oPrn:Cmtr2Pix( @nTop, @nBot )
oPrn:Box ( nFil, nCol, nTop, nBot, oPen1 )
oPrn:CmSay (17.00, 1.10, 'Legajo', oFont2 )
oPrn:CmSay (17.00, 3.50, 'Apellido y Nombres', oFont2 )
oPrn:CmSay (17.00, 10.00, 'C.U.I.L.', oFont2 )
oPrn:CmSay (17.00, 12.10, 'Rem. Asignada', oFont2 )
oPrn:CmSay (17.00, 16.00, 'Fecha de Ingreso', oFont2 )
///reacuadro donde van datos de Empleado
nFil := 2.70 //arriba
nCol := 1.00 //izquierda
nTop := 4.20 //ALTO
nBot := 20.00 //FIN ANCHO
aCoord1 := oPrn:Cmtr2Pix( @nFil, @nCol )
aCoord2 := oPrn:Cmtr2Pix( @nTop, @nBot )
oPrn:Box ( nFil, nCol, nTop, nBot, oPen1 )
///reacuadro donde van datos de Empleado DUPLICADO
nFil := 17.50 //arriba
nCol := 1.00 //izquierda
nTop := 19.00 //ALTO
nBot := 20.00 //FIN ANCHO
aCoord1 := oPrn:Cmtr2Pix( @nFil, @nCol )
aCoord2 := oPrn:Cmtr2Pix( @nTop, @nBot )
oPrn:Box ( nFil, nCol, nTop, nBot, oPen1 )
///reacuadro donde van datos de la Fecha y Periodo de Pago
nFil := 3.20 //arriba
nCol := 13.50 //izquierda
nTop := 4.20 //FIN ALTO
nBot := 20.00 //FIN ANCHO
aCoord1 := oPrn:Cmtr2Pix( @nFil, @nCol )
aCoord2 := oPrn:Cmtr2Pix( @nTop, @nBot )
oPrn:Box ( nFil, nCol, nTop, nBot, oPen1 )
///reacuadro donde van datos de la Fecha y Periodo de Pago DUPLICADO
nFil := 18.00 //arriba
nCol := 13.50 //izquierda
nTop := 19.00 //FIN ALTO
nBot := 20.00 //FIN ANCHO
aCoord1 := oPrn:Cmtr2Pix( @nFil, @nCol )
aCoord2 := oPrn:Cmtr2Pix( @nTop, @nBot )
oPrn:Box ( nFil, nCol, nTop, nBot, oPen1 )
///reacuadro titulo donde van datos de Empleado
nFil := 4.30 //arriba
nCol := 1.00 //izquierda
nTop := 4.90 //ALTO
nBot := 20.00 //FIN ANCHO
aCoord1 := oPrn:Cmtr2Pix( @nFil, @nCol )
aCoord2 := oPrn:Cmtr2Pix( @nTop, @nBot )
oPrn:Box ( nFil, nCol, nTop, nBot, oPen1 )
oPrn:CmSay ( 4.40, 1.10, 'Cod.', oFont2 )
oPrn:CmSay ( 4.40, 2.10, 'Concepto', oFont2 )
oPrn:CmSay ( 4.40, 8.10, 'Hs/Dias/%', oFont2 )
oPrn:CmSay ( 4.40,11.10, 'Haberes', oFont2 )
oPrn:CmSay ( 4.40,16.10, 'Deducciones', oFont2 )
///reacuadro titulo donde van datos de Empleado DUPLICADO
nFil := 19.10 //arriba
nCol := 1.00 //izquierda
nTop := 19.60 //ALTO
nBot := 20.00 //FIN ANCHO
aCoord1 := oPrn:Cmtr2Pix( @nFil, @nCol )
aCoord2 := oPrn:Cmtr2Pix( @nTop, @nBot )
oPrn:Box ( nFil, nCol, nTop, nBot, oPen1 )
oPrn:CmSay (19.20, 1.10, 'Cod.', oFont2 )
oPrn:CmSay (19.20, 2.10, 'Concepto', oFont2 )
oPrn:CmSay (19.20, 8.10, 'Hs/Dias/%', oFont2 )
oPrn:CmSay (19.20,11.10, 'Haberes', oFont2 )
oPrn:CmSay (19.20,16.10, 'Deducciones', oFont2 )
///reacuadro donde van datos del Sueldo
nFil := 5.00 //arriba
nCol := 1.00 //izquierda
nTop := 10.50 //FIN ALTO
nBot := 2.00 //FIN ANCHO
aCoord1 := oPrn:Cmtr2Pix( @nFil, @nCol )
aCoord2 := oPrn:Cmtr2Pix( @nTop, @nBot )
oPrn:Box ( nFil, nCol, nTop, nBot, oPen1 )
///reacuadro donde van datos del Sueldo DUPLICADO
nFil := 19.00 //arriba
nCol := 1.00 //izquierda
nTop := 24.50 //FIN ALTO
nBot := 2.00 //FIN ANCHO
aCoord1 := oPrn:Cmtr2Pix( @nFil, @nCol )
aCoord2 := oPrn:Cmtr2Pix( @nTop, @nBot )
oPrn:Box ( nFil, nCol, nTop, nBot, oPen1 )
///reacuadro donde van datos del Sueldo
nFil := 5.00 //arriba
nCol := 2.00 //izquierda
nTop := 10.50 //FIN ALTO
nBot := 8.00 //FIN ANCHO
aCoord1 := oPrn:Cmtr2Pix( @nFil, @nCol )
aCoord2 := oPrn:Cmtr2Pix( @nTop, @nBot )
oPrn:Box ( nFil, nCol, nTop, nBot, oPen1 )
///reacuadro donde van datos del Sueldo DUPLICADO
nFil := 19.00 //arriba
nCol := 2.00 //izquierda
nTop := 24.50 //FIN ALTO
nBot := 8.00 //FIN ANCHO
aCoord1 := oPrn:Cmtr2Pix( @nFil, @nCol )
aCoord2 := oPrn:Cmtr2Pix( @nTop, @nBot )
oPrn:Box ( nFil, nCol, nTop, nBot, oPen1 )
///reacuadro donde van datos del Sueldo
nFil := 5.00 //arriba
nCol := 8.00 //izquierda
nTop := 10.50 //FIN ALTO
nBot := 10.00 //FIN ANCHO
aCoord1 := oPrn:Cmtr2Pix( @nFil, @nCol )
aCoord2 := oPrn:Cmtr2Pix( @nTop, @nBot )
oPrn:Box ( nFil, nCol, nTop, nBot, oPen1 )
///reacuadro donde van datos del Sueldo DUPLICADO
nFil := 19.00 //arriba
nCol := 8.00 //izquierda
nTop := 24.50 //FIN ALTO
nBot := 10.00 //FIN ANCHO
aCoord1 := oPrn:Cmtr2Pix( @nFil, @nCol )
aCoord2 := oPrn:Cmtr2Pix( @nTop, @nBot )
oPrn:Box ( nFil, nCol, nTop, nBot, oPen1 )
///reacuadro donde van datos del Sueldo
nFil := 5.00 //arriba
nCol := 10.00 //izquierda
nTop := 10.50 //FIN ALTO
nBot := 15.00 //FIN ANCHO
aCoord1 := oPrn:Cmtr2Pix( @nFil, @nCol )
aCoord2 := oPrn:Cmtr2Pix( @nTop, @nBot )
oPrn:Box ( nFil, nCol, nTop, nBot, oPen1 )
///reacuadro donde van datos del Sueldo DUPLICADO
nFil := 19.00 //arriba
nCol := 10.00 //izquierda
nTop := 24.50 //FIN ALTO
nBot := 15.00 //FIN ANCHO
aCoord1 := oPrn:Cmtr2Pix( @nFil, @nCol )
aCoord2 := oPrn:Cmtr2Pix( @nTop, @nBot )
oPrn:Box ( nFil, nCol, nTop, nBot, oPen1 )
///reacuadro donde van datos del Sueldo
nFil := 5.00 //arriba
nCol := 15.00 //izquierda
nTop := 10.50 //FIN ALTO
nBot := 20.00 //FIN ANCHO
aCoord1 := oPrn:Cmtr2Pix( @nFil, @nCol )
aCoord2 := oPrn:Cmtr2Pix( @nTop, @nBot )
oPrn:Box ( nFil, nCol, nTop, nBot, oPen1 )
///reacuadro donde van datos del Sueldo DUPLICADO
nFil := 19.00 //arriba
nCol := 15.00 //izquierda
nTop := 24.50 //FIN ALTO
nBot := 20.00 //FIN ANCHO
aCoord1 := oPrn:Cmtr2Pix( @nFil, @nCol )
aCoord2 := oPrn:Cmtr2Pix( @nTop, @nBot )
oPrn:Box ( nFil, nCol, nTop, nBot, oPen1 )
///subtotales
nFil := 10.60 //arriba
nCol := 10.00 //izquierda
nTop := 11.10 //FIN ALTO
nBot := 15.00 //FIN ANCHO
aCoord1 := oPrn:Cmtr2Pix( @nFil, @nCol )
aCoord2 := oPrn:Cmtr2Pix( @nTop, @nBot )
oPrn:Box ( nFil, nCol, nTop, nBot, oPen1 )
oPrn:CmSay ( 10.70, 8.10, 'Totales', oFont1 )
///subtotales DUPLICADO
nFil := 24.60 //arriba
nCol := 10.00 //izquierda
nTop := 25.10 //FIN ALTO
nBot := 15.00 //FIN ANCHO
aCoord1 := oPrn:Cmtr2Pix( @nFil, @nCol )
aCoord2 := oPrn:Cmtr2Pix( @nTop, @nBot )
oPrn:Box ( nFil, nCol, nTop, nBot, oPen1 )
oPrn:CmSay ( 24.70, 8.10, 'Totales', oFont1 )
///subtotales
nFil := 10.60 //arriba
nCol := 15.00 //izquierda
nTop := 11.10 //FIN ALTO
nBot := 20.00 //FIN ANCHO
aCoord1 := oPrn:Cmtr2Pix( @nFil, @nCol )
aCoord2 := oPrn:Cmtr2Pix( @nTop, @nBot )
oPrn:Box ( nFil, nCol, nTop, nBot, oPen1 )
///subtotales DUPLICADO
nFil := 24.60 //arriba
nCol := 15.00 //izquierda
nTop := 25.10 //FIN ALTO
nBot := 20.00 //FIN ANCHO
aCoord1 := oPrn:Cmtr2Pix( @nFil, @nCol )
aCoord2 := oPrn:Cmtr2Pix( @nTop, @nBot )
oPrn:Box ( nFil, nCol, nTop, nBot, oPen1 )
///total neto
nFil := 11.20 //arriba
nCol := 15.00 //izquierda
nTop := 11.70 //FIN ALTO
nBot := 20.00 //FIN ANCHO
aCoord1 := oPrn:Cmtr2Pix( @nFil, @nCol )
aCoord2 := oPrn:Cmtr2Pix( @nTop, @nBot )
oPrn:Box ( nFil, nCol, nTop, nBot, oPen1 )
oPrn:CmSay ( 11.30, 12.00, 'Total NETO', oFont2 )
///total neto DUPLICADO
nFil := 25.20 //arriba
nCol := 15.00 //izquierda
nTop := 25.70 //FIN ALTO
nBot := 20.00 //FIN ANCHO
aCoord1 := oPrn:Cmtr2Pix( @nFil, @nCol )
aCoord2 := oPrn:Cmtr2Pix( @nTop, @nBot )
oPrn:Box ( nFil, nCol, nTop, nBot, oPen1 )
oPrn:CmSay ( 25.30, 12.00, 'Total NETO', oFont2 )
///datos ley u ultimo deposito
nFil := 10.60 //arriba
nCol := 1.00 //izquierda
nTop := 12.10 //FIN ALTO
nBot := 8.00 //FIN ANCHO
aCoord1 := oPrn:Cmtr2Pix( @nFil, @nCol )
aCoord2 := oPrn:Cmtr2Pix( @nTop, @nBot )
oPrn:Box ( nFil, nCol, nTop, nBot, oPen1 )
///datos ley u ultimo deposito DUPLICADO
nFil := 24.60 //arriba
nCol := 1.00 //izquierda
nTop := 26.10 //FIN ALTO
nBot := 8.00 //FIN ANCHO
aCoord1 := oPrn:Cmtr2Pix( @nFil, @nCol )
aCoord2 := oPrn:Cmtr2Pix( @nTop, @nBot )
oPrn:Box ( nFil, nCol, nTop, nBot, oPen1 )
*/
///son pesos en letras
nFil := 12.20 //arriba
nCol := 1.00 //izquierda
nTop := 12.70 //FIN ALTO
nBot := 20.00 //FIN ANCHO
aCoord1 := oPrn:Cmtr2Pix( @nFil, @nCol )
aCoord2 := oPrn:Cmtr2Pix( @nTop, @nBot )
oPrn:Box ( nFil, nCol, nTop, nBot, oPen1 )
///son pesos en letras DUPLICADO
nFil := 26.20 //arriba
nCol := 1.00 //izquierda
nTop := 26.70 //FIN ALTO
nBot := 20.00 //FIN ANCHO
aCoord1 := oPrn:Cmtr2Pix( @nFil, @nCol )
aCoord2 := oPrn:Cmtr2Pix( @nTop, @nBot )
oPrn:Box ( nFil, nCol, nTop, nBot, oPen1 )
///Recibi Conforme y Firma Empleado y Empleador
nFil := 12.80 //arriba
nCol := 1.00 //izquierda
nTop := 14.30 //FIN ALTO
nBot := 12.00 //FIN ANCHO
aCoord1 := oPrn:Cmtr2Pix( @nFil, @nCol )
aCoord2 := oPrn:Cmtr2Pix( @nTop, @nBot )
oPrn:Box ( nFil, nCol, nTop, nBot, oPen1 )
oPrn:CmSay ( 12.90, 1.10, 'Recibi conforme el importe de esta liquidacion en pago', oFont1 )
oPrn:CmSay ( 13.40, 1.10, 'a mi remuneracion correspondiente al periodo indicado y', oFont1 )
oPrn:CmSay ( 13.90, 1.10, 'duplicado de la misma conforme a la ley vigente', oFont1 )
///Recibi Conforme y Firma Empleado y Empleador DUPLICADO
nFil := 26.80 //arriba
nCol := 1.00 //izquierda
nTop := 28.30 //FIN ALTO
nBot := 12.00 //FIN ANCHO
aCoord1 := oPrn:Cmtr2Pix( @nFil, @nCol )
aCoord2 := oPrn:Cmtr2Pix( @nTop, @nBot )
oPrn:Box ( nFil, nCol, nTop, nBot, oPen1 )
oPrn:CmSay ( 26.90, 1.10, 'Recibi conforme el importe de esta liquidacion en pago', oFont1 )
oPrn:CmSay ( 27.40, 1.10, 'a mi remuneracion correspondiente al periodo indicado y', oFont1 )
oPrn:CmSay ( 27.90, 1.10, 'duplicado de la misma conforme a la ley vigente', oFont1 )
*/
///Firma del Empleado
nFil := 12.80 //arriba
nCol := 12.10 //izquierda
nTop := 14.30 //FIN ALTO
nBot := 20.00 //FIN ANCHO
aCoord1 := oPrn:Cmtr2Pix( @nFil, @nCol )
aCoord2 := oPrn:Cmtr2Pix( @nTop, @nBot )
oPrn:Box ( nFil, nCol, nTop, nBot, oPen1 )
oPrn:CmSay ( 13.30, 14.35, '__________________', oFont1 )
oPrn:CmSay ( 13.80, 14.35, 'FIRMA DEL EMPLEADO', oFont2 )
///Firma del Empleado DUPLICADO
nFil := 26.80 //arriba
nCol := 12.10 //izquierda
nTop := 28.30 //FIN ALTO
nBot := 20.00 //FIN ANCHO
aCoord1 := oPrn:Cmtr2Pix( @nFil, @nCol )
aCoord2 := oPrn:Cmtr2Pix( @nTop, @nBot )
oPrn:Box ( nFil, nCol, nTop, nBot, oPen1 )
oPrn:CmSay ( 27.30, 14.35, '___________________', oFont1 )
oPrn:CmSay ( 27.80, 14.35, 'FIRMA del EMPLEADOR', oFont2 )
//oPrn:CmSay ( 2.80, 1.10, strzero(Arg1, 4) , oFont1 )
oPrn:CmSay ( 2.80, 1.10, strzero(person->pm_legajo, 4) , oFont1 )
oPrn:CmSay ( 2.80, 3.50, OemToAnsi(person->pm_nombre), oFont1 )
oPrn:CmSay ( 2.80, 9.50, person->pm_cuil , oFont1 )
oPrn:CmSay ( 2.80,12.00, Str(wsjo, 12, 2) , oFont1 )
oPrn:CmSay ( 2.80,16.50, dtoc(person->pm_fingre) , oFont1 )
//DUPLICADO
//oPrn:CmSay (19.80, 1.10, strzero(Arg1, 4) , oFont1 )
oPrn:CmSay (17.60, 1.10, strzero(person->pm_legajo, 4) , oFont1 )
oPrn:CmSay (17.60, 3.50, OemToAnsi(person->pm_nombre), oFont1 )
oPrn:CmSay (17.60, 9.50, person->pm_cuil , oFont1 )
oPrn:CmSay (17.60,12.00, Str(wsjo, 12, 2) , oFont1 )
oPrn:CmSay (17.60,16.50, dtoc(person->pm_fingre) , oFont1 )
oPrn:CmSay ( 3.30, 1.10, 'Categoria: ' + Local20 , oFont1 )
oPrn:CmSay ( 3.30,13.60, 'Periodo de Pago: ' + param->pr_leye , oFont1 )
//DUPLICADO
oPrn:CmSay (18.10, 1.10, 'Categoria: ' + Local20 , oFont1 )
oPrn:CmSay (18.10,13.60, 'Periodo de Pago: ' + param->pr_leye , oFont1 )
If Arg3=='S'
oPrn:CmSay ( 3.80,6.10, 'Antiguedad Docente: ' + + waa +' Años /' + wmm + ' Meses' , oFont1 )
//DUPLICADO
oPrn:CmSay ( 18.60,6.10, 'Antiguedad Docente: ' + + waa +' Años /' + wmm + ' Meses' , oFont1 )
Endif
oPrn:CmSay ( 3.80,13.60, 'Fecha de Pago..: ' + dtoc(param->pr_fepago) , oFont1 )
//DUPLICADO
oPrn:CmSay (18.60,13.60, 'Fecha de Pago..: ' + dtoc(param->pr_fepago) , oFont1 )
if !empty(person->pm_contrat)
//oPrn:CmSay ( 3.80, 1.10, 'Cuenta Sueldos: ' + SubStr(person->pm_contrat, 1, 6) + "-" +SubStr(person->pm_contrat, 7, 1) , oFont1 )
oPrn:CmSay ( 3.80, 1.10, 'Cuenta Sueldos:' + SubStr(person->pm_contrat, 1, 3) + "-" +SubStr(person->pm_contrat, 4, 5)+ "-" +SubStr(person->pm_contrat, 9, 1) , oFont1 )
//DUPLICADO
//oPrn:CmSay (18.60, 1.10, 'Cuenta Sueldos: ' + SubStr(person->pm_contrat, 1, 6) + "-" +SubStr(person->pm_contrat, 7, 1) , oFont1 )
oPrn:CmSay ( 18.60, 1.10, 'Cuenta Sueldos:' + SubStr(person->pm_contrat, 1, 3) + "-" +SubStr(person->pm_contrat, 4, 5)+ "-" +SubStr(person->pm_contrat, 9, 1) , oFont1 )
else
oPrn:CmSay ( 3.80, 1.10, 'Efectivo' , oFont1 )
//DUPLICADO
oPrn:CmSay (18.60, 1.10, 'Efectivo' , oFont1 )
endif
wd1:= strzero(Day(person->pm_fingre), 2)
wm1:= strzero(Month(person->pm_fingre), 2)
wa1:= Str(Year(person->pm_fingre), 4)
oPrn:CmSay ( 10.70, 1.10, 'Art. 12 Ley 17250', oFont2 )
oPrn:CmSay ( 10.70, 5.00, 'Periodo: ' + param->pr_lapso, oFont1 )
//oPrn:CmSay ( 13.70, 1.10, 'Periodo: ' + param->pr_lapso, oFont1 )
oPrn:CmSay ( 11.20, 1.10, 'Banco: ' + alltrim(param->pr_banco), oFont1 )
oPrn:CmSay ( 11.70, 1.10, 'Fecha Deposito Ap.y Ctr.: ' + dtoc(param->pr_feudep) , oFont1 )
//oPrn:CmSay ( 14.20, 1.10, 'Banco/F.Dep.: ' + alltrim(param->pr_banco) + ' / ' + dtoc(param->pr_feudep) , oFont1 )
//DUPLICADO
oPrn:CmSay ( 24.70, 1.10, 'Art. 12 Ley 17250', oFont2 )
oPrn:CmSay ( 24.70, 5.00, 'Periodo: ' + param->pr_lapso, oFont1 )
//oPrn:CmSay ( 13.70, 1.10, 'Periodo: ' + param->pr_lapso, oFont1 )
oPrn:CmSay ( 25.20, 1.10, 'Banco: ' + alltrim(param->pr_banco), oFont1 )
oPrn:CmSay ( 25.70, 1.10, 'Fecha Deposito Ap.y Ctr.: ' + dtoc(param->pr_feudep) , oFont1 )
//oPrn:CmSay ( 14.20, 1.10, 'Banco/F.Dep.: ' + alltrim(param->pr_banco) + ' / ' + dtoc(param->pr_feudep) , oFont1 )
//oPrn:CmSay ( 30.70, 1.10, 'Periodo: ' + param->pr_lapso, oFont1 )
//oPrn:CmSay ( 31.20, 1.10, 'Banco/F.Dep.: ' + alltrim(param->pr_banco) + ' / ' + dtoc(param->pr_feudep) , oFont1 )
Local9:= 0
Local10:= 0
tot_sal:= 0
Local7:= .T.
Local8:= 0
netopatac:=0
//Do While (re_legajo = Arg1 .AND. !EOF())
Do While (re_legajo = person->pm_legajo .AND. !EOF())
If (right(Str(re_concep, 4), 3) != "999" .AND. (re_valor != 0 .OR. re_vunit != 0) .AND. Left(Str(re_concep, 4), 1) != "8")
Local2:= Val(right(Str(re_concep, 4), 3))
Local21:= ""
Local22:= 1
If (concepto->(dbSeek(Local2)))
If (concepto->cp_tipo = "N")
//Local21:= Local21 + strzero(Local2, 3) + Space(3) + concepto->cp_descrip
Local21:= Local21 + strzero(Local2, 3) + Space(3) + OemToAnsi(concepto->cp_descrip)
If (concepto->cp_valid != Space(8))
If (re_vunit == 0)
Local21:= Local21 + Space(21)
Else
stunit:= Transform(Abs(re_vunit), "@E 99.99") + " " + concepto->cp_valdes
If (re_vunit - Int(re_vunit) == 0)
stunit:= Left(Str(Abs(re_vunit), 10, 4), 5) + " " + concepto->cp_valdes
EndIf
Local21:= Local21 + Space(10) + stunit
EndIf
Else
Local21:= Local21 + Space(21)
EndIf
Local22:= re_valor
If (concepto->cp_agrup != 4 .AND. concepto->cp_agrup != 5) ///son Haberes
Local21:= Local21 + Space(10) + Transform(Round(Local22, 2), "@E 999,999.99")
If (concepto->cp_agrup = 6 .OR. concepto->cp_agrup = 7)
tot_sal:= tot_sal + Local22
Else
Local9:= Local9 + Local22
EndIf ///son Deducciones
Else
Local21:= Local21 + Space(35) + Transform(Round(Local22, 2), "@E 999,999.99")
Local10:= Local10 + Local22
EndIf
Else
Local22:= 0
EndIf
Else
Local22:= 0
EndIf
If (Local22 != 0)
If (Local7)
oPrn:CmSay ( Fila, 1.10, Local21 , oFont1 )
//DUPLICADO
oPrn:CmSay ( Fila2, 1.10, Local21 , oFont1 )
Local8:= Local8 + 1
Local7:= .F.
Else
//? Local21
oPrn:CmSay ( Fila, 1.10,Local21, oFont1 )
//DUPLICADO
oPrn:CmSay ( Fila2, 1.10, Local21 , oFont1 )
Local8:= Local8 + 1
EndIf
Fila=Fila +0.5
Fila2=Fila2 +0.5
CantCon++
If CantCon>11
MsgAlert('Este Recibo Se Debe Imprimir en Hoja Oficio'+CRLF+'Empleado: ' + strzero(person->pm_legajo, 4) + ' '+OemToAnsi(person->pm_nombre) ,'Error')
EndIf
EndIf
EndIf
Select 1
dbSkip()
EndDo
// oPrn:CmSay ( 15.20, 11, Transform(Round(Local9 + tot_sal, 2), "@E 999,999.99") + Space(10) + Transform(Round(Local10, 2), "@E 999,999.99")), oFont1 )
oPrn:CmSay ( 10.70, 11.50, Transform(Round(Local9 + tot_sal, 2), "@E 999,999.99") , oFont1 )
oPrn:CmSay ( 10.70, 16.50, Transform(Round(Local10,2), "@E 999,999.99"), oFont1 )
oPrn:CmSay ( 11.30, 16.50, Transform(Round(Local9 + tot_sal - Local10, 2), "@E 999,999.99"), oFont2 )
//DUPLICADO
oPrn:CmSay ( 24.70, 11.50, Transform(Round(Local9 + tot_sal, 2), "@E 999,999.99") , oFont1 )
oPrn:CmSay ( 24.70, 16.50, Transform(Round(Local10,2), "@E 999,999.99"), oFont1 )
oPrn:CmSay ( 25.30, 16.50, Transform(Round(Local9 + tot_sal - Local10, 2), "@E 999,999.99"), oFont2 )
letras:= conv_num(Abs(Local9 + tot_sal - Local10))
wtt:= Local9 + tot_sal - Local10
wcent:= (wtt - Val(Left(strzero(wtt, 13, 2), 10))) * 100
centavos:= ""
If (wcent != 0)
centavos:= " Con " + Str(wcent, 2) + " Ctvos."
EndIf
letras:= letras + centavos
If (Len(letras) > 80)
MsgAlert('Este Recibo Se Debe Imprimir en Hoja Oficio'+CRLF+'Empleado: ' + strzero(person->pm_legajo, 4) + ' '+OemToAnsi(person->pm_nombre) ,'Error')
l1:= Left(letras, 80)
il:= 80
Do While (SubStr(l1, il, 1) != " ")
il:= il - 1
EndDo
let1:= Left(letras, il) + Space(80 - il)
let2:= SubStr(letras, il + 1, Len(letras) - il)
oPrn:CmSay ( 12.30, 1.10, 'Son Pesos: ' + let1 , oFont1 )
oPrn:CmSay ( 12.80, 1.10, 'Son Pesos: ' + let2 , oFont1 )
//DUPLICADO
oPrn:CmSay ( 26.30, 1.10, 'Son Pesos: ' + let1 , oFont1 )
oPrn:CmSay ( 26.80, 1.10, 'Son Pesos: ' + let2 , oFont1 )
Else
oPrn:CmSay ( 12.30, 1.10, 'Son Pesos: ' + letras , oFont1 )
//DUPLICADO
oPrn:CmSay ( 26.30, 1.10, 'Son Pesos: ' + letras , oFont1 )
EndIf
ENDPAGE
// RECIBOFW(person->pm_legajo, Arg2, Arg4)
Next
EndIf
EndIf
person->(dbSkip())
EndDo
ENDPRINT
oFont1:End()
oFont2:End()
oFont3:End()
oPen1:End()
oPen2:End()
Re: Ayuda Imprimir Liquidacion de Sueldo
nageswaragunupudi wrote:What is your FWH version?
If you are using any recent version, there many improved methods, and now cmSay() is an obsolete method.
Mr. Roa
Muy buenas tardes.
Uso ver FWH 17.09 - Harbour
Saludos.
Antonio
FWH 22.10 - HARBOUR - PELLES C
Re: Ayuda Imprimir Liquidacion de Sueldo
postinelli wrote:Buenas
te paso como imprimo yo los recibos de sueldo en laser/tinta
aqui configurado para A4, original y duplicado en la misma hoja
si no alcanza se puede imprimir en LegalCode: Select all | Expand
TPreview():lListViewHide := .T.
PRINT oPrn NAME "Recibo de Sueldo en PDF" PREVIEW
oPrn:SetPage(9) // A4
PrnPortrait() ///vertical
IF Empty( oPrn:hDC )
MsgStop( OemToAnsi( "¡ No hay IMPRESORA para imprimir !" ))
Return NIL
EndIF
nPixVert := oPrn:nVertRes()
nPixHorz := oPrn:nHorzRes()
IF nPixHorz < 3000
nAnch := 8913290
nAlto := 12255652
nAncho_1 := 4
nAncho_2 := 7
ELSE
nAnch := 8913494
nAlto := 12256000
nAncho_1 := 6
nAncho_2 := 11
EndIf
DEFINE FONT oFont1 NAME "Courier New" SIZE 0, -9 OF oPrn //Negrita
DEFINE FONT oFont2 NAME "Courier New" SIZE 0, -9 BOLD OF oPrn //Negrita
DEFINE FONT oFont3 NAME "Arial" SIZE 0, -9 OF oPrn
DEFINE PEN oPen1 WIDTH nAncho_1
DEFINE PEN oPen2 WIDTH nAncho_2
person->(dbSeek(Desde))
Do While (!person->(EOF()) .AND. person->pm_legajo <= Hasta)
Antig2()
If (person->pm_fegre = CToD(Space(8)))
Fila=5.10
Fila2=19.10
CantCon=0
PAGE
nFil := 1.00 //arriba
nCol := 1.00 //izquierda
nTop := 2.00 //ALTO
nBot := 20.00 //ANCHO
aCoord1 := oPrn:Cmtr2Pix( @nFil, @nCol )
aCoord2 := oPrn:Cmtr2Pix( @nTop, @nBot )
oPrn:Box ( nFil, nCol, nTop, nBot, oPen1 )
//oPrn:CmSay ( 1.10, 1.10, 'Empleador: '+empresa->em_nombre + ' Razon Social: Ostinelli Hnos. S.H.', oFont2 )
oPrn:CmSay ( 1.10, 1.10, 'Empleador: '+ OemToAnsi(empresa->em_nombre) , oFont2 )
oPrn:CmSay ( 1.10, 14.10,'C.U.I.T. Nº ' + empresa->em_cuit, oFont2 )
oPrn:CmSay ( 1.60, 1.10, 'Domicilio: '+ OemToAnsi(alltrim(empresa->em_dire)) + ' / LOCALIDAD: '+empresa->em_loca, oFont2 )
oPrn:CmSay ( 1.60, 14.10,'DiEGeP Nº ' + empresa->em_ninsc, oFont2 )
///recuadro superior que dice los datos del empleador //DEL DUPLICADO
nFil := 15.80 //arriba
nCol := 1.00 //izquierda
nTop := 16.80 //ALTO
nBot := 20.00 //ANCHO
aCoord1 := oPrn:Cmtr2Pix( @nFil, @nCol )
aCoord2 := oPrn:Cmtr2Pix( @nTop, @nBot )
oPrn:Box ( nFil, nCol, nTop, nBot, oPen1 )
//oPrn:CmSay ( 1.10, 1.10, 'Empleador: '+empresa->em_nombre + ' Razon Social: Ostinelli Hnos. S.H.', oFont2 )
oPrn:CmSay ( 15.90, 1.10, 'Empleador: '+ OemToAnsi(empresa->em_nombre) , oFont2 )
oPrn:CmSay ( 15.90, 14.10,'C.U.I.T. Nº ' + empresa->em_cuit, oFont2 )
oPrn:CmSay ( 16.40, 1.10, 'Domicilio: '+ OemToAnsi(alltrim(empresa->em_dire)) + ' / LOCALIDAD: '+empresa->em_loca, oFont2 )
oPrn:CmSay ( 16.40, 14.10,'DiEGeP Nº ' + empresa->em_ninsc, oFont2 )
///reacuadro titulo donde van datos de Empleado
nFil := 2.10 //arriba
nCol := 1.00 //izquierda
nTop := 2.60 //ALTO
nBot := 20.00 //FIN ANCHO
aCoord1 := oPrn:Cmtr2Pix( @nFil, @nCol )
aCoord2 := oPrn:Cmtr2Pix( @nTop, @nBot )
oPrn:Box ( nFil, nCol, nTop, nBot, oPen1 )
oPrn:CmSay ( 2.20, 1.10, 'Legajo', oFont2 )
oPrn:CmSay ( 2.20, 3.50, 'Apellido y Nombres', oFont2 )
oPrn:CmSay ( 2.20, 10.00, 'C.U.I.L.', oFont2 )
oPrn:CmSay ( 2.20, 12.10, 'Rem. Asignada', oFont2 )
oPrn:CmSay ( 2.20, 16.00, 'Fecha de Ingreso', oFont2 )
///reacuadro titulo donde van datos de Empleado DUPLICADO
nFil := 16.90 //arriba
nCol := 1.00 //izquierda
nTop := 17.40 //ALTO
nBot := 20.00 //FIN ANCHO
aCoord1 := oPrn:Cmtr2Pix( @nFil, @nCol )
aCoord2 := oPrn:Cmtr2Pix( @nTop, @nBot )
oPrn:Box ( nFil, nCol, nTop, nBot, oPen1 )
oPrn:CmSay (17.00, 1.10, 'Legajo', oFont2 )
oPrn:CmSay (17.00, 3.50, 'Apellido y Nombres', oFont2 )
oPrn:CmSay (17.00, 10.00, 'C.U.I.L.', oFont2 )
oPrn:CmSay (17.00, 12.10, 'Rem. Asignada', oFont2 )
oPrn:CmSay (17.00, 16.00, 'Fecha de Ingreso', oFont2 )
///reacuadro donde van datos de Empleado
nFil := 2.70 //arriba
nCol := 1.00 //izquierda
nTop := 4.20 //ALTO
nBot := 20.00 //FIN ANCHO
aCoord1 := oPrn:Cmtr2Pix( @nFil, @nCol )
aCoord2 := oPrn:Cmtr2Pix( @nTop, @nBot )
oPrn:Box ( nFil, nCol, nTop, nBot, oPen1 )
///reacuadro donde van datos de Empleado DUPLICADO
nFil := 17.50 //arriba
nCol := 1.00 //izquierda
nTop := 19.00 //ALTO
nBot := 20.00 //FIN ANCHO
aCoord1 := oPrn:Cmtr2Pix( @nFil, @nCol )
aCoord2 := oPrn:Cmtr2Pix( @nTop, @nBot )
oPrn:Box ( nFil, nCol, nTop, nBot, oPen1 )
///reacuadro donde van datos de la Fecha y Periodo de Pago
nFil := 3.20 //arriba
nCol := 13.50 //izquierda
nTop := 4.20 //FIN ALTO
nBot := 20.00 //FIN ANCHO
aCoord1 := oPrn:Cmtr2Pix( @nFil, @nCol )
aCoord2 := oPrn:Cmtr2Pix( @nTop, @nBot )
oPrn:Box ( nFil, nCol, nTop, nBot, oPen1 )
///reacuadro donde van datos de la Fecha y Periodo de Pago DUPLICADO
nFil := 18.00 //arriba
nCol := 13.50 //izquierda
nTop := 19.00 //FIN ALTO
nBot := 20.00 //FIN ANCHO
aCoord1 := oPrn:Cmtr2Pix( @nFil, @nCol )
aCoord2 := oPrn:Cmtr2Pix( @nTop, @nBot )
oPrn:Box ( nFil, nCol, nTop, nBot, oPen1 )
///reacuadro titulo donde van datos de Empleado
nFil := 4.30 //arriba
nCol := 1.00 //izquierda
nTop := 4.90 //ALTO
nBot := 20.00 //FIN ANCHO
aCoord1 := oPrn:Cmtr2Pix( @nFil, @nCol )
aCoord2 := oPrn:Cmtr2Pix( @nTop, @nBot )
oPrn:Box ( nFil, nCol, nTop, nBot, oPen1 )
oPrn:CmSay ( 4.40, 1.10, 'Cod.', oFont2 )
oPrn:CmSay ( 4.40, 2.10, 'Concepto', oFont2 )
oPrn:CmSay ( 4.40, 8.10, 'Hs/Dias/%', oFont2 )
oPrn:CmSay ( 4.40,11.10, 'Haberes', oFont2 )
oPrn:CmSay ( 4.40,16.10, 'Deducciones', oFont2 )
///reacuadro titulo donde van datos de Empleado DUPLICADO
nFil := 19.10 //arriba
nCol := 1.00 //izquierda
nTop := 19.60 //ALTO
nBot := 20.00 //FIN ANCHO
aCoord1 := oPrn:Cmtr2Pix( @nFil, @nCol )
aCoord2 := oPrn:Cmtr2Pix( @nTop, @nBot )
oPrn:Box ( nFil, nCol, nTop, nBot, oPen1 )
oPrn:CmSay (19.20, 1.10, 'Cod.', oFont2 )
oPrn:CmSay (19.20, 2.10, 'Concepto', oFont2 )
oPrn:CmSay (19.20, 8.10, 'Hs/Dias/%', oFont2 )
oPrn:CmSay (19.20,11.10, 'Haberes', oFont2 )
oPrn:CmSay (19.20,16.10, 'Deducciones', oFont2 )
///reacuadro donde van datos del Sueldo
nFil := 5.00 //arriba
nCol := 1.00 //izquierda
nTop := 10.50 //FIN ALTO
nBot := 2.00 //FIN ANCHO
aCoord1 := oPrn:Cmtr2Pix( @nFil, @nCol )
aCoord2 := oPrn:Cmtr2Pix( @nTop, @nBot )
oPrn:Box ( nFil, nCol, nTop, nBot, oPen1 )
///reacuadro donde van datos del Sueldo DUPLICADO
nFil := 19.00 //arriba
nCol := 1.00 //izquierda
nTop := 24.50 //FIN ALTO
nBot := 2.00 //FIN ANCHO
aCoord1 := oPrn:Cmtr2Pix( @nFil, @nCol )
aCoord2 := oPrn:Cmtr2Pix( @nTop, @nBot )
oPrn:Box ( nFil, nCol, nTop, nBot, oPen1 )
///reacuadro donde van datos del Sueldo
nFil := 5.00 //arriba
nCol := 2.00 //izquierda
nTop := 10.50 //FIN ALTO
nBot := 8.00 //FIN ANCHO
aCoord1 := oPrn:Cmtr2Pix( @nFil, @nCol )
aCoord2 := oPrn:Cmtr2Pix( @nTop, @nBot )
oPrn:Box ( nFil, nCol, nTop, nBot, oPen1 )
///reacuadro donde van datos del Sueldo DUPLICADO
nFil := 19.00 //arriba
nCol := 2.00 //izquierda
nTop := 24.50 //FIN ALTO
nBot := 8.00 //FIN ANCHO
aCoord1 := oPrn:Cmtr2Pix( @nFil, @nCol )
aCoord2 := oPrn:Cmtr2Pix( @nTop, @nBot )
oPrn:Box ( nFil, nCol, nTop, nBot, oPen1 )
///reacuadro donde van datos del Sueldo
nFil := 5.00 //arriba
nCol := 8.00 //izquierda
nTop := 10.50 //FIN ALTO
nBot := 10.00 //FIN ANCHO
aCoord1 := oPrn:Cmtr2Pix( @nFil, @nCol )
aCoord2 := oPrn:Cmtr2Pix( @nTop, @nBot )
oPrn:Box ( nFil, nCol, nTop, nBot, oPen1 )
///reacuadro donde van datos del Sueldo DUPLICADO
nFil := 19.00 //arriba
nCol := 8.00 //izquierda
nTop := 24.50 //FIN ALTO
nBot := 10.00 //FIN ANCHO
aCoord1 := oPrn:Cmtr2Pix( @nFil, @nCol )
aCoord2 := oPrn:Cmtr2Pix( @nTop, @nBot )
oPrn:Box ( nFil, nCol, nTop, nBot, oPen1 )
///reacuadro donde van datos del Sueldo
nFil := 5.00 //arriba
nCol := 10.00 //izquierda
nTop := 10.50 //FIN ALTO
nBot := 15.00 //FIN ANCHO
aCoord1 := oPrn:Cmtr2Pix( @nFil, @nCol )
aCoord2 := oPrn:Cmtr2Pix( @nTop, @nBot )
oPrn:Box ( nFil, nCol, nTop, nBot, oPen1 )
///reacuadro donde van datos del Sueldo DUPLICADO
nFil := 19.00 //arriba
nCol := 10.00 //izquierda
nTop := 24.50 //FIN ALTO
nBot := 15.00 //FIN ANCHO
aCoord1 := oPrn:Cmtr2Pix( @nFil, @nCol )
aCoord2 := oPrn:Cmtr2Pix( @nTop, @nBot )
oPrn:Box ( nFil, nCol, nTop, nBot, oPen1 )
///reacuadro donde van datos del Sueldo
nFil := 5.00 //arriba
nCol := 15.00 //izquierda
nTop := 10.50 //FIN ALTO
nBot := 20.00 //FIN ANCHO
aCoord1 := oPrn:Cmtr2Pix( @nFil, @nCol )
aCoord2 := oPrn:Cmtr2Pix( @nTop, @nBot )
oPrn:Box ( nFil, nCol, nTop, nBot, oPen1 )
///reacuadro donde van datos del Sueldo DUPLICADO
nFil := 19.00 //arriba
nCol := 15.00 //izquierda
nTop := 24.50 //FIN ALTO
nBot := 20.00 //FIN ANCHO
aCoord1 := oPrn:Cmtr2Pix( @nFil, @nCol )
aCoord2 := oPrn:Cmtr2Pix( @nTop, @nBot )
oPrn:Box ( nFil, nCol, nTop, nBot, oPen1 )
///subtotales
nFil := 10.60 //arriba
nCol := 10.00 //izquierda
nTop := 11.10 //FIN ALTO
nBot := 15.00 //FIN ANCHO
aCoord1 := oPrn:Cmtr2Pix( @nFil, @nCol )
aCoord2 := oPrn:Cmtr2Pix( @nTop, @nBot )
oPrn:Box ( nFil, nCol, nTop, nBot, oPen1 )
oPrn:CmSay ( 10.70, 8.10, 'Totales', oFont1 )
///subtotales DUPLICADO
nFil := 24.60 //arriba
nCol := 10.00 //izquierda
nTop := 25.10 //FIN ALTO
nBot := 15.00 //FIN ANCHO
aCoord1 := oPrn:Cmtr2Pix( @nFil, @nCol )
aCoord2 := oPrn:Cmtr2Pix( @nTop, @nBot )
oPrn:Box ( nFil, nCol, nTop, nBot, oPen1 )
oPrn:CmSay ( 24.70, 8.10, 'Totales', oFont1 )
///subtotales
nFil := 10.60 //arriba
nCol := 15.00 //izquierda
nTop := 11.10 //FIN ALTO
nBot := 20.00 //FIN ANCHO
aCoord1 := oPrn:Cmtr2Pix( @nFil, @nCol )
aCoord2 := oPrn:Cmtr2Pix( @nTop, @nBot )
oPrn:Box ( nFil, nCol, nTop, nBot, oPen1 )
///subtotales DUPLICADO
nFil := 24.60 //arriba
nCol := 15.00 //izquierda
nTop := 25.10 //FIN ALTO
nBot := 20.00 //FIN ANCHO
aCoord1 := oPrn:Cmtr2Pix( @nFil, @nCol )
aCoord2 := oPrn:Cmtr2Pix( @nTop, @nBot )
oPrn:Box ( nFil, nCol, nTop, nBot, oPen1 )
///total neto
nFil := 11.20 //arriba
nCol := 15.00 //izquierda
nTop := 11.70 //FIN ALTO
nBot := 20.00 //FIN ANCHO
aCoord1 := oPrn:Cmtr2Pix( @nFil, @nCol )
aCoord2 := oPrn:Cmtr2Pix( @nTop, @nBot )
oPrn:Box ( nFil, nCol, nTop, nBot, oPen1 )
oPrn:CmSay ( 11.30, 12.00, 'Total NETO', oFont2 )
///total neto DUPLICADO
nFil := 25.20 //arriba
nCol := 15.00 //izquierda
nTop := 25.70 //FIN ALTO
nBot := 20.00 //FIN ANCHO
aCoord1 := oPrn:Cmtr2Pix( @nFil, @nCol )
aCoord2 := oPrn:Cmtr2Pix( @nTop, @nBot )
oPrn:Box ( nFil, nCol, nTop, nBot, oPen1 )
oPrn:CmSay ( 25.30, 12.00, 'Total NETO', oFont2 )
///datos ley u ultimo deposito
nFil := 10.60 //arriba
nCol := 1.00 //izquierda
nTop := 12.10 //FIN ALTO
nBot := 8.00 //FIN ANCHO
aCoord1 := oPrn:Cmtr2Pix( @nFil, @nCol )
aCoord2 := oPrn:Cmtr2Pix( @nTop, @nBot )
oPrn:Box ( nFil, nCol, nTop, nBot, oPen1 )
///datos ley u ultimo deposito DUPLICADO
nFil := 24.60 //arriba
nCol := 1.00 //izquierda
nTop := 26.10 //FIN ALTO
nBot := 8.00 //FIN ANCHO
aCoord1 := oPrn:Cmtr2Pix( @nFil, @nCol )
aCoord2 := oPrn:Cmtr2Pix( @nTop, @nBot )
oPrn:Box ( nFil, nCol, nTop, nBot, oPen1 )
*/
///son pesos en letras
nFil := 12.20 //arriba
nCol := 1.00 //izquierda
nTop := 12.70 //FIN ALTO
nBot := 20.00 //FIN ANCHO
aCoord1 := oPrn:Cmtr2Pix( @nFil, @nCol )
aCoord2 := oPrn:Cmtr2Pix( @nTop, @nBot )
oPrn:Box ( nFil, nCol, nTop, nBot, oPen1 )
///son pesos en letras DUPLICADO
nFil := 26.20 //arriba
nCol := 1.00 //izquierda
nTop := 26.70 //FIN ALTO
nBot := 20.00 //FIN ANCHO
aCoord1 := oPrn:Cmtr2Pix( @nFil, @nCol )
aCoord2 := oPrn:Cmtr2Pix( @nTop, @nBot )
oPrn:Box ( nFil, nCol, nTop, nBot, oPen1 )
///Recibi Conforme y Firma Empleado y Empleador
nFil := 12.80 //arriba
nCol := 1.00 //izquierda
nTop := 14.30 //FIN ALTO
nBot := 12.00 //FIN ANCHO
aCoord1 := oPrn:Cmtr2Pix( @nFil, @nCol )
aCoord2 := oPrn:Cmtr2Pix( @nTop, @nBot )
oPrn:Box ( nFil, nCol, nTop, nBot, oPen1 )
oPrn:CmSay ( 12.90, 1.10, 'Recibi conforme el importe de esta liquidacion en pago', oFont1 )
oPrn:CmSay ( 13.40, 1.10, 'a mi remuneracion correspondiente al periodo indicado y', oFont1 )
oPrn:CmSay ( 13.90, 1.10, 'duplicado de la misma conforme a la ley vigente', oFont1 )
///Recibi Conforme y Firma Empleado y Empleador DUPLICADO
nFil := 26.80 //arriba
nCol := 1.00 //izquierda
nTop := 28.30 //FIN ALTO
nBot := 12.00 //FIN ANCHO
aCoord1 := oPrn:Cmtr2Pix( @nFil, @nCol )
aCoord2 := oPrn:Cmtr2Pix( @nTop, @nBot )
oPrn:Box ( nFil, nCol, nTop, nBot, oPen1 )
oPrn:CmSay ( 26.90, 1.10, 'Recibi conforme el importe de esta liquidacion en pago', oFont1 )
oPrn:CmSay ( 27.40, 1.10, 'a mi remuneracion correspondiente al periodo indicado y', oFont1 )
oPrn:CmSay ( 27.90, 1.10, 'duplicado de la misma conforme a la ley vigente', oFont1 )
*/
///Firma del Empleado
nFil := 12.80 //arriba
nCol := 12.10 //izquierda
nTop := 14.30 //FIN ALTO
nBot := 20.00 //FIN ANCHO
aCoord1 := oPrn:Cmtr2Pix( @nFil, @nCol )
aCoord2 := oPrn:Cmtr2Pix( @nTop, @nBot )
oPrn:Box ( nFil, nCol, nTop, nBot, oPen1 )
oPrn:CmSay ( 13.30, 14.35, '__________________', oFont1 )
oPrn:CmSay ( 13.80, 14.35, 'FIRMA DEL EMPLEADO', oFont2 )
///Firma del Empleado DUPLICADO
nFil := 26.80 //arriba
nCol := 12.10 //izquierda
nTop := 28.30 //FIN ALTO
nBot := 20.00 //FIN ANCHO
aCoord1 := oPrn:Cmtr2Pix( @nFil, @nCol )
aCoord2 := oPrn:Cmtr2Pix( @nTop, @nBot )
oPrn:Box ( nFil, nCol, nTop, nBot, oPen1 )
oPrn:CmSay ( 27.30, 14.35, '___________________', oFont1 )
oPrn:CmSay ( 27.80, 14.35, 'FIRMA del EMPLEADOR', oFont2 )
//oPrn:CmSay ( 2.80, 1.10, strzero(Arg1, 4) , oFont1 )
oPrn:CmSay ( 2.80, 1.10, strzero(person->pm_legajo, 4) , oFont1 )
oPrn:CmSay ( 2.80, 3.50, OemToAnsi(person->pm_nombre), oFont1 )
oPrn:CmSay ( 2.80, 9.50, person->pm_cuil , oFont1 )
oPrn:CmSay ( 2.80,12.00, Str(wsjo, 12, 2) , oFont1 )
oPrn:CmSay ( 2.80,16.50, dtoc(person->pm_fingre) , oFont1 )
//DUPLICADO
//oPrn:CmSay (19.80, 1.10, strzero(Arg1, 4) , oFont1 )
oPrn:CmSay (17.60, 1.10, strzero(person->pm_legajo, 4) , oFont1 )
oPrn:CmSay (17.60, 3.50, OemToAnsi(person->pm_nombre), oFont1 )
oPrn:CmSay (17.60, 9.50, person->pm_cuil , oFont1 )
oPrn:CmSay (17.60,12.00, Str(wsjo, 12, 2) , oFont1 )
oPrn:CmSay (17.60,16.50, dtoc(person->pm_fingre) , oFont1 )
oPrn:CmSay ( 3.30, 1.10, 'Categoria: ' + Local20 , oFont1 )
oPrn:CmSay ( 3.30,13.60, 'Periodo de Pago: ' + param->pr_leye , oFont1 )
//DUPLICADO
oPrn:CmSay (18.10, 1.10, 'Categoria: ' + Local20 , oFont1 )
oPrn:CmSay (18.10,13.60, 'Periodo de Pago: ' + param->pr_leye , oFont1 )
If Arg3=='S'
oPrn:CmSay ( 3.80,6.10, 'Antiguedad Docente: ' + + waa +' Años /' + wmm + ' Meses' , oFont1 )
//DUPLICADO
oPrn:CmSay ( 18.60,6.10, 'Antiguedad Docente: ' + + waa +' Años /' + wmm + ' Meses' , oFont1 )
Endif
oPrn:CmSay ( 3.80,13.60, 'Fecha de Pago..: ' + dtoc(param->pr_fepago) , oFont1 )
//DUPLICADO
oPrn:CmSay (18.60,13.60, 'Fecha de Pago..: ' + dtoc(param->pr_fepago) , oFont1 )
if !empty(person->pm_contrat)
//oPrn:CmSay ( 3.80, 1.10, 'Cuenta Sueldos: ' + SubStr(person->pm_contrat, 1, 6) + "-" +SubStr(person->pm_contrat, 7, 1) , oFont1 )
oPrn:CmSay ( 3.80, 1.10, 'Cuenta Sueldos:' + SubStr(person->pm_contrat, 1, 3) + "-" +SubStr(person->pm_contrat, 4, 5)+ "-" +SubStr(person->pm_contrat, 9, 1) , oFont1 )
//DUPLICADO
//oPrn:CmSay (18.60, 1.10, 'Cuenta Sueldos: ' + SubStr(person->pm_contrat, 1, 6) + "-" +SubStr(person->pm_contrat, 7, 1) , oFont1 )
oPrn:CmSay ( 18.60, 1.10, 'Cuenta Sueldos:' + SubStr(person->pm_contrat, 1, 3) + "-" +SubStr(person->pm_contrat, 4, 5)+ "-" +SubStr(person->pm_contrat, 9, 1) , oFont1 )
else
oPrn:CmSay ( 3.80, 1.10, 'Efectivo' , oFont1 )
//DUPLICADO
oPrn:CmSay (18.60, 1.10, 'Efectivo' , oFont1 )
endif
wd1:= strzero(Day(person->pm_fingre), 2)
wm1:= strzero(Month(person->pm_fingre), 2)
wa1:= Str(Year(person->pm_fingre), 4)
oPrn:CmSay ( 10.70, 1.10, 'Art. 12 Ley 17250', oFont2 )
oPrn:CmSay ( 10.70, 5.00, 'Periodo: ' + param->pr_lapso, oFont1 )
//oPrn:CmSay ( 13.70, 1.10, 'Periodo: ' + param->pr_lapso, oFont1 )
oPrn:CmSay ( 11.20, 1.10, 'Banco: ' + alltrim(param->pr_banco), oFont1 )
oPrn:CmSay ( 11.70, 1.10, 'Fecha Deposito Ap.y Ctr.: ' + dtoc(param->pr_feudep) , oFont1 )
//oPrn:CmSay ( 14.20, 1.10, 'Banco/F.Dep.: ' + alltrim(param->pr_banco) + ' / ' + dtoc(param->pr_feudep) , oFont1 )
//DUPLICADO
oPrn:CmSay ( 24.70, 1.10, 'Art. 12 Ley 17250', oFont2 )
oPrn:CmSay ( 24.70, 5.00, 'Periodo: ' + param->pr_lapso, oFont1 )
//oPrn:CmSay ( 13.70, 1.10, 'Periodo: ' + param->pr_lapso, oFont1 )
oPrn:CmSay ( 25.20, 1.10, 'Banco: ' + alltrim(param->pr_banco), oFont1 )
oPrn:CmSay ( 25.70, 1.10, 'Fecha Deposito Ap.y Ctr.: ' + dtoc(param->pr_feudep) , oFont1 )
//oPrn:CmSay ( 14.20, 1.10, 'Banco/F.Dep.: ' + alltrim(param->pr_banco) + ' / ' + dtoc(param->pr_feudep) , oFont1 )
//oPrn:CmSay ( 30.70, 1.10, 'Periodo: ' + param->pr_lapso, oFont1 )
//oPrn:CmSay ( 31.20, 1.10, 'Banco/F.Dep.: ' + alltrim(param->pr_banco) + ' / ' + dtoc(param->pr_feudep) , oFont1 )
Local9:= 0
Local10:= 0
tot_sal:= 0
Local7:= .T.
Local8:= 0
netopatac:=0
//Do While (re_legajo = Arg1 .AND. !EOF())
Do While (re_legajo = person->pm_legajo .AND. !EOF())
If (right(Str(re_concep, 4), 3) != "999" .AND. (re_valor != 0 .OR. re_vunit != 0) .AND. Left(Str(re_concep, 4), 1) != "8")
Local2:= Val(right(Str(re_concep, 4), 3))
Local21:= ""
Local22:= 1
If (concepto->(dbSeek(Local2)))
If (concepto->cp_tipo = "N")
//Local21:= Local21 + strzero(Local2, 3) + Space(3) + concepto->cp_descrip
Local21:= Local21 + strzero(Local2, 3) + Space(3) + OemToAnsi(concepto->cp_descrip)
If (concepto->cp_valid != Space(8))
If (re_vunit == 0)
Local21:= Local21 + Space(21)
Else
stunit:= Transform(Abs(re_vunit), "@E 99.99") + " " + concepto->cp_valdes
If (re_vunit - Int(re_vunit) == 0)
stunit:= Left(Str(Abs(re_vunit), 10, 4), 5) + " " + concepto->cp_valdes
EndIf
Local21:= Local21 + Space(10) + stunit
EndIf
Else
Local21:= Local21 + Space(21)
EndIf
Local22:= re_valor
If (concepto->cp_agrup != 4 .AND. concepto->cp_agrup != 5) ///son Haberes
Local21:= Local21 + Space(10) + Transform(Round(Local22, 2), "@E 999,999.99")
If (concepto->cp_agrup = 6 .OR. concepto->cp_agrup = 7)
tot_sal:= tot_sal + Local22
Else
Local9:= Local9 + Local22
EndIf ///son Deducciones
Else
Local21:= Local21 + Space(35) + Transform(Round(Local22, 2), "@E 999,999.99")
Local10:= Local10 + Local22
EndIf
Else
Local22:= 0
EndIf
Else
Local22:= 0
EndIf
If (Local22 != 0)
If (Local7)
oPrn:CmSay ( Fila, 1.10, Local21 , oFont1 )
//DUPLICADO
oPrn:CmSay ( Fila2, 1.10, Local21 , oFont1 )
Local8:= Local8 + 1
Local7:= .F.
Else
//? Local21
oPrn:CmSay ( Fila, 1.10,Local21, oFont1 )
//DUPLICADO
oPrn:CmSay ( Fila2, 1.10, Local21 , oFont1 )
Local8:= Local8 + 1
EndIf
Fila=Fila +0.5
Fila2=Fila2 +0.5
CantCon++
If CantCon>11
MsgAlert('Este Recibo Se Debe Imprimir en Hoja Oficio'+CRLF+'Empleado: ' + strzero(person->pm_legajo, 4) + ' '+OemToAnsi(person->pm_nombre) ,'Error')
EndIf
EndIf
EndIf
Select 1
dbSkip()
EndDo
// oPrn:CmSay ( 15.20, 11, Transform(Round(Local9 + tot_sal, 2), "@E 999,999.99") + Space(10) + Transform(Round(Local10, 2), "@E 999,999.99")), oFont1 )
oPrn:CmSay ( 10.70, 11.50, Transform(Round(Local9 + tot_sal, 2), "@E 999,999.99") , oFont1 )
oPrn:CmSay ( 10.70, 16.50, Transform(Round(Local10,2), "@E 999,999.99"), oFont1 )
oPrn:CmSay ( 11.30, 16.50, Transform(Round(Local9 + tot_sal - Local10, 2), "@E 999,999.99"), oFont2 )
//DUPLICADO
oPrn:CmSay ( 24.70, 11.50, Transform(Round(Local9 + tot_sal, 2), "@E 999,999.99") , oFont1 )
oPrn:CmSay ( 24.70, 16.50, Transform(Round(Local10,2), "@E 999,999.99"), oFont1 )
oPrn:CmSay ( 25.30, 16.50, Transform(Round(Local9 + tot_sal - Local10, 2), "@E 999,999.99"), oFont2 )
letras:= conv_num(Abs(Local9 + tot_sal - Local10))
wtt:= Local9 + tot_sal - Local10
wcent:= (wtt - Val(Left(strzero(wtt, 13, 2), 10))) * 100
centavos:= ""
If (wcent != 0)
centavos:= " Con " + Str(wcent, 2) + " Ctvos."
EndIf
letras:= letras + centavos
If (Len(letras) > 80)
MsgAlert('Este Recibo Se Debe Imprimir en Hoja Oficio'+CRLF+'Empleado: ' + strzero(person->pm_legajo, 4) + ' '+OemToAnsi(person->pm_nombre) ,'Error')
l1:= Left(letras, 80)
il:= 80
Do While (SubStr(l1, il, 1) != " ")
il:= il - 1
EndDo
let1:= Left(letras, il) + Space(80 - il)
let2:= SubStr(letras, il + 1, Len(letras) - il)
oPrn:CmSay ( 12.30, 1.10, 'Son Pesos: ' + let1 , oFont1 )
oPrn:CmSay ( 12.80, 1.10, 'Son Pesos: ' + let2 , oFont1 )
//DUPLICADO
oPrn:CmSay ( 26.30, 1.10, 'Son Pesos: ' + let1 , oFont1 )
oPrn:CmSay ( 26.80, 1.10, 'Son Pesos: ' + let2 , oFont1 )
Else
oPrn:CmSay ( 12.30, 1.10, 'Son Pesos: ' + letras , oFont1 )
//DUPLICADO
oPrn:CmSay ( 26.30, 1.10, 'Son Pesos: ' + letras , oFont1 )
EndIf
ENDPAGE
// RECIBOFW(person->pm_legajo, Arg2, Arg4)
Next
EndIf
EndIf
person->(dbSkip())
EndDo
ENDPRINT
oFont1:End()
oFont2:End()
oFont3:End()
oPen1:End()
oPen2:End()
Hola Postinelli.
Muchas gracias por tu gesto y ayuda.
Vere tu codigo, Mr. Roa me deja preocupado con la información que cmSay(), es una obsoleto.!!!
Muchas gracias y muchos saludos.
Antonio
FWH 22.10 - HARBOUR - PELLES C
Re: Ayuda Imprimir Liquidacion de Sueldo
Hola Postinelli.
Revise tu código, esta super, muy claro y muy bien diseñado el formato.
Mil gracias por tu ayuda.
Saludos
Antonio
Revise tu código, esta super, muy claro y muy bien diseñado el formato.
Mil gracias por tu ayuda.
Saludos
Antonio
FWH 22.10 - HARBOUR - PELLES C
- cmsoft
- Posts: 1297
- Joined: Wed Nov 16, 2005 9:14 pm
- Location: Mercedes - Bs As. Argentina
- Been thanked: 2 times
Re: Ayuda Imprimir Liquidacion de Sueldo
Hola Antonio:
Creo que lo que dice Mr. Rao es que en lugar de usar oPrn:CmSay podrías usar los comandos @ PRINT
Son bastantes mas claros (al menos para mi)
Te dejo un ejemplo
Creo que lo que dice Mr. Rao es que en lugar de usar oPrn:CmSay podrías usar los comandos @ PRINT
Son bastantes mas claros (al menos para mi)
Te dejo un ejemplo
Code: Select all | Expand
#include "Report.ch"
**************************************************************
** Impresion del recibo de pagos
FUNCTION Recibo()
LOCAL oFont, oFont1, oPrn, nRow
DEFINE FONT oFont NAME "ARIAL" SIZE config:fon,config:fon*2.5
DEFINE FONT oFont1 NAME "CALIBRI" SIZE config:fon*1.5,config:fon*4 BOLD
PRINT oPrn NAME "Recibo" PREVIEW MODAL
oPrn:SetPortrait()
oPrn:SetPage(9)
PAGE
** Con nRow puedes ir imprimiendo debajo de lo ultimo que imprimiste
@ 2, 1 PRINT TO oPrn TEXT "Nombre de la Empresa" SIZE 9,1 CM FONT oFont1 ALIGN "C" LASTROW nRow
** 2, 1 es en 2 cm de margen superior y 1 cm del margen izquierdo
** SIZE 9,1 Quiere decir que el texto lo tiene que mostrar en 9 cms de ancho por 1 de alto
** ALING "C" te alinea el texto CENTRALIZADO (L: Left, R: Right) en los 9 cms que vos le indicaste
** Siempre con el tamaño del font que estes utilizando, eso es lo bueno...
@ nRow, 01 PRINT TO oPrn TEXT "Domicilio Comercial:" SIZE 9,1 CM FONT oFont LASTROW nRow ALIGN "C"
@ nRow, 01 PRINT TO oPrn TEXT "Condicion de IVA" SIZE 9,1 CM FONT oFont LASTROW nRow ALIGN "C"
@ 5.5, 1 PRINT TO oPrn TEXT "C.U.I.T.:" SIZE 3,.5 CM FONT oFont1 ALIGN "R"
@ 5.5, 4.1 PRINT TO oPrn TEXT oQryPag:cuit SIZE 6,.5 CM FONT oFont ALIGN "L"
@ 5.5, 9.5 PRINT TO oPrn TEXT "Razon Social:" SIZE 2.5,1 CM FONT oFont1 ALIGN "R"
@ 5.5, 12.5 PRINT TO oPrn TEXT ALLTRIM(oQryPag:nombre) SIZE 8,1 CM FONT oFont LASTROW nRow ALIGN "L"
** Etc. Etc.
** Tambien puedes poner imagenes
@ 0.5,.5 PRINT TO oPrn IMAGE "logo.jpg" SIZE 6, 1 CM
ENDPAGE
ENDPRINT
RETURN nil
- nageswaragunupudi
- Posts: 10721
- Joined: Sun Nov 19, 2006 5:22 am
- Location: India
- Been thanked: 8 times
- Contact:
Re: Ayuda Imprimir Liquidacion de Sueldo
cmsoft wrote:Hola Antonio:
Creo que lo que dice Mr. Rao es que en lugar de usar oPrn:CmSay podrías usar los comandos @ PRINT
Son bastantes mas claros (al menos para mi)
Te dejo un ejemploCode: Select all | Expand
#include "Report.ch"
**************************************************************
** Impresion del recibo de pagos
FUNCTION Recibo()
LOCAL oFont, oFont1, oPrn, nRow
DEFINE FONT oFont NAME "ARIAL" SIZE config:fon,config:fon*2.5
DEFINE FONT oFont1 NAME "CALIBRI" SIZE config:fon*1.5,config:fon*4 BOLD
PRINT oPrn NAME "Recibo" PREVIEW MODAL
oPrn:SetPortrait()
oPrn:SetPage(9)
PAGE
** Con nRow puedes ir imprimiendo debajo de lo ultimo que imprimiste
@ 2, 1 PRINT TO oPrn TEXT "Nombre de la Empresa" SIZE 9,1 CM FONT oFont1 ALIGN "C" LASTROW nRow
** 2, 1 es en 2 cm de margen superior y 1 cm del margen izquierdo
** SIZE 9,1 Quiere decir que el texto lo tiene que mostrar en 9 cms de ancho por 1 de alto
** ALING "C" te alinea el texto CENTRALIZADO (L: Left, R: Right) en los 9 cms que vos le indicaste
** Siempre con el tamaño del font que estes utilizando, eso es lo bueno...
@ nRow, 01 PRINT TO oPrn TEXT "Domicilio Comercial:" SIZE 9,1 CM FONT oFont LASTROW nRow ALIGN "C"
@ nRow, 01 PRINT TO oPrn TEXT "Condicion de IVA" SIZE 9,1 CM FONT oFont LASTROW nRow ALIGN "C"
@ 5.5, 1 PRINT TO oPrn TEXT "C.U.I.T.:" SIZE 3,.5 CM FONT oFont1 ALIGN "R"
@ 5.5, 4.1 PRINT TO oPrn TEXT oQryPag:cuit SIZE 6,.5 CM FONT oFont ALIGN "L"
@ 5.5, 9.5 PRINT TO oPrn TEXT "Razon Social:" SIZE 2.5,1 CM FONT oFont1 ALIGN "R"
@ 5.5, 12.5 PRINT TO oPrn TEXT ALLTRIM(oQryPag:nombre) SIZE 8,1 CM FONT oFont LASTROW nRow ALIGN "L"
** Etc. Etc.
** Tambien puedes poner imagenes
@ 0.5,.5 PRINT TO oPrn IMAGE "logo.jpg" SIZE 6, 1 CM
ENDPAGE
ENDPRINT
RETURN nil
Yes.
This is our recommendation.
These commands work for FWH1709.
cmSay() is obsolete.
We can use the commands to print multi-line text also in a given rectangle, aligned left, center, right, top, bottom, vertical center. ( default top-left)
Regards
G. N. Rao.
Hyderabad, India
G. N. Rao.
Hyderabad, India
Re: Ayuda Imprimir Liquidacion de Sueldo
Mr. Roa.
Muchas gracias por su siempre ayuda y tiempo dedicado.
Me queda muy clara su información, se paso, probare lo que me sugiere.
Muchas gracias.
Antonio
Muchas gracias por su siempre ayuda y tiempo dedicado.
Me queda muy clara su información, se paso, probare lo que me sugiere.
Muchas gracias.
Antonio
FWH 22.10 - HARBOUR - PELLES C
Re: Ayuda Imprimir Liquidacion de Sueldo
cmsoft wrote:Hola Antonio:
Creo que lo que dice Mr. Rao es que en lugar de usar oPrn:CmSay podrías usar los comandos @ PRINT
Son bastantes mas claros (al menos para mi)
Te dejo un ejemploCode: Select all | Expand
#include "Report.ch"
**************************************************************
** Impresion del recibo de pagos
FUNCTION Recibo()
LOCAL oFont, oFont1, oPrn, nRow
DEFINE FONT oFont NAME "ARIAL" SIZE config:fon,config:fon*2.5
DEFINE FONT oFont1 NAME "CALIBRI" SIZE config:fon*1.5,config:fon*4 BOLD
PRINT oPrn NAME "Recibo" PREVIEW MODAL
oPrn:SetPortrait()
oPrn:SetPage(9)
PAGE
** Con nRow puedes ir imprimiendo debajo de lo ultimo que imprimiste
@ 2, 1 PRINT TO oPrn TEXT "Nombre de la Empresa" SIZE 9,1 CM FONT oFont1 ALIGN "C" LASTROW nRow
** 2, 1 es en 2 cm de margen superior y 1 cm del margen izquierdo
** SIZE 9,1 Quiere decir que el texto lo tiene que mostrar en 9 cms de ancho por 1 de alto
** ALING "C" te alinea el texto CENTRALIZADO (L: Left, R: Right) en los 9 cms que vos le indicaste
** Siempre con el tamaño del font que estes utilizando, eso es lo bueno...
@ nRow, 01 PRINT TO oPrn TEXT "Domicilio Comercial:" SIZE 9,1 CM FONT oFont LASTROW nRow ALIGN "C"
@ nRow, 01 PRINT TO oPrn TEXT "Condicion de IVA" SIZE 9,1 CM FONT oFont LASTROW nRow ALIGN "C"
@ 5.5, 1 PRINT TO oPrn TEXT "C.U.I.T.:" SIZE 3,.5 CM FONT oFont1 ALIGN "R"
@ 5.5, 4.1 PRINT TO oPrn TEXT oQryPag:cuit SIZE 6,.5 CM FONT oFont ALIGN "L"
@ 5.5, 9.5 PRINT TO oPrn TEXT "Razon Social:" SIZE 2.5,1 CM FONT oFont1 ALIGN "R"
@ 5.5, 12.5 PRINT TO oPrn TEXT ALLTRIM(oQryPag:nombre) SIZE 8,1 CM FONT oFont LASTROW nRow ALIGN "L"
** Etc. Etc.
** Tambien puedes poner imagenes
@ 0.5,.5 PRINT TO oPrn IMAGE "logo.jpg" SIZE 6, 1 CM
ENDPAGE
ENDPRINT
RETURN nil
Hola Cesar.
Muchas gracias por tu ayuda.
Muchos saludos
Antonio
FWH 22.10 - HARBOUR - PELLES C
Re: Ayuda Imprimir Liquidacion de Sueldo
remtec wrote:cmsoft wrote:Hola Antonio:
Creo que lo que dice Mr. Rao es que en lugar de usar oPrn:CmSay podrías usar los comandos @ PRINT
Son bastantes mas claros (al menos para mi)
Te dejo un ejemploCode: Select all | Expand
#include "Report.ch"
**************************************************************
** Impresion del recibo de pagos
FUNCTION Recibo()
LOCAL oFont, oFont1, oPrn, nRow
DEFINE FONT oFont NAME "ARIAL" SIZE config:fon,config:fon*2.5
DEFINE FONT oFont1 NAME "CALIBRI" SIZE config:fon*1.5,config:fon*4 BOLD
PRINT oPrn NAME "Recibo" PREVIEW MODAL
oPrn:SetPortrait()
oPrn:SetPage(9)
PAGE
** Con nRow puedes ir imprimiendo debajo de lo ultimo que imprimiste
@ 2, 1 PRINT TO oPrn TEXT "Nombre de la Empresa" SIZE 9,1 CM FONT oFont1 ALIGN "C" LASTROW nRow
** 2, 1 es en 2 cm de margen superior y 1 cm del margen izquierdo
** SIZE 9,1 Quiere decir que el texto lo tiene que mostrar en 9 cms de ancho por 1 de alto
** ALING "C" te alinea el texto CENTRALIZADO (L: Left, R: Right) en los 9 cms que vos le indicaste
** Siempre con el tamaño del font que estes utilizando, eso es lo bueno...
@ nRow, 01 PRINT TO oPrn TEXT "Domicilio Comercial:" SIZE 9,1 CM FONT oFont LASTROW nRow ALIGN "C"
@ nRow, 01 PRINT TO oPrn TEXT "Condicion de IVA" SIZE 9,1 CM FONT oFont LASTROW nRow ALIGN "C"
@ 5.5, 1 PRINT TO oPrn TEXT "C.U.I.T.:" SIZE 3,.5 CM FONT oFont1 ALIGN "R"
@ 5.5, 4.1 PRINT TO oPrn TEXT oQryPag:cuit SIZE 6,.5 CM FONT oFont ALIGN "L"
@ 5.5, 9.5 PRINT TO oPrn TEXT "Razon Social:" SIZE 2.5,1 CM FONT oFont1 ALIGN "R"
@ 5.5, 12.5 PRINT TO oPrn TEXT ALLTRIM(oQryPag:nombre) SIZE 8,1 CM FONT oFont LASTROW nRow ALIGN "L"
** Etc. Etc.
** Tambien puedes poner imagenes
@ 0.5,.5 PRINT TO oPrn IMAGE "logo.jpg" SIZE 6, 1 CM
ENDPAGE
ENDPRINT
RETURN nil
Hola Cesar.
Deseo que estes muy bien.
Muchas gracias por tu ayuda.
Muchos saludos
Antonio
FWH 22.10 - HARBOUR - PELLES C
- cmsoft
- Posts: 1297
- Joined: Wed Nov 16, 2005 9:14 pm
- Location: Mercedes - Bs As. Argentina
- Been thanked: 2 times
Re: Ayuda Imprimir Liquidacion de Sueldo
Hola Cesar
Tengo una duda, en el código que me proporciono Mr. Roa, como puedo habilitar el Icono de Excel?
Muchas gracias por toda la ayuda
Muchos saludos.
Antonio
Tengo una duda, en el código que me proporciono Mr. Roa, como puedo habilitar el Icono de Excel?
Muchas gracias por toda la ayuda
Muchos saludos.
Antonio
FWH 22.10 - HARBOUR - PELLES C