nn_oracle بتاريخ: 7 مايو 2004 تقديم بلاغ مشاركة بتاريخ: 7 مايو 2004 السلام عليكم ورحمة الله وبركاتهعندي form فيه block عبارة عن tabular فيه item هوsereial (تسلسلي) اريد ان اعبئه تلقائيا بحيث انه عندما اكون على اول recored يعطي قيمة 1ثم علي ثاني recored تظهر قيمة 2علي اي trigger اكتب الكودوشكرا اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
عبدالله ندا بتاريخ: 7 مايو 2004 تقديم بلاغ مشاركة بتاريخ: 7 مايو 2004 هلا اخي تستطيع اداء ما تريد عن طريقين اولا انشئ متغير عام علي زناد when_new_form_instans global.seial := 1 ; الطريتين اولا علي تريجير when_new_record_instance :seial := :global.seial; :global.seial := :global.serial + 1 ; او علي تريجر post_change علي العمود التالي ل serial و يكون عمود المسلسل ديسبلاي ايتم if get_record_property ('emp',statuse) = 'NEW' then :seial := :global.seial; :global.seial := :global.serial + 1 ; end if; الطريقة الثانيه هي الافضل الكود مش مظبوط اعتقد بس دي فكرته يعني مع تمنياتي بالتوفيق اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
mahmoud20107 بتاريخ: 7 مايو 2004 تقديم بلاغ مشاركة بتاريخ: 7 مايو 2004 اخي nn_oracleالف شكر لمشرفنا وفكرة حلوةطريقة احلى استخدم طريقة الcount وضع الكود على مستوى الداتا بلوكبمستويين من التريجرات وهما pre_insert ويفيدك هذا التريجر في حالة العمل الجماعي لاشخاصيعني اكثر من شخص يضيف في نفس الوقتوالتريجر الاخر when_create_recordضع فيهم الكود التالي declare x number; begin select count(*) into x from emp ; if x>0 then select (max(emp.id )+1) into :emp.id from emp; else select 1 into :emp.id from dual; end if; end; IF :emp.id IS NOT NULL THEN SET_ITEM_PROPERTY('emp.id',ENABLED,PROPERTY_FALSE); END IF; مع تغير مسميات الحقول الي ما يناسبكاخوكمحمودلا تنسونا من دعاء صالح 1 اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
عمرو بتاريخ: 7 مايو 2004 تقديم بلاغ مشاركة بتاريخ: 7 مايو 2004 هذا كود لحل نفس المشكله IF :CASE.ID IS NULL THEN select nvl(max(CASE.ID),0)+1 into :CASE.ID from CASE; END IF; اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
nn_oracle بتاريخ: 11 مايو 2004 كاتب الموضوع تقديم بلاغ مشاركة بتاريخ: 11 مايو 2004 مشكورين على الردوجزاكم الله كل خير اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
مختار دياب بتاريخ: 11 مايو 2004 تقديم بلاغ مشاركة بتاريخ: 11 مايو 2004 اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
mody بتاريخ: 11 مايو 2004 تقديم بلاغ مشاركة بتاريخ: 11 مايو 2004 Dear :Try this code in when-create-record trigger: :serial_no:=:system.cursor_record; and you can disable key-clrec trigger اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
phsoft بتاريخ: 15 مايو 2004 تقديم بلاغ مشاركة بتاريخ: 15 مايو 2004 أخي العزيز يمكن إضافة حقل ليس من الـ Databaseمثلا SMaxوجعله Sumrized ItemMaxللعنصر المراد عده مثلا Serialومن ثم في الـ Trigger When-Create-Record:Serial := NVL(SMax,0) + 1; اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
mustafa76 بتاريخ: 11 أكتوبر 2004 تقديم بلاغ مشاركة بتاريخ: 11 أكتوبر 2004 عزيزي الافضل ان تستخدم ال :t:=system.trigger_recordرعاك الله اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
Recommended Posts
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.