FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour RPreview mal en xp - SOLUCIONADO (a medias)
Posts: 8515
Joined: Tue Dec 20, 2005 07:36 PM
Re: RPreview mal en xp
Posted: Tue Oct 08, 2013 06:51 PM
Antonio Linares wrote:Joao,

Se ve bien, te compila correctamente ?


SI MAESTRO compila bi茅n! mas no tengo certezca que me va resolver el problema del programa parar sin motivo ninguno en WINDOWS XP.

salu2.
Jo茫o Santos - S茫o Paulo - Brasil - Phone: +55(11)95150-7341
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: RPreview mal en xp
Posted: Wed Oct 09, 2013 07:49 AM

Joao,

te sigue fallando en XP con esos cambios ?

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 8515
Joined: Tue Dec 20, 2005 07:36 PM
Re: RPreview mal en xp
Posted: Wed Oct 09, 2013 12:25 PM
Antonio Linares wrote:Joao,

te sigue fallando en XP con esos cambios ?


Buen dia maestro, no puedo responder porque tengo que esperar cambio de versi贸n en los clientes.

Asi que possible te hablo.

salu2.
Jo茫o Santos - S茫o Paulo - Brasil - Phone: +55(11)95150-7341
Posts: 593
Joined: Sat May 12, 2007 11:47 AM
Re: RPreview mal en xp
Posted: Wed Oct 09, 2013 12:42 PM

Antonio,

La aplicaci贸n que presenta problemas tiene una secci贸n (que es la que m谩s se usa), que presenta el problema descrito (fallar s贸lo en xp).

Como es la que m谩s se usa, no me di cuenta de probar otros preview que est谩n en otros sectores de la aplicaci贸n y, para mi sorpresa, en estos funciona bi茅n (salvo los mensajes que no tiene soft para usar ficheros DOC, error de plugin pdf, etc.).

Es muy raro porque adem谩s funciona en xp (esa parte del programa), tanto si le hago la reforma con la funci贸n que propones, como si no se la hago. Te recuerdo que en W7 funciona bien.

As铆 que voy a revisar y comparar mi c贸digo para ver si le encuentro el motivo. Luego comento.

Saludos.

Rolando :D

Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: RPreview mal en xp
Posted: Wed Oct 09, 2013 12:53 PM

Rolando,

Hay que localizar en el c贸digo de la aplicaci贸n de donde procede el fallo.

Pudiera tratarse de algo que haya que modificar en FWH pero hasta que no sepamos que est谩 fallando, no podemos hacer nada. gracias

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 593
Joined: Sat May 12, 2007 11:47 AM
Re: RPreview mal en xp
Posted: Thu Oct 10, 2013 01:10 PM
Antonio,

Creo saber cuando se ocasiona el fallo.

Yo hago oRich:preview("Presupuesto") y algunos los puedo exportar perfectamente a PDF, pero si el Rich tiene m谩s de quince l铆neas AH脥 SE CUELGA el exportar a PDF.

De lo anterior, deduzco que es un problema del tama帽o de lo que se quiera exportar, No se como se consuma esta exportaci贸n, pero al rich le agregu茅 una imagen de 2500KB m谩s 2 l铆neas de texto y lo export贸 bi茅n, pero si la agrego otras dos l铆neas de texto m谩s, AH脥 SE CUELGA.

Reitero que esto solo se presenta en window xp 32 bits.

Rolando :-)
Posts: 593
Joined: Sat May 12, 2007 11:47 AM
Re: RPreview mal en xp
Posted: Thu Oct 10, 2013 06:09 PM
Antonio,

El problema pareciera estar en la l铆nea:

Code (fw): Select all Collapse
 聽 聽 聽AEval( oDevice:aMeta, { | cMeta | oPdf:AddMeta( cMeta ) } )


Del prv2pdf.prg

Ac谩 me tranco, porque no comprendo esta l铆nea pero si comprob茅 que hasta antes de esta l铆nea llega y ah铆 produce el error en xin xp 32 bits.

Rolando :-)
Posts: 1789
Joined: Tue Oct 11, 2005 05:01 PM
Re: RPreview mal en xp
Posted: Thu Oct 10, 2013 07:42 PM
si usas xharbour
Code (fw): Select all Collapse
AEval( oDevice:aMeta, { | cMeta | Tracelog( "cMeta:" + cMeta ), oPdf:AddMeta( cMeta ) } )


y verifica el archivo trace.log
auque hay que verificar que hace el metodo Addmeta con cMeta
Code (fw): Select all Collapse
METHOD AddMeta( cMeta ) CLASS FWPDF

   local nAt

   ::nPage++
   ::WritePage( Emf2Jpeg( cMeta ) )

return Self


aparentemente no hay probabilidades de error, salvo que cMeta apunte a un archivo EMF corrupto o similar el cual al intento de conversion a JPG pues falle.

