none
reportviewer baner yazıya çevirme RRS feed

  • Soru

  • reportviewerda tablomdaki değerleri gösteriyorum. Tablomda toplam alanı var Rakam olarak .

    Bu rakamı reportviewer üzerinde bir textboxda yazıya nasıl çeviririm acaba lira kuruş olarak göstermek için, böyle bir şey deneyen var mı acaba?

    27 Haziran 2020 Cumartesi 16:43

Yanıtlar

  • sn. muratalkaya


    private void BtnYazdir_Click_1(object sender, EventArgs e)
            {
                textBox12.Text = yaziyaCevir(Convert.ToDecimal(textBox8.Text));
                Yaziyla = textBox12.Text;
                FrmFatura frm = new FrmFatura();
                frm.Show();     
    
            }
    
       private void FrmRapor_Load(object sender, EventArgs e)
            {
    ReportParameter rpt1 = new ReportParameter("ReportParameter1",FrmUrunSatis.Yaziyla.ToString() );
                this.reportViewer1.LocalReport.SetParameters(new ReportParameter[] { rpt1 });
    
    }
    
          
     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.
    
                string[] birler = { "", "Bir", "İki", "Üç", "Dört", "Beş", "Altı", "Yedi", "Sekiz", "Dokuz" };
                string[] onlar = { "", "On", "Yirmi", "Otuz", "Kırk", "Elli", "Altmış", "Yetmiş", "Seksen", "Doksan" };
                string[] binler = { "Katirilyon", "Trilyon", "Milyar", "Milyon", "Bin", "" }; //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 == "Biryü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 == "Birbin") //birbin düzeltiliyor.
                        grupDegeri = "Bin";
    
                    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;
            }


    Birinin cevabı size yardımcı oldu ise, lütfen "Yanıt Olarak Öner" veya "Yanıt Olarak İşaretle" olarak işaretlemeyi ve "Oy" vermeyi unutmayınız. Burada sağlanan tüm görüşler, kişiseldir ve Microsoft'un konumunu temsil etmemektedir. Tüm bilgiler hazır olarak temin edilmektedir ve herhangi bir garanti vermemektedir.

    • Yanıt Olarak İşaretleyen muratalkaya 28 Haziran 2020 Pazar 10:14
    27 Haziran 2020 Cumartesi 22:16
    Moderatör