بتاريخ: 6 ديسمبر 200817 سنة comment_144423 هذا الكود لكتابة القيمة الرقمية بما يقابلها نصا، أرجو أن يفيد الأخوة بالمنتدى ويمكن الاستفادة منه بتغيير اسم العملة.. إضاة الى هذه الطريقة اعرف طريقتين اخرتين الاولى باستخدام جدول وعمل procedure وكتابة كود صغير للمنادة والثانية شبيهة بهذه الطريقة لكنها مبسطة أكثر، وساقوم إن شاء الله باضافة الطريقتين الأخرتين FUNCTION FU_convert (N NUMBER) RETURN VARCHAR2 IS type convert_table is table of varchar2(15) index by binary_integer; one tafkeet_table; hund tafkeet_table; n_ch varchar2(8); n1 number(2); n2 number(2); n3 number(2); n4 number(2); n5 number(2); n6 number(3,3); ch varchar2(200); ch1 varchar2(20); ch2 varchar2(20); ch3 varchar2(20); ch4 varchar2(20); ch5 varchar2(20); ch6 varchar2(5); ch1_1 varchar2(14); ch3_3 varchar2(14); ch5_5 varchar2(19); and1 varchar2(2); and2 varchar2(2); and3 varchar2(2); and4 varchar2(2); and5 varchar2(2); fils varchar2(3) := 'قرش'; only varchar2(3) := 'فقط'; dinar varchar2(7) := 'جنيه'; thousand varchar2(5) := 'ألف'; milion varchar2(7); begin -- TABLE one(0) := ' '; one(1) := 'واحد '; one(2) := 'إثنان '; one(3) := 'ثلاثة '; one(4) := 'أربعة '; one(5) := 'خمسة '; one(6) := 'ستة '; one(7) := 'سبعة '; one(8) := 'ثمانية '; one(9) := 'تسعة '; one(10) := 'عشرة '; one(11) := 'أحد عشر'; one(12) := 'إثنى عشر'; one(13) := 'ثلاثة عشر'; one(14) := 'أربعة عشر'; one(15) := 'خمسة عشر'; one(16) := 'ستة عشر'; one(17) := 'سبعة عشر'; one(18) := 'ثمانية عشر'; one(19) := 'تسعة عشر'; one(20) := 'عشرون'; one(21) := 'واحد وعشرون'; one(22) := 'إثنان وعشرون'; one(23) := 'ثلاثة وعشرون'; one(24) := 'أربعة وعشرون'; one(25) := 'خمسة وعشرون'; one(26) := 'ستة وعشرون'; one(27) := 'سبعة وعشرون'; one(28) := 'ثمانية وعشرون'; one(29) := 'تسعة وعشرون'; one(30) := 'ثلاثون'; one(31) := 'واحد وثلاثون'; one(32) := 'إثنان وثلاثون'; one(33) := 'ثلاثة وثلاثون'; one(34) := 'أربعة وثلاثون'; one(35) := 'خمسة وثلاثون'; one(36) := 'ستة وثلاثون'; one(37) := 'سبعة وثلاثون'; one(38) := 'ثمانية وثلاثون'; one(39) := 'تسعة وثلاثون'; one(40) := 'أربعون'; one(41) := 'واحد وأربعون'; one(42) := 'إثنان وأربعون'; one(43) := 'ثلاثة وأربعون'; one(44) := 'أربعة وأربعون'; one(45) := 'خمسة وأربعون'; one(46) := 'ستة وأربعون'; one(47) := 'سبعة وأربعون'; one(48) := 'ثمانية وأربعون'; one(49) := 'تسعة وأربعون'; one(50) := 'خمسون'; one(51) := 'واحد وخمسون'; one(52) := 'إثنان وخمسون'; one(53) := 'ثلاثة وخمسون'; one(54) := 'أربعة وخمسون'; one(55) := 'خمسة وخمسون'; one(56) := 'ستة وخمسون'; one(57) := 'سبعة وخمسون'; one(58) := 'ثمانية وخمسون'; one(59) := 'تسعة وخمسون'; one(60) := 'ستون'; one(61) := 'واحد وستون'; one(62) := 'إثنان وستون'; one(63) := 'ثلاثة وستون'; one(64) := 'أربعة وستون'; one(65) := 'خمسة وستون'; one(66) := 'ستة وستون'; one(67) := 'سبعة وستون'; one(68) := 'ثمانية وستون'; one(69) := 'تسعة وستون'; one(70) := 'سبعون'; one(71) := 'واحد وسبعون'; one(72) := 'إثنان وسبعون'; one(73) := 'ثلاثة وسبعون'; one(74) := 'أربعة وسبعون'; one(75) := 'خمسة وسبعون'; one(76) := 'ستة وسبعون'; one(77) := 'سبعة وسبعون'; one(78) := 'ثمانية وسبعون'; one(79) := 'تسعة وسبعون'; one(80) := 'ثمانون'; one(81) := 'واحد وثمانون'; one(82) := 'إثنان وثمانون'; one(83) := 'ثلاثة وثمانون'; one(84) := 'أربعة وثمانون'; one(85) := 'خمسة وثمانون'; one(86) := 'ستة وثمانون'; one(87) := 'سبعة وثمانون'; one(88) := 'ثمانية وثمانون'; one(89) := 'تسعة وثمانون'; one(90) := 'تسعون'; one(91) := 'واحد وتسعون'; one(92) := 'إثنان وتسعون'; one(93) := 'ثلاثة وتسعون'; one(94) := 'أربعة وتسعون'; one(95) := 'خمسة وتسعون'; one(96) := 'ستة وتسعون'; one(97) := 'سبعة وتسعون'; one(98) := 'ثمانية وتسعون'; one(99) := 'تسعة وتسعون'; hund(0) := ' '; hund(1) := 'مائة'; hund(2) := 'مائتان'; hund(3) := 'ثلاثمائة'; hund(4) := 'أربعمائة'; hund(5) := 'خمسمائة'; hund(6) := 'ستمائة'; hund(7) := 'سبعمائة'; hund(8) := 'ثمانمائة'; hund(9) := 'تسعمائة'; ----------- n_ch := lpad(to_char(trunc(n)),8,'00000000'); n1 := nvl(to_number(substr(n_ch,1,2)),0); n2 := nvl(to_number(substr(n_ch,3,1)),0); n3 := nvl(to_number(substr(n_ch,4,2)),0); n4 := nvl(to_number(substr(n_ch,6,1)),0); n5 := nvl(to_number(substr(n_ch,7,2)),0); n6 := nvl(mod(n,1),0); ch1 := one(n1); ch2 := hund(n2); ch3 := one(n3); ch4 := hund(n4); ch5 := one(n5); ch6 := lpad(rpad(to_char(n6*1000),4,' '),5,' '); if (n1<>0) and (n2<>0 or n3<>0 or n4<>0 or n5<>0) then and1 := ' و'; end if; if (n2<>0) and (n3<>0 or n4<>0 or n5<>0) then and2 := ' و'; end if; if (n3<>0 or n2<>0) and (n4<>0 or n5<>0) then and3 := ' و'; end if; if (n4<>0) and (n5<>0) then and4 := ' و'; end if; if (trunc(n)<>0) and (n6<>0) then and5 := ' و'; end if; ch1_1 := ch1; ch3_3 := ch3; ch5_5 := ch5; if nvl(n,0)=0 then only := ' '; dinar := ' '; thousand := ' '; end if; if (n6=0) then fils := ''; ch6 := ''; end if; if (n3=1) and (n2=0) then ch3_3 := ''; elsif (n3=2) and (n2=0) then thousand := 'ألفين'; ch3_3 := ''; elsif (n3>=3) and (n3<=10) then thousand := 'ألاف'; end if; if (n3=0) and (n2=0) and (n4<>0 or n5<>0) then thousand := ''; end if; if (n3=0) then and2 := ''; end if; if (n1=0 and n2 =0 and n3=0 and n4=0) then if (n5=1) then ch5_5 := 'دينار'||ch5; thousand := ''; dinar := ''; elsif (n5=2) then ch5_5 := 'دينارين'; thousand := ''; dinar := ''; elsif (n5>=3) and (n5<=10) then ch5_5 := ch5 || 'دنانير'; thousand := ''; dinar := ''; end if; end if; if (n1=0 and n2 =0 and n3=0 and n4=0 and n5=0) then thousand := ''; dinar := ''; end if; if (n1=1) then milion := 'مليون'; ch1_1 := ''; elsif (n1=2) then milion := 'مليونين'; ch1_1 := ''; elsif (n1>=3) and (n1<=10) then milion := 'ملايين'; elsif (n1<>0) then milion := 'مليون'; end if; ch := ch1_1||' '||milion||and1||ch2||and2||ch3_3||' '||thousand||and3|| ch4||and4||ch5_5||' '||dinar||and5||ch6||fils||' '||only; return(ch); end; تقديم بلاغ
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.