Impresión ( prev32.dll ) con FWH 7.09

Julio Cepeda
Posts: 47
Joined: Wed Oct 12, 2005 6:58 pm

Impresión ( prev32.dll ) con FWH 7.09

Post by Julio Cepeda »

Al compilar los programas que ya tengo escritos y que vienen corriendo perfectamente compilados con la version anterior de FWH, me ocurre lo siguiente:

Cuando ejecuto cualquier opción que imprima con previsualización, en lugar de aparecer una ventana MDI como aparecía antes ademas de la de la aplicación, ahora me aparece una ventana HIJA que se ubica detrás del diálogo y con dimensiones reducidas y la previsualizacion distorsionada.

Si algún compañero sabe que hay que hacer para que no se produzca esto se lo agradeceria.

Saludos
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post by Antonio Linares »

Julio,

Estamos usando una nueva Clase TPreview que permite usar multiples previews simultaneamente.

Como se veía antes la ventana de preview, maximizada ?
regards, saludos

Antonio Linares
www.fivetechsoft.com
Julio Cepeda
Posts: 47
Joined: Wed Oct 12, 2005 6:58 pm

Post by Julio Cepeda »

Sí salía maximizada y en ventana independiente, (MDI ), aunque al cerrar el programa, también se cerraba esta si había alguna abierta.

También cuando había alguna ventana de impresión abierta y se intentaba abrir otra salía un MsgStop diciendo "Ya existe una ventana de visualización", por si esto te da alguna pista.

Muchas gracias Antonio, saludos.
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post by Antonio Linares »

Julio,

Una ventana independiente no es una ventana MDI. MDI es "multiple display interface", algo asi como interface de multiples ventanas.

En source\classes\rpreview.prg tienes este código. Prueba a añadirle MAXIMIZED en _:

Code: Select all

   if oWndMain != nil .and. Upper( oWndMain:ClassName() ) == "TMDIFRAME"
      DEFINE WINDOW ::oWnd ;
         TITLE cTitle ;
         COLOR CLR_BLACK,CLR_LIGHTGRAY      ;
         ICON  oIcon                        ;
         VSCROLL HSCROLL MDICHILD MAXIMIZED
   else      
      DEFINE WINDOW ::oWnd FROM 0, 0 TO 24, 80  ;
         TITLE cTitle ;
         COLOR CLR_BLACK,CLR_LIGHTGRAY      ;
         ICON  oIcon                        ;
         VSCROLL HSCROLL MENU ::BuildMenu() MAXIMIZED
   endif      
regards, saludos

Antonio Linares
www.fivetechsoft.com
Julio Cepeda
Posts: 47
Joined: Wed Oct 12, 2005 6:58 pm

Post by Julio Cepeda »

Yo lo hago asi y me viene funcionando bien desde FWH de 16 bits

IF lPrevis
PRINT oPrn NAME "Impresión de facturas" PREVIEW
ELSE
PRINT oPrn NAME "Impresión de facturas"
EndIf

IF Empty( oPrn:hDC )
MsgStop( OemToAnsi( "­ No hay IMPRESORA para imprimir !" ))
Return NIL
EndIF

oPrn:SetCopies( nCopias )

oPrn:Setup()

...

La ventana ya aparece con este código tal y como viene en el ejemplo
TestPrn2.prg y ha funcionado siempre bien.

No se donde poner en este código esto que me dices.

Gracias y saludos
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post by Antonio Linares »

Julio,

Me refiero a modificar source\classes\rpreview.prg
regards, saludos

Antonio Linares
www.fivetechsoft.com
Julio Cepeda
Posts: 47
Joined: Wed Oct 12, 2005 6:58 pm

Post by Julio Cepeda »

Yo no lo he hecho nunca eso a ver si he entendido.

Modifico source\classes\rpreview.prg y lo enlazo con mi programa como un módulo mas o hay que hacer alguna otra cosa ?

Nunca he modificado nada de lo que viene en el directorio C:\FWH
Yo miro la ayuda Fwcmd y escribo como viene ahí, no uso recursos, uso @ nRow, nCol ... si tengo alguna duda entro en FWH\samples y busco algo parecido a lo mío y lo copio.
Si necesito usar algún método o dato, miro la ayuda de fwclass y lo hago como viene allí. Hasta ahora me ha funcionado casi todo perfectamente.

Gracias y un saludo.
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post by Antonio Linares »

Julio,

>
Modifico source\classes\rpreview.prg y lo enlazo con mi programa como un módulo mas o hay que hacer alguna otra cosa ?
>

Sí, es hacerlo como has dicho :-)
regards, saludos

Antonio Linares
www.fivetechsoft.com
Julio Cepeda
Posts: 47
Joined: Wed Oct 12, 2005 6:58 pm

Post by Julio Cepeda »

Imposible Antonio, he probado de un sinfin de maneras y no lo consigo.

oPrn := TPreview():New()
oPrn := TPrinter():New( "Factura", .F., .T., , .T. )
oPrn := PrintBegin( "Factura", .F., .T., , .T. )

Yo no estoy muy ducho en esto de las clases y escribo todo como los ejemplos que trae FWH.

De momento seguiré compilando con la versión que tenía y si algun día encontramos una solución cambiare a la nueva.

Gracias y un saludo.
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post by Antonio Linares »

Julio,

Prueba con las librerías que te enviamos por email :-)
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post by Antonio Linares »

Julio,

Vuelve a descargar e instalar FWH 7.09 :-)
regards, saludos

Antonio Linares
www.fivetechsoft.com
Julio Cepeda
Posts: 47
Joined: Wed Oct 12, 2005 6:58 pm

Post by Julio Cepeda »

Ya lo he descargado e instalado FWH y Harbour y sale lo mismo.

Alomejor es alguna cosa que hay que cambiar en el código en esta nueva versión, yo iré haciendo pruebas y si lo descubro te lo hago saber.

Gracias Antonio.
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post by Antonio Linares »

Julio,

La ventana de previsualización no sale maximizada ?

Tu ventana principal es MDI ?
regards, saludos

Antonio Linares
www.fivetechsoft.com
Julio Cepeda
Posts: 47
Joined: Wed Oct 12, 2005 6:58 pm

Post by Julio Cepeda »

No no sale maximizada sale detrás del diálogo desde el que se la llama como pudiste observar en el BMP que te adjunté ayer por el correo. Además es una cosa muy rara porque sale debajo de la barra de herramientas alineada a la izquierda y arriba. Cuando intentas pinchar en ella para pasarla al frente, no te deja y el dialogo desde el que se la llama parpadea, es decir que hasta que no cierras el dialogo llamador no te deja hacer nada con la de previsualización, que una vez cerrado el dialogo llamador, si la maximizas, en lugar de cubrir toda la superficie de la pantalla, se queda dentro de la ventana principal del programa, entre la barra de herramientas y la barra de estado de la ventana principal de la aplicación.

En cuanto a la ventana principal de la aplicación el código que la genera es el siguiente:

DEFINE WINDOW oWnd MDI FROM 04, 10 TO 30, 90;
TITLE OemToAnsi( "Facturaci¢n PYME" ) ;
MENU Menu() ;
ICON oIcon ;
BRUSH oBrush
SET FONT OF oWnd TO oFont
SET MESSAGE OF oWnd TO ;
OemToAnsi('Facturaci¢n PYME Usuario = '+WNetGetUser());
TIME DATE KEYBOARD

DEFINE BUTTONBAR oBar _3D SIZE 37, 37 TOP OF oWnd
DEFINE BUTTON OF oBar FILENAME "bmps\bars\cascade.bmp" TOOLTIP ;
...

ACTIVATE WINDOW oWnd MAXIMIZED ;
ON INIT ( Set( 7, cPathEm := Empresas( oWnd, @cNomEmp ) ), ;
lActivado := IF( Veri(), .T., ( .F., oWnd:End() ) ), ;
oWnd:cTitle := cNomEmp + VERSION ) ;
VALID ( .NOT. lActivado .OR. MsgYesNo( "¿ Realmente desea salir ?", "Elija una opción" ) )

Que como ves si es MDI.

Gracias y saludos.
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post by Antonio Linares »

Julio,

Al implementar la nueva clase TPreview hemos considerado que si la ventana principal es MDI entonces la preview debería ser MDICHILD para poder tener varias abiertas simultaneamente, por eso sale debajo del diálogo.

Podríamos modificarlo para que no salga como MDICHILD sino como una ventana aparte de la ventana principal. Es cuestión de modificar source\classes\rpreview.prg. Es solo quitar MDICHILD.
regards, saludos

Antonio Linares
www.fivetechsoft.com
Post Reply