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)
Responder
angelsalom
Mensajes: 16
Registrado: Mar Sep 11, 2018 8:37 am

Duplicidad de registros usando lLoadOnDemand

Mensaje por angelsalom »

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 :

Código: Seleccionar todo

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 :
Imagen

El resultado del informe :
Imagen

¿Alguna sugerencia o solución?
Gracias
Angel Salom
www.visionwin.com
Avatar de Usuario
ignacio
Site Admin
Mensajes: 9246
Registrado: Lun Abr 06, 2015 8:00 pm
Ubicación: Madrid, Spain
Contactar:

Re: Duplicidad de registros usando lLoadOnDemand

Mensaje por ignacio »

Buenos días,

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

Código: Seleccionar todo

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]
https://www.xailer.com
angelsalom
Mensajes: 16
Registrado: Mar Sep 11, 2018 8:37 am

Re: Duplicidad de registros usando lLoadOnDemand

Mensaje por angelsalom »

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.
Adjuntos
Biolife.zip
(186.39 KiB) Descargado 1018 veces
Angel Salom
www.visionwin.com
datato
Mensajes: 49
Registrado: Vie Ene 10, 2014 9:41 pm

Re: Duplicidad de registros usando lLoadOnDemand

Mensaje por datato »

Hola, a mi me funciona igual. Se repiten los registro a partir de la tercera pagina
Avatar de Usuario
ignacio
Site Admin
Mensajes: 9246
Registrado: Lun Abr 06, 2015 8:00 pm
Ubicación: Madrid, Spain
Contactar:

Re: Duplicidad de registros usando lLoadOnDemand

Mensaje por ignacio »

Buenas tardes,

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

Un saludo
Adjuntos
iFastReport.rar
(20.78 KiB) Descargado 1003 veces
Ignacio Ortiz de Zúñiga
[Equipo de Xailer / Xailer team]
https://www.xailer.com
angelsalom
Mensajes: 16
Registrado: Mar Sep 11, 2018 8:37 am

Re: Duplicidad de registros usando lLoadOnDemand

Mensaje por angelsalom »

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

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

Código: Seleccionar todo

\bcc70\bin\tlib xaFrhBcc.lib +- ifastreport.obj
TLIB 6.4 Copyright (c) 1987-2014 Embarcadero Technologies, Inc.
Y al compilar un pequeño ejemplo :

Código: Seleccionar todo

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.
Angel Salom
www.visionwin.com
Avatar de Usuario
ignacio
Site Admin
Mensajes: 9246
Registrado: Lun Abr 06, 2015 8:00 pm
Ubicación: Madrid, Spain
Contactar:

Re: Duplicidad de registros usando lLoadOnDemand

Mensaje por ignacio »

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]
https://www.xailer.com
angelsalom
Mensajes: 16
Registrado: Mar Sep 11, 2018 8:37 am

Re: Duplicidad de registros usando lLoadOnDemand

Mensaje por angelsalom »

ignacio escribió: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.
Angel Salom
www.visionwin.com
Responder