salu2
carlos vargas
Salu2

Carlos Vargas

Desde Managua, Nicaragua (CA)
Posts: 8515
Joined: Tue Dec 20, 2005 07:36 PM
Re: RPreview mal en xp
Posted: Thu Oct 10, 2013 08:29 PM

Problemas con Windows XP (Terminal) y Windows Server 2008 (Server), contin煤a el programa para sin ninguna raz贸n.

Salu2.

Jo茫o Santos - S茫o Paulo - Brasil - Phone: +55(11)95150-7341
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: RPreview mal en xp
Posted: Fri Oct 11, 2013 06:53 AM

Rolando,

Has comprobado que tengas en tu c贸digo el arreglo que he comentado en esta conversaci贸n ?

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 593
Joined: Sat May 12, 2007 11:47 AM
Re: RPreview mal en xp
Posted: Fri Oct 11, 2013 12:33 PM
Gracias Antonio y Carlos,

Antonio,

Al c贸digo que indicas lo puse primero en el archivo "C" y ahora en un PRG donde guardo mis funciones.

Code (fw): Select all Collapse
//-----------------------------------------------------------------------------------------
聽
#pragma BEGINDUMP
#include <windows.h>
#include <hbapi.h>
聽
#ifdef __XHARBOUR__
聽 #define hb_parvnl( x, y ) hb_parnl( x, y )
聽 #define hb_storvnl( v, x, y ) hb_stornl( v, x, y )
#endif
聽
HB_FUNC( DIBTOSTR ) 聽// ( hDib ) --> lSuccess
{
聽 聽long lSize;
聽 聽char * pDib;
聽
聽 聽#ifndef _WIN64
聽 聽 聽 pDib = DibToStr( ( HGLOBAL ) hb_parnl( 1 ), &lSize );
聽 聽#else 聽 
聽 聽 聽 pDib = DibToStr( ( HGLOBAL ) hb_parnll( 1 ), &lSize );
聽 聽#endif
聽
聽 聽hb_retclen( pDib, lSize );
聽 聽hb_xfree( ( void * ) pDib ); // aqui !!!
}
聽
#pragma ENDDUMP
聽
//-----------------------------------------------------------------------------------------


Te comento que al archivo rich lo armo autom谩ticamente desde mi aplicaci贸n (y se puede editar), pero como dec铆a, lo armo con datos sacados de una DBF y CREO QUE AH脥 PUEDE ESTAR EL ERROR. Porque si este archivo es reemplazado por una captura de un .DOC (por ej.), luego se exporta sin problemas a PDF.

Creer铆a que cuando armo el texto del rich con los datos de la DFB, se le estar铆a pasando alg煤n caracter que no corresponda. Pero si esto fuera as铆, no podr铆a visualizarse tampoco en el/los .EMF que genera y, como ver谩s en el video, SI SE VISUALIZA/N EL/LOS .EMF GENERADO/S

El c贸digo con el que armo el texto del rich es el siguiente:

Code (fw): Select all Collapse
local cPrueba:=(" 聽 聽 聽 聽Por la reparaci贸n del "+alltrim(cArtefacto)+" modelo "+alltrim(cModelo)+", serie "+;
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 alltrim(cSerie)+", perteneciente a "+alltrim(cNombre)+", con domicilio en "+alltrim(cDireccion)+;
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 ", se presupuesta la suma de 

"+NumToCadena(val(cPresu),"pesos",.t.)+"."+renglon+renglon+;
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 " 聽 聽 聽 聽"+cDetalleTA+renglon+renglon+;
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 " 聽 聽 聽 聽Falla debida, en un alto grado de posibilidad, a 

una descarga atmosf茅rica."+renglon+renglon+;
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 " 聽 聽 聽 聽Este presupuesto tiene validez por 72 horas y 

mientras que el artefacto no sea retirado"+;
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 " de nuestro taller y est谩 circunscripto al cambio de las 

partes anteriormente mencionadas."+renglon+renglon+;
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 " 聽 聽 聽 聽Ya que los repuestos a utilizar son de origen 

extranjero, este presupuesto est谩 sujeto a"+;
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 " variaci贸n de acuerdo a cotizaci贸n de los repuestos y 

disponibilidad de los mismos por parte"+;
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 " de la Empresa importadora, a utilizar en el momento 

de aceptaci贸n del mismo."+renglon+renglon+;
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 " 聽 聽 聽 聽Se extiende el presente a solicitud del propietario 

del aparato, a los "+;
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 NumToCadena(val(substr(dtoc(date()),1,2)),,.f.)+" d铆as 

del mes de "+NumToMes(month(date()))+;
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 " de 

"+NumToAno(year(date()))+"."+renglon+renglon+renglon+;
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 "SON: $"+alltrim(cPresu) )
oRichPRESUPUESTOS:LoadFromRTFFile(cLocalServer+"\rtf\presu.rtf")
聽 聽 聽 聽 oRichPRESUPUESTOS:GoToLine(2)

