Moltiplicazione in datagridview

di freddy60 il
27 risposte
Buongiono, volevo sapere gentimente una cosa,
ho una tabella così composta: articolo, prezzo, quantità, totale.

Io vorrei che quando scrivo la quantità di un articolo e il prezzo, nella cella totale mi restituisca il totale, moltiplicando gli articololi per il prezzo.

ES: 1 articolo € 10 totale 10,00 €
2 articoli € € 10 totale 20,00€

Sapreste dirmi come posso fare:

Grazie

27 Risposte

  • Scrivi una query SELECT apposita (inclusa la moltiplicazione) e visualizza il contenuto nella griglia
  • Avevo pensato ad una query, ma non riesco a silupparla. (si può avere un esempio?)
  • freddy60 ha scritto:


    ho una tabella così composta: articolo, prezzo, quantità, totale.
    [...]
    Io vorrei che quando scrivo la quantità di un articolo e il prezzo, nella cella totale mi restituisca il totale, moltiplicando gli articololi per il prezzo.
    Questo è uno dei casi in cui disgiungere la parte di accesso ai dati (quindi la tabella), dalla parte del modello (classi e oggetti) dalla parte della presentazione (la UI, quindi la DataGridView) offre i benefici maggiori.

    Io avrei impostato la griglia per "pescare" i dati da una lista, piuttosto che direttamente dalla tabella, e nella lista mettere oggetti che rappresentano esattamente la riga che sto mostrando, di cui una parte delle informazioni proviene dalla tabella (es. i dati dell'articolo) mentre un'altra viene inserita dall'utente in editing (es. la quantità) e infine un'altra ancora viene calcolata (il totale), cosa che si può fare in diversi modi, il più semplice è aggiungere una proprietà di sola lettura all'oggetto che restituisca il risultato del calcolo.

    In altri modi, potresti usare un DataTable che funga da destinazione dei dati caricati, a cui aggiungi una colonna per la quantità e una calcolata per il totale, però tutto questo richiede un certo quantitativo di lavoro in entrambi i casi, e la semplicità con cui si giunge al risultato dipende anche da come si è abituati a lavorare. Io ad esempio adotto il primo approccio che ho indicato.

    Prova a fare qualche ricerca in merito ed eventualmente vediamo di approfondire man mano che emergono dettagli.

    Ciao!
  • Grazie della risposta, ma con una query non sipuò fare?
  • freddy60 ha scritto:


    Avevo pensato ad una query, ma non riesco a silupparla. (si può avere un esempio?)
    Cosa hai scritto? Facci vedere ... Basta una moltiplicazione tra i campi nella query ...
  • freddy60 ha scritto:


    Grazie della risposta, ma con una query non sipuò fare?
    Dipende.

    Se ti basta avere una griglia che mostra per ogni riga i dati incluso il totale, con la quantità già valorizzata, allora una query è il mezzo più veloce e includere un campo calcolato con il prodotto tra i due campi che hai menzionato è un gioco da ragazzi.

    Se invece vuoi modificare al volo la quantità e vedere aggiornarsi il totale, allora l'approccio è senz'altro diverso. Supponendo di basarsi sempre sulla tabella, in quel caso le query saranno due: una per aggiornare il record con il valore inserito e l'altra uguale alla casistica precedente, per raccogliere il calcolo del totale aggiornato. In breve, dovrai premunirti di andare ad aggiornare il campo della quantità sul record per poi recuperare il totale corretto.

    Ciao!
  • È questo che vorrei una query, sarà anche un gioco da ragazzi, ma un piccolo esempio così poi me la sviluppo io.
  • Freddy scusa ma non puoi tentare di scrivere tu qualcosa e poi si vede di darti suggerimenti? Un tuo sforzo sarebbe il minimo

    SELECT .... FROM ...
  • freddy60 ha scritto:


    è questo che vorrei una query, sarà anche un gioco da ragazzi, ma un piccolo esempio così poi me la sviluppo io.
    Direi che concordo con quanto ti hanno già scritto.

    Parti dalla query che faresti per tirare su tutti i dati dalla tabella, poi si ragiona sugli altri aspetti e a poco a poco la si modifica.

    Se non sai nemmeno dove mettere le mani, inutile che chiedi suggerimenti, in quanto non sapresti che fartene visto che è evidente la mancanza delle basi necessarie; se invece queste ci sono, puoi trovare esempi generici di query ovunque nel Web, senza attendere che ti venga fornita qui, e provare a imbastire già qualcosa su cui raccogliere dei suggerimenti.

    Se il gioco è aspettare che altri facciano il lavoro al posto tuo, allora mi spiace ma - oltre a considerarlo un comportamento scorretto - non ho il tempo per il lavoro altrui e i clienti mi pagano per fare il loro.
  • Alka ha scritto:


    Se non sai nemmeno dove mettere le mani, inutile che chiedi suggerimenti, in quanto non sapresti che fartene visto che è evidente la mancanza delle basi necessarie
    Se il gioco è aspettare che altri facciano il lavoro al posto tuo, allora mi spiace ma - oltre a considerarlo un comportamento scorretto - non ho il tempo per il lavoro altrui e i clienti mi pagano per fare il loro.
    E' una vecchia storia che proviene da Masterdrive, con gli stessi problemi, gli stessi suggerimenti, le stesse richieste di pappa pronta.
  • La pappa pronta non la voglio, ho chiesto solo un suggerimento.( A proposito ma Masterdrive che fine fa fatto)
  • freddy60 ha scritto:


    è questo che vorrei una query, sarà anche un gioco da ragazzi, ma un piccolo esempio così poi me la sviluppo io.
    Nel link che ti ho mandato qualcosa da cui partire lo trovi...
  • freddy60 ha scritto:


    La pappa pronta non la voglio, ho chiesto solo un suggerimento.( A proposito ma Masterdrive che fine fa fatto)
    Se chiedi la query stai chiedendo la pappa pronta. Il suggerimento lo hai avuto con il link e comunque

    SELECT <elencocampi> FROM <tabella>

    Masterdrive non esiste più
Devi accedere o registrarti per scrivere nel forum
27 risposte