بتاريخ: 12 مارس 201214 سنة comment_221728 ارجو المساعده فى عمل تقرير للفاتوره ويقوم التقرير بتفقيط اجمالى الثمن بالعربى معا العلم انى قرات كذا موضوع للتقرير ده على المنتدى ولم اوصل الى حل اتمنى من الاخوه الاعزاء فى المنتىدى المساعده وجزاكم الله خير تقديم بلاغ
بتاريخ: 12 مارس 201214 سنة comment_221743 الاخ العزيز : اعتقد انه في احدى المشاركات لا اعرف بالضبط اسم المشارك ولكن الكود لديه يعمل بشكل جيد , وانا جربته عندي ولا اجد فيه اي مشكلة وهذا هو الكود : CREATE OR REPLACE FUNCTION number_to_char(N NUMBER) RETURN VARCHAR2 IS type 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; / تم تعديل 12 مارس 201214 سنة بواسطة Ahmad.Hasan تقديم بلاغ
بتاريخ: 13 مارس 201214 سنة كاتب الموضوع comment_221782 الاخ العزيز اريد شرح عمليه التفقيط على التقرير تبقى ازاى عشان انا مش عارف اعمله على التقرير ازاى وانا اصل معيا كود التفقيط بس مش عارف استخدمه على التقرير ارجو من الاخوه فى المنتدى مساعدتى لانه موضوع ضرورى جدا وجزاكم الله خيرا تقديم بلاغ
بتاريخ: 14 مارس 201214 سنة comment_221864 الاخ الكريم :طبعا يمكنك استخدام الكود السابق في التقارير بأكثر من طريقة , ولكن يفضل اولا بناء التابع ضمن قاعدة البيانات وبعد ذلك يمكن استخدام التابع ضمن تعليمة الsql التي نبني بها التقرير او استخدام عمود صيغة .وفي المثال المرفق قمت ببناء التابع number_TO_CHAR ضمن قاعدة البايانات للمستخدم hrوبعد ذذك قمت ببناء التقرير حيث العمود الجديد sal استخدمت التابع ضمن تعليمة sqlاما الحقل cf_1 فهو عمود صيغة ( اقرا الكود الذي بداخله) salary.rar تقديم بلاغ
بتاريخ: 15 مارس 201214 سنة كاتب الموضوع comment_221869 اخوى العزيز جزاك الله خير على مساعدتك بس على فكره التقرير مش شغال انا كريت جدول وكل ام ارن التقرير يدين هذه الرساله تقديم بلاغ
بتاريخ: 16 مارس 201214 سنة comment_221904 اخي الكريم :لا داعي لأن تبني جدول جديد لأن التقرير مبني على الجدول employees للمستخدم hr , فقط عليك الدخول باسم المستخدم hr وكلمة السر hr وبعد ذلك نفذ كود التفقيط الذي هو تابع function ,ثم جرب التقرير , واذا كان هناك مشكلة انا جاهز ان شاء الله تقديم بلاغ
بتاريخ: 17 مارس 201214 سنة كاتب الموضوع comment_221915 شكرا على كل مساعدات الاخوه الاعزاء الحمد لله لقد قمت بحل المشكل جزاكم الله خير على المساعده واكثر من امثالكم والله الموافق اخوكم فى الله تقديم بلاغ
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.