Autor |
Mensaje |
Miembro
 Asiduo
 
|
#1 Publicado: 10 Dic 2020 11:10
Llevo rato batallando con una formula que es correcta pero cuando visualizo mas de 275 registros me sustituye el resultado por un "?"
Me refiero a la formula para calcular el saldo en los apuntes de los movimientos bancarios:
SADO = If ( Get ( RecordNumber ) = 1 ; APUNTES::imp_debe + APUNTES::imp_haber ; Case ( IsEmpty ( APUNTES::imp_debe ) ; GetNthRecord ( APUNTES::saldo ; Get ( RecordNumber ) - 1 ) - APUNTES::imp_haber ; IsEmpty ( APUNTES::imp_haber ) ; GetNthRecord ( APUNTES::saldo ; Get ( RecordNumber ) - 1 ) + APUNTES::imp_debe ; "" ) )
Funciona bien pero cuando llega al registro 275 da un ? en lugar del resultado. He probado a borrar apuntes (del principio de la lista) y siempre pasa a partir del registro 275. Tambien he probado a aumentar la memoria asignada al programa y tampoco.
¿alguna idea? Gracias
Si este mensaje te ha servido de ayuda dale tu voto
, si quieres penalizarlo
mac os x - FM11
|
Moderador

|
#2 Publicado: 10 Dic 2020 11:26
Hola. ¿Has probado a aumentar el tamaño del campo en la presentación? A veces es eso. Sls.
Si este mensaje te ha servido de ayuda dale tu voto
, si quieres penalizarlo
Pon tu sistema operativo y versión de FileMaker en tu perfil.
Windows 10 + FileMaker Pro 11/19
|
Miembro
 Asiduo
 
|
#3 Publicado: 10 Dic 2020 11:47
si, no es ese el problema. Incluso he probado con el Visor de Datos y me pasa lo mismo, al llegar al registro 275 sale el ? en lugar de un valor.
Si este mensaje te ha servido de ayuda dale tu voto
, si quieres penalizarlo
mac os x - FM11
|
Moderador

|
#4 Publicado: 10 Dic 2020 11:58 - Editado por: flusheddata
Hola. Creo recordar que hace tiempo tuve un problema similar con un dietario. El campo Saldo funcionaba, pero llegado un momento fallaba. Lo solucioné de la siguiente forma: necesitas tener en la tabla de los apuntes, o bien un campo secuencial auto incrementado o un campo del tipo fechahora con la fecha y hora de creación. Creas una auto relación por ese campo con el operador mayor o igual de modo que cada registro se verá a sí mismo y a los anteriores. Con un simple cálculo podrás sumar todos los debe y todos los haber y obtener la diferencia. Adjunto un archivo de dietario en el que puedes verlo en acción. Tiene dos tablas, pero la importante es la tabla MOVIMIENTO. Espero que te sirva. Sls.
Si este mensaje te ha servido de ayuda dale tu voto
, si quieres penalizarlo
Pon tu sistema operativo y versión de FileMaker en tu perfil.
Windows 10 + FileMaker Pro 11/19
|
Miembro
 Asiduo
 
|
#5 Publicado: 10 Dic 2020 13:31
muchas gracias por el interés que le pones, flusheddata.
entiendo la solucion que has utilizado pero al intentar usarla en mi solucion tampoco me funciona.
he intentado crear una base de datos con los apuntes exportados, en donde el SALDO esta calculado con mi formula y en este archivo nuevo (tan simple) el saldo sale bien en todos los registros.
Sin embargo en mi aplicacion normal deja de calcular (o de mostrar el resultado) alrededor del registro 275 por lo que pienso que tiene que ver con el rendimiento de la aplicacion cuando es una BD compleja
he probado de cambiar el campo SALDO de calculado a numerico y he reemplazado el contenido por la formula que usaba en el calculo y entonces lo hace bien y lo muestra correctamente en todos los registros
¿alguna idea?
Si este mensaje te ha servido de ayuda dale tu voto
, si quieres penalizarlo
mac os x - FM11
|
Moderador

