Hola a todos!
Me parece una buena opción la que menciona Diego, de hecho yo también lo he resuelto con algo similar.
Por otra parte, sólo para responder la pregunta original:
Cita:
¿Cómo hacer para que el evento OncalclFields de un dataset sólo se dispare 1 vez, por ejemplo cuando abro el dataset, que se ejecute para cada uno de los artículos del dataset y ya nunca más se dispare?
|
Bueno pues los DataSet tiene la propiedad AutoCalFields que cuando tiene el valor
True, entonces el evento OnCalcFields se dispara en estos casos:
- Cuando se abre el DataSet.
- Cuando el DataSet es puesto en estado de edición (dsEdit)
- Cuando se cambia el foco de un control visual a otro, o de una columna a otra en un grid y se han hecho modificaciones en el registro.
Cuando la propriedad AutoCalcFields tiene el valor
False en evento OnCalcFields se dispara sólo en estos casos:
- Cuando se abre el DataSet.
- Cuando el DataSet es puesto en estado de edición.
- Cuando un registro es cargado desde la base de datos.
Si pones la propiedad AutoCalcFields en False puedes reducir la frecuencia con la que se llama el evento, sin embargo no puedes evitar que se ejecute al menos en los tres casos que mencioné anteriormente.
Un saludo y seguimos en contacto.