بتاريخ: 18 مايو 200619 سنة comment_69666 بسم الله الرحمن الرحيم إخواني الكرام مشكلتي لدي جدول ديتيلز وبه مجموعة سجلات وعند حذف أحد السجلات أو أكثر فإن التسلسل التلقائي يصبح ناقصا الرقم الذي حذف لو كان معمولا بالسكونس او بجملت سلكت ماكسفقد جربت الطريقتين لكن لم تنفع اريد منكم بارك اله فيكم من يدلني على دالة تحفظ التسلسل التلقائي كما هو حتى لوحذفت محموعة سجلات يبقى التسلسل صحيحا حتى لوتغير ترتيب السجلاتعلى حقل الإسم مثلا يبقى حقل الترقيم متناسقا بدون لخبطة علما بأنني بحثت في كافة صفحات المنتدى ولم أجد حلاولكم تحياتي تقديم بلاغ
بتاريخ: 20 مايو 200619 سنة comment_69767 بسم الله الرحمن الرحيمالسلام عليكم ورحمة الله وبركاتهانا لدي نفس المشكلة، ولكن وصلت الى حل لعله يرضيك ويرضي الآخرين.هو عند حذف أحد السجلات تقوم تنفيذ TRigger صممت لعمل ترقيم من اول سجل الى آخرهوالـ trigger هو:declare x number := 0; z number := 0 ; cursor c1 is select id, rowid from process order by id; a c1%rowtype;begin open c1; x := 1; loop fetch c1 into a ; exit when c1%notfound; end loop; update process set id = x where process.rowid = a.rowid; x := x + 1; end loop; close c1;end;الرجاء من لديه اي ملاحظة أو فكرة عن هذا الموضوع ان يطرحها في هذا المنتدىجزاكم الله خيراًوالسلام عليكم ورحمة الله وبركاته تقديم بلاغ
بتاريخ: 20 مايو 200619 سنة comment_69772 اخي الكريمتوجد طريقة لتعويض الرقم التسلسلي بحيث يقوم باعداة ترتيب الرقم التسللس عند الحذف استخدم تريجر post-deleteاضف هذا الكود cursor c is select ur_id_detail from ur_detail_table where id_masetr=:ur_id_master_in_form group by ur_id_detail; t number:=0; begin for i in c loop t:=t+1; update ur_deial_table set ur_id_detail=t where ur_id_detail=i.ur_id_detail; commit; end loop; end; حيث ان ur_id_detail هو رقم التسلسلي القديم الموجود في جدول الديتيل id_masetr هو رقم الرئيسي الموجود في جدول الديتيل ur_detail_table هو اسم الجدول الفرعي تقديم بلاغ
بتاريخ: 20 مايو 200619 سنة كاتب الموضوع comment_69790 الأخ الكريم أسامة بسيوني معليش اخي ممكن توضح الشرح في الأخير هل يعني كلامك انشاء أكثر من جدول لعمل التسلسلخليني اعطيك اسم الجدول الي عندي عشان اشتغل عليه اسم الجدول (frdd ) واسم الحقل الذي يحتوي على التسلسل التلقائي( msl ) هل كلامك يعني اضافة جدول ثاني أو حقل ثاني وأيضا هل يوضع الكود على مستوى البلوك أم مع زر الحذف أرجو التوضيحأخي الكريم ولك وللأخ احمد تحياتي تقديم بلاغ
بتاريخ: 20 مايو 200619 سنة كاتب الموضوع comment_69794 معليش اخواني اوضح لكم جداول حتى يتم التطبيق عليها لأني طبقتي فكرتيكما ولم تنجح الجدول الماستر عندي اسمه frdm وحقل الربط فيه مع جدول الديتيل هو id1الجدول الديتيل اسمه frdd وحقل الربط ايضا هو id2اما حقل التسلسل في جدول الديتيل فهو msl وهذا وضعت فيه امر سلكت عند الإضافة لعمل التسلسل بالأمر المعروفselect nvl(max(msl).0) +1 into :frdd.msl from frdd where id2=:frdmid1; علما بان التسلسل شغال صح لكن اريد إذا حذف سجل من الوسط مثلا أو أكثر أو تغير ترتيب السجلات في الجدول يبقى التسلسلمحافظا على انسجامه مثلا من 1 وحتى عشرة بدون نقص ارجو ان يكون فهم الطلوب تقديم بلاغ
بتاريخ: 21 مايو 200619 سنة comment_69859 اخي الكريم الموضوع لايحتاج الى جدول كل ماهنالك هو تحديث لأرقام التسلسل عند الحذف هذا هو المقصود cursor c is select msl from frdd where id2=:frdmid1; t number:=0; begin for i in c loop t:=t+1; update frdd set msl=t where id2=:frdmid1; commit; end loop; end; تقديم بلاغ
بتاريخ: 21 مايو 200619 سنة كاتب الموضوع comment_69866 الأخ أسامة بسوني معليش استحملني شويهالأمر جيد ولكن أعتقد أنه ينقصه في البداية كلمة declare وعندما نفذت الأمر تطلع لي رسالة هل ترغب في حفظ التغييرات وعندما أضع نعم يعود مرة اخرى فتخرج نفس الرسالة وعندما اضغط لايخرج بدون تغييرات تقديم بلاغ
بتاريخ: 21 مايو 200619 سنة comment_69882 شكر خاص للاخ الفاضل اسامه والى الامام دائما وارجو منك ان ترشدنى لطريقه احفظ بها الافلام فى الجداول واقرأها من الجداول لان ذلك سوف يجعلهااكثر قوة وحمايه[email protected] تقديم بلاغ
بتاريخ: 22 مايو 200619 سنة comment_69939 اخي الكريم vamdاظن انك عند الحذف لا تخزن لذلك يجب تخزين الحذف قبل القيام بعملية ال update declare cursor c is select msl from frdd where id2=:frdmid1; t number:=0; begin commit_form; for i in c loop t:=t+1; update frdd set msl=t where id2=:frdmid1; commit_form; end loop; end; تقديم بلاغ
بتاريخ: 22 مايو 200619 سنة كاتب الموضوع comment_69967 الأخ أسامة لم ينجح الأمر مرة يعطي نفس الرقم لكل السجلات ومره يكرر التسلسل لأكثر من سجليمكن لم تفهم سؤالي جيدانا اريد إذا حذف سجل تكون الأرقام متوالية وغير ناقصة علما أن ترتيب الجدول عندي ليس بهذا الحقلإنما بحقل آخرولك تحياتي تقديم بلاغ
بتاريخ: 23 مايو 200619 سنة comment_70000 الاخ الكريمانا فاهم سؤالك ولكن طريقة عرضك للسؤال فيها خلل يفضل ان ترسل الشاشة التي تريد حذف التسلسل فيها من ارقام متتالية فالعملية هي اعادة ترتيب بعد الحذف وانت في كل مرة تعطي خيارات متعددة لذلك ارجو ان تكون واضح في سؤالك ولقطع الشك باليقين ارسل الفورم على ايميليوحياك الله تقديم بلاغ
بتاريخ: 23 مايو 200619 سنة كاتب الموضوع comment_70052 اسامة حبيبي لقد ارسلت اليك الرسالة التي طلبت فهل وصلت تقديم بلاغ
بتاريخ: 23 مايو 200619 سنة comment_70070 الاخ الكريمتم تعديل الشاشة وارسالها على الايميلوبعض الملاحظات انه عند الحذف يقوم بالترقيم التلقائي للتسلسل وذلك بوضع counter يمشي على الاسطروقمت بعدم تفعيل MSL لأنه ترقيم تسلسلي ولا يجد ان يتدخل اليوزر بادخال الرقم بل تدع البرنامج يرقم وتفاديا للخطأوبالتوفيق تقديم بلاغ
بتاريخ: 24 مايو 200619 سنة كاتب الموضوع comment_70081 أخوي اسامة ماقصرت شغل مئه مئه الله يعطيك العافية بس فيه ملاحظة يمكن ما انتبهت لهاانا حاط ترتيب سجلات الجدول بالحقل إجمالي نقاط ملف الترقية ويرتب من الأكبر إلى الأصغريعني لما اضيف سجل جديد ويكون مثلا عاشر سجل وإجمالي نقاطه مثلا 100 بينما السجل الأول إجمالي نقاطه 50 فإن التسلسل التلقائييصبح ملخبط ممكن اول سجل يصبح رقمه عشرة انا ابغى اللله يعطيك العافية التسلسل زي ما سويته بس بشرط يكون متسلسل ومحافظعلى ترتيب الجدول حسب ملف النقاط يمكن إضافة بسيطة منك الله يعطيك الصحة والعافية وتسلم لي يا أسامة تقديم بلاغ
بتاريخ: 24 مايو 200619 سنة comment_70171 مشكورآ اخى اسامه بس انا حولت اطبق الحل بس ادانى هذا الخطأfrm-40737[email protected]ايهاب وجدى تم تعديل 24 مايو 200619 سنة بواسطة hobaa تقديم بلاغ
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.