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.
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.
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.
Pequeños problemas con Xailer FR
Pequeños problemas con Xailer FR
BiSoft Desarrollo de software profesional
http://www.bisoft.es
http://www.bisoft.es
Re: Pequeños problemas con Xailer FR
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="..."
La única manera de borra todas las variables y empezar desde cero correctamente es entrar a mano al FR3 y eliminar el bloque
PropData="..."
BiSoft Desarrollo de software profesional
http://www.bisoft.es
http://www.bisoft.es
- ignacio
- Site Admin
- Mensajes: 9252
- Registrado: Lun Abr 06, 2015 8:00 pm
- Ubicación: Madrid, Spain
- Contactar:
Re: Pequeños problemas con Xailer FR
Buenas tardes Bingen,
Eliminado el MsgInfo al ejecutar el método VariablesList(). Gracias.
Este código:
Muestra lo siguiente que entiendo es corrrecto:
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
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)
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
-
- Mensajes: 3
- Registrado: Mié Ago 12, 2015 2:35 pm
Re: Pequeños problemas con Xailer FR
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.
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
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.
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.
BiSoft Desarrollo de software profesional
http://www.bisoft.es
http://www.bisoft.es
- ignacio
- Site Admin
- Mensajes: 9252
- Registrado: Lun Abr 06, 2015 8:00 pm
- Ubicación: Madrid, Spain
- Contactar:
Re: Pequeños problemas con Xailer FR
You should update to latest Xailer version, in order to use that DLL.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.
Regards,
-
- Mensajes: 3
- Registrado: Mié Ago 12, 2015 2:35 pm
Re: Pequeños problemas con Xailer FR
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.
Ignacio, I don't use Xailer, I use xHarbour only, as I do to update the DLL.
I'm standing by.
Jackson Douglas.