الانتقال إلى المحتوى
View in the app

A better way to browse. Learn more.

مجموعة مستخدمي أوراكل العربية

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

مساعدة في كود

Featured Replies

بتاريخ:

السلام عليكم ورحمة الله وبركاته

أخواني الاعزاء ....

عندي مشكلة :.

يوجد عندي شاشة خاصة بفواتير بيع خاص ببيع الادوية في صيدلية وهذه الشاشة عبارة عن بلوكين ماستر ودتيل

في بلوك الديتل يوجد بيانات الخاصة برقم المادة واسمها وتاريخ الصلاحية و الكمية المراد بيعها .

ويوجد على الحقل الخاص بالكمية ترجير يعمل على مقارنة الكمية الموجودة على الشاشة مع مجموع الكميات الموجودة في جدول اسمه Item_Det

لانه يوجد في هذا الجدول اكثر من ريكورد للمادة الواحدة وهذا هو حقول الجدول

(ITEM_NO,SER_NO,EXPIRE_DATE,QTY,COST_PRICE,SALE_PRICE)

يعني ممكن يكون للدواء اكثر من كمية واكثر من تاريخ واكثر من تكلفة وممكن يتكرر نفس التاريخ ونفس التكلفة .

سؤالي على فرض اني عندي هذه البيانات في جدول ال Item_Det

ITEM_NO SER_NO EXPIRE_DATE QTY COST_PRICE SALE_PRICE
8 5 6 01/01/2010 1 111
8 5 5 01/01/2010 2 111
9 6.5 9 08 /08/2055 3 111

وعلى شاشة البيع اخترت الدواء رقم 111 بتاريخ 01/01/2010 والكمية 9 علب عندما يشبك الترجر

يجد مجموع هذا الدواء لنفس التاريخ 11 علبة فيكمل دون اعترراض

المشكلة ليس هنا .

عند عمل Update بالكمية يجب ان ينقص من اول ريكورد 6 حبات

ومن ثاني ريكورد الباقي يعني 3 حبات

السؤال هنا كيف نكتب هذا الكود الذي يعمل على الخصم .

بتاريخ:
  • كاتب الموضوع

أخي العزيز الموضوع ليس بحاجة للشكل الفورم .

الموضوع ببساطة عندي شاشة خاصة بفواتير الادوية فيها رقم واسم

وتكلفة وتاريخ الصلاحية والكمية لكل دواء

في حالة اخترت احدى انواع الادوية واخترت الكمية مثلا 11 علبة وتاريخ الصلاحية 01/01/2020 مثلا

وعندي في جدول الItem_Det اكثر من سجل يخص هذا الدواء على سبيل المثال

عندي في سجل 9 علب دواء تاريخ الصلاحية 01/01/2020

عندي في سجل 5 علب دواء تاريخ الصلاحية 01/01/2020

عندي في سجل 9 علب دواء تاريخ الصلاحية 05/05/2010

المفروض عندما اعملUpdate لـــــجدول الــــــــــــــــــ Item_Det

يخصم من اول سجل 9 علب ومن ثاني سجل حبتين .

كيف اكتب جملة الــــــUpdate

أرجو ان اكون وضحت الصورة .

بتاريخ:

السلام عليكم...
طيب ليش كمية نفس الدواء مقسّمة على عدة سجلات , بمعنى آخر شو الفرق بين سجلات نفس الدواء؟؟

بتاريخ:
  • كاتب الموضوع

أخي العزيز ...

هذا الجدول تصب فيه البيانات من اكثر من جدول وتكرر فيه رقم الدواء وتاريخ الصلاحية والتكلفة وهذا لا يهمني

ان الذي يهمني كيف اخصم الكمية من سجلين تشابه فيهما رقم وتاريخ الصلاحية والتكلفة يعني اخصم الكمية

من السجل الاول واذا لم تكفي الكمية اخصم من السجل الثاني واذ لم تكفي من السجل الثالث ....الخ

سؤالي واضح أخي العزيز .

بتاريخ:

السلام عليكم...
أكيد أنا ما عم اسألك لأني كتير سعيد بالأسئلة...أنا هدفي المساعدة...و بعدين ما في شي اسمو ما بهمني لأنو كل شي مرتبط ببعضو

تم تعديل بواسطة TROYMAN

بتاريخ:
  • كاتب الموضوع

أخي العزيز شكرا على الاهتمام

عندي هذه البيانات كيف اعمل الـــــــــــــــــــــــUpdate

بتاريخ:

ولا يهمك غداً إن شاء الله بحط الحل

بتاريخ:
  • كاتب الموضوع

تسلم أخي العزيز....

وانا بأنتظار الحل

بتاريخ:

السلام عليكم...
كنت عم حاول حلّها على العودية بس واجهتني بعض المشاكل لذلك حللتها عن طريق الحلقات التكرارية..و إن شاء الله بدي حاول حلها عودياً
تفضل الحل:

ccreate or replace procedure pro_M (PItemNo number,PQTY number)
is
rec Item_Det%rowtype;
Rem number:=0;
Psum number:=0;
cursor cur is select * from Item_Det where Item_No=PItemNo and QTY<>0 order by QTY desc;
begin select sum(QTY) into Psum from Item_Det where Item_No=PItemNo;
if Psum<PQTY then
dbms_output.put_line('The intended QTY is greater than available');
return;
end if;
open cur;
fetch cur into rec; Rem:=PQTY-rec.QTY;
if Rem>0 then
while Rem>0 loop
update Item_Det set QTY=0 where Item_No=PItemNo and SER_NO =rec.SER_NO ;
/*Or Delete from Item_Det where Item_No=PItemNo and SER_NO =rec.SER_NO;*/
fetch cur into rec; Rem:=Rem-rec.QTY;
end loop;
close cur;
end if;
if Rem=0 then
update Item_Det set QTY=0 where Item_No=PItemNo and SER_NO =rec.SER_NO ;
/*Or Delete from Item_Det where Item_No=PItemNo and SER_NO =rec.SER_NO;*/
return;
elsif Rem<0 then
update Item_Det set QTY=abs(Rem) where Item_No=PItemNo and SER_NO =rec.SER_NO ;
return;
end if;
end;
/



You can call the procedure by the Trigger body :


create or replace trigger tri_ItemDet
before update of QTY on Item_Det
for each row
call pro_m(:old.Item_No,:new.QTY)

تم تعديل بواسطة TROYMAN

بتاريخ:
  • كاتب الموضوع

لا اعرف ماذا اقول لك أخي TROYMAN

الله يبارك فيك وفي واهلك الطيبين

بتاريخ:

اريد عمل كود لحزف سجل من الشاشة وقاعدة البيانات

بتاريخ:

لا داعي للشكر أخي miash80...الفضل لله عز و جل وحده



اريد عمل كود لحزف سجل من الشاشة وقاعدة البيانات


هذا قصدك؟

delete from TableName (Here put a Specific Condition)

تم تعديل بواسطة TROYMAN

انضم إلى المناقشة

يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.

زائر
أضف رد على هذا الموضوع...

برجاء الإنتباه

بإستخدامك للموقع فأنت تتعهد بالموافقة على هذه البنود: سياسة الخصوصية

Account

Navigation

البحث

إعداد إشعارات المتصفح الفورية

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.