Cuando se va el fluido eléctrico

Señor Lasombra, me dirijo a usted en búsqueda de consejo.
Vera, he creado una aplicación para una botica, la cual registra ventas compras y demás, pero cuando viene un "apagon" (corte de fluido eléctrico sin previo aviso) el sistema regresa a la boleta 1, o sea si hay ventas registradas hasta el recibo N. 541 cuando viene el apagón, la siguiente boleta que se imprime es la numero 1, no se por que pasa eso, la programación esta bien hecha, ¿por qué ocurre eso? ¿Estoy obviando algo? Quisiera que me de un consejo sobre este muy importante inconveniente.
Ademas quisiera preguntarle si esta bien "abusar" de los filtros en foxpro, ya que yo hago bastante uso de ellos en mi programa para seleccionar productos o clientes, es que a veces dentro de un "text" pongo la codificación del filtro y cuando abro otro "formulario", no reconoce el "text" que aloja la codificación del filtro.
Espero no marearlo con mis preguntas.
Gracias por todo.
Atentamente.
Lucho2000
Respuesta
1
No se porque transfirieron esta pregunta de lasombra a mi jairohamon, cuando ocurre un apagón generalmente lo que se ve afectado son los indices, por lo tanto es necesario revisarlos o hacer que el sistema sea reentrante y que los cree de nuevo(no reindex, porque el archivo de indices -cdx- puede estar dañado y el reindex no tendría de donde sacar la información), yo recomiendo borrar todos los indices y crearlos de nuevo(es una tarea larga, pero al final da buen resultado), ahora bien sobre la pregunta, cuando usted se refiere a imprime es que se crea una nueva boleta, y esta se imprime, o si la boleta en la que iba era 541 debería imprimir la 542, recordemos que cuando se va la luz el sistema pierde su historia también hay que recordar que la función de impresión va directamente al sistema operativo -Impresora-, en este momento VFP no puede hacer nada, por lo tanto lo más aconsejable es llevar el control en una tabla a la que se hace commit inmediatamente ha sido actualizada, y que indique en que boleta iba.
No es malo utilizar los filtros de VFP, lo que entiendo es que desde este otro formulario esta haciendo colocando un filtro en la misma tabla, en este caso el primer filtro se pierde, es un poco pesado (en caso de que cambien te formulario constantemente y también dependiendo del numero de registros que estén en las tablas), pero yo coloco los filtros en el refresh del formulario y hago que se comporten en forma adecuada de acuerdo ala información que esta en el formulario

1 respuesta más de otro experto

Respuesta
1
Bueno normalmente este tipo de situaciones se dan solo cuando en el apagón no se había guardado el valor del documento, pero si hay una gran diferencia de de 541 y se regresa al 1, me parece que seria dudar más del lógica del programa y verificar por que se regresa al 1 suponiendo que tienes una tabla donde almacenas el ultimo valor utilizado o de alguna forma obtienes el ultimo valor utilizado para el documento, pero verifica primero que si tienes el ultimo valor o uno anterior guardado no sea algún indice el que se ha dañado reindexando la tabla.
Y que tal si le pones una batería a la pc más fácil :o)
Con respecto a los filtros no es conveniente abusar de ellos, ya que si existen cantidad de registro te baja el rendimiento del sistema, pero puedes intentar optimizar creando indices estructurales con las expresiones utilizadas en los filtros así fox los utilizara automáticamente y te mostrara más rápidamente los datos, ahora con respecto a el problema del "text" en tu filtro sucede porque cada vez que se accede a la tabla el verifica la expresión del filtro y si no encuentra el "text" da problemas, si es posible introduce un campo o una variable con el valor a comparar o utilizada una variable y la macro sustitución para que la expresión no quede amarrada con el "text"
Bueno es difícil por ayudarte si visualizar el código, pero espero haberte aclarado un poco, suerte...

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas