En iyi yanıtlayıcılar
Fişde toplamı yazıyla yazdırmak

Soru
-
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
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 ═══ᵌ Ữ
-
-
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));
-
-
-
-
Ö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
-
Ö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.
-
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