بتاريخ: 20 يوليو 200619 سنة comment_74775 الاخوة الاعزاء في المنتدى أنا في صدد عمل نافذة لشاشة فواتير نقدية وتعرفون أن في نهاية الفاتور يوجد المبلغ المراد دفعة بالارقام ويوجد المبلغ أيضاً كتابتاً فمثلاُ1050.30 الف وخمسون ريال وثلاثون هللهأرجوا منكم اعطائي الـ function التي تقوم بتحويل الارقام الى صيغة نصية كما في المثال السابق تقديم بلاغ
بتاريخ: 23 يوليو 200619 سنة comment_74931 هذة االفانكشن ممكن تساعدكFUNCTION FU_TAFKEET (N NUMBER) RETURN VARCHAR2 IStype tafkeet_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; تقديم بلاغ
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.