الانتقال إلى المحتوى
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

بتاريخ:

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

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

لو فرضنا انه عملنا البرنامج ان يسمح بتكرار نفس الصنف في نفس الفاتوره اريده ان في يفحص مجموع الكميتين لنفس الصنف بحيث لاتزيد تلك الكميتنين عن مجموع الكميه للصنف في المخزن
ارجو ان يكون سؤالي واضح وهل سوف يكون ذلك في حالة بعد الادخال او قبل الادخال او عند ادخال الصنف

وشكرا لكم

بتاريخ:
لو فرضنا انه عملنا البرنامج ان يسمح بتكرار


عليك الذهاب على التيكست ايتم في الشاشه التي تريد وضع فيها كمية البيع
وتعمل عليها تركير 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;



وان شاء الله تستفاد
تحياتي لك

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

شكر لك اخي الكريم على الرد ولكن اعتقد ان هذا الحل لن ينفع
الان على سبيل المثال انا اريد عندما يدخل المستخدم نفس الصنف بنفس الرقم مرتين مثلا دخل مره 3 حبات ومره 5 حبات من نفس الصنف الذي يحمل نفس الرقم اريد عند ذلك ان يقوم البرنامج بالبحث في البلوك حق الفاتوره فيقوم بجمع كمية اي صنف متشابه يعني يحمل نفس الرقم ويقارن مجموع تلك الكميه بالكميه الفعليه لصنف في المخزن

ارجو ان تكون وضحت الفكره

وشكرا لكم

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

وينكم يا مبرمجين ساعدوني الله يجزاكم خير

بتاريخ:

افرض ان تواريخك هي xd و yd
وتريد ان تضع الفرق في dd
يكون على النحو التالي
:Dd:=:yd-xd;

بتاريخ:

اسفة نزل في المكان الخطأ

بتاريخ:

نفرض انك تحتفظ بالبيانات في جدول
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;


بذلك تحصل على الكمية القديمة زائدا الجديدة
اذا ارسلت لى ملفاتك استطيع المساعدة بشكل افضل

بتاريخ:

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

loop

your statment here
exit when :system.last_record;
end loop;

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

اولا شكرا لكم اخواني جميعا الحل الصحيح نمن وجهة نظري هو عمل تريجر 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

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

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

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

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

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

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.