|
#6 Publicado: 10 Dic 2020 18:47 - Editado por: Alatriste
Te pongo como lo suelo tener y sin usar duplicado de la tabla consigo misma.
Campos Debe y Haber como numéricos. Campo Saldo como Calculado no almacenado con esta formulación: Case ( Get(RecordNumber)=1 ; SaldoInicial ; GetNthRecord (Saldo ; Get(RecordNumber)-1)) + (Debe-Haber)
Donde "SaldoInicial" es un campo para el inicio de las operaciones.
Si este mensaje te ha servido de ayuda dale tu voto
, si quieres penalizarlo
Si te fue de utilidad el foro, valoralo y hazte forero VIP, tu nombre de usuario será verde mostrando que aportas ayuda económica.
Hacerte VIP es necesario para mantenerlo abierto, recuerda que el foro vive sin ayuda de FileMaker y sus distribuidores.
W10 Pro x64 - FileMaker 19 (x64)
|
Miembro
 Asiduo
 
|
#7 Publicado: 10 Dic 2020 19:23
alatriste, la formula que me indicas es la misma que la mia pero simplificada Gracias por la lección. Yo estaba matando una mosca a cañonazos 
Pero por desgracia me sigue pasando lo mismo: alrededor del registro 275 deja de mostrar el resultado para mostrar un ?. Pensaba que al simplificar la formula podria solucionarse, pero nada.
De momento le he hecho un parche mediante un guion reemplazando el valor del saldo por el calculo con la formula comentada.
Pero cuando no entiendo porque esta pasando entonces 
Alguna idea más?
Si este mensaje te ha servido de ayuda dale tu voto
, si quieres penalizarlo
mac os x - FM11
|
Moderador

|
#8 Publicado: 10 Dic 2020 20:27
Hola. ¿Has probado a incrementar el tamaño de la caché? Sls.
Si este mensaje te ha servido de ayuda dale tu voto
, si quieres penalizarlo
Pon tu sistema operativo y versión de FileMaker en tu perfil.
Windows 10 + FileMaker Pro 11/19
|
Miembro
 Asiduo
 
|
#9 Publicado: 11 Dic 2020 09:47
si, es lo primero que hice y tampoco sirvió de nada.
Si este mensaje te ha servido de ayuda dale tu voto
, si quieres penalizarlo
mac os x - FM11
|
Moderador

|
#10 Publicado: 11 Dic 2020 10:16 - Editado por: apyguay
¿Puedes poner un ejemplo para echarle un vistazo? ¿Has probado con otra versión de FileMaker? A veces hay bugs raros
Si este mensaje te ha servido de ayuda dale tu voto
, si quieres penalizarlo
Windows 10 // FileMaker 11 + 12 Advanced
|
Miembro
 Asiduo
 
|
#11 Publicado: 11 Dic 2020 10:43
he probado a generar un archivo (simple) nuevo con los mismos campos que tengo en mi aplicacion (compleja) pero entonces todo funciona bien.
Creo que debido a la complejidad de la BD sencillamente llega un momento que deja de calcular. Por eso el aporte de Flusheddata, de ampliar la cache, tiene tanto sentido, aunque lamentablemente tampoco funciona.
Respecto a la version es la 18 para Mac
Si este mensaje te ha servido de ayuda dale tu voto
, si quieres penalizarlo
mac os x - FM11
|
Moderador

|
#12 Publicado: 11 Dic 2020 11:38
¿Si en ese archivo duplicas los campos hasta conseguir una cantidad similar a tu base de datos, también hay problema? No vaya a ser un registro que contenga una cantidad de información que no consiga procesar por algún motivo
Si este mensaje te ha servido de ayuda dale tu voto
, si quieres penalizarlo
Windows 10 // FileMaker 11 + 12 Advanced
|
Moderador

|
#13 Publicado: 11 Dic 2020 12:08
surfer: he probado a generar un archivo (simple) nuevo ¿Con cuántos registros?
Si este mensaje te ha servido de ayuda dale tu voto
, si quieres penalizarlo
Pon tu sistema operativo y versión de FileMaker en tu perfil.
Windows 10 + FileMaker Pro 11/19
|
Moderador

|
#14 Publicado: 11 Dic 2020 15:59 - Editado por: apyguay
surfer: he probado a generar un archivo (simple) nuevo con los mismos campos que tengo en mi aplicacion (compleja) pero entonces todo funciona bien ¿Por qué no adjuntas el original eliminado todo lo innecesario (campos, guiones y datos)? Quizá al crear un archivo nuevo, el tema se resuelva. Lo interesante es saber qué le pasa al tuyo
Si este mensaje te ha servido de ayuda dale tu voto
, si quieres penalizarlo
Windows 10 // FileMaker 11 + 12 Advanced
|
Moderador

