بتاريخ: 30 أكتوبر 200817 سنة comment_141882 function PRICEFormula return Number is a number; begin if :Pr = 11 then SELECT MAX(PRICE1) INTO A FROM WAST WHERE ITEM_NO =:ITEM_NO and trno='02' ; return (a); elsif :Pr = 22 then SELECT min(PRICE1) INTO A FROM WAST WHERE ITEM_NO =:ITEM_NO and trno='02' ; return (a); elsif :Pr = 33 then select price1 INTO A FROM WAST WHERE ITEM_NO =:ITEM_NO and trno='02' and dat = (select max(dat) from wast where ITEM_NO =:ITEM_NO and trno='02'); return (a); elsif :Pr = 1 then select price1 INTO A FROM WAST WHERE ITEM_NO =:ITEM_NO and trno='02' and dat = (select max(dat) from wast where ITEM_NO =:ITEM_NO and trno='02'); return (a); end if; دلوقتى يجماعة انا عملت الكود دة على عمود فوريمللما بجى استدعى التقرير بالشكل دة http://127.0.0.1:8889/reports/rwservlet?us...04%20&pr=11ولنفتلرض هبعتلة بارميتر فية قيمة 11 عشان ينفذ اول شرط بيشتغل وكلة تمامنفس الكود ولاكن مع تغير اخر رقم وجعلةhttp://127.0.0.1:8889/reports/rwservlet?us...004%20&pr=1اعتقد ان هنا يجب ان ينفذ الشرط الرابع حتى لو اجريت هذا التغير من ال عنوان المتصفحفتظهر لى تلك الرسالة REP-1401: 'priceformula': Fatal PL/SQL error occurred.ORA-06503: PL/SQL: Function returned without valueطبع لما عملت سيرش الك انتة ناسى عبارة returnوزى منتة شايفن الكود سليمطب مثلا حبيت اخلى الشرط التانى لما يكون بياساوى 1 والخير بيساوى 22 طبعاً نفس رسالة الروةور للواحد بس فيترة دة من اية ؟ عشان انا جالى شللل طبعا الوش ال ظهر دة مكان البرايمتر pr تم تعديل 30 أكتوبر 200817 سنة بواسطة hossam160 تقديم بلاغ
بتاريخ: 30 أكتوبر 200817 سنة comment_141885 function PRICEFormula return Number is a number; begin if r = 11 then SELECT MAX(PRICE1) INTO A FROM WAST WHERE ITEM_NO =:ITEM_NO and trno='02'; return (a); elsif r = 22 then SELECT min(PRICE1) INTO A FROM WAST WHERE ITEM_NO =:ITEM_NO and trno='02'; return (a); elsif r = 33 then select price1 INTO A FROM WAST WHERE ITEM_NO =:ITEM_NO and trno='02' and dat = (select max(dat) from wast where ITEM_NO =:ITEM_NO and trno='02'); return (a); elsif r = 1 then select price1 INTO A FROM WAST WHERE ITEM_NO =:ITEM_NO and trno='02' and dat = (select max(dat) from wast where ITEM_NO =:ITEM_NO and trno='02'); return (a); end if; Return A; END; لازم ترتجع قيمة Return ... لازم تترجم البرنامج Compyle ... ماذا تقصد بالـ r ، هل هو متغير ، ولماذا غير معرف ضمن قسم التصريحات : function PRICEFormula return Number is a number; r number; begin if r = 11 then SELECT MAX(PRICE1) INTO A FROM WAST WHERE ITEM_NO =:ITEM_NO and trno='02'; return (a); elsif r = 22 then SELECT min(PRICE1) INTO A FROM WAST WHERE ITEM_NO =:ITEM_NO and trno='02'; return (a); elsif r = 33 then select price1 INTO A FROM WAST WHERE ITEM_NO =:ITEM_NO and trno='02' and dat = (select max(dat) from wast where ITEM_NO =:ITEM_NO and trno='02'); return (a); elsif r = 1 then select price1 INTO A FROM WAST WHERE ITEM_NO =:ITEM_NO and trno='02' and dat = (select max(dat) from wast where ITEM_NO =:ITEM_NO and trno='02'); return (a); end if; Return A; END; جرب وأخبرني بالنتيجةبالتوفيق تقديم بلاغ
بتاريخ: 30 أكتوبر 200817 سنة كاتب الموضوع comment_141907 والله ياخ MMA جزاك الله خيراً .. على محاولة افادتك الأخرين الدائمةورغم انك جديد فى الريبورت ال انك خدت شوط فية واصبحت متميز فيةوحتى مشكلك لما بتحلها بتحاول تفيد الأخرين بكيف تم حلهابالنسبة ال للمتغير r هو مشكدة هو عبارة عن براميتر شكلة p||r||: من غير ال || فا فى هنا اسمايل تقريبا وخدة النقطتين وحرف البى فبتدى شكل اسمايل المشكلة الحمد الله اتحلت لما ريترت الداتا بيز ورفريشت الصفح وجزاكم الله خيراً مرة اخرى تقديم بلاغ
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.