بتاريخ: 3 مايو 200818 سنة comment_127969 اخواني السلام عليكم ورحمة الله وبركاتهصممت شاشة فاتوره اريد الان انه عندما يقوم المستخدم بإدخال صنف يحمل نفس الرقم يعني نفس الصنف مرتين في نفس الفاتوربه ان لايقبل البرنامج ذلك او يقبل ذلك ولكن بشرط ان يذهب الى نفس الصنف عندما تم ادخالة في المره الاولى ولكن فقط يسمح بتعديل الكميه لو فرضنا انه عملنا البرنامج ان يسمح بتكرار نفس الصنف في نفس الفاتوره اريده ان في يفحص مجموع الكميتين لنفس الصنف بحيث لاتزيد تلك الكميتنين عن مجموع الكميه للصنف في المخزنارجو ان يكون سؤالي واضح وهل سوف يكون ذلك في حالة بعد الادخال او قبل الادخال او عند ادخال الصنف وشكرا لكم تقديم بلاغ
بتاريخ: 3 مايو 200818 سنة comment_127984 لو فرضنا انه عملنا البرنامج ان يسمح بتكرار عليك الذهاب على التيكست ايتم في الشاشه التي تريد وضع فيها كمية البيع وتعمل عليها تركير when_validate_itemوتضع الكود التاليdeclare x number; begin select item_qty into x from item where item_no=:item_no; if x<:item_qty then message('do not have'); message('do not have'); raise form_trigger_failure; end if; end; وان شاء الله تستفاد تحياتي لك تقديم بلاغ
بتاريخ: 4 مايو 200818 سنة كاتب الموضوع comment_128033 شكر لك اخي الكريم على الرد ولكن اعتقد ان هذا الحل لن ينفعالان على سبيل المثال انا اريد عندما يدخل المستخدم نفس الصنف بنفس الرقم مرتين مثلا دخل مره 3 حبات ومره 5 حبات من نفس الصنف الذي يحمل نفس الرقم اريد عند ذلك ان يقوم البرنامج بالبحث في البلوك حق الفاتوره فيقوم بجمع كمية اي صنف متشابه يعني يحمل نفس الرقم ويقارن مجموع تلك الكميه بالكميه الفعليه لصنف في المخزن ارجو ان تكون وضحت الفكره وشكرا لكم تقديم بلاغ
بتاريخ: 5 مايو 200818 سنة كاتب الموضوع comment_128075 وينكم يا مبرمجين ساعدوني الله يجزاكم خير تقديم بلاغ
بتاريخ: 5 مايو 200818 سنة comment_128079 افرض ان تواريخك هي xd و ydوتريد ان تضع الفرق في ddيكون على النحو التالي:Dd:=:yd-xd; تقديم بلاغ
بتاريخ: 5 مايو 200818 سنة comment_128085 نفرض انك تحتفظ بالبيانات في جدول qnt_tbl في الحقل qnt_itmوان العنصر itm_no declare x number:=0; y number:=0; z number:=0; begin select sum(qnt_itm) into x from qnt_tbl where itm_no=:itm_no; y:=x+:qnt_itm; end; بذلك تحصل على الكمية القديمة زائدا الجديدةاذا ارسلت لى ملفاتك استطيع المساعدة بشكل افضل تقديم بلاغ
بتاريخ: 5 مايو 200818 سنة comment_128089 السلام عليكمالحل بسيط ان شاء اللهانت كل اللي هتعمله بعد ما يدخل الكميه هيضطر يمشي عليكل الصفوف التي قبله في الفاتورهاذا وجد الصنف يقوم باضافة الكميه ويقوم بحذف السجلوسنستخدم loop your statment here exit when :system.last_record; end loop; تقديم بلاغ
بتاريخ: 5 مايو 200818 سنة كاتب الموضوع comment_128110 اولا شكرا لكم اخواني جميعا الحل الصحيح نمن وجهة نظري هو عمل تريجر when_validate_item على مستوى ال qty وهوdeclare v_sum_qty number(5); begin if :sale_details.qty > :sale_details.s_qty then message('This is very big qty ......must be less than or equal to '|| :sale_details.s_qty); raise form_trigger_failure;else select sum(qty) into v_sum_qty from temp_sale where inv_no = :sale_main.inv_no and item_id = :sale_details.item_id; if v_sum_qty is not null and (v_sum_qty + :sale_details.qty) > :sale_details.s_qty then message('This is very big qty ......must be less than or equal to '|| :sale_details.s_qty); raise form_trigger_failure; end if; insert into temp_sale values (:sale_main.inv_no,:sale_details.item_id,:sale_details.qty); end if;end;ثم عمل تريجر pre_insert ايضا على ال qty وهوif :sale_details.qty is not null then delete from temp_sale where inv_no = :sale_main.inv_no and qty = :sale_details.qty and item_id = :sale_details.item_id;end if تقديم بلاغ
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.