In order for this site to work correctly we need to store a small file (called a cookie) on your computer. Most every site in the world does this, however since the 25th of May 2011, by law we have to get your permission first. Please abandon the forum if you disagree.

Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.

LoadFPFile parece no funcionar

FastReport for Xailer & [x]Harbour (English/Spanish)
User avatar
bingen
Posts: 440
Joined: Mon Jul 07, 2014 8:17 pm
Location: Bilbao
Contact:

LoadFPFile parece no funcionar

Postby bingen » Tue Mar 29, 2016 1:24 pm

Buenas xTeam.

He preparado mi propio Preview que lo enlazo con nuestro sistema de impresión de FR para que al cliente le muestre un preview mas vistoso y simple.

Lo he intentado de muchas maneras y no me ha funcionado, pero he pensado que lo más simple es grabar desde mi sistema un archivo FP3, eso está chupado, pero al lanzar mi preview no soy capaz de leer el FP3.

Si hago un Open() si que funciona pero entoces muestra el diálogo de abrir en cambio si hago un LoadFPFIle no me da error y de hecho devuelve .T. pero no muestra nada de nada y h eprobado de todo pero... ¿que mas puedo hacer?

Code: Select all

 with object ::oFrPreview
   :lVisible:=.F.
   :oReport:Clear()
   :oReport:LoadFPFile(Application:cDirectory+"prueba.fp3")
    :lVisible:=.T.
End


Gracias.
BiSoft Desarrollo de software profesional
http://www.bisoft.es
User avatar
ignacio
Site Admin
Posts: 8691
Joined: Mon Apr 06, 2015 8:00 pm
Location: Madrid, Spain
Contact:

Re: LoadFPFile parece no funcionar

Postby ignacio » Wed Mar 30, 2016 11:28 am

Buenos días,

Efectivamente hay un error. Hay que modificar el siguiente método:

Code: Select all

METHOD LoadReport( lDesign ) CLASS XFastReport

   LOCAL oIcon
   LOCAL cFile, cExt
   LOCAL lSuccess := .f.

   DEFAULT lDesign TO .t.

   IF !::lCreated .OR. ::nLoaded != NOT_LOADED
      RETURN .T.
   ENDIF

   IF Empty( ::cResIco )
      oIcon := Application:oMainForm:oIcon
      IF oIcon != NIL .AND. !Empty( oIcon:cName ) .AND. !File( oIcon:cName )
         ::cResIco := oIcon:cName
      ENDIF
   ENDIF

   ::ClearReport()
   ::LoadData( lDesign )
   ::OnBeforeLoad( lDesign )

   // Guardamos todas las variables que hubiera podido incluir
   IF ::lDelFRVars
      ::SaveVariables()
   ENDIF

   ::lPrepared := .f.

   IF !Empty( ::cFilename )
      IF !( ":" $ ::cFilename ) .AND. Left( ::cFilename, 2 ) <> "\\"
         cFile := Application:cDirectory + ::cFilename
      ELSE
         cFile := ::cFilename
      ENDIF
      IF File( cFile )
         cExt := Upper( FileExtension( cFile ) )
         IF cExt == "FR3"
            lSuccess := ::LoadFromFileC( cFile )
         ELSEIF cExt == "FP3"
            lSuccess := ::LoadFPFileC( cFile )
            ::lPrepared := .T.
         ENDIF
      ELSE
         ::SetError(  200, cFile + ": File not found on LoadFromFile()" )
      ENDIF
   ELSEIF !Empty( ::cResName )
      lSuccess := ::LoadFromResourceC( 0, ::cResName )
   ELSEIF !Empty( ::cResData )
      lSuccess := ::LoadFromStringC( ::cResData, .f. )
   ENDIF

   ::SetADOConnectStr()

   ::nLoaded := IIF( lSuccess, IIF( lDesign, DESIGN_LOADED, FULL_LOADED ), NOT_LOADED )

   IF lSuccess
      ::AfterLoad()
   ENDIF

RETURN lSuccess


Y para usarlo basta con hacer:

Code: Select all

oFastReport1:LoadFPFile( "?????.fp3" )
oFastReport1:ShowPreparedReport()


Lo he intentado de muchas maneras y no me ha funcionado


Te agradecería que fueras más explicito. Gracias de antemano.

Un saludo
Ignacio Ortiz de Zúñiga
[Equipo de Xailer / Xailer team]
http://www.xailer.com
User avatar
bingen
Posts: 440
Joined: Mon Jul 07, 2014 8:17 pm
Location: Bilbao
Contact:

Re: LoadFPFile parece no funcionar

Postby bingen » Wed Mar 30, 2016 6:00 pm

He metido esta corrección haciendo un ajuste de una variable lDelFRVars que no existe ya que supongo que es para la persistencia de las variables en la nueva versión y he recompilado el fuente de fastReport junto a mi proyecto y 100% ok funciona perfectamente....

Las otras pruebas que hice y que no detallé son por ejemplo esta. Ya que tengo un objeto FR creado asignarlo al nuevo preview directamente, pero no conseguí que anduviera, así que opté por grabar primero un FP3 temporal y de esta manera leerlo en mi nuevo Preview, lo cual ahora ya está resuleto. Esto solo se notará en los preview de gran número de páginas que tardarán más en aparecer, pero lo harán correctamente.

Gracias y salu2.
BiSoft Desarrollo de software profesional
http://www.bisoft.es

Return to “FastReport”