ActiveX en Harbour + Visual Studio 2012 (SOLUCIONADO)

User avatar
fgondi
Posts: 636
Joined: Fri Oct 07, 2005 6:58 am
Location: Palencia, España
Contact:

ActiveX en Harbour + Visual Studio 2012 (SOLUCIONADO)

Post by fgondi »

Estoy migrando mis aplicaciones desde xharbour+Bcc582 a Harbour+Visual Studio 2012

Tengo problemas con algunos ActiveX, en concreto con Crystal Report y con LeadTool.
El problema es que no visualiza nada. Abre la ventana mdichild pero no muestra nada.

Además me pasa en los equipos con Windows 7, Windows 8, Windows 2008 server.
El mismo ejecutable en XP o 2000 server. funciona correctamente.

La misma aplicación compilada con xHarbour+Bcc582 y con Harbour+Bcc582 funciona en todos los operativos.

También he probado a cambiar el código y usar THActiveX pero sucede lo mismo.

Code: Select all

 DEFINE Window oVentHija MDICHILD "Reporte" OF oWndPrincipal
 oActiveX := TActiveX():New( oVentHija, "CrystalReports11.ActivexReportViewer.1" )  
 oVentHija:oClient := oActiveX
 oActivex:SetProp( "ReportSource", oCRReport )
 oActiveX:SetProp( "EnableStopButton",     1  )
 oActiveX:SetProp( "EnableAnimationCtrl",  0  )
 oActiveX:SetProp( "EnableCloseButton",    1  ) 
 oActiveX:SetProp( "EnableExportButton",   1  )
 oActiveX:SetProp( "EnablePopupMenu",      0  )  // revisar, es interesante pero da error
 oActiveX:SetProp( "EnableRefreshButton",  0  )
 oActiveX:bOnEvent = { | event, aParams | EventInfo( event, aParams, oCRReport, oActivex  ) } 

 ACTIVATE WINDOW oVentHija  ON INIT ( oActiveX:Do( "Viewreport" )  )

function EventInfo( event, aParams, oCRReport, oActivex )
   local cMsg := cValToChar( event ) //+ CRLF
return cMsg 
 
Last edited by fgondi on Mon Jul 08, 2013 4:28 pm, edited 1 time in total.
Un saludo
Fernando González Diez
ALSIS GHE Sistemas Informáticos
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Re: ActiveX en Harbour + Visual Studio 2012

Post by Antonio Linares »

Fernando,

No te genera error ? No lo muestra y no da error ?

Prueba tambien a hacer:

oActiveX:Show()
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
fgondi
Posts: 636
Joined: Fri Oct 07, 2005 6:58 am
Location: Palencia, España
Contact:

Re: ActiveX en Harbour + Visual Studio 2012

Post by fgondi »

No, no genera ningún error.
Sólo abre la ventana MDI y dentro esta vacia (fondo blanco).

oActiveX:Show() -> No funciona.

No parece que sea un tema de FWH o de Harbour, ya que cuando compilo con FHW+Harbour+BCC582 funciona bien.
Mas parece un tema de las librerías que se incluyen de Visual Studio, que hace que esos 2 controles no se muestren.
El control del PDF, si funciona.

¿Podría ser problema de la versión de los viewer?, aunque con BCC582 funciona
Un saludo
Fernando González Diez
ALSIS GHE Sistemas Informáticos
nnicanor
Posts: 296
Joined: Fri Apr 23, 2010 4:30 am
Location: Colombia

Re: ActiveX en Harbour + Visual Studio 2012

Post by nnicanor »

Buenas tardes,

Yo tuve ese problema con MSVC 2010, prueba registrando los controles y/o DLL asociados.

Slds
Nicanor Martinez M.
Auditoria y Sistemas Ltda.
MicroExpress Ltda.
FW + FWH + XHARBOUR + HARBOUR + PELLES C + XDEVSTUDIO + XEDIT + BCC + VC_X86 + VCC_X64 + MINGW + R&R Reports + FastReport + Tdolphin + ADO + MYSQL + MARIADB + ORACLE
nnicanor@yahoo.com
User avatar
fgondi
Posts: 636
Joined: Fri Oct 07, 2005 6:58 am
Location: Palencia, España
Contact:

Re: ActiveX en Harbour + Visual Studio 2012

Post by fgondi »

Muchas gracias por responder,

Tampoco funciona

Información de dll's a registrar para crystal report
REGSVR32 CRVIEWER.DLL
REGSVR32 REPORTPARAMETERDIALOG.DLL
REGSVR32 SVIEWHLP.DLL
REGSVR32 SWEBRS.DLL
Un saludo
Fernando González Diez
ALSIS GHE Sistemas Informáticos
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Re: ActiveX en Harbour + Visual Studio 2012

Post by Antonio Linares »

Fernando,

Podrias proporcionar el código fuente de un ejemplo muy simple para poder reproducirlo aqui ?

Asi puedo hacer pruebas aqui, gracias :-)
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
fgondi
Posts: 636
Joined: Fri Oct 07, 2005 6:58 am
Location: Palencia, España
Contact:

Re: ActiveX en Harbour + Visual Studio 2012

Post by fgondi »

Antonio, gracias por tu tiempo.

Preparo un ejemplo y te lo envío
Un saludo
Fernando González Diez
ALSIS GHE Sistemas Informáticos
User avatar
fgondi
Posts: 636
Joined: Fri Oct 07, 2005 6:58 am
Location: Palencia, España
Contact:

Re: ActiveX en Harbour + Visual Studio 2012

Post by fgondi »

he modificado el archivo tutor02.prg con lo siguiente:

Code: Select all

// Our first Window in FiveWin !!!

#include "FiveWin.ch"