聽聽 聽聽 聽 oRichPRESUPUESTOS:SetAlign(3)
聽 聽 聽 聽 oRichPRESUPUESTOS:SetUnderline(.t.)

聽 聽 oRichPRESUPUESTOS:SetBold(.t.)
聽聽 聽聽 聽 oRichPRESUPUESTOS:SetFontSize(16)
聽 聽 聽 聽 oRichPRESUPUESTOS:InsertRTF("PRESUPUESTO - ref "+alltrim(cTalon)+renglon+renglon)
聽 聽 聽 聽 oRichPRESUPUESTOS:SetUnderline(.f.)
聽 聽 聽 聽 oRichPRESUPUESTOS:SetBold(.f.)
聽 聽 聽 聽 oRichPRESUPUESTOS:SetFontSize(11)

聽 聽 聽 聽 oRichPRESUPUESTOS:SetAlign(2)
聽 聽 聽 聽 oRichPRESUPUESTOS:InsertRTF("San Nicol谩s, "+dtoc(date())+renglon+renglon)
聽 聽 聽 聽 oRichPRESUPUESTOS:SetAlign(1)
聽 聽 聽 聽 oRichPRESUPUESTOS:GoToLine(7)
聽 聽 聽 聽 oRichPRESUPUESTOS:InsertRTF(cPrueba)


Hice un video en el que se ve el error con los rich's armados mediante el c贸digo anterior y en el se ve que puede editarse el archivo .EMF generado pero cuando sigue la ejecuci贸n luego del msginfo, en el aEval, ah铆 se "bloquea". Tambi茅n se ve que si al contenido del rich lo reemplazo con una captura de un DOC, NO HACE LA FALLA.

EL video est谩 en: http://youtu.be/LWdBL191l40

Para poder controlar los .EMF, inclu铆 el siguiente c贸digo en el prv2pdf.prg y antes del "AEval( oDevice:aMeta, { | cMeta | oPdf:AddMeta( cMeta ) } )"

Code (fw): Select all Collapse
AEval( oDevice:aMeta, { | cMeta | Tracelog( "cMeta:" + cMeta ) } ) 聽聽 聽 // by rolo
聽msginfo("Pasado al log")聽 聽// by rolo
聽AEval( oDevice:aMeta, { | cMeta | oPdf:AddMeta( cMeta ) } )


La verdad estoy desconcertado, sobre todo porque en W7 funciona lo m谩s bien.

Seguir茅 buscando pero se "bloquea" en la l铆nea "AEval( oDevice:aMeta, { | cMeta | oPdf:AddMeta( cMeta ) } )" del prv2pdf.prg

Saludos

Rolando
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: RPreview mal en xp
Posted: Fri Oct 11, 2013 02:24 PM

Rolando,

Comprueba que est茅s enlazando tu PRG antes de las librer铆as de FWH, para que se enlace tu funci贸n en vez de la de FWH.

Aun no he visualizado tu video, lo miro y veo si hay algo m谩s que podamos hacer, gracias

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: RPreview mal en xp
Posted: Fri Oct 11, 2013 02:30 PM

Si en el c贸digo en C incluyes esta llamada:

MessageBeep (-1 );

MessageBox( 0, "aqui", "ok", 0 );

te puedes asegurar de que se est茅 llamando tu funci贸n

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 593
Joined: Sat May 12, 2007 11:47 AM
Re: RPreview mal en xp
Posted: Fri Oct 11, 2013 02:49 PM

Antonio,

Inclu铆 la llamada que sugieres y [u:77naxxqm]S脥 est谩 pasando por esa funci贸n[/u:77naxxqm].

Por favor, mira el video y notar谩s lo que explico. Gracias.

Rolando :D

Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: RPreview mal en xp
Posted: Fri Oct 11, 2013 02:58 PM

Rolando,

En FWH/source/function/prv2pdf.prg esta el c贸digo fuente de la funci贸n:
static function Emf2Jpeg( cEMF )

al ser static no puedes modificar esa funci贸n desde tu PRG, asi que por favor modifica prv2pdf.prg e incluye algunas llamadas a MsgInfo( 1 ), MsgInfo( 2 ), etc para ver hasta que l铆nea llega y donde falla. Como puede pasar muchas veces por ahi puede ser m谩s facil si usas la funci贸n LogFile( cLogFile, { data, ... } ) 贸 OutputDebugString( cMensaje) y asi ver谩s en dbwin hasta donde llega antes de generarse el GPF, gracias

regards, saludos

Antonio Linares
www.fivetechsoft.com