Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    totale fattura su dbgrid

    Ho la seguente situazione:

    oggetto tquery filtrato per visualizzare le righe di una particolare vendita (campo numco2 univoco)

    oggetto tupdate agganciato alla tquery che mi consente di modificare i dati.

    oggetto dbgrid che visualizza i dati (articolo,quantita,valore,sconti,Valore Totale) per ogni riga

    come faccio a calcolare il valore totale di tutte le righe, al volo , cioe se modifico dei dati nel dbgrid ??? (Totale vendita)

    Dovete considerare che ancora non ho effettuato ApplyUpdate della query e la vorrei fare solamente al momento della chiusura della vendita.

    Attualmente scorro tutto il dbgrid ogni volta che c'e' una modifica e mi calcolo il totale....ed è troppo pesante....

    Aiutatemi
    Grazie

  2. #2

    totale fattura

    ho dimenticato di dirvi che sto utilizzando il delphi 7

    Grazie

  3. #3
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320

    Re: totale fattura

    Originariamente inviato da francesco171173
    ho dimenticato di dirvi che sto utilizzando il delphi 7

    Grazie
    Aggiornato il titolo della discussione.

    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  4. #4
    Utente di HTML.it
    Registrato dal
    Oct 2008
    Messaggi
    11
    Ciao, ho il tuo stesso problema....
    in effetti se ci sono molti record diventa troppo lento !!!
    Come hai risolto, puoi darmi un consiglio ???

    Grazie.

  5. #5
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472
    Utilizzando il componente TClientDataSet (tenendo conto anche di quanto obsoleto sia il BDE), c'è la possibilità di definire campi aggregati.

    Si veda ad esempio questo articolo per una trattazione completa.

    Non sono al corrente se queste funzionalità sono disponibili anche per il BDE.

    Di certo, la lentezza potrebbe anche essere derivante dalla pesantezza intrinseca alla complessità eccessiva del BDE rispetto a soluzioni e architetture più recenti, come dbExpress.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  6. #6
    Utente di HTML.it
    Registrato dal
    Oct 2008
    Messaggi
    11
    Grazie per la tempestività!
    Proverò appena possibile, comunque sto utilizzando in prova, absolute DB, che è un'alternativa al vecchio BDE, non necessita di installazioni particolari e quindi possibilità di avere sempre tutto ovunque anche su pendrive.

  7. #7
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472
    Originariamente inviato da it9qbd
    Proverò appena possibile, comunque sto utilizzando in prova, absolute DB, che è un'alternativa al vecchio BDE, non necessita di installazioni particolari e quindi possibilità di avere sempre tutto ovunque anche su pendrive.
    Non conosco questo DB, ad ogni modo prova ad approfondirne le caratteristiche leggendo la documentazione relativa: magari contiene funzionalità avanzate che ti permettono di ottenere quanto chiedi senza ricorrere ad altri componenti.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  8. #8
    Utente di HTML.it
    Registrato dal
    Jan 2011
    Messaggi
    1,469
    Originariamente inviato da it9qbd
    Grazie per la tempestività!
    Proverò appena possibile, comunque sto utilizzando in prova, absolute DB, che è un'alternativa al vecchio BDE, non necessita di installazioni particolari e quindi possibilità di avere sempre tutto ovunque anche su pendrive.
    lo uso da anni per applicazioni commerciali, magari posso darti qualche idea.
    ---
    Riguardo a componenti "strani"... no, è identico a BDE (e questo è il suo bello), a parte il flushbuffers che è stato spostato inspiegabimente dalle tabelle al db.
    ---
    Per far qualcosa del genere ti dò un suggerimento che magari farà inorridire i "benpensanti", ma che funziona

    Una una tkbmemtable temporanea.
    prima seleziona le righe che ti interessano con una query "normale"
    ABSXSQL(absqryoneshot,'select ...');

    poi li carichi tutti in un colpo in una tkbmemtable (non usare quelle di ABS, sono più lente)

    memTbltabella.LoadFromDataSet(absqryoneshot,[mtcpoStructure,mtcpoProperties]);

    Aggancia il datasource a memtbltabella, e lì la griglia.

    Ora puoi "smucinare" come vuoi (tra l'altro se "esci" ti basta cancellare emptytable la tabella in memoria, non alteri il db nè abortisci la transazione, il che è bene)

    ----
    Quando invece vuoi AGGIUNGERE sul db fisico in un colpo solo
    fai qualcosa del tipo

    absdb.starttransaction;
    with memtbltabella do
    begin
    First;
    while not eof do
    begin

    absTbl.Append;
    for j:=0 to FieldDefs.count-1 do
    begin
    s:=uppercase(fielddefs[j].Name);
    // evita i campi autoincrementanti, se li hai
    if s<>'SER' then
    abstbl.fieldbyname(s).asstring:=fieldbyname(s).ass tring;
    end;

    absTbl.post;
    flusha(i_tipodatabase);
    Next;
    end;

    end;
    absdb.commit(false);


    Se invece modifichi è uguale -> solo che prima devi fare il
    locate (o la query) del record che vuoi cambiare

    ------
    non dimenticare di mettere un disablecontrols/enablecontrols (prima di calcolare le somme), e di riposizionarti nella riga della griglia (o salvando prima la chiave e poi rifacendo il locate, oppure con metodi "strani" col moveby)


    sono un po' di corsa, se ti servono dettagli chiedi pure

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.