بتاريخ: 13 ديسمبر 20169 سنة comment_280747 السلام عليكم ؛؛؛ لدي شاشة نوعها Tabular و عليها 10 items. اريد ادخال نفس البيانات في الجدول. لكن تقابلني مشكلة ال Primary Key. ارجو المساعدة... **ارجو ممن لديه فكرة للحل لا يبخل بها فزكاة العلم نشره تقديم بلاغ
بتاريخ: 14 ديسمبر 20169 سنة comment_280751 ماهو نوع البريميري الخاص بك .. وهل هناك مشكلة في حذفه ؟؟؟ تقديم بلاغ
بتاريخ: 14 ديسمبر 20169 سنة comment_280755 هى دى فائدة البرايمارى كى, لو مش عايزه, شيله, بس في الغالب في حاجة غلط. اشرحلنا الموضوع احسن. تقديم بلاغ
بتاريخ: 14 ديسمبر 20169 سنة كاتب الموضوع comment_280787 دلوقتي انا ظهر لي على الفورم بيانات الموظفين من 100 الى 150 مثلا تمام؟ عاوز احفظ نفس البيانات لكن بارقام جديدة مثلا من 12500 الى 12550 محتاجا اكررهم بس هيخدوا id مختلف ؟ و اشكركم على التفاعل تم تعديل 14 ديسمبر 20169 سنة بواسطة M. Faramawy تقديم بلاغ
بتاريخ: 14 ديسمبر 20169 سنة comment_280794 ما تكررهم , ايه المشكلة؟ وايه علاقة ده بالبرايمارى كى مادام مش هتقربله اصلا؟ تم تعديل 14 ديسمبر 20169 سنة بواسطة eslam elbyaly تقديم بلاغ
بتاريخ: 14 ديسمبر 20169 سنة كاتب الموضوع comment_280797 يا باشا ازاي و كل ROW ليه primary key عند اعادة ادخال نفس البيانات بنفس ال primary key بيحدث مشكلة لان بضطر الى حفظ كل صف على حده و ذلك للحصول على max(nvl(emp_id,0)+1) تقديم بلاغ
بتاريخ: 14 ديسمبر 20169 سنة comment_280799 انا مقلتش حط نفس البرايمارى كى والله. - انت بتدخل الداتا ازاى؟ تقديم بلاغ
بتاريخ: 14 ديسمبر 20169 سنة كاتب الموضوع comment_280800 من خلال الفورم بكتب الكود ده: declare cursor c_emp is select employee_id,last_name,hire_date,salary,department_id from employees; v_max number; begin for i in c_emp loop first_record; select max(nvl(employee_id,0)+1) into v_max from employees; :department_id :=i.department_id; :employee_id:=v_max; standard.commit; next_record; exit when :system.last_record='TRUE'; end loop; end; تم تعديل 14 ديسمبر 20169 سنة بواسطة ميسم الكرام تقديم بلاغ
بتاريخ: 14 ديسمبر 20169 سنة comment_280802 انا مش عارف ايه الى انت عايز تعمله, لكن عموما. البلوك بتاعك المفروض انه يبقى عليه تريجر pre-insert مكتوب فيه select nvl(max(employee_id),0) + 1 from table_name , مش select max(nvl زى ما بتكتب. 2- عدل الكرسور بتاعك وشيل منه employee_id. 3- first_record قبل اللوب مش جواه وقبلها go_block('block_name'). 4- انت مش حاطط الاعمدة الى انت جايبها في الكرسور في اى أيتمز زى منتا عامل في :department_id. 5- exit when حطها قبل الـ next_record. تقديم بلاغ
بتاريخ: 14 ديسمبر 20169 سنة كاتب الموضوع comment_280803 اقولك يا ريس الموضوع من البداية: انا عندي بيانات المرتبات الخاصة بالموظفين. عند عمل مرتبات الشهر الجديد بيتم استدعاء نفس مرتبات الشهر الماضي مع تعديلات بسيطه . # لاني مش هينفع ادخل كل مفردات المرتب لكل موظف كل شهر يارب اكون قدرت اوصلك اللي عاوزه تقديم بلاغ
بتاريخ: 14 ديسمبر 20169 سنة comment_280804 طب وانت ليه من الاصل تعمل عمود يشيل مرتب الموظف, ما يبقى Flag يقول ان الراجل أخد مرتبه وخلاص Y Or N ويبقى checkbox فى الشاشة ما دام كل واحد مرتبه معروف. انت ادرى بالبزنس بتاعك. عموما الطريقة الى قلتهالك تحل المشكلة باذن الله . تقديم بلاغ
بتاريخ: 14 ديسمبر 20169 سنة كاتب الموضوع comment_280806 طب ممكن يا باشا توضيح اكتر لموضوع الFLAG ده الله يكرمك تم تعديل 14 ديسمبر 20169 سنة بواسطة M. Faramawy تقديم بلاغ
بتاريخ: 14 ديسمبر 20169 سنة comment_280807 عمود بيشيل قيمة من 2 Y OR N YES OR NO 1 ,2 قيمة منهم للاثبات والتانية للنفى 1 يعنى أخد مرتب 2 يعنى مأخدش وتمثلهم على الشاشة بتشيك بوكس Checked يعنى استلم مرتبه unchecked يعنى لم يستلم. تقديم بلاغ
بتاريخ: 14 ديسمبر 20169 سنة comment_280808 أنا ما أعرفه أن الـ Cursor عند إستخدامه في إسترجاع البيانات لا يجعل ولا يهيئ الـ block في حالة تحديث ..لذلك أي تحديث على البيانات يعتبرها إدخال جديد ويحفظها بـ id مختلف بمعنى فكرة الأخ إسلام ما ذكره من تعديلات على cursor وإضافة كود الـ max في pre-insert هي يتم إستخدامها تقديم بلاغ
بتاريخ: 14 ديسمبر 20169 سنة كاتب الموضوع comment_280814 الاخت/ميسم الكرام اشكرك على التواصل بعد الانقطاع. الفكرة كما اوضحت سابقا هي انني بحاجه لاعداد رواتب الموظفين الشهرية مما يضطرني لاخذ نسخة من رواتب الشهر السابق مع التعديلات الجديدة. ثم الحفظ. هل هناك طريقة لذلك؟ تقديم بلاغ
بتاريخ: 15 ديسمبر 20169 سنة comment_280825 نفترض ان لديك جدول Table_name به (150) سجل تريد اعادة ادخالهم ولكن بأرقام بامكانك استخدام الاستعلام التالي مباشرة insert into table_name (primary_key,Colm_2,Colm_3,Colm_4,Colm_5) select rownum+150 ,Colm_2,Colm_3,Colm_4,Colm_5 from table_name بالتوفيق ... تقديم بلاغ
بتاريخ: 15 ديسمبر 20169 سنة comment_280834 الفكرة كما اوضحت سابقا هي انني بحاجه لاعداد رواتب الموظفين الشهرية مما يضطرني لاخذ نسخة من رواتب الشهر السابق مع التعديلات الجديدة. ثم الحفظ. هل هناك طريقة لذلك؟ اعتقد ان فكرة ان يكون نفس الموظف له أكثر من رقم وظيفي فكرة غير صحيحه اي انه مع كل شهر رواتب يكون للموظف رقم جديد بالإضافة الى تكرار بياناته الأساسية الاسم والعنوان والهاتف و .... سؤال : اذا طلب منك اجمالي ما صرفه الموظف خلال فترة معينه ... كيف ستكون طريقة الحساب ؟ من المفترض ان يكون لديك - جدول بيانات اساسية للموظف ( رقم الموظف - اسم الموظف - تاريخ التعييين - الراتب الأساسي - العنوان - الادارة التي يعمل بها - + بيانات اخرى مرتبطه بشخص الموظف .. ) ومفتاح الجدول هو رقم الموظف - جدول بيانات مفردات بنود حركة الرواتب الشهرية رقم الموظف ورقم الشهروالسنة ورقم البند للاستحقاق أو رقم البند للاستقطاع او للحسم - القيمة او المبلغ مفتاح الجدول مركب من ( رقم الموظف + رقم الشهر + السنة + رقم البند ) مثال رقم الموظف - رقم البند - المبلغ 100 - 101 ( الراتب الأساسي ) - 2000 100 - 102 ( بدل طبيعه عمل ) - 200 100 - 1xx ( بند استحقاق ) 100 - 201 ( خصم غياب ) - 100 قيمة محسوبه 100 - 202 ( خصم تأمينات اجتماعية ) - 180 قيمه محسوبه 100 - 2xx بند خصم الاجراء يتم تجهيز بيانات مفردات الراتب كل شهر للعناصر الثابته استتناجا من بيانات مفردات الشهر السابق في النهاية يجب ان يكون لديك قاعدة بيانات تحتوى البيانات الثابته والمتغيرة حتى يمكن استخراج التقارير والإحصائيات من البيانات بالإضافة للمرونه في إجراء العمليات الحسابيه صافي الراتب الشهري = اجمالي بنود الإستحقاقات - اجمالي بنود الحسميات (الخصومات ) ويمكن أن يكون لديك جدول بخلاصة الراتب الشهري للموظف يحتوى رقم الموظف - شهر الراتب - السنه - اجمالي بنود الاستحقاقات - اجمالي بنود الحسميات - طريقة صرف الراتب ( يدوي - شيك - تحويل بنكي ) - رقم الحساب البنكي المرسل اليه الراتب + أيه بيانات مرتبطه بطبيعة الراتب الشهريه التي ممكن أن تختلف من شهر الى اخر تقديم بلاغ
بتاريخ: 21 أغسطس 20178 سنة كاتب الموضوع comment_289322 اشكرك جدا الحل ممتاز لكنه يشترط ان يكون عدد ال rows 150 ماذا لو اردت اضافة 150 سجل جديد رغم وجود 10سجلات فقط في قاعدة البيانات تقديم بلاغ
بتاريخ: 21 أغسطس 20178 سنة كاتب الموضوع comment_289323 نفترض ان لديك جدول Table_name به (150) سجل تريد اعادة ادخالهم ولكن بأرقام بامكانك استخدام الاستعلام التالي مباشرة insert into table_name (primary_key,Colm_2,Colm_3,Colm_4,Colm_5) select rownum+150 ,Colm_2,Colm_3,Colm_4,Colm_5 from table_name بالتوفيق ... تاريخ المشاركة اليوم, 03:25 PM اشكرك جدا الحل ممتاز لكنه يشترط ان يكون عدد ال rows 150 ماذا لو اردت اضافة 150 سجل جديد رغم وجود 10سجلات فقط في قاعدة البيانات تقديم بلاغ
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.