Estaablecer impresora a un reporte por medi de codigo

307 views
Skip to first unread message

ZeRoberto

unread,
Dec 21, 2016, 12:58:54 AM12/21/16
to publicesvfoxpro
Como puedo establecerle una impresora y un tipo de hoja personalizada a un reporte por medio de codigo?

Saludos

Hugo C.

unread,
Dec 21, 2016, 1:17:03 AM12/21/16
to Comunidad de Visual Foxpro en Español
Tal vez esto ayude (en ingles)



Saludos

ZeRoberto

unread,
Dec 21, 2016, 3:22:33 PM12/21/16
to publicesvfoxpro
Hola Hugo ya lo revise, pero donde puedo encontrar informacion sobre cada parametro que que se encuentra en el campo Expr

por ejemplo algunas se y otras no, y ademas que otras añadir para un optimo funcionamiento

DRIVER=WINSPOOL 
DEVICE=HP LaserJet 6P/6MP - Enhanced 
OUTPUT=LPT1: 
ORIENTATION=0 
PAPERSIZE=9 
PAPERLENGTH=2794 
PAPERWIDTH=2159 
COPIES=1 
DEFAULTSOURCE=4 
PRINTQUALITY=-4 
COLOR=2

ZeRoberto

unread,
Dec 21, 2016, 3:29:05 PM12/21/16
to publicesvfoxpro
Estoy haciendo una aplicacion para imprimir en tarjetas pvc, el problema es que cuando no existe la impresora la vista previa del reporte se descuadra asi que lo que estoy haciendo es crear un tipo de hoja personalizada y asignar este tipo de hoja a todos los reporte que imprimen tarjetas pvc. Pero necesito saber mas que parametros del report hay que configurarlo.

Saludos

If _VFP.StartMode = 4 
   If goApp.ReadKey("Insitialized", 0) = 0
      If IsWinUserAdmin()
         lcResult = goApp.DoFormEx("Impresora.scx")
         SetPageSize("Tarjeta PVC", 8.61, 5.41, Nvl(lcResult, ""))
         goApp.SetInfoToReport(lcResult)
      EndIf
   EndIf
EndIf


PROCEDURE SetInfoToReport
Parameters tcPrinter
Local lcFileName, lnIndex, lnCount, loProps, lnPaperID
   With This
        lnPaperID = FindPaperID("Tarjeta PVC")
        loProps = NewObject("uo_properties", "class\application.vcx")
        lnCount = ADir(laFiles, ForcePath("*.FRX", "Reports"))
        For lnIndex = 1 To lnCount
            lcFileName = FullPath(ForcePath(laFiles(lnIndex, 1), "Reports"))
            Use (lcFileName) In 0 Alias dbReporte Exclusive
            Select dbReporte
            Locate For ObjType = 1 and ObjCode = 53
            If Found()
               loProps.Load(dbReporte.Expr)
               loProps.WriteProperty("DRIVER", "winspool")
               loProps.WriteProperty("DEVICE", tcPrinter)
               loProps.WriteProperty("OUTPUT", "USB1:")
               loProps.WriteProperty("ORIENTATION", 0)
               loProps.WriteProperty("PAPERSIZE", lnPaperID)
               lcExpr = loProps.Retrieve()
               Replace Expr With lcExpr, Tag With "", Tag2 With ""
            EndIf
            Use In Select("dbReporte")
        EndFor
   EndWith
Return

HernanCano

unread,
Dec 22, 2016, 2:08:50 AM12/22/16
to Comunidad de Visual Foxpro en Español
Hola, Ze Roberto:
Te cuento que existe en Internet una app muy útil: se llama Google.....................

-------------------------------------------------------------------------

ZeRoberto

unread,
Dec 22, 2016, 2:17:00 AM12/22/16
to publicesvfoxpro
Gracias Hernan buen dato

Saludos

Eni!

unread,
Jan 9, 2017, 8:57:37 AM1/9/17
to Comunidad de Visual Foxpro en Español
Buen dia.
Soy nueva trabajando en VFP y me gustaría saber como colocaste las líneas para enviar un reporte a una impresora especifica por medio de código.
De antemano te agradesco la ayuda que puedas prestar,e

ZeRoberto

unread,
Jan 9, 2017, 3:12:22 PM1/9/17
to publicesvfoxpro
Te voy a pasa unas clases, pero antes necesito que alguien me ayude a como pasar una clase a prg. usando la clase de Fernando Bozzo

Saludos
Reply all
Reply to author
Forward
0 new messages