PDA

Ver la Versión Completa : Actualizar owner en Documentos->Detalles


Troffed
31-03-2007, 13:52:47
Tengo un TDoc que contiene una lista de TDetail, lo típico para facturas, pedidos, etc.

En cada TDetail se el TDoc que lo contiene mediante el Owner de cada uno.

En TDoc tengo unas propiedades de solo lectura que son el importe total, las unidades totales, etc.

Cuando se actualiza un TDetail ¿cual es la mejor forma de actualizar los totales del TDoc que lo contiene?

Varias posibilidades:

Que la propiedad se calcule cada vez que se requiera, es decir, que recorra la lista de TDetail acumulando el valor requerido.
Una variante del anterior que sería que se recorre la primera vez y se guarda el valor, mediante un flag se controlaría si se han modificado los detalles o no y entonces se devuelve el valor almacenado o se recalcula de nuevo
Un valor, almacenado y recuperado de la base de datos, que se actualiza cada vez que se modifica, añade o elimina un detalle. En este caso había pensado en hacer un procedimiento en TDoc al que se le pasa el TDetail antes de modificar y el TDetail despues de modificar.¿Que opináis?

Lepe
01-04-2007, 14:08:54
Haría falta más información sobre las clases, propiedades relevantes o demás.

Yo apuntaría otra opción, Cuando se modifique un TDetail, éste informa mediante un evento al TDoc, y el TDoc Recalcula el total.

Se debería implementar 2 métodos en TDoc para evitar el Cálculo si queremos modificar todos los TDetails.

¿Conoces el BeginUpdate del TStrings, o el DisableControls del TDataset?

Saludos

Troffed
01-04-2007, 23:38:19
Es más o menos lo que comentaba con la opción 3, cuando un TDetail se modifica comunica al TDoc que ha de actualizarse.

Es un buen apunte el que haces con el "BeginUpdate". Y si, los conocía... :)