none
Fişde toplamı yazıyla yazdırmak RRS feed

  • Soru

  • Herkese merhabalar ben projemde Devexpress componentlerinden biri olan ReportDesigner'ı kullanıyorum. ReportDesigner'la fiş dizaynımı oluşturuyorum fakat fiş toplamını yazıyla yazdırmayı beceremedim bu konuda yardımcı olabilir misiniz
    25 Mart 2016 Cuma 14:50

Yanıtlar

  • Öyle bir sihirli değnek bildiğim kadarı ile yok malesef. 

    1. Ya örneği verilen kodu bir SQL ya da hangi database'i kullanıyorsanız onda bir Function'a dönüştürüp sorgu esnasında bu fonksiyonu çağırıp yazıyla değeri elde edeceksiniz.

    2. Ya C# içerisinde bir fonksiyona çevirip dataları çekerken bu fonksiyonu kullanıp yazıyla olan değere erişeceksiniz.

    3. Table'da bir alan açıp bu alana önceden yazıya çevirdiğiniz değeri saklayacaksınız.

    3 yöntem arasında en hızlısı ve kayıt sayınıza göre en fazla yer kaplayanı 3. yöntem olur.

    • Yanıt Olarak İşaretleyen StrazneK 30 Mart 2016 Çarşamba 13:18
    30 Mart 2016 Çarşamba 13:04

