fastreportta sayıyı yazıya çevirme
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
fastreportta sayıyı yazıya çevirme
fastreportta sayıyı yazıya nasıl çevirebilirim
arkadaşlar bu konuda bi çalışması olan varsa yardım ederse cok sevinirim.
arkadaşlar bu konuda bi çalışması olan varsa yardım ederse cok sevinirim.
بِسْمِ اللهِ الرَّحْمنِ الرَّحِيمِ
Forumun 365. Üyesi
Hiç Bir Şey İnsan Kadar Yükselemez ve Alçalamaz
Erkan ÇAĞLAR
Forumun 365. Üyesi
Hiç Bir Şey İnsan Kadar Yükselemez ve Alçalamaz
Erkan ÇAĞLAR
Selamlar,
Fast Reportta yaziyi basmak istediginiz yere 1 tane memo koyun, adini SayiIle olarak degistirin. Tag'ina ise database'inizdeki tutar hanesini atin sanki memonun icine yazar gibi yani. Raporu yazmadan once yukardaki kodu calistirin. boylece SayiIle olan memo alaniniza tag da yazan degerin yazi hali gecer. yanliz tag'in string dondugune dikkat edin. yani
olarakta kullanabilirsiniz[/quote]
Kod: Tümünü seç
if frReport1.FindObject('SayiIle')<>Nil Then
frReport1.FindObject('SayiIle').Memo.Text:=SayiToYazi(frReport1.FindObject('SayiIle').Tag);
Kod: Tümünü seç
frReport1.FindObject('SayiIle').Memo.Text:=SayiToYazi(StrToFloat(frReport1.FindObject('SayiIle').Tag));
hocam yanlış anşalıldım galiba ben
1979 sayısnı bindokuzyüzyetmişdokuz yapmak istiyorum
ve raporda bunun gibi onlarca alan var
1979 sayısnı bindokuzyüzyetmişdokuz yapmak istiyorum
ve raporda bunun gibi onlarca alan var
بِسْمِ اللهِ الرَّحْمنِ الرَّحِيمِ
Forumun 365. Üyesi
Hiç Bir Şey İnsan Kadar Yükselemez ve Alçalamaz
Erkan ÇAĞLAR
Forumun 365. Üyesi
Hiç Bir Şey İnsan Kadar Yükselemez ve Alçalamaz
Erkan ÇAĞLAR
hayir dogru anlasilmissin,
1979 rakkaminini nerde goremk istiyorsan oranin tag'ina bu rakkami veya database baglantisini atiyorsun. rakkami yaziya ceviren func. ile yukarda anlattigim sekilde yaparsan sorunsuz calisir. eger onlarca boyle hanen varsa for dongusu ile yapabilirsin. ben faturada bu yontemi kullaniyorum
1979 rakkaminini nerde goremk istiyorsan oranin tag'ina bu rakkami veya database baglantisini atiyorsun. rakkami yaziya ceviren func. ile yukarda anlattigim sekilde yaparsan sorunsuz calisir. eger onlarca boyle hanen varsa for dongusu ile yapabilirsin. ben faturada bu yontemi kullaniyorum
Kod: Tümünü seç
if frReport1.FindObject('SayiIle')<>Nil Then
frReport1.FindObject('SayiIle').Memo.Text:=SayiToYazi(frReport1.FindObject('SayiIle').Tag);
بِسْمِ اللهِ الرَّحْمنِ الرَّحِيمِ
Forumun 365. Üyesi
Hiç Bir Şey İnsan Kadar Yükselemez ve Alçalamaz
Erkan ÇAĞLAR
Forumun 365. Üyesi
Hiç Bir Şey İnsan Kadar Yükselemez ve Alçalamaz
Erkan ÇAĞLAR
Uses Kismina FR_View eklemelisin sanirim ama genede elinde bulunsun diye sana kendi uses'imi veriyorum.
FR_DSet, FR_DBSet, FR_Class,FR_DCtrl, FR_Rich, FR_OLE, ExtCtrls,
PsFR_E_WMF, PsFR_E_EMF, PsFR_E_BMP, PsFR_E_GIF, PsFR_E_Graphic,
PsFR_E_JPEG, PsFR_E_EXCEL, PsFR_E_RTF, PsFR_E_HTML, PsFR_E_Main,
PsFR_E_PDF, FR_Shape, FR_Chart, FR_ADODB, FR_BarC, FR_RRect, FR_Cross, FR_ChBox, FR_View,
FR_DSet, FR_DBSet, FR_Class,FR_DCtrl, FR_Rich, FR_OLE, ExtCtrls,
PsFR_E_WMF, PsFR_E_EMF, PsFR_E_BMP, PsFR_E_GIF, PsFR_E_Graphic,
PsFR_E_JPEG, PsFR_E_EXCEL, PsFR_E_RTF, PsFR_E_HTML, PsFR_E_Main,
PsFR_E_PDF, FR_Shape, FR_Chart, FR_ADODB, FR_BarC, FR_RRect, FR_Cross, FR_ChBox, FR_View,
@spiderman Rakamı sayıya çeviren function'u yazmamışsınız yoksa benmi göremiyorum !!!spiderman yazdı:rakkami yaziya ceviren func. ile yukarda anlattigim sekilde yaparsan sorunsuz calisir.

