13-02-2018, Saat: 23:43
(Son Düzenleme: 08-02-2020, Saat: 17:54, Düzenleyen: adelphiforumz.)
eskileri karıştırırken karşıma çıktı belki birine lazım olur
FastReport Code Kısmına yazılan
FastReport'ta Tutarı elde ettiğin nesnenin "OnAfterPrint" kısmı "memoYazdir" yazının görüneceği nesne oluyor
FastReport Code Kısmına yazılan
function Basamak(const i:Int):String; begin case i of 1:Result:='Bin'; 2:Result:='Milyon'; 3:Result:='Milyar'; 4:Result:='Trilyon'; 5:Result:='Katrilyon'; 6:Result:='Kentrilyon'; else Result:=''; end; end; function Onlar(const i:Int):String; begin case i of 1:Result:='On'; 2:Result:='Yirmi'; 3:Result:='Otuz'; 4:Result:='Kırk'; 5:Result:='Elli'; 6:Result:='Altmış'; 7:Result:='Yetmiş'; 8:Result:='Seksen'; 9:Result:='Doksan'; else Result:=''; end; end; function Birler(const i:Integer):String; begin case i of 1:Result:='Bir'; 2:Result:='İki'; 3:Result:='Üç'; 4:Result:='Dört'; 5:Result:='Beş'; 6:Result:='Altı'; 7:Result:='Yedi'; 8:Result:='Sekiz'; 9:Result:='Dokuz'; else Result:=''; end; end; function RakamOku(Sayi:Integer):String; const n=9; var i:Byte; UcHane:Word; Yed,UcluHane:String; HangiBasamak:Byte; Negatif,BasamakYaz:Boolean; function Modu(var Sayisi:Word):Byte; begin Result:=Sayisi mod 10; Sayisi:=Sayisi div 10; end; begin if Sayi=0 then Result:='Sıfır' else begin Negatif:=Sayi<0; if Negatif then Sayi:=-Sayi; Result:=''; HangiBasamak:=0; while Sayi>0 do begin UcHane:=Sayi mod 1000; Sayi:=Sayi div 1000; BasamakYaz:=UcHane>0; repeat UcluHane:=''; if ((HangiBasamak=1) and (UcHane=1)) then Break;//sadece bin yazılacaksa i:=Modu(UcHane); UcluHane:=Birler(i); //3 hanenin 1. si i:=Modu(UcHane); UcluHane:=Onlar(i)+UcluHane; //3 hanenin 2. si i:=Modu(UcHane); if i>0 then Yed:='Yüz' else Yed:=''; if i>1 then Yed:=Birler(i)+Yed; UcluHane:=Yed+UcluHane;//3 hanenin 3. sü until True; if BasamakYaz then Result:=UcluHane+Basamak(HangiBasamak)+Result; inc(HangiBasamak); end; if Negatif then Result:='Eksi'+Result else //Delete(Result,1,1); end; end;
FastReport'ta Tutarı elde ettiğin nesnenin "OnAfterPrint" kısmı "memoYazdir" yazının görüneceği nesne oluyor
var sSayi, sTmp, sYaziTL, sYaziKurus, sTL, sKurus:string; i, iTL, iKurus : Integer; bSwcAyrac : Boolean; begin sKurus := ''; sTL := ''; sSayi := ''; sSayi := Trim(memoGenel.Text); sYaziTL := ''; sYaziKurus := ''; iTL := 0; iKurus := 0; bSwcAyrac := False; i := Length(sSayi); while i > 0 do begin if sSayi[I] in ['0'..'9'] then begin if bSwcAyrac = False then sKurus := sKurus + sSayi[I] else sTL := sTL + sSayi[I]; end else begin if (Length(sSayi) - I) <= 2 then bSwcAyrac := True; end; Dec(I); end; sTmp := ''; if sKurus <> '' then for I := Length(sKurus) downto 1 do sTmp := sTmp + sKurus[I]; sKurus := sTmp; sTmp := ''; if sTL <> '' then for I := Length(sTL) downto 1 do sTmp := sTmp + sTL[I]; sTL := sTmp; if ( (sTL = '') and (sKurus <> '') ) then begin sTL := sKurus; sKurus := ''; end; if sTL <> '' then iTL := StrToInt(sTL); if sKurus <> '' then iKurus := StrToInt(sKurus); sYaziTL := RakamOku(iTL); sYaziKurus := RakamOku(iKurus); memoYazdir.Text:= ' Fatura Genel Toplamı : Yalnız '+sYaziTL+'TL ' +sYaziKurus+'Kuruş ';
Bu dünyada kendine sakladığın bilgi ahirette işine yaramaz.