FoxPro/Visual FoxPro - procedimiento de impreción

 
Vista:
Imágen de perfil de procedimiento impromir
Val: 9
Ha aumentado su posición en 39 puestos en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

procedimiento de impreción

Publicado por procedimiento impromir (23 intervenciones) el 28/08/2021 17:40:01
hola mis estimados programadores nesito saber como hacer un procedimiento PRG para imprimir un reporte con cabecera y los campos de las base y si tiene un maximo de 10 de regitro imprima ha salto de pagina y siga imprmiendo en la otra gracias mis apreciadpr programadores como repito no por report from sino PRG
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

procedimiento de impreción

Publicado por jose camilo (805 intervenciones) el 30/08/2021 17:10:48
Espero te sirva solo tienes que adaptar la logica a tu necesidad

Procedure Imprimir
Push Key Clear
Do DispDet (Recarculo la factura a imprimir asi evito )
Do Grabar
If ErrorFile
ErrorFile = .F.
Return
EndIf
Private ContL,ContL1
Wprn = GETPRINTER()
If Empty(Wprn)
MessageBox('Impresion Cancelada Pero la factura fue grabada!!!',16,'JJ-System')
Do Abortar
Return
EndIf

SET PRINTER To Name "&Wprn"
SET DEVICE TO printer
SET PRINTER FONT 'Courier New',7 STYLE "B"
SET CONSOLE OFF

If M.Matricial ="S"
??? CHR(18)
EndIf
Store 1 To ContL,contL1
Do Fact_Header
ContL = 13
Do While !Empty(DetDes[ContL1])
If TipoPrinter = "GRANDE"
DetArt[Contl1] =" "+DetArt[Contl1]
If Upper(Genitbis) ="S"
If DetItb[ContL1] <>0
DetArt[Contl1] ="*"+DetArt[Contl1]
Else
DetArt[Contl1] ="E"+DetArt[Contl1]
EndIf
EndIf
If M.Unidad = "S"
@Prow()+1,0 Say SubStr(DetArt[ContL1],1,15)
@Prow(),16 Say Transform(DetCan[ContL1],"9999999.99")
@Prow(),27 Say Transform(DetLibra[ContL1],"9999999.99")
@Prow(),38 Say SubStr(DetDes[ContL1],1,39)
Else
If SNTAlmacen="SI"
@Prow()+1,0 SAY Alltrim(SubStr(DetArt[ContL1],1,18))+"\"+Alltrim(SubStr(DetAlm[ContL1],1,6))
Else
@Prow()+1,0 SAY SubStr(DetArt[ContL1],1,25)
EndIf
@Prow(),26 Say Transform(DetCan[ContL1],"9999999.99")
@Prow(),37 Say SubStr(DetDes[ContL1],1,40)
EndIf
If m.ItbisIncluido ="S"
@Prow(),78 Say Transform(Round(DetPco[ContL1]-Iif(!Empty(DetItb[ContL1]),((DetPco[ContL1]/(1+DetItb[ContL1])) * DetItb[ContL1]),0),2),"999,999,999.99")
Else
@Prow(),78 Say Transform(DetPco[ContL1],"999,999,999.99")
EndIf
If m.ItbisIncluido ="S"
@Prow(),107 Say Transform(Round(Iif(!Empty(DetItb[ContL1]),((DetPco[ContL1]/(1+DetItb[ContL1])) * DetItb[ContL1]),0),2),"999,999,999.99")
Else
@Prow(),107 Say Transform(Round(Iif(!Empty(DetItb[ContL1]),DetPco[ContL1] * DetItb[ContL1],0),2),"999,999,999.99")
EndIf
If m.ItbisIncluido ="S"
@Prow(),122 Say Transform(Iif(Empty(DetLibra[ContL1]),DetCan[ContL1]*DetPco[ContL1],DetLibra[ContL1]*DetPco[ContL1]),"999,999,999.99")
Else
@Prow(),122 Say Transform(Iif(Empty(DetLibra[ContL1]),DetCan[ContL1]*(DetPco[ContL1]+(DetItb[ContL1]*DetPco[ContL1])),DetLibra[ContL1]*(DetPco[ContL1]+(DetItb[ContL1]*DetPco[ContL1]))),"999,999,999.99")
EndIf
If (!Empty(DetCha[ContL1]) AND M.ImprimirReferenciaEnVta="S")
@Prow()+1,38 Say Iif(M.ImprimirReferenciaEnVta="S","Referencia :"+Alltrim(SubStr(DetCha[ContL1],1,25))," ")
ContL = ContL + 1
EndIf
ContL1 = ContL1 + 1
ContL = ContL + 1
If m.tamano > 0
If ContL >=m.tamano
@Prow()+1,00 Say Replicate("-",137)
@Prow()+1,02 Say "CONTINUA EN LA SIGUIENTE PAGINA"
Eject
Do Fact_Header
ContL = 13
EndIf
Else
If ContL > Iif(Wlongitud>16,27,20) &&&&&&& 8 articulos &&&&&&&
@Prow()+1,00 Say Replicate("-",137)
@Prow()+1,02 Say "CONTINUA EN LA SIGUIENTE PAGINA"
ContL=ContL+2
@Prow()+(33-ContL),0
Wlongitud = Wlongitud - Iif(Wlongitud>16,15,8)
Do Fact_Header
ContL = 13
EndIf
EndIf
Else
ContL1 = 1
Do While !Empty(DetDes[ContL1])
@Prow()+1,0 SAY Iif(!Empty(DetItb[ContL1]),"*","E")+SubStr(Alltrim(DetArt[ContL1]),1,9)
@Prow(),10 Say Transform(DetCan[ContL1],"99999.99")
@Prow(),19 Say Transform(DetPco[ContL1],"9999999.99")
@Prow(),29 Say Transform(Iif(Empty(DetLibra[ContL1]),DetCan[ContL1]*DetPco[ContL1],DetLibra[ContL1]*DetPco[ContL1]),"99999999.99")
@Prow()+1,0 SAY SubStr(DetDes[ContL1],1,39)
ContL1 = ContL1 + 1
EndDo
*@Prow(),24 Say Transform(Venta,"9999.99")
*@Prow(),32 Say Transform(Iif(Empty(Uds),Cantidad*Venta,Uds*Venta),"99999.99")
*@Prow()+1,0 SAY SubStr(detalle,1,40)