@ALUCARD hata almanın nedenide bu fonction'un sende olmaması.

Kolay gelsin.
Gün gelecek, dilleri, elleri ve ayakları yapmış oldukları bütün kötülükleri tek tek bildirerek aleyhlerinde şahitlik edecektir. [Nur Suresi 24]
_________________
_________________
Değişen bişey yok fastreporttaki script dili ile pascal kodu delphideki gibi yazılabilir.spiderman yazdı: benim yazdigim kodda rakkam yaziya cevirme islemi delphi tarafindan yapiliyor fast report tarafindan degil
Kolay gelsin.
Gün gelecek, dilleri, elleri ve ayakları yapmış oldukları bütün kötülükleri tek tek bildirerek aleyhlerinde şahitlik edecektir. [Nur Suresi 24]
_________________
_________________
Kod: Tümünü seç
if frReport1.FindObject('SayiIle')<>Nil Then
frReport1.FindObject('SayiIle').Memo.Text:=SayiToYazi(frReport1.FindObject('SayiIle').Tag);

viewtopic.php?t=6823
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
kendisine çok teşekkür ediorumFAOsoft yazdı:Kod: Tümünü seç
Function BirlerCevir(BirDeger:String):String; Var BirSonuc:String; Begin Case BirDeger Of '1': BirSonuc:='Bir'; '2': BirSonuc:='İki'; '3': BirSonuc:='Üç'; '4': BirSonuc:='Dört'; '5': BirSonuc:='Beş'; '6': BirSonuc:='Altı'; '7': BirSonuc:='Yedi'; '8': BirSonuc:='Sekiz'; '9': BirSonuc:='Dokuz'; '0': BirSonuc:=''; End; Result:=BirSonuc; End; Function OnlarCevir(OnDeger:String):String; Var OnSonuc:String; Begin Case OnDeger Of '1': OnSonuc:='On'; '2': OnSonuc:='Yirmi'; '3': OnSonuc:='Otuz'; '4': OnSonuc:='Kırk'; '5': OnSonuc:='Elli'; '6': OnSonuc:='Altmış'; '7': OnSonuc:='Yetmiş'; '8': OnSonuc:='Seksen'; '9': OnSonuc:='Doksan'; '0': OnSonuc:=''; End; Result:=OnSonuc; End; Function YuzlerCevir(YuzDeger:String):String; Var YuzSonuc:String; Begin Case YuzDeger Of '1': YuzSonuc:='Yüz'; '2': YuzSonuc:='İkiyüz'; '3': YuzSonuc:='Üçyüz'; '4': YuzSonuc:='DörtYüz'; '5': YuzSonuc:='Beşyüz'; '6': YuzSonuc:='Altıyüz'; '7': YuzSonuc:='Yediyüz'; '8': YuzSonuc:='Sekizyyüz'; '9': YuzSonuc:='Dokuzyüz'; '0': YuzSonuc:=''; End; Result:=YuzSonuc; End; Function BinlerCevir(BinDeger:String):String; Var BinSonuc:String; Begin Case BinDeger Of '1': BinSonuc:='Bin'; '2': BinSonuc:='İkibin'; '3': BinSonuc:='Üçbin'; '4': BinSonuc:='Dörtbin'; '5': BinSonuc:='Beşbin'; '6': BinSonuc:='Altıbin'; '7': BinSonuc:='Yedibin'; '8': BinSonuc:='Sekizybin'; '9': BinSonuc:='Dokuzbin'; '0': BinSonuc:=''; End; Result:=BinSonuc; End; Function Cevir(Deger:String):String; Var Sonuc:String; uz:integer; Begin Sonuc:=''; uz:=Length(Deger); if uz=4 then Sonuc:=BinlerCevir(Copy(Deger,1,1))+ YuzlerCevir(Copy(Deger,2,1))+ OnlarCevir(Copy(Deger,3,1))+BirlerCevir(Copy(Deger,4,1)); if uz=2 then Sonuc:= OnlarCevir(Copy(Deger,1,1))+BirlerCevir(Copy(Deger,2,1)); if uz=1 then Sonuc:= BirlerCevir(Copy(Deger,1,1)); Result:=Sonuc; End; procedure MasterData1OnBeforePrint(Sender:TfrxComponent); var strem:string; begin strem:=''; strem:=Cevir(IntToStr(DayOf(<frxDBDataset1."TRH1">)))+' '; strem:=strem+Cevir(IntToStr(MonthOf(<frxDBDataset1."TRH1">)))+' '; strem:=strem+Cevir(IntToStr(YearOf(<frxDBDataset1."TRH1">))); Memo3.Text:=strem; end; begin end.
sorunu bu şekilde hallettim.

