none
Hesaplama Hatası RRS feed

  • Soru

  • Arkadaşlar Merhaba.

    Gridcontrol üzerinde fatura işlemi yapıyorum. Gridin celvalue changed metodu altında yaptığım hesaplamalar sorunsuz çalışıyor. Fakat güncelleme işlemi için gridcontrolun datasource suna veri açğırdığım zaman cellvaluechanced olmadan bazı hesaplamaları yapmıyor. Bunu nasıl aşabilirim. Kodlar şu şekilde.

    Satır Hesaplama Yaparken

     if (e.Column.Name != "NETFIYAT" && e.Column.Name != "KDVTOPLAM" && e.Column.Name != "TOPLAM")
                {
                    try
                    {
                        decimal NetFiyat = 0;
                        decimal Kdv = 0;
                        decimal KdvToplam = 0;
                        decimal Adet = 0;
                        decimal BirimFiyat = 0;
                        decimal iskonto1 = 0;
                        decimal iskonto2 = 0;
                        decimal SatirToplam = 0;
                        Kdv = Convert.ToDecimal(gridView1.GetFocusedRowCellValue("KDV").ToString());
                        BirimFiyat = Convert.ToDecimal(gridView1.GetFocusedRowCellValue("BIRIMFIYAT").ToString());
                        BirimFiyati = Convert.ToDecimal(gridView1.GetFocusedRowCellValue("BIRIMFIYAT").ToString());
                        Adet = Convert.ToDecimal(gridView1.GetFocusedRowCellValue("ADET").ToString());
                        iskonto1 = Convert.ToDecimal(gridView1.GetFocusedRowCellValue("ISK1").ToString());
                        iskonto2 = Convert.ToDecimal(gridView1.GetFocusedRowCellValue("ISK2").ToString());
                        NetFiyat = Adet * BirimFiyat;
                        NetFiyat = NetFiyat - (NetFiyat / 100 * iskonto1);
                        NetFiyat = NetFiyat - (NetFiyat / 100 * iskonto2);
                        KdvToplam = (NetFiyat * Kdv) / 100;
                        SatirToplam = NetFiyat + KdvToplam;
                        gridView1.SetRowCellValue(gridView1.FocusedRowHandle, ("TOPLAM"), SatirToplam.ToString());
                        gridView1.SetRowCellValue(gridView1.FocusedRowHandle, ("NETFIYAT"), NetFiyat);
                        gridView1.SetRowCellValue(gridView1.FocusedRowHandle, ("KDVTOPLAM"), KdvToplam);
                        EskiFiyat = gridView1.GetFocusedRowCellValue("BIRIMFIYAT").ToString();
                        GridID = gridView1.GetFocusedRowCellValue("ID").ToString();
                        Hesapla();
    
    
                    }
                    catch (Exception)
                    {
    
                    }

    Genel Toplamları hesaplarken

                    decimal KdvToplam = 0;
                    decimal AraToplam = 0;
                    decimal GenelToplam = 0;
                    decimal IskontoOncesiToplam = 0;
                    decimal BirimFiyat = 0;
                    decimal Adet = 0;
    
                    for (int i = 0; i < gridView1.RowCount; i++)
                    {
                        BirimFiyat = Convert.ToDecimal(gridView1.GetRowCellValue(i, "BIRIMFIYAT").ToString());
                        Adet = Convert.ToDecimal(gridView1.GetRowCellValue(i, "ADET").ToString());
                        KdvToplam += Convert.ToDecimal(gridView1.GetRowCellValue(i, "KDVTOPLAM").ToString());
                        IskontoOncesiToplam = IskontoOncesiToplam + (BirimFiyat * Adet);
                        AraToplam += Convert.ToDecimal(gridView1.GetRowCellValue(i, "NETFIYAT").ToString());
                        GenelToplam += Convert.ToDecimal(gridView1.GetRowCellValue(i, "TOPLAM").ToString());
    
                    }
                    txtKdvOrani.Text = KdvToplam.ToString("0.00");
                    txtAraToplam.Text = IskontoOncesiToplam.ToString("0.00");
                    txtGenelToplam.Text = GenelToplam.ToString("0.00");
                    txtNetFiyat.Text = AraToplam.ToString("0.00");
                    txtIskonto.Text = (IskontoOncesiToplam - AraToplam).ToString("0.00");

    Buraya kadar herşey normal fakat 

     Liste.DataSource = Cls.KalemleriListele(frmAnaForm.SecilenFaturaNumarasi);
    bu kod ile güncelleme işlemi için gridi doldurduğumda iskonto alanları gelmesine rağmen hesaplama yapmıyor. Bunu nasıl aşabilirim. Neticede gridin hücre verileri değişiyor. Tetiklemesi gerekmiyormu. Yada gözden kaçırdığım bir hata mı var. şimdiden teşekkürler

    19 Mart 2016 Cumartesi 15:11

Tüm Yanıtlar