EndIf
EndDo
Do Fact_Total
Set Printer To
Set Printer Off
SET DEVICE TO Screen
Set Console On
Release Windows Imprimir
Clear Read
Do Abortar
Do Btn_Control With 1
Return

Procedure Fact_Header
If TipoPrinter = "GRANDE"
If M.Matricial ="S"
@Prow(),0 say Chr(18)
@Prow(),0 say Chr(27)+"G"
EndIf
If Upper(GenLin1) = "S"
@Prow(),Posicion1 Say Alltrim(Wcompania) FONT 'Courier New',16 STYLE "BT" COLOR,RGB(0,0,0,0,0,0)
@Prow(),PosFecha+Iif(M.Matricial ="S",+0,+40) Say "Fecha :"+Dtoc(Date()) FONT 'Courier New',12 STYLE "BT" COLOR,RGB(0,0,0,0,0,0)
If M.Matricial ="N"
@Prow()+1,1
EndIf
Else
@Prow(),PosFecha+Iif(M.Matricial ="S",+0,+40) Say "Fecha :"+Dtoc(Date()) FONT 'Courier New',12 STYLE "BT" COLOR,RGB(0,0,0,0,0,0)
EndIf
If M.Matricial ="S"
@Prow(),0 say Chr(27)+"H"
@Prow(),0 say Chr(15)
EndIf
If Upper(GenLin2) = "S"
@Prow()+1,Posicion2 Say Alltrim(Wdireccion)
@Prow(),PosHora Say "Hora :"+Time()
Else
@Prow()+1,PosHora Say "Hora :"+Time()
EndIf
If Upper(GenLin3) = "S"
@Prow()+1,Posicion3 Say Alltrim(Wciudad)
@Prow(),Posicion4 Say Alltrim(Wrnc)
Else
@Prow(),Posicion4 Say Alltrim(Wrnc)
EndIf
If M.Matricial ="S"
@Prow(),0 Say Chr(18)
@Prow(),0 Say Chr(27)+"G"
EndIf
@Prow()+1,Postipo Say Alltrim(SubStr(Gentipo,1,35)) FONT 'Courier New',16 STYLE "BT" COLOR,RGB(0,0,0,0,0,0)
If M.Matricial ="N"
@Prow()+1,1
EndIf
@Prow(),Posnumero+Iif(M.Matricial ="S",+0,+38) Say "Factura #:"+m.referencia FONT 'Courier New',12 STYLE "BT" COLOR,RGB(0,0,0,0,0,0)

