german escribió:
Saludos amigos
Yo se que lo que voy a preguntar les va aparecer tonto, pues me debe hacer falta algo sencillo.
Y es como relacionio un Tprinter con el Tpreview, para que imprima en pantalla el listado, pues tengo el siguiente ejemplo para ver donde estoy mal, o que me hace falta para que funcione, pues me saca la pantalla del preview en blanco sin la informacion del Tprinter.
La impresion la debo iuncluir en un formulario diferente al Principal de la aplicacion el cual denomine Imprime1.
Agradezco la ayuda que me brinden
Gracias
El codigo es el siguiente:
Anchowin:=screen:Width
Altowin:=screen:Height
* Definicion de formulario
Imprime1:= TForm():Create()
Imprime1:Caption := "Listado Facturas "
Imprime1:Brush:Color := 15597054
Imprime1:SetPos( 246, 105 )
Imprime1:ClientWidth :=Anchowin
Imprime1:ClientHeight := Altowin
Imprime1:Icon:Name := "PREVIEW"
Imprime1:WindowState := wsMaximized
Imprime1:OnCloseQuery := { | oSender, lCanClose | ::Prev1OnCloseQuery( oSender, ;
@lCanClose ) }
* Definicion de barras
::barras()
* Definicion de vista previa
::Fpreview := TPreview():Create( Imprime1 )
::Fpreview:Visible := .T.
::Fpreview:OnPageChanged := { || Fpagina:Caption := "Página " + LTrim( Transform( ::Fprint:Page, "@E 999,999" ) ) }
::Fpreview:SetBounds( 0, ::FBarraDeBotones:Height+10, Imprime1:Width, ;
Imprime1:Height - ::FBarraDeBotones:Height - ;
::FBarraDeEstado:Height )
::FPreview:SetFocus()
::FPreview:ViewNormal()
* Definicion de Impresion
::Fprint := TPrinter():Create( Imprime1)
::Fprint:Title := "Listado de Prueba "
::Fprint:Orientation := poLandscape
::Fprint:PageSize:=psLetter
::Fprint:Default()
::Fprint:NewPage()
::Fprint:BeginDoc()
::Fprint:Handle()
::Fprint:Font:Name := "Arial"
::Fprint:DrawBox( { 4, 17, 292, 33.5 } )
::Fprint:DrawShadow( { 4, 17, 292, 33.5 } )
::Fprint:Font:Size := 28
::Fprint:DrawText( "Listado de ", { 6, 20, 292, 33 }, TA_CENTER )
::Fprint:Font:Size := 8
::Fprint:DrawText( "Página " + LTrim( Str( ::Fprint:PageNumber ) ), { 160, 28, 275, 33 }, TA_RIGHT )
::Fprint:DrawBox( { 4, 38, 292, 194 } )
::Fprint:DrawShadow( { 4, 38, 292, 194 } )
::Fprint:Font:Size := 8
::Fprint:Font:Bold := .T.
::Fprint:DrawText( "Factura", { 5, 40, 18, 44 }, TA_CENTER )
::Fprint:DrawText( "Fecha", { 20, 40, 38, 44 }, TA_CENTER )
::Fprint:DrawText( "Producto", { 40, 40, 78, 44 }, TA_CENTER )
::Fprint:DrawText( "Cliente", { 80, 40, 158, 44 }, TA_CENTER )
::Fprint:DrawText( "Orden", { 160, 40, 178, 44 }, TA_CENTER )
::Fprint:DrawText( "Presupuesto", { 180, 40, 198, 44 }, TA_CENTER )
::Fprint:DrawText( "Total", { 200, 40, 228, 44 }, TA_CENTER )
::Fprint:DrawText( "Comision", { 230, 40, 258, 44 }, TA_CENTER )
::Fprint:EndDoc()
*Ejecucion de Vista previa
::Fprint:Preview(Imprime1)
* Ejecucion de Formulario
Imprime1:ShowModal()
return
Hola, Germán.
(parece que solo estamos 'vivos' tu y yo... Bruno ¿respiras?....)
A ver, en los ejemplos esta el código del Preview....
Yo lo utilicé para preparar mis informes....
Create un formulario y en el create es donde debes de colocar el TPreview (que es el control que te permite visualizar el informe)
::Preview := TPreview():Create( Self )
En el OnShow defines todo lo que quieres mostrar, y al final de la definicion pones:
Printer:Review()
... y yast'a...
Saludotes