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

بتاريخ:

بسم الله الرحمن الرحيم

الاخوة الاعزاء

انا عندي استفسار عن فحص رقم في الشاشة مع قيمة متغير

انا عندي جملة cursor ترجع لي كافة ارقام الاطباء من الجدول للمتغير A
وعندي في الشاشة جدول اقوم من خلاله بكتابة رقم الطبيب

اريد الان عند كتابة رقم الطبيب في الشاشة يقوم بفحص هل الرقم موجود في المتغير A ام لا ويطلع رسالة

وجزاكم الله كل خير

بتاريخ:

بسم الله الرحمن الرحيم

الاخوة الاعزاء

انا عندي استفسار عن فحص رقم في الشاشة مع قيمة متغير

انا عندي جملة cursor ترجع لي كافة ارقام الاطباء من الجدول للمتغير A
وعندي في الشاشة جدول اقوم من خلاله بكتابة رقم الطبيب

اريد الان عند كتابة رقم الطبيب في الشاشة يقوم بفحص هل الرقم موجود في المتغير A ام لا ويطلع رسالة

وجزاكم الله كل خير

Write your code in WHEN-VALIDATE-ITEM at doctor entry item


and pass entered value as parameter to cursor and complete your code regarding your requirements

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

بسم الله الرحمن الرحيم

مشكور اخي العزيز على تعاونك معي

واوكيه انا كاتب الكود في نفس الترايجر الي انت قلت عليه

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

وجزاك الله كل خير

بتاريخ:

select count(doctor_id)
into virable
from table name
where dotcor_id=:doctor_id
if virable>0 then

else

end if;

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

بسم الله الرحمن الرحيم

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

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

cursor A is
select doc_no from mandob_do
where mandob_do.man_no = :mandob_up.man_no;



وبعدين قمت بتعريف المتغيرات
الاول AA من نفس نوع البياتات في الجدول المراد ارجاعة للمتغير A
والمتغير الثاني bb من نوع نمبر لكي تضهر لي الرسالة (Alert)

AA mandob_do.doc_no%type;
bb number;



بعد ذلك قلت للكود ان يفتح المتغير A ويسحب من الجدول كل ارقام الاطباء في الجدول
وياخذ كل الارقام ويحطها في المتغير AA

begin open a;
fetch A into AA;



انا الان هنا بدات مشكلتي وعدم فهمي
كيف استطيع ان اعطي الكود الشي الذي اريد
وهو ان ياخذ القيمه التي سوف اكتبها في الشاشة ويقارنها في القيم الموجودة في المتغير AA اذا كانت موجوده يطلع الرسالة
فكرت ان اكتب كود يكون if i in AA then show_alert
ولكن كيف لم ادري كيفية الصيغة

ارجو اني استطت ان اوصل الفكره في عدم فهمي

وجزاكم الله كل خير على تحملكم لي وتعاونكم معي

وارفقت لكم الشاشة الخاصة بالموضوع

m1.rar

بتاريخ:

Dear


Could you tell us the primary key and unique keys on table mandob_do


because the code which Ahmedbb posted should run correctly and I think that the problem is the redundant of old data in your table

تم تعديل بواسطة Mahmoud Ahmed El-Sayed

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

بسم الله الرحمن الرحيم

اخي العزيز محمود هو بالفعل هناك تكرار موجود داخل الجدول ولكن التكرار هذا مطلوب
بحيث ان المندوب رقم 1 يزور الطبيب رقم 1و2و3و4و5
والمندوب رقم 2 يزور الطبيب رقم 4و5و6و7و8و9 فهم مشتركون في الطبيب رقم 4و5
ولكن عند ادخال الاطباء للمندوب رقم واحد لا اريد ان ادخل الطبيب رقم 1 مرتين او اكثر ولهذا انا كتبت جملة الشرط في جملة السلكت

ملاحظة:
انا الان البرنامج شغال معي ومافيه اي مشاكل
ولكن من باب الحيطه والحذر اريد عمل هذا الكود لمنع تكرار نفس الطبيب لنفس المندوب
وشكرا

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

هل يمكنني ان اكتب الشرط التالي

if :mandob_do.doc_no%found then


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

بتاريخ:

السلام عليكم
اذا كانت بيانات الأطبائ مخزنة لديك في جدول فلماذا لا تعمل LOV تقوم بقراءة بيانات الإطباء بشكل مباشر؟؟
الأصل ان تقوم بانشاء جدول خاص ببيانات الاطباء (Setup Table) وبعذ ذلك قم بعمل LOV لاظهار البيانات بأي شاشة لديك في النظام....

موفق.

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

بسم الله الرحمن الرحيم

شكرا لك اخي العزيز المشرف احمد حسن ولكل من يساعدني

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

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

هذا هو الموضوع
وجزاكم الله كل خير

بتاريخ:

السلام عليكم
معنى كلامك انك تريد عدم ادخال سجل اخر يحوي نفس المندوب + نفس الطبيب ؟؟

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

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

انا الان اريد ان اضيف اطباء لنفس المندوب رقم واحد مثلا وفي حالة كان الطبيب موجود مسبقا مع المندوب تظهر رسالة تقول الطبيب موجود مسبقا

وشكرا

بتاريخ:

السلام عليكم
جرب الكود التالي:


Select Count(*)
 Into vn_count
 From your_table
Where Delegate_Id = :Blk_1.Delegate_Id
  And Doctor_Id   = :Blk_1.Doctor_Id;
  
 If vn_count >= 1 Then
  Message('Your Message');
  Raise Form_Trigger_Failure;
 End If;

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

بسم الله الرحمن الرحيم

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

declare
cursor A is
select doc_no from mandob_do
where mandob_do.man_no = :mandob_up.man_no;
AA mandob_do.doc_no%type;
bb number;
begin open a;
fetch A into AA;
if (A%found ) then
bb:=show_alert('REFINRY');
raise form_trigger_failure;
else
null;

end if;
end;



مع اني اشك ان الخلل موجود فس السطر if (A%found ) then
فهل هناك شكل اخر للكود ان يكتب بالشكل التالي

if :mandob_do.doc_no %found then


او بالشكل التالي

if :mandob_do.doc_no in A then


وجزاك الله كل خير

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

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

بسم الله الرحمن الرحيم

الاخوة الاعزاء

المشكلة صارت اقل من الاول حيث تم تعديل الكود الى التالي

declare
v mandob_do.doc_no%type;
d number;
begin
select doc_no into v from mandob_do
where mandob_do.man_no=:mandob_up.man_no
and doc_no=:mandob_do.doc_no;
if v>0 then
d:=show_alert('REFINRY');
:mandob_do.doc_no:='';
:mandob_do.text_item68:='';
:mandob_do.man_no:='';
else
null;
end if;
end;


وعند اضافة رقم مكرر تظهر الرسالة المطلوب ضهورها بالشكل المطلوب
ولكن عند اضافة رقم غير موجود مع المندوب تظهر لي رسالة الخطى المرفقة

post-15632-0-47191600-1334595453_thumb.jpg

بتاريخ:

بسم الله الرحمن الرحيم

الاخوة الاعزاء

المشكلة صارت اقل من الاول حيث تم تعديل الكود الى التالي
declare
v mandob_do.doc_no%type;
d number;
begin
select doc_no into v from mandob_do
where mandob_do.man_no=:mandob_up.man_no
and doc_no=:mandob_do.doc_no;
if v>0 then
d:=show_alert('REFINRY');
:mandob_do.doc_no:='';
:mandob_do.text_item68:='';
:mandob_do.man_no:='';
else
null;
end if;
end;


وعند اضافة رقم مكرر تظهر الرسالة المطلوب ضهورها بالشكل المطلوب
ولكن عند اضافة رقم غير موجود مع المندوب تظهر لي رسالة الخطى المرفقة



change your code to below code



declare
v number;
d number;
begin
select count(1) into v from mandob_do
where mandob_do.man_no=:mandob_up.man_no
and doc_no=:mandob_do.doc_no;
if v>0 then
d:=show_alert('REFINRY');
:mandob_do.doc_no:='';
:mandob_do.text_item68:='';
:mandob_do.man_no:='';
else
null;
end if;
end;

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

بسم الله الرحمن الرحيم

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

الكود المعدل شغال تمام
ولكن عندي استفسارات ثلاثه هي الاتي
الاستفسار الاول ليه شلت doc_no من الكود وحطيت بدالهم count(1) وكيف عرف الكود اني اريد منه ان يحدد رقم الطبيب طالما اني مش كاتبهم في الكود
الاستفسار الثاني هو شو الفرق بين رقم واحد الي انت كاتبه count(1) وبين النجمه لو انكتبت بدل الواحد
الاستفاسر الثالث والاخير هو شو يعني if v>0 then لان ارقام الطبيب اكيد اكبر من الصفر.

وفي الاخير جزاك الله عني كل خير

بتاريخ:

بسم الله الرحمن الرحيم

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

الكود المعدل شغال تمام
ولكن عندي استفسارات ثلاثه هي الاتي
الاستفسار الاول ليه شلت doc_no من الكود وحطيت بدالهم count(1) وكيف عرف الكود اني اريد منه ان يحدد رقم الطبيب طالما اني مش كاتبهم في الكود
الاستفسار الثاني هو شو الفرق بين رقم واحد الي انت كاتبه count(1) وبين النجمه لو انكتبت بدل الواحد
الاستفاسر الثالث والاخير هو شو يعني if v>0 then لان ارقام الطبيب اكيد اكبر من الصفر.

وفي الاخير جزاك الله عني كل خير

Answers to your queries


Query #1


I don't concern with doc_no is select section because I used it in where clause and I want select count of record exists for this doctor , so I select count(1) in select section



Query #2


Read this post will guide you




Query #3


V > 0 , the variable v hold the counter of records in table related to doctor not doctor number



Thanks

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

بسم الله الرحمن الرحيم

كل الشكر لك اخي العزيز

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

وجزاك الله كل خير

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

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

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

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

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

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.