If M.Matricial ="S"
@Prow(),0 Say Chr(27)+"H"
@Prow(),0 Say Chr(15)
EndIf
@Prow()+1,0 Say Replicate("-",137)
@Prow()+1,1 Say "Codigo :"+SubStr(M.Cliente,1,15)
@Prow()+1,1 Say "Nombre :"+SubStr(M.Nombre,1,40)
@Prow(),100 Say "Cedula :"+SubStr(M.Cedula,1,15)
@Prow()+1,1 Say "Direccion :"+SubStr(M.Direccion,1,75)
@Prow(),100 Say "Telefono :"+SubStr(M.Telefono,1,15)
@Prow()+1,0 Say Replicate("-",137)
@Prow()+1,1 Say "CODIGO"
If M.Unidad = "S"
@Prow(),18 Say "CANTIDAD"
@Prow(),31 Say "UNIDAD"
@Prow(),38 Say "DESCRIPCION DE ARTICULOS"
Else
@Prow(),28 Say "CANTIDAD"
@Prow(),37 Say "DESCRIPCION DE ARTICULOS"
EndIf
@Prow(),80 Say "PRECIO"
@Prow(),116 Say "ITBIS"
@Prow(),126 Say "TOTAL NETO"
@Prow()+1,0 Say Replicate("-",137)
Else
@Prow()+1,0 Say SubStr(Wcompania,1,40)
@Prow()+1,0 Say SubStr(Wdireccion,1,40)
If !Empty(SubStr(Wdireccion,41,65))
@Prow()+1,0 Say SubStr(Wdireccion,41,65)
EndIf
@Prow()+1,0 Say SubStr(Wciudad,1,40)
@Prow()+1,0 Say Alltrim(Wrnc)
@Prow()+1,0 Say Dtoc(Date())
@Prow(),20 Say Time()
@Prow()+1,0 Say Wusuario
@Prow()+2,0 Say Alltrim(Gentipo)
@Prow()+1,1 Say "Factura #:"+m.referencia
@Prow()+1,0 Say Replicate("-",40)
@Prow()+1,0 Say "Cliente :"+SubStr(m.cliente,1,15)
@Prow()+1,0 Say "Nombre :"+SubStr(m.nombre,1,30)
@Prow()+1,0 Say "Direcc. :"+SubStr(m.direccion,1,30)
@Prow()+1,0 Say "Cedula :"+SubStr(m.cedula,1,15)
@Prow()+1,0 Say Replicate("-",40)
@Prow()+1,0 Say "ARTICULO"
@Prow(),19 Say "CANT"
@Prow(),25 Say "PRECIO"
@Prow(),35 Say "TOTAL"
@Prow()+1,0 Say Replicate("-",40)
EndIf
Return

