بتاريخ: 14 يونيو 201015 سنة comment_194619 السلام عليكمكيف يمكنني عمل اكسبشن في شاشة البحثاريد عند عدم وجود بيانات لهذا الرقم الي ابحث عنه مثلا يطلع لي alert بان البيانات غير موجودهواذا كان فيه بيانات وعدلت فيها وضغطت زر التعديل يطلع لي هذا الخطأFRM-40735وعندما اضغط زر الحذف يطلع لي الخطأ FRM-40508 غير قادر على اجراء انسيرت؟؟؟؟؟؟؟؟؟؟ وانا بعمل حذفارجو المساعده تقديم بلاغ
بتاريخ: 14 يونيو 201015 سنة comment_194631 انت ممكن تعمل اكسبشن في التريجر بتاعك بحيث ان الكرسور لو طلع فاضي ينفذ الشرط اللي انت عايزه زي الكود دا مثلا declare d exception; x number; cursor c is select salary,last_name from employees where employee_id=:text_item4; begin open c; fetch c into :item7,:text_item6; if c%notfound then raise d; end if; exception when d then x :=show_alert('alert8'); close c; end; للسؤال التاني جرب انك تعمل مثلا في زرار التعديل جمله ابضيت عاديه مثلا update employees set salary=:text_item1,name=:text_item2 where employee_id=:text_item3 تقديم بلاغ
بتاريخ: 14 يونيو 201015 سنة كاتب الموضوع comment_194638 السلام عليكمجربت الكود وما شتغلوين احط الاكسبشن بالضبط؟هذا الكود الي عندي declare cursor payment_cur is select paymentNo,bdate,bank,transNo,chequeNo,payment,prj_No,BillNo from Payments where prj_No = :PROJECTS.PRJ_NO; total number:=0; total1 number:=0; d exception; x number; begin for payment_rec in payment_cur LOOP :PAYMENTS.PAYMENTNO := payment_rec.paymentNo; :PAYMENTS.BDATE := payment_rec.bdate; :PAYMENTS.BANK := payment_rec.bank; :PAYMENTS.TRANSNO := payment_rec.transNo; :PAYMENTS.CHEQUENO := payment_rec.chequeNo; :PAYMENTS.PAYMENT := payment_rec.payment; :PAYMENTS.PRJ_NO := payment_rec.prj_no; :PAYMENTS.BILLNO := payment_rec.BillNo; total:=total+ :PAYMENTS.PAYMENT; next_record; :PAYMENTS.TEXT_ITEM70 := total; :PAYMENTS.TEXT_ITEM81 := total; END LOOP; if payment_cur%notfound then raise d; end if; exception when d then x :=show_alert('alert8'); select TotalAmount into :PAYMENTS.TEXT_ITEM74 from contagreement where contagreement.cust_no=:CUSTOMERS.CUST_NO; :PAYMENTS.TEXT_ITEM70 := total - :PAYMENTS.TEXT_ITEM74; end; وزر الابديت عاكلته مثل مانت كاتب بالضبط بس حاطه زياده تريقر on_update وداخله update_record وجربته على مستوى البلوك والفورم ولم تنجح الطريقتينبجرب اشيل هذا التريقر وارد عليك تقديم بلاغ
بتاريخ: 14 يونيو 201015 سنة comment_194640 طيب بص اعمل تريجر when-validate-itemعلي التكست اللي عندك اللي اسمه :PROJECTS.PRJ_NOواكتب فيه الكود دا declare test number; alerterror number; begin select count(*) into test from Payments where prj_No=:PROJECTS.PRJ_NO; if x=0 then alerterror :=show_alert('alert8'); raise form_trigger_failure; end if; end; وسيبك من حكايه الاكسبشن اللي في الكود الاول دا بكدا اول مهيكتب في التكست ايتم رقم المشروع ويروح يدوس علي زرار البحث لو ملقاش الرقم دا فعلا متخزن هيظهر alert اللي عندكغير اسم alert اللي في الكود alert اللي في الفورمه عندكوالاحسن انك تعمل التكست ايتم دا PROJECTS.PRJ_NO بLOV تم تعديل 14 يونيو 201015 سنة بواسطة HELL-BOY تقديم بلاغ
بتاريخ: 14 يونيو 201015 سنة كاتب الموضوع comment_194641 شكررررا اخي اشتغل الكودبقي زر التعديل والحذفاعرف انهم اسهل حاجه ممكن نسويها بس والله ماتشتغل معي ما ادري ليش وجربت كذا طريقه تقديم بلاغ
بتاريخ: 14 يونيو 201015 سنة comment_194645 في زرار الحذف مثلا اكتب begin delete PAYMENTS where PRJ_NO=:PAYMENTS.PRJ_NO; commit; end; والابضيت نفس الكلام update PAYMENTS set column=:item,column1=:item2.....etc where PRJ_NO=:PAYMENTS.PRJ_NO; commit; تم تعديل 14 يونيو 201015 سنة بواسطة HELL-BOY تقديم بلاغ
بتاريخ: 14 يونيو 201015 سنة comment_194647 السلام عليكممشكورين على روح التعاون...افضل استخدام : :System.Message_Level := 25; Commit; :System.Message_Level := 0; لكي يتم التخزين Internaly.موفقين. تقديم بلاغ
بتاريخ: 14 يونيو 201015 سنة comment_194648 ento bt20lo eh ana 7awlt afhn klma w7da msh fahm ay 7aga :S m3 eny a5dt el course we emt7nt 20reob bs 7ases eny msh 3arf ay 7aga تقديم بلاغ
بتاريخ: 14 يونيو 201015 سنة كاتب الموضوع comment_194650 HELL-BOYجربت الكود الي حطيته وهو نفسه الكود الي انا مستخدمته بس ما اشتغل يطلع لي هذا الخطأ FRM-40735Ahmad.Hasanالكود الي كتبته وين احطه.. في زر الابديت ؟ تقديم بلاغ
بتاريخ: 14 يونيو 201015 سنة comment_194660 طيب ينفع ترفق صوره للفورمه ورساله الخطاءبالنسبه للكود اللي كتبه الباشمهندس احمد يقصد علشان ميظهرلكش رساله ONE RECORD APPLIED AND SAVEDتكتبهكدا update PAYMENTS set column=:item,column1=:item2.....etc where PRJ_NO=:PAYMENTS.PRJ_NO; :System.Message_Level := 25; Commit; :System.Message_Level := 0; تقديم بلاغ
بتاريخ: 14 يونيو 201015 سنة comment_194665 انا عملت عندي مثال مبسط زي الفورمه اللي انت عملها كدا بس مظهرليش اخطاء وكان بيعمل ابضيت عادي اتاكد من الاكواد اللي انت كاتبه اكيد المشكله في كود انت كاتبه غلط او شوف نوع البيانات اللي هيتعملها انسيرت تكون نفس الداتا تايب واتاكد ان كل التكست ايتم اللي في شاشه البحث DATABASE ITEM NO تم تعديل 14 يونيو 201015 سنة بواسطة HELL-BOY تقديم بلاغ
بتاريخ: 14 يونيو 201015 سنة كاتب الموضوع comment_194668 عرفت المشكلهاتوقع لانه فيه 2 برايمري كيرقم الدفعه والتاريخ مع بعض برايمري كي فأتوقع ماتنفع جملة الابديت الي كتبتها بس لما حطيت في الشرط انو التاريخ يكون مساوي للتاريخ الموجود في البلوكفي الشاشه ما اقدر اوقف على رقم الدفعه والتاريخ في نفس الوقتماهو الحل في هالحاله تقديم بلاغ
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.