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.

Duplicidad de registros usando lLoadOnDemand

FastReport for Xailer & [x]Harbour (English/Spanish)
angelsalom
Posts: 15
Joined: Tue Sep 11, 2018 8:37 am

Duplicidad de registros usando lLoadOnDemand

Postby angelsalom » Tue Nov 06, 2018 12:11 pm

Buenos días, adquirí recientemente Fast Report para xHarbour y está funcionando muy bien.
Ahora que ya lo tengo implementado estoy tratando de optimizar la velocidad de ejecución ya que tengo clientes con bases de datos de un tamaño considerable.
He optado por probar lLoadOnDemand tal como viene en el ejemplo BioLife de frconsole.prg y lo cierto es que la velocidad se dispara.
Sólo hay un problema, imprime todos los registros de la tabla dos veces (este hecho ocurre también en el ejemplo que mencione de frconsole.prg)

He observado que la dll (frx.dll) que viene con Xailer es más reciente que la que tengo yo. La mía data del 09/09/2016 y la de Xailer 09/05/2017, mi versión 1.5.1609.7 y la de Xailer 1.5.1705.9 . ¿No se si puede ser debido a esto?

El código :

Code: Select all

USE .\DATA\BIOLIFE SHARED VIA "DBFCDX"

   WITH OBJECT oReport := TFastReport():New()
      WITH OBJECT :AddDbf( "BIOLIFE" )
         :lLoadOnDemand := .T.
         :nMaxRecsOnDesign := 10
      END WITH
      :bOnAfterLoad   := {|| QOut( "Report loaded" ) }
      :bOnClickObject := {|oSender, cObject| QOut( "Mouse click on object: " + cObject ) }
      :bOnEndPreview  := {|| QOut( "Report preview window closed" ) }
      :Create()

      :cFilename := ".\Reports\Biolife.fr3"

      :AddCategory( "personal" )
      :AddVariable( "test", 123 )

      ? "Report description:"
      ? :oReportOptions:aDescription[ 1 ]

      IF !lDesign
         :ShowReport()
      ELSE
         :DesignReport()
      ENDIF
      :End()
   END WITH

   CLOSE ALL


La tabla, reducida a un registro :
Image

El resultado del informe :
Image

¿Alguna sugerencia o solución?
Gracias
User avatar
ignacio
Site Admin
Posts: 8463
Joined: Mon Apr 06, 2015 8:00 pm
Location: Madrid, Spain
Contact:

Re: Duplicidad de registros usando lLoadOnDemand

Postby ignacio » Wed Nov 07, 2018 10:04 am

Buenos días,

Aquí está funcionando perfectamente, precisamente con el ejemplo que ofrecemos en nuestro producto FR para consola.

Code: Select all

USE .\DATA\BIOLIFE SHARED VIA "DBFCDX"

   WITH OBJECT oReport := TFastReport():New()
      WITH OBJECT :AddDbf( "BIOLIFE" )
         :lLoadOnDemand := .t.
         :nMaxRecsOnDesign := 10
      END WITH
      :bOnAfterLoad   := {|| QOut( "Report loaded" ) }
      :bOnClickObject := {|oSender, cObject| QOut( "Mouse click on object: " + cObject ) }
      :bOnEndPreview  := {|| QOut( "Report preview window closed" ) }
      :Create()

      :cFilename := ".\Reports\Biolife.fr3"

      :AddCategory( "personal" )
      :AddVariable( "test", 123 )

      :AddFunction( "function NtoL(n: extended):String", "My category",;
                    "Converts a number to a string" )

      ? "Report description:"
      ? :oReportOptions:aDescription[ 1 ]

      IF !lDesign
         :ShowReport()
      ELSE
         :DesignReport()
      ENDIF
      :End()
   END WITH


Es posible que sea un error de una antigua version de FRX. Le recomiendo descargue la nueva versión desde:

http://www2.xailer.com/download?es&file=103

Saludos
Ignacio Ortiz de Zúñiga
[Equipo de Xailer / Xailer team]
http://www.xailer.com
http://www.xailer.info
angelsalom
Posts: 15
Joined: Tue Sep 11, 2018 8:37 am

