Forum
Herkese merhaba
Method tanımladım bu method bruttutar,nettutar gibi toplamları hesaplıyor ve global'de tanımladığım double değişkenler üzerine aktarıyor.
Method çalışırken debug ettiğimde problem yok method içersinde herşey güzel gidiyor. Değerler alınıyor fakat method dışarsına çıktığımda değişken 0 değerine dönüyor işin enterasan kısmı hepsinde olmuyor bu incelemeniz için resimleri attım
Güncel !
Niye kimse yardımcı olmuyor ?
Değer getiren değişkenleri kontrol edermisin boş olma ihtimali olabilir mi ?
Kontrol ettim değerler geliyor. Fakat dediğim gibi methodun içinden çıkınca sıfırlanıyorlar.
Method uzun olduğu için buraya yazmamıştım. Fakat yinede birşey ifade eder belki diye buraya yazıyorum.
private void toplamHesapla() { double miktar = 0; double bruttutar = 0; double iskonto = 0; double kdv1 = 0; double kdv8 = 0; double kdv18 = 0; double toplamkdv = 0; double aratoplam = 0; double aratoplam2 = 0; double geneltoplam = 0; double isk1 = 0; double isk2 = 0; double isk3 = 0; double fiyat = 0; double isk1_toplam = 0; double isk2_toplam = 0; double isk3_toplam = 0; double isk_toplam = 0; double bruttutar_toplam = 0; double aratoplam_toplam = 0; double aratoplam2_toplam = 0; double kdv1_toplam = 0; double kdv8_toplam = 0; double kdv18_toplam = 0; double geneltoplam_toplam = 0; double toplamkdv_toplam = 0; for (int i = 0; i <= dataGridViewFaturaSatis.Rows.Count - 1; i++) { miktar += Convert.ToDouble(dataGridViewFaturaSatis.Rows[i].Cells[3].Value); string[] bruttutar_parcala = dataGridViewFaturaSatis.Rows[i].Cells[9].Value.ToString().Split(' '); bruttutar = Convert.ToDouble(bruttutar_parcala[0]); string[] isk1_parcala = dataGridViewFaturaSatis.Rows[i].Cells[5].Value.ToString().Split('%'); string[] isk2_parcala = dataGridViewFaturaSatis.Rows[i].Cells[6].Value.ToString().Split('%'); string[] isk3_parcala = dataGridViewFaturaSatis.Rows[i].Cells[7].Value.ToString().Split('%'); isk1 = Convert.ToDouble(isk1_parcala[1]); isk2 = Convert.ToDouble(isk2_parcala[1]); isk3 = Convert.ToDouble(isk3_parcala[1]); string[] fiyat_parcala = dataGridViewFaturaSatis.Rows[i].Cells[4].Value.ToString().Split(' '); fiyat = Convert.ToDouble(fiyat_parcala[0]); double isk1_yapılan = 0; if (isk1 > 0)//İSKONTO HESAPLANAN BLOKLAR 1,2,3 HESAPLANIYOR. { double bruttutar_isk1 = 0; isk1_yapılan = (bruttutar * isk1 / 100); bruttutar_isk1 = (bruttutar - isk1_yapılan); double isk2_yapılan = 0; if (isk2 > 0) { double bruttutar_isk2 = 0; isk2_yapılan = (bruttutar_isk1 * isk2 / 100); bruttutar_isk2 = (bruttutar_isk1 - isk2_yapılan); if (isk3 > 0) { double isk3_yapılan = 0; isk3_yapılan += (bruttutar_isk2 * isk3 / 100); isk1_toplam += isk1_yapılan; isk2_toplam += isk2_yapılan; isk3_toplam += isk3_yapılan; isk_toplam += isk1_yapılan + isk2_yapılan + isk3_yapılan; } else { isk1_toplam += isk1_yapılan; isk2_toplam += isk2_yapılan; isk_toplam += isk1_yapılan + isk2_yapılan; } } else { isk1_toplam += isk1_yapılan; isk_toplam += isk1_yapılan; } } else { toplam.labeltoplamiskonto_s.Text = "0.00 TL"; }//İSKONTO BLOKLARI İSK1 İSK3 İSK3 VE TOPLAM İSKONTOLAR HESAPLANIYOR. bruttutar_toplam += Convert.ToDouble(bruttutar_parcala[0]); string[] kdv = dataGridViewFaturaSatis.Rows[i].Cells[8].Value.ToString().Split('%'); double kdv_oran = Convert.ToDouble(kdv[1]); double bruttutar_hesaplama = 0; bruttutar_hesaplama = Convert.ToDouble(bruttutar_parcala[0]); if (kdv_oran == 1) { double kdv_tutar_1 = 0; kdv_tutar_1 = (bruttutar_hesaplama * kdv_oran / 100); kdv1_toplam += kdv_tutar_1; } else if (kdv_oran == 8) { double kdv_tutar_8 = 0; kdv_tutar_8 = (bruttutar_hesaplama * kdv_oran / 100); kdv8_toplam += kdv_tutar_8; } else if (kdv_oran == 18) { double kdv_tutar_18 = 0; kdv_tutar_18 = (bruttutar_hesaplama * kdv_oran / 100); kdv18_toplam += kdv_tutar_18; } }//SATIRLARI TARAYAN FOR DÖNGÜSÜ bruttutar = bruttutar_toplam; //BRUTTUTAR DEĞİŞKENİ SIFIRLANIYOR. nettutar = ((bruttutar_toplam - isk_toplam) - (kdv1_toplam + kdv8_toplam + kdv18_toplam)); //NET TUTAR SIFIRLANMIYOR isk1 = isk1_toplam;//SIFIRLANIYOR isk2 = isk2_toplam;//SIFIRLANIYOR isk3 = isk3_toplam;//SIFIRLANIYOR iskonto_toplam = isk_toplam;//SIFIRLANIYOR kdv1 = kdv1_toplam;//SIFIRLANIYOR kdv8 = kdv8_toplam;//SIFIRLANIYOR kdv18 = kdv18_toplam;//SIFIRLANIYOR kdv_toplam = (kdv1_toplam + kdv8_toplam + kdv18_toplam);//KDV TOPLAM SIFIRLANMIYOR. geneltoplam = (nettutar + toplamkdv_toplam);//SIFIRLANIYOR }//TOPLAM HESAPLAMA METHODU
kdv_toplam ve nettutar sıfırlanmıyor olarak görünüyor ve yukarda tanımlı değil tanımlama kısmında hata olabilir birde fonksiyonun dışına alın isterseniz değişkenleri. Yada sıfırlanmayan değişkenleri kontrol edin ona göre bi değişiklik yapın.
bir class yapin o vlass icine propertyleri get set edin daha sonra void yerine donusu bu class verin sorun cozulecektir
ProfectSoft Yazılım ve Danışmanlık Hizmetleri
LogPusher & Bifyou E-Commerce System
www.profectsoft.com
Teşekkür ederim yardımlarınız için methodun içersinden çıkartıp buttonun içinde yapıyorum işlemi, bu şekilde çözdüm.
Class kavramını bilmiyorum. Yani ne işe yaradığını biliyorum fakat yazmadım henüz mantığını kavramadım kasa modülünü yazarken yada raporlama modülü yazarken muhtemelen class kavramınada girişeceğim.(Bu benim öğrenme projem)
O yüzden şimdilik bu şekilde çözdüm fakat yinede method içersinden çıkınca o değişkenlerin neden sıfırlandığını anlamış değilim.