Newsgroup: it.comp.lang.delphi
Titolo: evento OnCalcFields

mi sto scornando sul modo di come inserire i dati in un campo calcolato.
ho visto l'esempio sull'help del delphi su come calcolare il valore di un
campo calcolato sulla base dei dati contenuti su altri campi della stessa
tabella.
Molto semplice ma anche poco utile !!! molto di più sarebbe se si potesse
calcolare il valore del campo calcolato sulla base dei dati di un'altra
tabella e magari sulla base dei records visibili tra 2 tabelle
Master/Details es.:
2 tabelle  tblMaster tblDetail
sulla tabella tblMaster ho creato un campo calcolato 'Totale'
sulla tabella tblDetail ho un campo di tipo float 'Importo'
come faccio ad inserire la somma dei valori del campo 'Importo' sul campo
calcolato 'Totale', tenuto conto del rapporto master/detail tra le 2 tabelle
?
Sembra quasi un rompicapo, ma una soluzione dev'esserci.
grazie
Paolo

Sembra quasi un rompicapo, ma una soluzione dev'esserci.
ma io l' avevo fatto senza problemi proprio nell'evento OnCalcField.
Ad ogni modifica di un campo nella tabella Detail, lui calcola un altro
campo della tabella Detail stessa.
Oddio, qualche problema c'era stato ma poi l'ho risolto.
Anzi....ultimamente per certe cose ho deciso di non utilizzare piů
master/detail ma applicare un filtro sulla seconda tabella.....a volte si
verificano certi inconvenienti assurdi.
Comunque faresti meglio a dire quale problema specifico si verifica quando
tenti di inserire un valore nel campo calcolato.
Ti saluto.....ciao !!
Antonio Tarolla
BSSoftware Tips Mailing - List Support

Spero di non essere stato poco chiaro
mi pare che l'OnCalcFields venga richiamato quando il campo è convalidato.
Siccome non uso tutti i giorni questo OnCalcFields, non ricordo bene il
comportamento ma se non è così posso ricontrollare.
Io ricordo di averlo utilizzato nelle descrizioni di una tabella fatture. In
pratica tutte le testate stanno nella tabella Master, le descrizioni nella
Detail (questo perchè avevo utilizzato proprio master/detail)
Poi quando cambiavi il prezzo unitario o la quantità o l' iva o lo sconto,
veniva ricalcolato tutto. Però mi pare di ricordare che prima il campo
doveva essere convalidato.
Se non ti dico una cavolata, la proprietà Value (ad esempio) del campo viene
confermata solo quando questo e convalidato e non quando si sta scrivendo
nel campo. Ricordo questo fatto perchè dovevo fare un controllo e c'era
questo problema.
Comunque se non ci riesci controllo il mio codice.


 ha scritto nel messaggio
news:8d75lq$2td$1...@news.flashnet.it...


grazie
in effetti immaginavo di essere un po' vago con il termine "convalidare" ma
ero di fretta.
Comunque intendo dire che la proprietà "Value" del campo, contiene un valore
quando abbandoni il campo e passi su un altro.
Ad esempio se un DBEdit1 fa riferimento al campo1 (per dire) e DBEdit2 fa
riferimento al campo2, ho visto che sta maledetta proprietà "Value" del
campo non viene valorizzata mentre si sta scrivendo nel DBEdit associato a
quel campo ma assume il valore scritto nel DBEdit solamente quando lo
abbandoni e passi su un altro. Quindi se stai scrivendo nel DBEdit1 la
proprietà Value assume il valore di quanto scritto solamente quando passi
nel DBEdit2 o abbandoni il campo.
Speroi di essere stato chiaro visto che sono di fretta anche ora.
Ciaooo !!!