Re: Duplicidad de registros usando lLoadOnDemand

Postby angelsalom » Wed Nov 07, 2018 10:31 am

Acabo de descargar y ejecutar frconsole con el ejemplo Biolife, adjunto PDF comprimido en ZIP en el que se puede observar cómo se repiten los registros. Concretamente en el segundo registro de la tercera página vuelve a empezar con la referencia 90020.
Attachments
Biolife.zip
(186.39 KiB) Downloaded 4 times
datato
Posts: 49
Joined: Fri Jan 10, 2014 9:41 pm

Re: Duplicidad de registros usando lLoadOnDemand

Postby datato » Wed Nov 07, 2018 1:58 pm

Hola, a mi me funciona igual. Se repiten los registro a partir de la tercera pagina
User avatar
ignacio
Site Admin
Posts: 8463
Joined: Mon Apr 06, 2015 8:00 pm
Location: Madrid, Spain
Contact:

Re: Duplicidad de registros usando lLoadOnDemand

Postby ignacio » Thu Nov 08, 2018 6:30 pm

Buenas tardes,

Espero que se corrija con el modulo que adjunto. Quedo a la espera de sus comentarios.

Un saludo
Attachments
iFastReport.rar
(20.79 KiB) Downloaded 12 times
Ignacio Ortiz de Zúñiga
[Equipo de Xailer / Xailer team]
http://www.xailer.com
http://www.xailer.info
angelsalom
Posts: 15
Joined: Tue Sep 11, 2018 8:37 am

Re: Duplicidad de registros usando lLoadOnDemand

Postby angelsalom » Thu Nov 08, 2018 7:24 pm

Gracias Ignacio. Parece que tengo un pequeño problema ....

Reemplazo el módulo de la librería xaFrhBcc.lib aparentemente sin problemas con :

Code: Select all

\bcc70\bin\tlib xaFrhBcc.lib +- ifastreport.obj
TLIB 6.4 Copyright (c) 1987-2014 Embarcadero Technologies, Inc.


Y al compilar un pequeño ejemplo :

Code: Select all

Turbo Incremental Link 6.70 Copyright (c) 1997-2014 Embarcadero Technologies, Inc.
Error: Unresolved external '_hb_itemGetT' referenced from C:\SI\TRABAJO\FWH\PROPIOS\FR\xaFrhBcc.lib|ifastreport
Error: Unresolved external '_hb_retcAdopt' referenced from C:\SI\TRABAJO\FWH\PROPIOS\FR\xaFrhBcc.lib|ifastreport
Error: Unable to perform link


Utilizo Harbour 3.2. y Borland C++ 7.0 (sin problemas con la librería sin modificaciones)

Gracias por tu esfuerzo, los logros que estamos consiguiendo con FastReport son espectacularaes.
User avatar
ignacio
Site Admin
Posts: 8463
Joined: Mon Apr 06, 2015 8:00 pm
Location: Madrid, Spain
Contact:

Re: Duplicidad de registros usando lLoadOnDemand

Postby ignacio » Sat Nov 10, 2018 10:44 am

Buenos días,

Los módulos que subí esta compilados con la misma versión de Harbour. No sé cual puede ser el motivo del error. Lo estudiaré con más detenimiento. No obstante, poniendo la propiedad lSyncroData a false es casi seguro de que no le fallará.

Saludos
Ignacio Ortiz de Zúñiga
[Equipo de Xailer / Xailer team]
http://www.xailer.com
http://www.xailer.info
angelsalom
Posts: 15
Joined: Tue Sep 11, 2018 8:37 am

Re: Duplicidad de registros usando lLoadOnDemand

Postby angelsalom » Sun Nov 11, 2018 1:43 pm

ignacio wrote:Buenos días,

Los módulos que subí esta compilados con la misma versión de Harbour. No sé cual puede ser el motivo del error. Lo estudiaré con más detenimiento. No obstante, poniendo la propiedad lSyncroData a false es casi seguro de que no le fallará.

Saludos


Aparentemente con lSynchroData a .F. está funcionado bien, gracias.

Return to “FastReport”