Selezionare un determinato record dal DB e da quello in poi fare determinate modifiche

di il
3 risposte

Selezionare un determinato record dal DB e da quello in poi fare determinate modifiche

Salve a tutti, sto facendo un programma comunale per la Gestione dei rifiuti. A programma quasi terminato mi sono accorto che c'è una falla,
in pratica io ho una determinata somma es(50.000 euro) e con questi 50 mila posso fare diversi impegni. nel primo impegno spendo 10 mila.
nel secondo me ne restano 40 e ne spendo 15 mila. nel terzo ne avrò a disposizione 25 mila e ne spendo 5 mila.
Ora se io vado a cancellare il secondo impegno nel terzo impegno non avrò più 25 mila a disposizione ma 35. la soluzione è quella di andare a selezionare il record che stai cancellando e da quello in giù andare a modificare tutti gli altri rifacendogli fare tutti i calcoli per ogni record.
Volevo sapere come faccio a selezionare quel determinato record e con un ciclo for andare a modificare tutti gli altri. Specifico che sono ancora un principiate quindi non criticatemi

3 Risposte

  • Re: Selezionare un determinato record dal DB e da quello in poi fare determinate modifiche

    Salve Gaetano,
    penso di non aver ben compreso la problematica...
    se tu elimini una riga, il running total va ovviamente "ricalcolato" e non "scritto" come attributo della riga stessa... questo per ovvi motivi anche di schedulazione dei movimenti, visto che potresti oggi dire che fra 10 giorno il tuo "saldo disponibile" e' = X, ma se domani viene inserito un nuovo movimento con "pagamento" entro 5 gg, questo nella schedulazione di disponibilita' sara' antecedente a quello sopra indicato, e "dovresti" aggiornare tutte le righe successive per ricalcolare i saldi... per questo motivo, a mio parere, i running totals si "visualizzano" solo, a runtime, e non si "scrivono" nella base dati, percio' vengono calcolati al momento della proiezione ("SELECT")...
    se poi, a runtime, nella tua applicazione, hai una "griglia" con i movimenti ed i running totals e la devi/vuoi mantenere aggiornata, allora ovviamente solo in questo caso, dovrai fare il "ricalcolo", utilizzando come riferimento il modello a tua disposizione, sia esso ad esempio una datatable o una dataview appoggiata ad una datatable, una bindinglist<....> o altro...

    a dire il vero, per essere un principiante, ti sei accollato un progettino ambizioso, gestione pubblica per impegni e bilanci di previsione, gestione delle prenotazioni, bilancio armonizzato... auguri
    salutoni
    --
    Andrea
  • Re: Selezionare un determinato record dal DB e da quello in poi fare determinate modifiche

    Il progetto in sé è semplice, ho solo riscontrato questo problema al termine del programma. Il problema sta nell' andare a modificare tutti i record con quel numero impegno. Esempio, quando io vado a d aprire in modifica l'impegno numero 3 dopo aver cancellato il secondo, mi spunteranno i dati di quando l'ho inserito. Quindi dovrò rifare i calcoli per ogni singolo record. Io voglio sapere come modificare tutti i record con quel numero impegno. Mi spiego male lo so.
    Alla fine è un programma per l'archiviazione dei dati.
  • Re: Selezionare un determinato record dal DB e da quello in poi fare determinate modifiche

    Salve Gaetano,
    ripeto il mio concetto... il valore del saldo non va salvato... va calcolato al momento della proiezione, quindi, per me, nella SELECT ...
    nel tuo form di visualizzazione avrai probabilmente una "lista" in forma di griglia agganciata ad un datasource, sia esso un DataTable o una bindinglist<poco_class>, e qui probabilmente avrai un "campo" con il running total precalcolato... se elimini dalla visualizzazione 1 riga, ti basta aggiornare (per la sola visualizzazione) gli oggetti di questo datasource rifacendo
    
    for (int i; i= currentRow; i < datasource.count-1)
    {
        datasource.elemento(i).CampoSaldoCalcolato = nuovoValore;
    }
    
    e, sempre per me, ovviamente questo valore non va poi salvato nel db
    salverai nel db le sole modifiche agli attributi reali e non questo attributo "virtuale"...
    salutoni
    --
    Andrea
Devi accedere o registrarti per scrivere nel forum
3 risposte