تغيير تسجيل محدد
#1
السلام  عليكم

لدي form1 به جدول  للفئات (رقم الفئة، اسم الفئة)
ال  form 2 به  جدول العمال  (رقم،اللقب والاسم، الفئة)

لنفرض انني قت بملأ معلومات  200 عامل لكن  طرأ  تغيير  في اسم احدى الفئات ل 60 عاملا
المطلوب عند تغيير اسم الفئة في form1 تتغير تلقائيا في form2  مع الإبقاء على أسماء الفئات الأخرى كما هي

جربت هذا الكود لكنه يقوم بتغيير الكل

كود :
procedure TForm5.FormClose(Sender: TObject; var Action: TCloseAction); begin dm.BenefisTable.DisableControls; try   dm.BenefisTable.First;   while not dm.BenefisTable.Eof do   begin     dm.BenefisTable.Edit;     dm.BenefisTable.FieldByName('categ').Value := dbedit2.Text;     dm.BenefisTable.Post;     dm.BenefisTable.Next;   end; finally     dm.BenefisTable.EnableControls; end; end; end.
الرد
#2
لزم وضع شرط في منتصف الحلقة قبل السطر هذا
dm.BenefisTable.Edit;
من المفروض هذا الشرط هو الشئ الذي يجمع 60 عامل معا
الرد
#3
كيف يتم ذلك
الرد
#4
إذا كان لمجموع الـ60 عامل نفس الفئة و بإستخدام قواعد التكامل المرجعي في قاعدة البيانات فإنه بمجرد تغيير تسمية الفئة و التي تحمل مفتاح أساسيا يتم وضعه عند إضافة كل عامل لهذه الفئة كمفتاح أجنبي.
الرد
#5
(09-08-2021, 12:09 PM)appakar كتب : كيف يتم ذلك

عطيني الشي المشترك بين 60 عامل الذي تتحدتم عليهم وسوف أقول لك كيف
الرد
#6
(10-08-2021, 12:45 AM)delphi17 كتب :
(09-08-2021, 12:09 PM)appakar كتب : كيف يتم ذلك

عطيني الشي المشترك بين 60 عامل الذي تتحدتم عليهم وسوف أقول لك كيف

هو أعطاك ، أي الفيئة القديمة لـ dm.BenefisTable.FieldByName('categ').Value يغيرها لها برقم الفيئة الجديدة

* الحل قبل التعديل ، نقوم بفلترة القيمة القديمة و بعدها التعديل على الفيئة حسب المثال الذي لديك ، الذي يعدل على الكل اذا قمت بالفلترة قبل التعديل ، سيعدل على السجلات الظاهر فقط
*  أو عن طريق أوامر sql  عن طريق update بواسطة شرط الفيئة القديمة ، هي الاسهل و الاسرع
* الطريقة الاخيرة إضافة شرط الى المثال الذي لديك ي، فحص اذا كانت تساوي قيمة الفيئة القديمة يغير

+ افضل حل و هو الثاني التغيير بكبسة زر  ، اما  الاول و الثالث تكون عملية بطيئة لانه يمررها سطر بسطر
‏اللّهمّ فرّج أُموراً ضَاقت بها صُدورنا وعجزت بها حيلتنا وقلّ بها صَبرنا الّلهمّ أَسعِد قلوبنا بما أنتَ أعْلَمُ بِهِ مِنّا
الرد
#7
سلام عليكم


إقتباس :لدي form1 به جدول  للفئات (رقم الفئة، اسم الفئة)
ال  form 2 به  جدول العمال  (رقم،اللقب والاسم، الفئة)

من المفترض الفورم 2 يكون هكذا :
رقم ، اللقب و الاسم ، رقم الفئة وليس الفئة 

بمعنى : نوع الحقل عددي وهو مفتاح اساسي للجدول الاب1 .

1- عن طريق SQL 
يمكنك التحكم في كل شيئ سواء عمل insert / update ... /delete
او الربط البرمجي join ...

2-من خلال التصميم
وضع علاقة بين الجدولين (اب لابن) 

مثال (اكسس) 

[صورة: cascadeon.gif]
الفاشلون نوعان : الأول : فكر ولم يفعل .. والآخر: فعل ولم يفكر
[-] كل من 1 user says قال شكرا ل Mr.DOS على المشاركة المفيدة
  • Delphi4Us
الرد
#8
الإخوة الأفاضل
ممكن الطريقة عن طريق SQL
الرد
#9
ماهو نوع الحقل (الفئة) في الجدول 2 .
الفاشلون نوعان : الأول : فكر ولم يفعل .. والآخر: فعل ولم يفكر
الرد
#10
نوع الحقل (الفئة) في الجدول 2 ""TEXT""
الرد


التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم