Paylaş |
|
Tweet |
Merhaba arkadaşlar bu yazımızda geliştirmekte olduğunuz programda fatura yazma özelliğini eklemek istiyorsanız bilmeniz gerekir ki fatura tutarını yazıya çevirmek gerekecektir. Fatura tutarını yazıya çevirmek için bir fonksiyon yazacağız ve metin kutumuzun textchanged olayı ile diğer metin kutumuza yazı şeklinde yazdıracağız.
Tutarı yazıya çevirmek için kullanacağımız fonksiyonumuz aşağıda:
private string yaziyaCevir(decimal tutar) { string sTutar = tutar.ToString("F2").Replace('.', ','); // Replace('.',',') ondalık ayracının . olma durumu için string lira = sTutar.Substring(0, sTutar.IndexOf(',')); //tutarın tam kısmı string kurus = sTutar.Substring(sTutar.IndexOf(',') + 1, 2); string yazi = ""; string[] birler = { "", "BİR", "İKİ", "ÜÇ", "DÖRT", "BEŞ", "ALTI", "YEDİ", "SEKİZ", "DOKUZ" }; string[] onlar = { "", "ON", "YİRMİ", "OTUZ", "KIRK", "ELLİ", "ALTMIŞ", "YETMİŞ", "SEKSEN", "DOKSAN" }; string[] binler = { "KATRİLYON", "TRİLYON", "MİLYAR", "MİLYON", "BİN", "" }; //KATRİLYON'un önüne ekleme yapılarak artırabilir. int grupSayisi = 6; //sayıdaki 3'lü grup sayısı. katrilyon içi 6. (1.234,00 daki grup sayısı 2'dir.) //KATRİLYON'un başına ekleyeceğiniz her değer için grup sayısını artırınız. lira = lira.PadLeft(grupSayisi * 3, '0'); //sayının soluna '0' eklenerek sayı 'grup sayısı x 3' basakmaklı yapılıyor. string grupDegeri; for (int i = 0; i < grupSayisi * 3; i += 3) //sayı 3'erli gruplar halinde ele alınıyor. { grupDegeri = ""; if (lira.Substring(i, 1) != "0") grupDegeri += birler[Convert.ToInt32(lira.Substring(i, 1))] + "YÜZ"; //yüzler if (grupDegeri == "BİRYÜZ") //biryüz düzeltiliyor. grupDegeri = "YÜZ"; grupDegeri += onlar[Convert.ToInt32(lira.Substring(i + 1, 1))]; //onlar grupDegeri += birler[Convert.ToInt32(lira.Substring(i + 2, 1))]; //birler if (grupDegeri != "") //binler grupDegeri += binler[i / 3]; if (grupDegeri == "BİRBİN") //birbin düzeltiliyor. grupDegeri = "BİN"; yazi += grupDegeri; } if (yazi != "") yazi += ".TL "; int yaziUzunlugu = yazi.Length; if (kurus.Substring(0, 1) != "0") //kuruş onlar yazi += onlar[Convert.ToInt32(kurus.Substring(0, 1))]; if (kurus.Substring(1, 1) != "0") //kuruş birler yazi += birler[Convert.ToInt32(kurus.Substring(1, 1))]; if (yazi.Length > yaziUzunlugu) yazi += ".Kr"; else yazi += ""; return yazi; }
Fonksiyonumuzun kodları bu kadar arkadaşlar. Örnek uygulamayı aşağıdan indirebilirsiniz. İyi günler.
YaziIleYazdirma.zip Dosyasını İndir