Procedure Fact_Total
Private Tl
Store 0 to Tl
If TipoPrinter = "GRANDE"
@Prow()+1,67 Say Replicate("-",70)
Contl = ContL + 1
If m.ItbisIncluido ="S"
@Prow()+1,67 Say "TOTAL BRUTO .......................................::> "+Alltrim(StrZ(14,TransForm(TotalBruto-TotalItbis,"999,999,999.99")))
Else
@Prow()+1,67 Say "TOTAL BRUTO .......................................::> "+Alltrim(StrZ(14,TransForm(TotalBruto,"999,999,999.99")))
EndIf
ContL = ContL + 1
If !Empty(TotalItbis)
@Prow()+1,67 Say "ITBIS .............................................::> "+Alltrim(StrZ(14,TransForm(TotalItbis,"999,999,999.99")))
ContL = ContL + 1
EndIf
@Prow()+1,02 Say Replicate("-",20)
@Prow()+0,30 Say Replicate("-",20)
ContL = ContL + 1
If Val(SubStr(AllTrim(gendeb),1,2)) <> 12
If m.ItbisIncluido ="S"
@Prow(),67 Say "TOTAL A PAGAR .....................................::> "+Alltrim(StrZ(14,TransForm(TotalBruto,"999,999,999.99")))
Else
@Prow(),67 Say "TOTAL A PAGAR .....................................::> "+Alltrim(StrZ(14,TransForm(TotalBruto+TotalItbis,"999,999,999.99")))
EndIf
Else
If M.Inicial = "S"
@Prow(),67 Say "INICIAL ...........................................::> "+Alltrim(StrZ(14,TransForm(WAbono,"999,999,999.99")))
EndIf
If m.ItbisIncluido ="S"
Tl =TotalBruto-(WAbono)
Else
Tl =(TotalBruto+TotalItbis)-(WAbono)
EndIf
EndIf
@Prow()+1,02 Say "FACTURADOR"
@Prow()+0,30 Say "FIRMA CLIENTE"
@Prow(),67 Say Replicate("-",70)
@Prow()+1,02 Say Wusuario
@Prow()+0,67 Say "BALANCE ...........................................::> "+Alltrim(StrZ(14,TransForm(Tl,"999,999,999.99")))
Contl = ContL + 2
@Prow()+1,67 Say Replicate("=",70)
@Prow()+1,2 Say SubStr(GENNOTA1,1,130)
@Prow()+1,2 Say SubStr(GENNOTA2,1,130)
Contl = ContL + 3
If !Empty(m.nota1)
@Prow()+1,8 Say Alltrim(SubStr(m.nota1,1,70))
Contl = ContL + 1
EndIf
@Prow()+(33-ContL),0
Else
@Prow()+1,0 Say Replicate("-",40)
Contl = ContL + 1
If m.ItbisIncluido ="S"
@Prow()+1,5 Say "TOTAL BRUTO .....::> "+Alltrim(StrZ(14,TransForm(TotalBruto-TotalItbis,"999,999,999.99")))
Else
@Prow()+1,5 Say "TOTAL BRUTO .....::> "+Alltrim(StrZ(14,TransForm(TotalBruto,"999,999,999.99")))
EndIf
ContL = ContL + 1
If !Empty(TotalItbis)
@Prow()+1,5 Say "ITBIS ...........::> "+Alltrim(StrZ(14,TransForm(TotalItbis,"999,999,999.99")))
ContL = ContL + 1
EndIf
ContL = ContL + 1
If Val(SubStr(AllTrim(gendeb),1,2)) <> 12
If m.ItbisIncluido ="S"
@Prow()+1,5 Say "TOTAL A PAGAR ...::> "+Alltrim(StrZ(14,TransForm(TotalBruto,"999,999,999.99")))
Else
@Prow()+1,5 Say "TOTAL A PAGAR ...::> "+Alltrim(StrZ(14,TransForm(TotalBruto+TotalItbis,"999,999,999.99")))
EndIf
Else
If M.Inicial = "S"
@Prow()+1,5 Say "INICIAL ..........::> "+Alltrim(StrZ(14,TransForm(WAbono,"999,999,999.99")))
EndIf
If m.ItbisIncluido ="S"
Tl =TotalBruto-(WAbono)
Else
Tl =(TotalBruto+TotalItbis)-(WAbono)
EndIf
EndIf
@Prow()+1,5 Say "BALANCE .........::> "+Alltrim(StrZ(14,TransForm(Tl,"999,999,999.99")))
@Prow()+1,5 Say Replicate("=",35)
Contl = ContL + 2
@Prow()+4,02 Say Replicate("-",15)
@Prow()+0,18 Say Replicate("-",15)
@Prow()+1,02 Say "FACTURADOR"
@Prow()+0,18 Say "FIRMA CLIENTE"
@Prow()+1,02 Say Wusuario
@Prow()+3,0 Say ""
EndIf
Return
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 147
Bronce
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

procedimiento de impreción

Publicado por zarlu (97 intervenciones) el 30/08/2021 18:10:14
Buenos días procedimiento!

Te dejo un breve código de ejemplo:

CLEAR
CREATE CURSOR dias (dias c(15))
FOR a=1 TO 7
INSERT INTO dias VALUES(CDOW(DATE()+a))
ENDFOR
GO top
*Browse
SET DEVICE TO PRINTER
SET PRINT ON
lnCoun=0
lnRow=10
DO WHILE NOT EOF()
@ lnRow,10 SAY dias.dias
lnCoun=lnCoun+1
lnRow=lnRow+1
IF lnCoun=4
EJECT
lnCoun=0
lnRow=10
ENDIF
SKIP
ENDDO
*EJECT
SET PRINT OFF
SET DEVICE TO SCREEN
SET PRINTER TO
RETURN

Suerte
zarlu
Chetumal, Quintana Roo, México
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar