Impresión ( prev32.dll ) con FWH 7.09

Impresión ( prev32.dll ) con FWH 7.09

Postby Julio Cepeda » Fri Sep 14, 2007 10:58 am

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
Julio Cepeda
 
Posts: 65
Joined: Wed Oct 12, 2005 6:58 pm

Postby Antonio Linares » Fri Sep 14, 2007 12:04 pm

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
User avatar
Antonio Linares
Site Admin
 
Posts: 42203
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Postby Julio Cepeda » Fri Sep 14, 2007 2:04 pm

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
Julio Cepeda
 
Posts: 65
Joined: Wed Oct 12, 2005 6:58 pm

Postby Antonio Linares » Fri Sep 14, 2007 2:11 pm

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 ambos casos:
Code: Select all  Expand view  RUN
   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
User avatar
Antonio Linares
Site Admin
 
Posts: 42203
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Postby Julio Cepeda » Fri Sep 14, 2007 2:22 pm

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
Julio Cepeda
 
Posts: 65
Joined: Wed Oct 12, 2005 6:58 pm

Postby Antonio Linares » Fri Sep 14, 2007 2:48 pm

Julio,

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

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

Postby Julio Cepeda » Fri Sep 14, 2007 3:12 pm

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
Julio Cepeda
 
Posts: 65
Joined: Wed Oct 12, 2005 6:58 pm

Postby Antonio Linares » Fri Sep 14, 2007 5:33 pm

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
User avatar
Antonio Linares
Site Admin
 
Posts: 42203
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Postby Julio Cepeda » Sun Sep 16, 2007 8:33 am

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
Julio Cepeda
 
Posts: 65
Joined: Wed Oct 12, 2005 6:58 pm

Postby Antonio Linares » Sun Sep 16, 2007 8:53 am

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: 42203
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Postby Antonio Linares » Mon Sep 17, 2007 6:52 am

Julio,

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

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

Postby Julio Cepeda » Mon Sep 17, 2007 7:20 am

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
Julio Cepeda
 
Posts: 65
Joined: Wed Oct 12, 2005 6:58 pm

Postby Antonio Linares » Mon Sep 17, 2007 7:25 am

Julio,

La ventana de previsualización no sale maximizada ?

Tu ventana principal es MDI ?
regards, saludos

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

Postby Julio Cepeda » Mon Sep 17, 2007 9:25 am

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
Julio Cepeda
 
Posts: 65
Joined: Wed Oct 12, 2005 6:58 pm

Postby Antonio Linares » Mon Sep 17, 2007 9:37 am

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
User avatar
Antonio Linares
Site Admin
 
Posts: 42203
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Next

Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 29 guests