Tüm Yanıtlar

  • Merhaba;

    String[] Birler = new String[10] { "", "BİR", "İKİ", "ÜÇ", "DÖRT", "BEŞ", "ALTI", "YEDİ", "SEKİZ", "DOKUZ" };
                String[] Onlar = new String[10] { "", "ON", "YİRMİ", "OTUZ", "KIRK", "ELLİ", "ALTMIŞ", "YETMİŞ", "SEKSEN", "DOKSAN" };
                String[] Sonra = new String[5] { "TRİLYAR", "TRİLYON", "MİLYAR", "MİLYON", "BİN" };

    Böyle bir şey mi istiyorsunuz.

    Kolay Gelsin.


    HNG ═══ᵌ Ữ

    26 Mart 2016 Cumartesi 11:26
  • Burada örnek bir kodlama var.

    http://www.hayatisahin.com/BlogEngine/?tag=/C%23+Say%C4%B1y%C4%B1+Yaz%C4%B1ya+%C3%87evirme


    26 Mart 2016 Cumartesi 12:08
  •  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;
            }

    ..............................= yaziyaCevir(Convert.ToDecimal(textBox1.Text));

    27 Mart 2016 Pazar 15:42
  • Yanıtlarınız için teşekkür ederim fakat c# üzerinden değil tasarım ekranından yapmak istiyorum
    30 Mart 2016 Çarşamba 11:46
  • Nasıl yani? Tasarım ekranı derken?
    30 Mart 2016 Çarşamba 11:52
  • Devexpress ReportDesigner çalıştırıyorum ve fiş tasarımımı buradan yapıyorum. Yani verdiğiniz kodları buraya yazamıyorum, burda nasıl toplam yazan yeri yazıya çevirebilirim onu öğrenmek istiyorum, yardımlarınız için teşekkür ederim

    30 Mart 2016 Çarşamba 12:57
  • Öyle bir sihirli değnek bildiğim kadarı ile yok malesef. 

    1. Ya örneği verilen kodu bir SQL ya da hangi database'i kullanıyorsanız onda bir Function'a dönüştürüp sorgu esnasında bu fonksiyonu çağırıp yazıyla değeri elde edeceksiniz.

    2. Ya C# içerisinde bir fonksiyona çevirip dataları çekerken bu fonksiyonu kullanıp yazıyla olan değere erişeceksiniz.

    3. Table'da bir alan açıp bu alana önceden yazıya çevirdiğiniz değeri saklayacaksınız.

    3 yöntem arasında en hızlısı ve kayıt sayınıza göre en fazla yer kaplayanı 3. yöntem olur.

    • Yanıt Olarak İşaretleyen StrazneK 30 Mart 2016 Çarşamba 13:18
    30 Mart 2016 Çarşamba 13:04
  • Öyle bir sihirli değnek bildiğim kadarı ile yok malesef. 

    1. Ya örneği verilen kodu bir SQL ya da hangi database'i kullanıyorsanız onda bir Function'a dönüştürüp sorgu esnasında bu fonksiyonu çağırıp yazıyla değeri elde edeceksiniz.

    2. Ya C# içerisinde bir fonksiyona çevirip dataları çekerken bu fonksiyonu kullanıp yazıyla olan değere erişeceksiniz.

    3. Table'da bir alan açıp bu alana önceden yazıya çevirdiğiniz değeri saklayacaksınız.

    3 yöntem arasında en hızlısı ve kayıt sayınıza göre en fazla yer kaplayanı 3. yöntem olur.

    Çok teşekkür ederim 1. yöntemi kullanarak istediğimi gerçekleştirdim :)
    30 Mart 2016 Çarşamba 13:19
  • Selam ,simdi gördüm sorunuzu cevabı da bulmuşsunuz. Ama paylaşımcı olmak gerek düşüncesi ile 

    Sql tarafında bir Function paylaşayım.(kullanımı : select dbo.Cevirici(tutar_alani), .. From)

    Create function [dbo].[Cevirici](@Rakam money)
    RETURNs  VARCHAR (1000)
    AS
    begin
     
    DECLARE @STRYtl varchar(13)
    DECLARE @STRYkr varchar(13)
    DECLARE @Sonuc1 Varchar(20)
    DECLARE @Sonuc2 Varchar(20)
    DECLARE @Sonuc3 Varchar(20)
    DECLARE @Sonuc4 Varchar(20)
    DECLARE @Sonuc5 Varchar(20)
    DECLARE @Sonuc99 varchar(255)
    DECLARE @Sonuc100 varchar(255)
    DECLARE @Sonuc  varchar(255)
     
    DECLARE @i INT
     
    set @i=1
     
    set @sonuc=''
    if cast (charindex('.',CAST(@Rakam AS VARCHAR),1) as int)>0
     begin
    set  @STRYtl=replicate ('0',12-charindex ('.',@rakam,1)+1)++substring (cast (@rakam as varchar),1,charindex ('.',@rakam,1)-1)
    set  @STRYkr=cast (substring(cast(@Rakam as varchar),charindex('.',cast(@Rakam as varchar),1)+1,2)++(case  len(substring(cast(@rakam as varchar),charindex('.',cast(@rakam as varchar),1)+1,2)) when 1 then '0' when 0 then '00' when 2 then ''  end) as varchar)
     
      end
    Else
      begin
        set @STRYkr='00'
        set @STRYtl=replicate ('0',12-len  (@rakam))++cast (@rakam as varchar)
      end
    while @i<=4
    begin
     
        select   @Sonuc1=yazi from tablo as A where A.BIRIM='BIRLER' and A.RAKAM = cast(substring(right (cast (@STRYtl as varchar),3*@i-2),1,1) as int)
        Select   @Sonuc2=yazi from tablo as A  where A.BIRIM='ONLAR' and A.Rakam = cast(Substring(right (cast (@STRYtl as varchar), 3*@i-1),1,1) as int)
        Select   @Sonuc3=yazi from tablo as A  where A.BIRIM='BIRLER' and A.Rakam = cast(Substring(right (cast (@STRYtl as varchar),3*@i),1,1) as int)
     
          if cast(Substring(right (cast (@STRYtl as varchar),3*@i),1,1) as int)= 1
     
            begin
              set @Sonuc3='YUZ'
            end
          else
           if cast(Substring(right (cast (@STRYtl as varchar),3*@i),1,1) as int)= 0
             begin
              set @Sonuc3= ''
             end
          else
           begin
              set @Sonuc3= @Sonuc3 ++ 'YUZ'
          end
        set @Sonuc99=ISNULL(@Sonuc3,'')++ISNULL(@Sonuc2,'')++ISNULL(@Sonuc1,'')
     
        if @i=2
          begin
           if @sonuc1 is not null or  @sonuc2 is not null or  isnull(@sonuc3,'')<>''
              if @Sonuc99 = 'BIR' 
               begin
                set @Sonuc99='BIN'
                   end     
            else
             begin
              set @Sonuc99=@Sonuc99 ++ 'BIN'
            end
          end
            if @i=3
             begin
              if @sonuc1 is not null or @sonuc2 is not null  or isnull(@sonuc3,'')<>''
              begin
                set @Sonuc99=@Sonuc99++'MILYON'
              end
             end
         if @i=4
           begin
            if @sonuc1 is not null or @sonuc2 is not null or isnull(@sonuc3,'')<>''
              begin
               set  @Sonuc99=@Sonuc99++'MILYAR'
              end
           end
      set @Sonuc=@sonuc99++@sonuc
      set @i=@i+1
    End
     
    set @sonuc100=''
     
     
    -- Kurus kýsmý var ise
    if @STRYkr<>'00'
    begin
      select  @Sonuc4=yazi from tablo as A where A.BIRIM='BIRLER' and A.RAKAM = cast(substring(right (cast (@STRYkr as varchar),1),1,1)as int)
      select  @Sonuc5=yazi from tablo as A where A.BIRIM='ONLAR' and A.RAKAM = cast(substring(right (cast (@STRYkr as varchar),2),1,1)as int)
      set @Sonuc100=@sonuc5++@sonuc4++'CENT'
    end
    RETURN @Sonuc+' '+'USD'+' '+@Sonuc100
    END

    1 Nisan 2016 Cuma 20:43