RPreview mal en xp - SOLUCIONADO (a medias)

Re: RPreview mal en xp

Postby karinha » Tue Oct 08, 2013 6: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
User avatar
karinha
 
Posts: 7804
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: RPreview mal en xp

Postby Antonio Linares » Wed Oct 09, 2013 7:49 am

Joao,

te sigue fallando en XP con esos cambios ?
regards, saludos

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

Re: RPreview mal en xp

Postby karinha » 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
User avatar
karinha
 
Posts: 7804
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: RPreview mal en xp

Postby rolando » 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
User avatar
rolando
 
Posts: 593
Joined: Sat May 12, 2007 11:47 am
Location: San Nicolás - BA - ARGENTINA

Re: RPreview mal en xp

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

Re: RPreview mal en xp

Postby rolando » Thu Oct 10, 2013 1: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 :D
User avatar
rolando
 
Posts: 593
Joined: Sat May 12, 2007 11:47 am
Location: San Nicolás - BA - ARGENTINA

Re: RPreview mal en xp

Postby rolando » Thu Oct 10, 2013 6:09 pm

Antonio,

El problema pareciera estar en la línea:

Code: Select all  Expand view
     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 :D
User avatar
rolando
 
Posts: 593
Joined: Sat May 12, 2007 11:47 am
Location: San Nicolás - BA - ARGENTINA

Re: RPreview mal en xp

Postby carlos vargas » Thu Oct 10, 2013 7:42 pm

si usas xharbour
Code: Select all  Expand view

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: Select all  Expand view

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)
User avatar
carlos vargas
 
Posts: 1719
Joined: Tue Oct 11, 2005 5:01 pm
Location: Nicaragua

Re: RPreview mal en xp

Postby karinha » Thu Oct 10, 2013 8: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
User avatar
karinha
 
Posts: 7804
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: RPreview mal en xp

Postby Antonio Linares » Fri Oct 11, 2013 6: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
User avatar
Antonio Linares
Site Admin
 
Posts: 42080
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: RPreview mal en xp

Postby rolando » 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: Select all  Expand view
//-----------------------------------------------------------------------------------------
 
#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: Select all  Expand view
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: Select all  Expand view
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
User avatar
rolando
 
Posts: 593
Joined: Sat May 12, 2007 11:47 am
Location: San Nicolás - BA - ARGENTINA

Re: RPreview mal en xp

Postby Antonio Linares » Fri Oct 11, 2013 2: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
User avatar
Antonio Linares
Site Admin
 
Posts: 42080
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: RPreview mal en xp

Postby Antonio Linares » Fri Oct 11, 2013 2: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
User avatar
Antonio Linares
Site Admin
 
Posts: 42080
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: RPreview mal en xp

Postby rolando » Fri Oct 11, 2013 2:49 pm

Antonio,

Incluí la llamada que sugieres y SÍ está pasando por esa función.

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

Rolando :D
User avatar
rolando
 
Posts: 593
Joined: Sat May 12, 2007 11:47 am
Location: San Nicolás - BA - ARGENTINA

Re: RPreview mal en xp

Postby Antonio Linares » Fri Oct 11, 2013 2: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
User avatar
Antonio Linares
Site Admin
 
Posts: 42080
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

PreviousNext

Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Google [Bot] and 56 guests