شباب يله همتكم معنا وحلو هالمشكله حركو مخكم وحاولو تحلونها
انا عندى برنامج للمستودعات مستشفى ويحتوى على ثلاث جدوال الاول
لتسجل المواد الداخله للمتسودع والثانى جدول للطلبيات وجدول للااسترجاع المود للمستودع
لدىفي الجدول الاول حقل لكمية الموجوده وحقل للكمية المصروفه
وعملت الخصم والايدع بالطريقة هذى بحيث عندم اضيف سجل في جدول الطلبيات ياخذ القيمه الموجوده في الكمية المصروفه من جدول الطلبيات ويخصمها من الكمية الموجوده في جدول التسجل العام للمواد
PROCEDURE PINSER IS BEGIN UPDATE STORS SET FOUND_QUANTITY= FOUND_QUANTITY-:STORS.DISBURSED_QUANTITY WHERE :ORDERS.CATEGORY_NO = STORS.CATEGORY_NO; end;
وكذلك يوجد لدى حقل اسمه الكميةالمصروفه في جدول التسجيل العام وعملت ترقر له لااضافة قيمته من الكميه المصروفه في جدول الطلبيات وهذا الكود الخاص فيه
PROCEDURE PINSER IS BEGIN UPDATE STORS SETDISBURSED_QUANTITY =DISBURSED_QUANTITY+:ORDERS.DISBURSED_QUANTITY WHERE :ORDERS.CATEGORY_NO = STORS.CATEGORY_NO; end;
الى هنا تمام ولا يوجد مشاكل لكن المشاكل بدت في الاب ديت حيث انى اريد عندما اعدل على بيانات السجل يقوم بتحديث البيانات وياخذ القيمة الجديده لكن لا استطيع
فهل من طريقه لحل المشكله
علما انى عملت الاب ديت بالطريقه هذي ولكن يوجود لخبطه في الحساب
DECLARE DIS_QUANTITY NUMBER (9); BEGIN SELECT DISBURSED_QUANTITY INTO DIS_QUANTITY FROM ORDERS WHERE ORDERS.CATEGORY_NO = :ORDERS.CATEGORY_NO; UPDATE STORS SET FOUND_QUANTITY = FOUND_QUANTITY - DIS_QUANTITY WHERE :ORDERS.CATEGORY_NO = STORS.CATEGORY_NO; END; DECLARE D_QUANTITY NUMBER (9); BEGIN SELECT DISBURSED_QUANTITY INTO D_QUANTITY FROM ORDERS WHERE ORDERS.CATEGORY_NO = :ORDERS.CATEGORY_NO; UPDATE STORS SET DISBURSED_QUANTITY = DISBURSED_QUANTITY + D_QUANTITY WHERE :ORDERS.CATEGORY_NO = STORS.CATEGORY_NO; END;
تسميات الحقول والجدوال وشرحها
TABLE STORS هذا اسم الجدول الذى تسجل في كل المواد الداخله لمستودعات المستشفي
TABLE ORDERS هذا اسم جدول الطلبيات لااقسام المستشفي
FOUND_QUANTITYNUMBER(10)NOT NULL هذا الكمية الموجوده ويوجد في جدولSTORS
DISBURSED_QUANTITY NUMBER(10),الكمية المصروفه الموجود في جدول STORS
DISBURSED_QUANTITY NUMBER(10)NOT NULL,الكمية المصروفة في جدول الطلبيات ORDERS
ارجو ان يكون الشرح وافي ولااكون اثقلت عليكم ولدى سؤال اخير ارجو ان تتحملوني
انا عندى حقل لست اياتم فيه اسماء المستودعات ولها قيم في الدات بيز وهو موجود في النموذجين المستودعات والطلبيات وعندما اضيف سجل جديد واتى اكتب رقم الصنف هذا الرقم لايوجد الا مستودع واحد لايمكن ان يتكرر في مستودع ثانى انا سؤالى ماهو الترقر الذى اختاره واضع في هذا الكود لكى يتحقق من اسم المستودع اذا اخطاء المستخدم واختار مستودع خطاء يعطيه مسج لتنبيه بحدوث هذا الخطاء
انا عملت الكود لكن لم اعرف اى ترقر اختار وهل هو على مستو ى البلوك اما الايتم
if :ORDERS.STORE_NAME<>:STORS.STORE_NAME then AND :ORDERS.CATEGORY_NO =:STORS.CATEGORY_NO
MESSAGE('اختر المستودع الصحيح');
MESSAGE(' ');
end if;ارجو ان تجدو لها حل معى ولكم منى جزيل الشكر