Página 1 de 1

Pequeños problemas con Xailer FR

Publicado: Mar Sep 15, 2015 5:21 pm
por bingen
Buenas Ignacio, he encontrado un par de cosas errorneas o al menos extrañas en FR.

El método VariablesList que sirve para obtener un array de Variables de una categoría, primero muestra un MSGINFO que supongo no debiera, segundo devuelve un array pero de un único elemento con un churro que tiene todos los nombre de variables pegados.

Algo parecido pasa con el método CategoriesList el cual devuelve un array de un lemento con un churro salvo si las categorías tienen nombres con espacios, por ejempplo, "Variables de la aplicación" entonces interpreta erroenamente cada palabra con espacio como una nueva categoría.

Otro error de toda la vida con FR que sigue estando presente en XFR es que si en el diseño grabas el FR3 con una categoría y luego haces acmbios por código en el nombre de las categorías o de una variable, el FR3 internamente sigue teniendo un PropData que mantiene las variables antiguas con el nombre de la categoría vieja, etc... Se da incluso la paradoja de que si quitas una variable de la aplicación, sigue existiendo en FR si está en el FR3 y sigue teniendo el último valor que recuerda el FR3. No es problema vuestro pero yo creo que no se deberían de grabar las variables con sus valores en el FR3 ya que para eso se alimentan desde código fuente cada vez que se invoca al FR3.
No se si conoces alguna manera de hacer que al entrar se borren todas las variables antes de empezar a cargar las de las categorías Xailer y las propias, que es lo que quería hacer con CategoriesList y DeleteCategory.

Gracias y aslu2.

Re: Pequeños problemas con Xailer FR

Publicado: Mar Sep 15, 2015 6:31 pm
por bingen
También he probado ::ClearVariables() despues del LoadFromFile y nada, ahí siguen todas las variables, las viejas que ya no existen, las nuevas etc...

La única manera de borra todas las variables y empezar desde cero correctamente es entrar a mano al FR3 y eliminar el bloque
PropData="..."

Re: Pequeños problemas con Xailer FR

Publicado: Mar Sep 15, 2015 7:16 pm
por ignacio
Buenas tardes Bingen,

Eliminado el MsgInfo al ejecutar el método VariablesList(). Gracias.

Este código:

Código: Seleccionar todo

aList := ::oFastReport1:VariablesList("XAILER")
cList := ""
AEval( aList, {|v| cList+= v + CRLF } )
MsgInfo(cList)
Muestra lo siguiente que entiendo es corrrecto:
2015-09-15 18_48_03-xaFastReport - VMware Workstation.png
2015-09-15 18_48_03-xaFastReport - VMware Workstation.png (5.12 KiB) Visto 6342 veces
El problema de la persistencia de las variables es de FR y no nuestro. Cada vez que añades una variable, ésta se añade al archivo de FR. Hay varias soluciones:

1) Llamar a DeleteCategory( miCategoria ) en el evento TFastReport:AfterLoad
2) Utilizar un fichero FR descartable. Es decir, lo copias a un fichero temporal y es el que usas. Luego lo desprecias.

En cuanto a la lista de categorías que se parten cuando tienen espacios me temo que es un error de FR. FR alimenta un objeto TStringList que incluso indicando que los espacios no los debe de tener en cuenta al hacer el 'parsing', le da exactamente igual. Te recomiendo que pongas un guión bajo en vez de un espacio.

Te adjunto enlace a la nueva la DLL con los arreglos:

https://dl.dropboxusercontent.com/u/318 ... er/frx.dll

Saludos

Re: Pequeños problemas con Xailer FR

Publicado: Mié Sep 16, 2015 3:10 am
por jackson_rr
Hello, friends

Ingnacio, is possible send me this new DLL, tried using more gave me this error

TFastReport Error: Incorrect version DLL (1.5.1505.13). Should be: 1.5.1411.27.

I'm standing by.

Re: Pequeños problemas con Xailer FR

Publicado: Mié Sep 16, 2015 12:51 pm
por bingen
Gracias Ignacio ahora si que va.

Ya se que no es problema vuestro la persistencia por eso te decía que es un "error" antiguo.

Al final como controlo yo cuando se entra en diseño y se graba lo que he hecho es esto:

::DesignReport()

//Limpiar el PropData del FR3 para que la lie con las variables que tiene dentro
cFR3XML:=MemoRead(::cReportPath+If(::lPersonal,"Personal\","")+::cReportName+".Fr3")
If At(' PropData="',cFR3XML)>0
cPropData:=Left(cFR3XML,At(' PropData="',cFR3XML))
cFR3XML:=SubStr(cFR3XML,Len(cPropData)+11)
cFR3XML:=SubStr(cFR3XML,At('">',cFR3XML)+1)
MemoWrit(::cReportPath+If(::lPersonal,"Personal\","")+::cReportName+".Fr3",cPropData+cFR3XML)
Endif

Y a la porra todo el Propdata y me olvido de los lios que se me montan luego en las variables.

Salu2.

Re: Pequeños problemas con Xailer FR

Publicado: Jue Sep 17, 2015 11:39 am
por ignacio
jackson_rr escribió:Hello, friends

Ingnacio, is possible send me this new DLL, tried using more gave me this error

TFastReport Error: Incorrect version DLL (1.5.1505.13). Should be: 1.5.1411.27.

I'm standing by.
You should update to latest Xailer version, in order to use that DLL.

Regards,

Re: Pequeños problemas con Xailer FR

Publicado: Vie Sep 25, 2015 5:54 pm
por jackson_rr
Hello friends

Ignacio, I don't use Xailer, I use xHarbour only, as I do to update the DLL.

I'm standing by.

Jackson Douglas.