Calculation of currency sum

0

I need some help to make a calculation in fact a sum for money, as I show in the image below:

Followmycode.

privatevoidListaGrid(){conex.Open();stringstrSQL=@"SELECT DISTINCT
                        SY.YF_DESC_SI                               AS [TIPO MOEDA],
                        RTRIM(SC.C7_PRODUTO) + ' - ' + SC.C7_DESCRI AS PRODUTO,
                   SUM(SC.C7_QUANT)                            AS QTDA, 
                   SUM(SC.C7_TOTAL * SC.C7_TXMOEDA)            AS TOTAL,
                   SUM(SC.C7_TOTAL)                            AS [TOTAL MOEDA]
               FROM  SC7010 AS SC
          INNER JOIN SM2010 AS SM WITH (NOLOCK) ON SM.M2_DATA = SC.C7_EMISSAO
          INNER JOIN SA2010 AS SA WITH (NOLOCK) ON SA.A2_COD = SC.C7_FORNECE
               INNER JOIN SYF010 AS SY WITH (NOLOCK) ON SY.YF_MOEFAT = SC.C7_MOEDA
               WHERE SC.D_E_L_E_T_ <> '*' 
               AND SC.C7_EMISSAO BETWEEN CONVERT(datetime, '" + txtDtInicial.Text + "', 103) AND CONVERT(datetime,'" + txtDtFinal.Text + "', 103) AND SA.A2_COD = '" + txtCodFornec.Text + "' GROUP BY SC.C7_PRODUTO, SC.C7_DESCRI, SY.YF_DESC_SI ORDER BY RTRIM(SC.C7_PRODUTO) + ' - ' + SC.C7_DESCRI";

        comando = new SqlCommand(strSQL, conex);

        try
        {
            SqlDataAdapter dados = new SqlDataAdapter(comando);
            DataTable dtLista = new DataTable();
            dados.Fill(dtLista);

            DGW_PedComprasPic.DataSource = dtLista;
        }
        catch
        {
            MessageBox.Show("Não existem dados a serem encontrados");
        }

        double QTDA = 0;
        foreach (DataGridViewRow rowKG in DGW_PedComprasPic.Rows)
        {
            QTDA += Convert.ToDouble(rowKG.Cells["QTDA"].Value);
        }
        txtProdkg.Text = Convert.ToString(QTDA);
        txtProdkg.Text = QTDA.ToString("N2");

        double TotalReal = 0;
        foreach (DataGridViewRow rowR in DGW_PedComprasPic.Rows)
        {
            TotalReal += Convert.ToDouble(rowR.Cells["TOTAL"].Value);
        }
        txtReal.Text = Convert.ToString(TotalReal);
        txtReal.Text = TotalReal.ToString("C");

        //    double TotalDolar = 0;
        //    foreach (DataGridViewRow rowD in DGW_PedComprasPic.Rows)
        //    {
        //        TotalDolar += Convert.ToDouble(rowD.Cells["TOTAL MOEDA"].Value);
        //    }
        //    txtDolar.Text = Convert.ToString(TotalDolar);
        //    txtDolar.Text = "$ " + TotalDolar.ToString("N2");
        //    double TotalEuro = 0;
        //    foreach (DataGridViewRow rowE in DGW_PedComprasPic.Rows)
        //    {
        //        TotalEuro += Convert.ToDouble(rowE.Cells["TOTAL MOEDA"].Value);
        //    }
        //    txtEuro.Text = Convert.ToString(TotalEuro);
        //    txtEuro.Text = "€ " + TotalEuro.ToString("N2");

        //conex.Close();
    }
    
asked by anonymous 23.08.2017 / 18:39

1 answer

1

You have 2 paths.

  • Do through SQL (Stored procedure, or computer by, etc.) and already return the ready data.
  • Or through the GridView1_RowDataBound (ASP.NET) property if it is Windows.Form dataGridView1_CellFormatting or dataGridView1_RowsAdded

Example of how to manipulate RowDataBound

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
    if (e.Row.RowType == DataControlRowType.DataRow)
    {//tem dados

     var dr = ((DataRowView)e.Row.DataItem).Row;
     if(dr[0].ToString()=="Euro")
     {
        //somaEuro += Convert.ToDecimal(dr[3]);
     }
    }
}

dataGridView1_CellFormatting example

private void dataGridView1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
    {

}

link

More information:

link

    
23.08.2017 / 18:58