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

    scorrere un campo di una tabella - delphi

    Ciao ,
    Domanda su delphi: Ho un campo 'totgiorno' che contiene ad ogni riga il totale giornaliero delle ore.
    Vorrei fare in modo di ottenere il totale delle ore mensili (dato dalla somma delle varie ore giornaliere) ed inserirlo nell'apposito campo 'totmese' in modo che ad ogni nuovo inserimento venga aggiornato.

    Es:
    inizo fine totgiorno totmese
    09.00 13.00 4 4
    14.00 18.00 4 8

    E' possibile scorrere il campo totgiorno con un ciclo for e farne la somma dei vari valori? Se si come si fa?

    Grazie!!!!!

    ty.
    =^_^=

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,301
    Ciao!
    Hai due strade per implementare quello che hai chiesto.
    1) utilizzare un componente TTable posizionato sul form e collegato alla tabella;
    2) creare un componente TTable a runtime e impostarne le proprietà in modo che punti alla tabella interessata;

    In entrambi i casi, da codice devi scandire la tabella con un ciclo simile a questo:
    codice:
      // ...
      totmese := 0;
      Table1.First;
      while not Table1.Eof do
      begin
        totmese := totmese + Table1.FieldByName('totgiorno').AsInteger;    
        Table1.Next;
      end;
      // ...
    Ad ogni modo, perchè dovresti memorizzare nella tabella un campo che varia ad ogni inserimento di record? Non sarebbe sufficiente calcolarlo ogni volta che ne hai bisogno? Esiste anche la possibilità di eseguire delle query sul database per interrogare i dati ed elaborare la funzione richiesta...

    Scrivi qualche dettaglio in più se ti serve una soluzione alternativa.

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

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

  3. #3
    Ciao,
    grazie per avermi risposto!!!
    Dunque, ho provato a fare quello che mi hai detto, ma non mi funziona... quindi colgo il suggerimento e provo a calcolare il totale mensile quando ne ho bisogno...
    Allora, dimmi se sbagli:
    -ho messo sul Form un elemento 'memo' (preso da standard) e un bottone
    -al bottone ho messo questo codice sull'azione onClick:

    //somma i capi totgiorno per ottenere il totale de mese
    mese := 0;
    tabella.First;
    while not tabella.Eof do
    begin
    mese := mese + tabella.FieldByName('totgiorno').AsInteger;
    tabella.Next;
    tom:=IntTostr(mese);
    tm.Lines.Add(tom);
    end;

    ma non mi aggiunge nulla, why??
    Sono scarsissima ed i manuali nonarrivano !!! :-((((((((

    Grazie cmq!!
    Bacioni!!!

    =^_^=
    TY.

  4. #4
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,301
    Ciao!

    A prima vista, il programma mi sembra logicamente corretto. Hai provato ad eseguire il codice passo per passo?
    Procedi in questo modo: fai clic sulla colonna grigia a sinistra nel codice (viene chiamato comunemente "gutter") per fare apparire un breakpoint, cioè un punto in cui l'esecuzione del tuo programma si ferma permettendoti di eseguire le righe del codice una alla volta (premendo F8); una freccia di colore verde ti mostra l'istruzione che sta per essere eseguita.
    Non vorrei che magari ci fosse problemi di scansione della tabella, o che tu aprissi (per qualche strano motivo involontario) una tabella vuota. Visto che ci sono, ti dò anche un ulteriore suggerimento. Elimina il contenuto del memo prima di eseguire il ciclo con il codice
    codice:
      Memo1.Lines.Clear;
    A proposito, che formato di database utilizzi?

    Se non scovi l'errore, magari mandami il progetto sorgente di esempio...forse c'è una delle tipiche sviste (ne faccio spesso anche io) che rimangono invisibili fino a quando non riesci a dormire qualche oretta...e allora la vedi subito!

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

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

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 © 2024 vBulletin Solutions, Inc. All rights reserved.