martedì 4 maggio 2021

C# .Net 5.0 DatagridView somma di una colonna

Si riporta l'articolo scritto per il sito https://www.iprogrammatori.it/articoli/microsoft-net-framework/art_c-datagridview-somma-di-una-colonna-net-5_1737.aspx

 

In questo articolo vedremo come utilizzare in ambiente “Windows Application” ed in particolare con il linguaggio di programmazione C# e Framework versione 5.0, il controllo DatagridView, con una colonna calcolata, ossia la somma di una determinata colonna.

Lo scenario che andremo a creare è quello di una lista di prodotti alimentari con un prezzo, ed il totale di tutti i prodotti, inoltre ci sarà un altro totale (denominato Totale 2) il quale sarà mostrato il totale dei prezzi dei prodotti che hanno codice prodotto minore a 4.

Sempre la cella dei totali, sarà impostato con una determinata formattazione per evidenziare la differenza con i prodotti, il tutto come in figura 1.

Figura 1 – Il risultato finale con i dati ed i totali.


Creazione del progetto

Si crea un nuovo progetto di tipo “Windows Application” selezionando il linguaggio di programmazione C#. Come tipologia di progetto selezioniamo quella di tipo “Windows Form APP” il quale permette la creazione di applicazione con la versione del Framework “5.0”.

Impostiamo il percorso e nome del progetto.

Verifichiamo tramite la pagina delle proprietà che la versione del “Framework” è impostata sul 5.0, il tutto come mostrato nella figura successiva.


Figura 2 – la versione del Framework impostata a 5.0

Fatto ciò inseriamo nella form un controllo di tipo DataGridView il tutto come mostrato in figura 1.


Stesura del codice

A questo punto la parte di creazione e impostazione del progetto è terminata.

Ora occorre scrivere il codice che all’avvio della form permette di caricare i dati nella griglia e quindi il totale dei prodotti.

Utilizzeremo dei dati creando dei record fittizi senza fare uso della base dati, in particolar modo si crea un oggetto di tipo “DataTable” dove si aggiungono tre colonne che rispettivamente servono per indicare il codice prodotto, la descrizione del prodotto ed il prezzo.

Dopo aver valorizzato con dei dati a nostro piacimento, andremo a fare la somma dei record e successivamente a caricare il controllo Datagrid .

Dopo aver caricato il controllo DatagridView, formattiamo le celle di colore blu, grassetto e con una certa grandezza in modo che il testo dei “Totali” è in risalto.


Facciamo doppio click sulla form, in modo che passiamo in visualizzazione codice nell’evento load della “form”.

Nell’evento scriviamo il codice delle precedenti operazioni.

Qui di seguito il codice completo dell’evento “Load” della form.


C#

private void Form1_Load(object sender, EventArgs e)

        {

            //Caricamento dei dati

            DataTable dttDati = new DataTable();

            dttDati.Columns.AddRange(new DataColumn[3] {

    new DataColumn("CodiceProdotto", typeof(int)),

        new DataColumn("Descrizione", typeof(string)),

               new DataColumn("Prezzo", typeof(int))

});

            dttDati.Rows.Add(1, "Miele",   10);

            dttDati.Rows.Add(2, "Acqua",   5);

            dttDati.Rows.Add(3, "Pasta",   3);

            dttDati.Rows.Add(4, "Pesce",  20000);

            dttDati.Rows.Add(5, "Dolci",   12000);

 

            int Totale = dttDati.AsEnumerable().Sum(row => row.Field<int>("Prezzo"));

            int TotaleConFiltro = dttDati.AsEnumerable().Where(row => row.Field<int>("CodiceProdotto") < 4).Sum(row => row.Field<int>("Prezzo"));

            //Aggiungo il totale al datatable

            dttDati.Rows.Add(0, "Totale",   Totale);

            dttDati.Rows.Add(0, "Totale 2",  TotaleConFiltro);

            //Carico i dati

            dataGridView1.DataSource = dttDati;

            //formatto i totali

            dataGridView1.Rows[dttDati.Rows.Count - 1].Cells[1].Style.ForeColor = Color.Blue;

            dataGridView1.Rows[dttDati.Rows.Count - 1].Cells[1].Style.Font = new Font("Tahoma", 16, FontStyle.Bold);

            dataGridView1.Rows[dttDati.Rows.Count - 2].Cells[1].Style.ForeColor = Color.Blue;

            dataGridView1.Rows[dttDati.Rows.Count - 2].Cells[1].Style.Font = new Font("Tahoma", 16, FontStyle.Bold);

 

        }





Conclusioni

Ora non ci resta che eseguire il nostro programma per vedere il risultato di tale codice.

L’articolo ha voluto fornire le basi di come aggiungere alle proprie applicazioni alcuni aspetti che possono tornare utili soprattutto nei programmi gestionali ed in particolar modo quelli contabili.

Il frammento di codice utilizzato in questo articolo è per la versione 5.0 del Framework, un nuovo modo di scrivere applicazioni il quale permette la creazione di applicazioni multipiattaforma.

Nessun commento: