بتاريخ: 14 أبريل 201214 سنة comment_223214 بسم الله الرحمن الرحيمالاخوة الاعزاءانا عندي استفسار عن فحص رقم في الشاشة مع قيمة متغيرانا عندي جملة cursor ترجع لي كافة ارقام الاطباء من الجدول للمتغير Aوعندي في الشاشة جدول اقوم من خلاله بكتابة رقم الطبيباريد الان عند كتابة رقم الطبيب في الشاشة يقوم بفحص هل الرقم موجود في المتغير A ام لا ويطلع رسالةوجزاكم الله كل خير تقديم بلاغ
بتاريخ: 14 أبريل 201214 سنة comment_223218 بسم الله الرحمن الرحيمالاخوة الاعزاءانا عندي استفسار عن فحص رقم في الشاشة مع قيمة متغيرانا عندي جملة 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 تقديم بلاغ
بتاريخ: 15 أبريل 201214 سنة كاتب الموضوع comment_223224 بسم الله الرحمن الرحيممشكور اخي العزيز على تعاونك معيواوكيه انا كاتب الكود في نفس الترايجر الي انت قلت عليهلكن كيف اكتب الكود انه يتعامل مع العنصر المدخل في الشاشة هل اعرف له متغيرارجو منك اعطائي مثل صغير عن كيفية عمل ذلكوجزاك الله كل خير تقديم بلاغ
بتاريخ: 15 أبريل 201214 سنة comment_223225 select count(doctor_id)into virablefrom table namewhere dotcor_id=:doctor_idif virable>0 thenelseend if; تقديم بلاغ
بتاريخ: 15 أبريل 201214 سنة كاتب الموضوع comment_223228 بسم الله الرحمن الرحيميا اخ احمد والله اني محرج منكم لكن ما باليد حيلهفكرت اني اسيب الموضوع واخليه كما هو بدون معرفه التكرار لكن ما قدرتالكود الي رسلته لي ما اشتغل معي فيا ريت تسمع مني القصه كامله وتعدلي على الكودانا كاتب الجملة 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 تقديم بلاغ
بتاريخ: 15 أبريل 201214 سنة comment_223229 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 تم تعديل 15 أبريل 201214 سنة بواسطة Mahmoud Ahmed El-Sayed تقديم بلاغ
بتاريخ: 15 أبريل 201214 سنة كاتب الموضوع comment_223232 بسم الله الرحمن الرحيماخي العزيز محمود هو بالفعل هناك تكرار موجود داخل الجدول ولكن التكرار هذا مطلوببحيث ان المندوب رقم 1 يزور الطبيب رقم 1و2و3و4و5والمندوب رقم 2 يزور الطبيب رقم 4و5و6و7و8و9 فهم مشتركون في الطبيب رقم 4و5ولكن عند ادخال الاطباء للمندوب رقم واحد لا اريد ان ادخل الطبيب رقم 1 مرتين او اكثر ولهذا انا كتبت جملة الشرط في جملة السلكتملاحظة:انا الان البرنامج شغال معي ومافيه اي مشاكلولكن من باب الحيطه والحذر اريد عمل هذا الكود لمنع تكرار نفس الطبيب لنفس المندوبوشكرا تقديم بلاغ
بتاريخ: 15 أبريل 201214 سنة كاتب الموضوع comment_223241 هل يمكنني ان اكتب الشرط التالي if :mandob_do.doc_no%found then هو طبعا يطلع خطى هذا الكود ولكن هل من طريقه صحيحه تقوم بنفس العمل تقديم بلاغ
بتاريخ: 15 أبريل 201214 سنة comment_223245 السلام عليكماذا كانت بيانات الأطبائ مخزنة لديك في جدول فلماذا لا تعمل LOV تقوم بقراءة بيانات الإطباء بشكل مباشر؟؟الأصل ان تقوم بانشاء جدول خاص ببيانات الاطباء (Setup Table) وبعذ ذلك قم بعمل LOV لاظهار البيانات بأي شاشة لديك في النظام....موفق. تقديم بلاغ
بتاريخ: 15 أبريل 201214 سنة كاتب الموضوع comment_223273 بسم الله الرحمن الرحيمشكرا لك اخي العزيز المشرف احمد حسن ولكل من يساعدنيفي الحقيقة انا مسوي شاشة خاصة لاضافة اسماء الاطباء الجدد وبياناتهموفي الشاشة الاخرى شاشة المندوبين اقوم منها باضافة المندوبين وكذلك اقوم منها باضافة الاطباء الذي يتوجب على المندوب زيارتهم وكذلك الاصناف التي يعمل عليها المندوبوهي نفس الشاشة المرفقة في هذا الموضوع سابقاولدي شاشة ادخال التقارير اليومية لزيارات المندوب اقوم منها باختيار الاطباء الذين زارهم المندوبعند زيارة المندوب للطبيب رقم 1 مثلا اذهب لشاشة التقارير اليومية واختار الطبيب رقم 1 من اللوفز الضاهرهفي حالة ان الطبيب ظهر عندي في اللوفز اقوم باختيارهولكن في حالة ان الطبيب لم يكن موجود في اللوفز اقوم بالذهاب الى شاشة المندوبين واقوم باضافة الطبيب رقم واحد للمندوبولكن في حالة اني كنت ساهي او لم اكن مركز او اي اشي لاي سبب من الاسبابوقمت باختيار الطبيب رقم 1 من جدول الاطباء الى جدول المندوبين من اللوفز وهو في الاصل موجود مع المندوب فلا اريد ان يتكرر وينبهني ان الطبيب موجود مسبقاهذا هو الموضوعوجزاكم الله كل خير تقديم بلاغ
بتاريخ: 16 أبريل 201214 سنة comment_223306 السلام عليكممعنى كلامك انك تريد عدم ادخال سجل اخر يحوي نفس المندوب + نفس الطبيب ؟؟ تقديم بلاغ
بتاريخ: 16 أبريل 201214 سنة كاتب الموضوع comment_223309 بسم الله الرحمن الرحيممشكور اخي المشرف على متابعتك لموضوعيانا الان اريد ان اضيف اطباء لنفس المندوب رقم واحد مثلا وفي حالة كان الطبيب موجود مسبقا مع المندوب تظهر رسالة تقول الطبيب موجود مسبقاوشكرا تقديم بلاغ
بتاريخ: 16 أبريل 201214 سنة comment_223311 السلام عليكمجرب الكود التالي: 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; تقديم بلاغ
بتاريخ: 16 أبريل 201214 سنة كاتب الموضوع comment_223312 بسم الله الرحمن الرحيمكل الشكر لك اخي المشرفولكن الكود ما اشتغل معيلكن هذا الكود الي معي فيا حبذا لو تلقي عليه نظره وتشوف شو سبب ضهور الرسالة سواء كان الطبيب مكرر ام لا 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 وجزاك الله كل خير تم تعديل 16 أبريل 201214 سنة بواسطة الحكيمي تقديم بلاغ
بتاريخ: 16 أبريل 201214 سنة كاتب الموضوع comment_223340 بسم الله الرحمن الرحيمالاخوة الاعزاءالمشكلة صارت اقل من الاول حيث تم تعديل الكود الى التالي 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; وعند اضافة رقم مكرر تظهر الرسالة المطلوب ضهورها بالشكل المطلوبولكن عند اضافة رقم غير موجود مع المندوب تظهر لي رسالة الخطى المرفقة تقديم بلاغ
بتاريخ: 16 أبريل 201214 سنة comment_223341 بسم الله الرحمن الرحيمالاخوة الاعزاءالمشكلة صارت اقل من الاول حيث تم تعديل الكود الى التالي 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; تقديم بلاغ
بتاريخ: 17 أبريل 201214 سنة كاتب الموضوع comment_223353 بسم الله الرحمن الرحيمكل الشكر لك اخي العزيز محمود ليس على هذه الاجابة التي انهت كل التعب السابق في البحثولكن الشكر على تعاونك معي في هذا الموضوع وفي كل المواضيع السابقة ايضاالكود المعدل شغال تمامولكن عندي استفسارات ثلاثه هي الاتيالاستفسار الاول ليه شلت doc_no من الكود وحطيت بدالهم count(1) وكيف عرف الكود اني اريد منه ان يحدد رقم الطبيب طالما اني مش كاتبهم في الكودالاستفسار الثاني هو شو الفرق بين رقم واحد الي انت كاتبه count(1) وبين النجمه لو انكتبت بدل الواحدالاستفاسر الثالث والاخير هو شو يعني if v>0 then لان ارقام الطبيب اكيد اكبر من الصفر.وفي الاخير جزاك الله عني كل خير تقديم بلاغ
بتاريخ: 17 أبريل 201214 سنة comment_223372 بسم الله الرحمن الرحيمكل الشكر لك اخي العزيز محمود ليس على هذه الاجابة التي انهت كل التعب السابق في البحثولكن الشكر على تعاونك معي في هذا الموضوع وفي كل المواضيع السابقة ايضاالكود المعدل شغال تمامولكن عندي استفسارات ثلاثه هي الاتيالاستفسار الاول ليه شلت 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 http://mahmoudoracle.blogspot.com/2012/04/ugly-count.html Query #3 V > 0 , the variable v hold the counter of records in table related to doctor not doctor number Thanks تقديم بلاغ
بتاريخ: 18 أبريل 201214 سنة كاتب الموضوع comment_223400 بسم الله الرحمن الرحيمكل الشكر لك اخي العزيزوان شاء الله نستفيد من كلامك في الحاجات الجايةوجزاك الله كل خير تقديم بلاغ
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.