إنتقال للمحتوى

  • تسجيل الدخول عبر الفيس بوك تسجيل الدخول عبر تويتر Log In with LinkedIn Log In with Google      تسجيل دخول    
  • إنشاء حساب

صورة
- - - - -

فين المشكله في هذا الكود


6 رد (ردود) على هذا الموضوع

#1 الحكيمي

الحكيمي

    عضو مميز

  • الأعضــاء
  • 595 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 13 March 2019 - 12:09 PM

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

 

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

انا عندي في الشاشه المرفقه شاشة اعطاء الهدف البيعي للمندوب لكل ربع من السنه (ربع اول وثاني وثالث ورابع)

 

انا كنت شغال فيه بنظام ادخال التارجت وحفظ فقط وكان شغال تمام

 

الان قمت بتعديل للكود بحيث يتأكد ان المندوب المحدد والربع المحدد والعام المحدد لم يحدد له تارجت من قبل

لغرض عدم التكرار للهدف

كتب الكود التالي


declare
    y varchar(100);
    z number(8);
    begin
select TARGET_NAME,YEAR_NO into y,z from TARGET_UP where target_up.man_no = :target_up.man_no;

if :TARGET_UP.TARGET_NAME  in (y) and :TARGET_UP.YEAR_NO in (z) then
       messge ('تم عمل التارجت للمندوب المحدد ');
        message ('تم عمل تارجت للمندوب المحد');
else


if
        :TARGET_UP.man_NO is null  
        or :TARGET_UP.target_name is null
        or :TARGET_UP.year_no is null  
        then
  message('يجب ادخال جميع الحقول');
    message('يجب ادخال جميع الحقول');
    
    else
    

go_block('target_do');


for i in (SELECT MAN_DO2.ITEMS_NO FROM MAN_DO2
WHERE
man_do2.man_no = :target_up.man_no
and MAN_DO2.status=1)
loop
    next_record;
:target_do.items_no :=i.items_no;

end loop;


    end if;


end if;
    end;

ولكن ضهرت لي مشكله

الكود عند التفعيل ما يطلع اي خطى

 

ولكن

عندما اعمل تكرار لهدف تظهر الرساله بشكل جيد

وعندما اعمل تارجت جديد لمندوب قديم لعام اخر او ربع اخر يعمل بشكل جيد( ليس هناك تكرار)

 

المشكله الان هي التالي

اذا قمت بعمل تارجت لمندوب جديد رقمه ليس مسجل في جدول التارجت (لم يتم عمل تارجت له من قبل )

لا يعمل وتضهر لي رساله الخطى الموجوده في الصوره المرفقه الثانيه

 

فماهو السبب

 

ملفات مرفقة

  • ملف مرفق  terget.jpg   42.25كيلو   0 عدد مرات التحميل
  • ملف مرفق  error.jpg   7.27كيلو   1 عدد مرات التحميل

قال هتلر في كتابه (حياتي) لقد كان في وسعي ان اقضي على كل يهود العالم لكني تركت بعضا منهم لتعرفو ....لماذا كنت ابيدهم

#2 eslam elbyaly

eslam elbyaly

    عضو مميز

  • الأعضــاء
  • 4,078 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 13 March 2019 - 02:47 PM

انت ليه بتكتب كود والفورمز مديلك الوظيفة؟
الجزء بتاع يجب ادخال الحقل شيله واعمل الحقول الزامية.
اعمل composite unique index فى الداتابيز عانا الاعمدة الى مشعاوزها تتكرر.

#3 الحكيمي

الحكيمي

    عضو مميز

  • الأعضــاء
  • 595 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 13 March 2019 - 05:08 PM

بالنسبه للحقول الالزاميه ممكن عن طريق الفورم

 

لكن بالنسبه للتكرار مينفعش اسويه من الفورم لانه انا التكرار عندي مشروط

 

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

 

يعني رقم المندوب ممكن انه يتكرر لانه في السنه معه اربعه اهداف ( هدف الربع الاول وهدف الربع الثاني والثالث والرابع) وكل هذه الارباع تتكرر كل سنه ولكل والمندوبين

 

واسم الهدف ممكن انه يتكرر لانه كل المندوبين معاهم اهداف يعني اسم الهدف حيتكرر لكل المندوبين ( الربع الاول للمندوب1 والربع الاول للمندوب2 والربع الاول للمندوب3)

 

لكن انا مش عاوز التكرار في الحقول الثلاثه مره واحده يعني لو عملت المندوب رقم 1 والربع الاول والسنه 2019 وحفظت السجل

 

اجيب بعد شويه وعملت نفس السجل السابق للمندوب رقم 1 والربع الاول والسنه 2019 هنا  اريد تطلع لي الرساله الهدف مكرر

 

وشكرا


قال هتلر في كتابه (حياتي) لقد كان في وسعي ان اقضي على كل يهود العالم لكني تركت بعضا منهم لتعرفو ....لماذا كنت ابيدهم

#4 eslam elbyaly

eslam elbyaly

    عضو مميز

  • الأعضــاء
  • 4,078 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 13 March 2019 - 05:38 PM

ضيف فى الـ composite unique index الاعمدة الى محتاج انها متتكررش.

تقدر تضيف السنة ورقم المندوب مع الـ 3 اعمدة.


تم التعديل بواسطة eslam elbyaly, 13 March 2019 - 05:42 PM.


#5 الحكيمي

الحكيمي

    عضو مميز

  • الأعضــاء
  • 595 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 13 March 2019 - 06:43 PM

بصراحه مافهمت هذه الجزئية

 

كيف اسويها


قال هتلر في كتابه (حياتي) لقد كان في وسعي ان اقضي على كل يهود العالم لكني تركت بعضا منهم لتعرفو ....لماذا كنت ابيدهم

#6 eslam elbyaly

eslam elbyaly

    عضو مميز

  • الأعضــاء
  • 4,078 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 13 March 2019 - 07:03 PM

unique constraint  فى الداتابيز.



#7 rabie123

rabie123

    عضو مميز

  • الأعضــاء
  • 1,229 مشاركة
  • الاسم الأول:Rabie
  • اسم العائلة:Radwan
  • البـلـد: Country Flag
  • المنصب الحالي:ORACLE DEVELOPER

تاريخ المشاركة 13 March 2019 - 11:09 PM

اعمل select count() into     قبل  عمل ال select  اللى بتعمل الخطأ  وعن طريق قيمة اال count()     تعمل ال select  ام لا