Fecha actual Vie May 17, 2024 3:45 pm

Todos los horarios son UTC + 1 hora [ DST ]




Nuevo tema Responder al tema  [ 6 mensajes ] 
Autor Mensaje
NotaPublicado: Vie Nov 21, 2008 5:08 pm 

Registrado: Lun Ene 08, 2007 5:56 pm
Mensajes: 91
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

_________________
Saludos.
German


Arriba
 Perfil  
Responder citando  
NotaPublicado: Sab Nov 22, 2008 12:58 am 
Avatar de Usuario

Registrado: Dom Oct 09, 2005 11:26 am
Mensajes: 362
Ubicación: Salamanca - España
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

_________________
Un saludo.
Jesús P. Melgar Velasco


Arriba
 Perfil  
Responder citando  
 Asunto:
NotaPublicado: Sab Nov 22, 2008 3:20 pm 

Registrado: Lun Ene 08, 2007 5:56 pm
Mensajes: 91
Si he notado que estamos los dos solamente en este tiempo, Sera que Bruno va a sacar una nueva version por eso esta tan callado?

A mi aveces me pasa que estoy tan ocupado que no tengo tiempo de entrar a internet

Igual he hecho yo con el ejemplo y he creado algunos reportes, que funcionan, pero necesito saber y entender como funcionan los comandos por eso he hecho cambios, para que mas adelante cuando me toque realizar una modificacion me sea mas sencilla hacerla, por otra parte con el codigo que tu mensionas me tocaria dejar un ejecutable para cada impresion y esto no me parece que sea funcional llenar el Hard Drive de exes.

Tu que opinas del codigo que coloque aqui, pues es un extracto modificado del ejemplo que tu mensionas con algunos cambios, pero no funciona por alguna razon, que no se cual es,

En el comando que me dices ::Preview := TPreview():Create( Self )
hace referencia a que formulario, el principal correcto.y yo he modificado esto asi ::Fpreview := TPreview():Create( Imprime1 )
En el otro comando que me dices creo te comiste una P

Printer:Review()
Printer es una variable ?

Yo la he definido y renombrado
::Fprint := TPrinter():Create( Imprime1)

::Fprint:Preview(Imprime1)


En el ejemplo que mesionas todo esta en el formulario principal, y no en un formulario de un metodo de una venntana secundaria, y quiero hacerla en una ventana secundaria, pues en el principal voy a manejar otras cosas.

Me podrias ayudar con esto.

Gracias

_________________
Saludos.
German


Arriba
 Perfil  
Responder citando  
 Asunto:
NotaPublicado: Lun Nov 24, 2008 7:43 pm 
Avatar de Usuario

Registrado: Dom Oct 09, 2005 11:26 am
Mensajes: 362
Ubicación: Salamanca - España
german escribió:
Si he notado que estamos los dos solamente en este tiempo, Sera que Bruno va a sacar una nueva version por eso esta tan callado?


Si ¿seguro? que esta es la causa ¿que otra si no....?

Hola, german.

Tu problema esta en esta 'redefinicion' de Printer, ya que NO es una variable de TU formulario. Si te fijas en GUI.ch veras que justo al final del archivo esta esta linea:

Memvar Application, Screen, Printer

Printer ES un variable de C3, NO una que tu defines... ¿entiendes?

Espero que te sirva.

_________________
Un saludo.
Jesús P. Melgar Velasco


Arriba
 Perfil  
Responder citando  
 Asunto:
NotaPublicado: Lun Nov 24, 2008 10:09 pm 

Registrado: Jue Nov 03, 2005 7:20 pm
Mensajes: 132
Ubicación: Teruel(España)
Hola German
Creo que al intentar resumir el ejemplo preview lo has cortado mucho, has quitado botones.
Yo al igual que Jesus utilizo dicho ejemplo.
He copiado el codigo del formulario con unas ligeras modificaciones, he utilizado metodos pero se puede convertir a funcion, con el evento OnShow creo un informe u otro dependiento del parametro pasado con vListado, ahi te dejo un ejemplo extraido de mi aplicacion.

Un saludo


Adjuntos:
Informe.zip [2.25 KiB]
356 veces
Arriba
 Perfil  
Responder citando  
 Asunto:
NotaPublicado: Mié Nov 26, 2008 1:44 am 

Registrado: Lun Ene 08, 2007 5:56 pm
Mensajes: 91
Ok, Gracias por las sugerencias y el ejemplo, queria entender como funciona la impresion, asi como tambien el Tprinter, pues en el ejemplo no aparece esta. Pues imprimen directamente en printer, crei que podia redefinirla con el Tprinter, solo que no supe como relacionarla con el Tpreview.

Gracias,

ya estoy avanzando en el tema con los ejemplos

_________________
Saludos.
German


Arriba
 Perfil  
Responder citando  
Mostrar mensajes previos:  Ordenar por  
Nuevo tema Responder al tema  [ 6 mensajes ] 

Todos los horarios son UTC + 1 hora [ DST ]


No puede abrir nuevos temas en este Foro
No puede responder a temas en este Foro
No puede editar sus mensajes en este Foro
No puede borrar sus mensajes en este Foro
No puede enviar adjuntos en este Foro

Buscar:
Saltar a:  
cron