بِسْمِ اللهِ الرَّحْمنِ الرَّحِيمِ
Forumun 365. Üyesi
Hiç Bir Şey İnsan Kadar Yükselemez ve Alçalamaz
Erkan ÇAĞLAR
Forumun 365. Üyesi
Hiç Bir Şey İnsan Kadar Yükselemez ve Alçalamaz
Erkan ÇAĞLAR
-
- Üye
- Mesajlar: 122
- Kayıt: 31 Tem 2010 06:38
Re: fastreportta sayıyı yazıya çevirme
Function GeriyeKalaniYaziyaCevir(GeriyeKalan)
If GeriyeKalan <> 0 Then
KacYuz = Fix(GeriyeKalan / 100)
If Len(GeriyeKalan) > 2 Then
GeriyeKalan = Right(GeriyeKalan,2)
End If
If KacYuz <> 0 Then
GeriyeKalaniYaziyaCevir = GeriyeKalaniYaziyaCevir & GeriyeKalaniYaziyaCevir(KacYuz) & "YÜZ"
End If
If GeriyeKalan > 9 Then
OnlarBasamagi = Left(GeriyeKalan,1)
If OnlarBasamagi = 9 Then
GeriyeKalaniYaziyaCevir = GeriyeKalaniYaziyaCevir & "DOKSAN"
ElseIf OnlarBasamagi = 8 Then
GeriyeKalaniYaziyaCevir = GeriyeKalaniYaziyaCevir & "SEKSEN"
ElseIf OnlarBasamagi = 7 Then
GeriyeKalaniYaziyaCevir = GeriyeKalaniYaziyaCevir & "YETMIS"
ElseIf OnlarBasamagi = 6 Then
GeriyeKalaniYaziyaCevir = GeriyeKalaniYaziyaCevir & "ALTMIS"
ElseIf OnlarBasamagi = 5 Then
GeriyeKalaniYaziyaCevir = GeriyeKalaniYaziyaCevir & "ELLI"
ElseIf OnlarBasamagi = 4 Then
GeriyeKalaniYaziyaCevir = GeriyeKalaniYaziyaCevir & "KIRK"
ElseIf OnlarBasamagi = 3 Then
GeriyeKalaniYaziyaCevir = GeriyeKalaniYaziyaCevir & "OTUZ"
ElseIf OnlarBasamagi = 2 Then
GeriyeKalaniYaziyaCevir = GeriyeKalaniYaziyaCevir & "YIRMI"
ElseIf OnlarBasamagi = 1 Then
GeriyeKalaniYaziyaCevir = GeriyeKalaniYaziyaCevir & "ON"
End If
End If
BirlerBasamagi = Right(GeriyeKalan,1)
If BirlerBasamagi = 9 Then
GeriyeKalaniYaziyaCevir = GeriyeKalaniYaziyaCevir & "DOKUZ"
ElseIf BirlerBasamagi = 8 Then
GeriyeKalaniYaziyaCevir = GeriyeKalaniYaziyaCevir & "SEKIZ"
ElseIf BirlerBasamagi = 7 Then
GeriyeKalaniYaziyaCevir = GeriyeKalaniYaziyaCevir & "YEDI"
ElseIf BirlerBasamagi = 6 Then
GeriyeKalaniYaziyaCevir = GeriyeKalaniYaziyaCevir & "ALTI"
ElseIf BirlerBasamagi = 5 Then
GeriyeKalaniYaziyaCevir = GeriyeKalaniYaziyaCevir & "BES"
ElseIf BirlerBasamagi = 4 Then
GeriyeKalaniYaziyaCevir = GeriyeKalaniYaziyaCevir & "DÖRT"
ElseIf BirlerBasamagi = 3 Then
GeriyeKalaniYaziyaCevir = GeriyeKalaniYaziyaCevir & "ÜÇ"
ElseIf BirlerBasamagi = 2 Then
GeriyeKalaniYaziyaCevir = GeriyeKalaniYaziyaCevir & "IKI"
ElseIf BirlerBasamagi = 1 Then
GeriyeKalaniYaziyaCevir = GeriyeKalaniYaziyaCevir & "BIR"
End If
End If
End Function
Function YaziyaCevir(Sayi)
KacMilyar = Fix(Sayi/1000000000)
If Sayi > 9 Then
Sayi = Right(Sayi,9)
End If
KacMilyon = Fix(Sayi/1000000)
If Sayi > 6 Then
Sayi = Right(Sayi,6)
End If
KacBin = Fix(Sayi / 1000)
If Sayi > 3 Then
Sayi = Right(Sayi,3)
End If
GeriyeKalan = Sayi
If KacMilyar <> 0 Then
YaziyaCevir = YaziyaCevir & GeriyeKalaniYaziyaCevir(KacMilyar) & "MILYAR"
End If
If KacMilyon <> 0 Then
YaziyaCevir = YaziyaCevir & GeriyeKalaniYaziyaCevir(KacMilyon) & "MILYON"
End If
If KacBin <> 0 Then
YaziyaCevir = YaziyaCevir & GeriyeKalaniYaziyaCevir(KacBin) & "BIN"
End If
YaziyaCevir = YaziyaCevir & GeriyeKalaniYaziyaCevir(GeriyeKalan)
End Function
bunda ki hata nerede
? yardımcı olabilecek bir arkadaş varmıdır..
If GeriyeKalan <> 0 Then
KacYuz = Fix(GeriyeKalan / 100)
If Len(GeriyeKalan) > 2 Then
GeriyeKalan = Right(GeriyeKalan,2)
End If
If KacYuz <> 0 Then
GeriyeKalaniYaziyaCevir = GeriyeKalaniYaziyaCevir & GeriyeKalaniYaziyaCevir(KacYuz) & "YÜZ"
End If
If GeriyeKalan > 9 Then
OnlarBasamagi = Left(GeriyeKalan,1)
If OnlarBasamagi = 9 Then
GeriyeKalaniYaziyaCevir = GeriyeKalaniYaziyaCevir & "DOKSAN"
ElseIf OnlarBasamagi = 8 Then
GeriyeKalaniYaziyaCevir = GeriyeKalaniYaziyaCevir & "SEKSEN"
ElseIf OnlarBasamagi = 7 Then
GeriyeKalaniYaziyaCevir = GeriyeKalaniYaziyaCevir & "YETMIS"
ElseIf OnlarBasamagi = 6 Then
GeriyeKalaniYaziyaCevir = GeriyeKalaniYaziyaCevir & "ALTMIS"
ElseIf OnlarBasamagi = 5 Then
GeriyeKalaniYaziyaCevir = GeriyeKalaniYaziyaCevir & "ELLI"
ElseIf OnlarBasamagi = 4 Then
GeriyeKalaniYaziyaCevir = GeriyeKalaniYaziyaCevir & "KIRK"
ElseIf OnlarBasamagi = 3 Then
GeriyeKalaniYaziyaCevir = GeriyeKalaniYaziyaCevir & "OTUZ"
ElseIf OnlarBasamagi = 2 Then
GeriyeKalaniYaziyaCevir = GeriyeKalaniYaziyaCevir & "YIRMI"
ElseIf OnlarBasamagi = 1 Then
GeriyeKalaniYaziyaCevir = GeriyeKalaniYaziyaCevir & "ON"
End If
End If
BirlerBasamagi = Right(GeriyeKalan,1)
If BirlerBasamagi = 9 Then
GeriyeKalaniYaziyaCevir = GeriyeKalaniYaziyaCevir & "DOKUZ"
ElseIf BirlerBasamagi = 8 Then
GeriyeKalaniYaziyaCevir = GeriyeKalaniYaziyaCevir & "SEKIZ"
ElseIf BirlerBasamagi = 7 Then
GeriyeKalaniYaziyaCevir = GeriyeKalaniYaziyaCevir & "YEDI"
ElseIf BirlerBasamagi = 6 Then
GeriyeKalaniYaziyaCevir = GeriyeKalaniYaziyaCevir & "ALTI"
ElseIf BirlerBasamagi = 5 Then
GeriyeKalaniYaziyaCevir = GeriyeKalaniYaziyaCevir & "BES"
ElseIf BirlerBasamagi = 4 Then
GeriyeKalaniYaziyaCevir = GeriyeKalaniYaziyaCevir & "DÖRT"
ElseIf BirlerBasamagi = 3 Then
GeriyeKalaniYaziyaCevir = GeriyeKalaniYaziyaCevir & "ÜÇ"
ElseIf BirlerBasamagi = 2 Then
GeriyeKalaniYaziyaCevir = GeriyeKalaniYaziyaCevir & "IKI"
ElseIf BirlerBasamagi = 1 Then
GeriyeKalaniYaziyaCevir = GeriyeKalaniYaziyaCevir & "BIR"
End If
End If
End Function
Function YaziyaCevir(Sayi)
KacMilyar = Fix(Sayi/1000000000)
If Sayi > 9 Then
Sayi = Right(Sayi,9)
End If
KacMilyon = Fix(Sayi/1000000)
If Sayi > 6 Then
Sayi = Right(Sayi,6)
End If
KacBin = Fix(Sayi / 1000)
If Sayi > 3 Then
Sayi = Right(Sayi,3)
End If
GeriyeKalan = Sayi
If KacMilyar <> 0 Then
YaziyaCevir = YaziyaCevir & GeriyeKalaniYaziyaCevir(KacMilyar) & "MILYAR"
End If
If KacMilyon <> 0 Then
YaziyaCevir = YaziyaCevir & GeriyeKalaniYaziyaCevir(KacMilyon) & "MILYON"
End If
If KacBin <> 0 Then
YaziyaCevir = YaziyaCevir & GeriyeKalaniYaziyaCevir(KacBin) & "BIN"
End If
YaziyaCevir = YaziyaCevir & GeriyeKalaniYaziyaCevir(GeriyeKalan)
End Function
bunda ki hata nerede