|
#15 Publicado: 11 Dic 2020 20:17 - Editado por: Alatriste
Prueba con un Loop el crear 300 nuevos registros con un valor numérico constante, por ejemplo el 1. Si todo sale bien te tiene que dar 300 de saldo, Si te da el ? entonces si hay un error en la programación.
Tengo la impresión, que tus registros, en alguno de ellos, debe contener un valor no numérico o dobles puntos o puntos y comas o letras o vete a saber.
Si este mensaje te ha servido de ayuda dale tu voto
, si quieres penalizarlo
Si te fue de utilidad el foro, valoralo y hazte forero VIP, tu nombre de usuario será verde mostrando que aportas ayuda económica.
Hacerte VIP es necesario para mantenerlo abierto, recuerda que el foro vive sin ayuda de FileMaker y sus distribuidores.
W10 Pro x64 - FileMaker 19 (x64)
|
Moderador

|
#16 Publicado: 12 Dic 2020 09:20
Hola. Sospecho que es un bug o limitación de la función GetNthRecord. En mi caso al llegar al registro 184 de 1000 pone ? He creado un archivo comparando el uso de GetNthRecord con el sistema por relación que te propuse más arriba y el segundo funciona sin límite de registros. Eso sí, el primer registro debe tener solo Debe. Espero que te sirva. Sls.
Si este mensaje te ha servido de ayuda dale tu voto
, si quieres penalizarlo
Pon tu sistema operativo y versión de FileMaker en tu perfil.
Windows 10 + FileMaker Pro 11/19
|
Miembro
Asiduo
 
|
#17 Publicado: 12 Dic 2020 12:20 - Editado por: chunguillo
Excelente, flusheddata, como siempre.
Pero –y esto es sólo un punto de vista– no lo veo como un bug o limitación de la función GetNthRecord sino más bien como una especie de exceso de recursividad en el cálculo que, como la mayoría de las veces ocurre cuando se sobrepasa este límite en otros casos, nos da un "?" (interrogante). Se puede ver que si cambiamos el mismo campo de cálculo de sin almacenar a almacenado (que no sirve como solución para este caso, está claro) no hay error alguno porque el cálculo se realiza sobre un valor ya existente del registro anterior que no necesita volver a ser calculado. Sin embargo, cuando el cálculo es sin almacenar la cosa se complica: todos y cada uno de los registros tienen que evaluar en función del anterior que a su vez tiene que evaluar sobre el anterior y así sucesivamente. Como digo, es sólo otra posible explicación.
Y, efectivamente, en Windows ocurre en el registro 184 y en Mac (al menos en el mío) en el registro 265. Curioso.
Si este mensaje te ha servido de ayuda dale tu voto
, si quieres penalizarlo
Mac y FileMaker
|
Moderador

|
#18 Publicado: 12 Dic 2020 13:08
chunguillo: sino más bien como una especie de exceso de recursividad en el cálculo  +1
Si este mensaje te ha servido de ayuda dale tu voto
, si quieres penalizarlo
Pon tu sistema operativo y versión de FileMaker en tu perfil.
Windows 10 + FileMaker Pro 11/19
|
Miembro
 Asiduo
 
|
#19 Publicado: 23 Dic 2020 19:22
Muchas gracias a todos y, muy especialmente, a Flusheddata. He estado unos dias desconectado pero ahora que me lo he mirado entiendo mejor a que te referias. una muy buena solucion que voy a implementar en mi BD. gracias de nuevo
Si este mensaje te ha servido de ayuda dale tu voto
, si quieres penalizarlo
mac os x - FM11
|
Miembro
 Asiduo
 
|
#20 Publicado: 23 Dic 2020 19:31
con tu sistema, hay que refrescar ventana al guardar un cambio en el registro para que funcione bien. Solo lo digo por si alguien mas quiere usar la solucion de Flusheddata
Si este mensaje te ha servido de ayuda dale tu voto
, si quieres penalizarlo
mac os x - FM11
|