//----------------------------------------------------------------------------//

function Main()

   local oWnd, oActiveX, oCRApp, oRpt

   oCRApp := CreateObject("CrystalRuntime.Application.11") 
   oRpt   := oCRApp:OpenReport("Blanc.rpt")
   
   DEFINE WINDOW oWnd FROM 3, 6 TO 20, 70 ;
      TITLE "Welcome to " + FWDESCRIPTION COLOR "W/B"

//   @ 2, 2 SAY "Hello world!"
   oActiveX := TActiveX():New( oWnd, "CrystalReports11.ActivexReportViewer.1" )  
   oWnd:oClient := oActiveX
   oActivex:SetProp( "ReportSource", oRpt )
   oActiveX:SetProp( "EnableStopButton",     1  )
   oActiveX:SetProp( "EnableAnimationCtrl",  0  )
   oActiveX:SetProp( "EnableCloseButton",    1  ) 
   oActiveX:SetProp( "EnableExportButton",   1  )
   oActiveX:SetProp( "EnablePopupMenu",      0  )  // revisar, es interesante pero da error
   oActiveX:SetProp( "EnableRefreshButton",  0  )
   oActiveX:bOnEvent = { | event, aParams | EventInfo( event, aParams, oRpt, oActivex  ) } 
   
   oActiveX:Do( "Viewreport" )
   
   ACTIVATE WINDOW oWnd ;
      VALID MsgYesNo( "Are you sure?", "Do you want to exit?" )

return nil
 


function EventInfo( event, aParams, oRpt, oActivex )
   local cMsg := cValToChar( event ) //+ CRLF
return cMsg 

//----------------------------------------------------------------------------//
el rpt "blanc.rpt" lo subo rapidshare
http://rapidshare.com/files/3559180351/Blanc.rar

El rpt esta vacio, pero carga una ventana donde se ve el menu superior.
En windows 7, windows 8, etc sólo carga la ventana y dentro no se ve nada.

Lo compilo con builh32.bat, donde lo único que he cambiado son las llamadas a VC y SDK, porque yo lo tengo instalado en otro sitio
set vcdir="C:\Microsoft Visual Studio 11.0\VC"
set sdkdir="C:\Microsoft Visual Studio 11.0\SDK\v7.1A" //Tambien he probado con "C:\Microsoft Visual Studio 11.0\SDK\v7.0A"
Un saludo
Fernando González Diez
ALSIS GHE Sistemas Informáticos
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Re: ActiveX en Harbour + Visual Studio 2012

Post by Antonio Linares »

Fernando,

Donde se consiguen esas DLLs ? Son redistribuibles ?

gracias
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
fgondi
Posts: 636
Joined: Fri Oct 07, 2005 6:58 am
Location: Palencia, España
Contact:

Re: ActiveX en Harbour + Visual Studio 2012

Post by fgondi »

Antonio,

Te ha llegado lo que te he enviado
Un saludo
Fernando González Diez
ALSIS GHE Sistemas Informáticos
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Re: ActiveX en Harbour + Visual Studio 2012

Post by Antonio Linares »

Fernando,

Si, y te acabo de responder por email, gracias :-)
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:

Re: ActiveX en Harbour + Visual Studio 2012

Post by Antonio Linares »

Fernando,

he probado de todo lo que se me ha ocurrido sin ningún resultado positivo por el momento.

Falla tanto con TActiveX como con THActiveX por el simple hecho de usar MSVC. Con Borland, funciona perfectamente.

En el caso de THActiveX somos un simple wrapper de la implementación de Harbour. Como THActiveX deriva de TControl he probado a declarar como VIRTUAL los métodos Display(), Paint(), Link(), EraseBkGnd() y nada, el mismo resultado.

Si hago oActiveX:Hide() el control se oculta, luego está ahí, pero por que no se muestra ? A ver si se nos ocurre algo...

A este problema es al que me refiero tantas veces: el problema del uso de ActiveX y componentes externos. Ahora ante este problema que podemos hacer ? Sencillamente ir dando palos de ciego y ver si suena la flauta... y sino se arregla: estamos jodidos. Imposible pasar a MSVC, por usar componentes externos... :-(
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
fgondi
Posts: 636
Joined: Fri Oct 07, 2005 6:58 am
Location: Palencia, España
Contact:

Re: ActiveX en Harbour + Visual Studio 2012

Post by fgondi »

Muchas gracias Antonio.
Las nuevas versiones están desarrolladas en framework. Se puede implementar?
Un saludo
Fernando González Diez
ALSIS GHE Sistemas Informáticos
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Re: ActiveX en Harbour + Visual Studio 2012

Post by Antonio Linares »

Fernando,

Te refieres a .NET ?

Por supuesto lo más importante en esto es ayudarte a solucionar el problema técnico de alguna forma, pero para mi es mucho más interesante que compartieses con nosotros el por que usas Crystal Reports ? Que usas de Crystal Reports ? Que es lo bueno que tiene y que le sobra ?

En breve me pondré a construir (ó a sintetizar todo lo hecho) para tener nuestro propio diseñador de reportes. Por esto te pregunto esto, asi tendré la información necesaria para construirlo y asi nos libramos de CR para siempre :-)
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Armando
Posts: 2479
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México
Contact:

Re: ActiveX en Harbour + Visual Studio 2012

Post by Armando »

Antonio:

Me alegra leer tu decisión de desarrollar un diseñador de reporte propio de FW y te felicito por esto creo
que esto solidificará más a FW.

Sugiero echarle una mirada, si es que no lo haz hecho, a FastReport, teniendo lo que FR aporta
tendríamos un excelente diseñador.

Te ánimo a hacerlo a la brevedad posible.

Saludos, ánimo
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
Post Reply