![]() |
|
فلترة جدول ب ID جدول اخر - نسخ قيمة CELL لاخرى - نسخة قابلة للطباعة +- delphi4arab منتديات دلفي للعرب (https://delphi4arab.net/forum) +-- قسم : منتديات دلفي للعرب التعليمية (https://delphi4arab.net/forum/forumdisplay.php?fid=3) +--- قسم : سؤال و جواب حول دلفي (https://delphi4arab.net/forum/forumdisplay.php?fid=15) +--- الموضوع : فلترة جدول ب ID جدول اخر - نسخ قيمة CELL لاخرى (/showthread.php?tid=10429) |
فلترة جدول ب ID جدول اخر - نسخ قيمة CELL لاخرى - samnaj00 - 03-09-2019 السلام عليكم ورحمة الله وبركاته السادة الكرام 1- لدي جدول حسابات فرعية مرتبطة بجدول حسابات رئيسية عملت في حدث DBGrid1DrawColumnCell وحدث Edit1Change الفلترة تعمل . لكن عندما اتنقل بزر الكيبورد السهم للاسفل والسهم للاعلى لا تعمل الفلترة(جرب تنقل بالزرين بين السجل الاول والسجل الثاني مرة للاسفل ومرة للاعلى) 2- كيف يمكن نسخ قيمة اخر CELL للحقل ID_R و NAME_F في DBGRID2 حسابات فرعية وذلك للسجل الجديد الذي افتحه بزر السهم للاسفل جزاكم الله كل خير (03-09-2019, 05:11 PM)samnaj00 كتب : 2- كيف يمكن نسخ قيمة اخر CELL للحقل ID_R و NAME_F في DBGRID2 حسابات فرعية وذلك للسجل الجديد الذي افتحه بزر السهم للاسفلبالاضافة الى نسخ قيمة CELL للحقل ID_F ويضاف للقيمة 1 في السجل الجديد RE: فلترة جدول ب ID جدول اخر - نسخ قيمة CELL لاخرى - Delphi4Us - 03-09-2019 وعليكم السلام ورحمة الله اولا مالم افهمه وغير منطقي هو لماذا اداة الفلترة هي نفسها التي تضع فيها قيمة كالتالي بالحدث المذكور كود : procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
form1.Edit1.Text:= form1.DBGrid1.DataSource.DataSet.FieldByName('id_r').asstring;
form1.Label3.Caption:= form1.DBGrid1.DataSource.DataSet.FieldByName('id_r').asstring;
end;وفي حدث الاداة كود : procedure TForm1.Edit1Change(Sender: TObject);
begin
if form1.Edit1.Text<>'' then
begin
ABSTable2.Active:=true;
ABSTable2.Filtered:=false;
ABSTable2.Filter:='id_r='+''''+Edit1.Text+''''+'';
ABSTable2.Filtered:=true;
end
else
ABSTable2.Active:=false;
end;اذا اردت ان تضع قيمة حقل عندما تنتقل الى سجل جديد دائما استخدم الحدث التالي: كود : procedure TForm1.ADOTable1AfterScroll(DataSet: TDataSet);
begin
end;بالنسبة الى جمع قيمة حقلين في حقل جديد استخدم الحقل التالي: كود : procedure TForm1.ADOTable1CalcFields(DataSet: TDataSet);
begin
end;تحتاج الى اضافة حقل بالاداة DataSet من نوع Calculate واسناد القيمة البه بالحدث السابق ليس لدي قاعدة البيانات التي تستخدمها والا لكنت عدلت المثال RE: فلترة جدول ب ID جدول اخر - نسخ قيمة CELL لاخرى - samnaj00 - 03-09-2019 3- عند فتح البرنامج ومع أن السجل الاول هو المحدد - في الحسابات الرئيسية بينما يظهر في الحسابات الفرعية سجلات ID_R اخر سجل ظاهر من DBGRID1 وهو 181 RE: فلترة جدول ب ID جدول اخر - نسخ قيمة CELL لاخرى - Delphi4Us - 03-09-2019 اذا كان معك وقت اصنع مثال على قاعدة بيانات Access لنعمل فيه معا وسوف اراه عندما اتفرغ لذلك RE: فلترة جدول ب ID جدول اخر - نسخ قيمة CELL لاخرى - samnaj00 - 03-09-2019 (03-09-2019, 05:49 PM)Delphi4Us كتب : اولا مالم افهمه وغير منطقي هو لماذا اداة الفلترة هي نفسها التي تضع فيها قيمة كالتالي بالحدث المذكور RE: فلترة جدول ب ID جدول اخر - نسخ قيمة CELL لاخرى - Delphi4Us - 03-09-2019 إقتباس :اذاً كيف افلتر الحسابات الفرعية للحسبا الرئيسي؟؟ استخدم الربط المباشر عن طريق خصائص الجدول MasterSource انت مع اسرع بيئة لصنع التطبيقات RE: فلترة جدول ب ID جدول اخر - نسخ قيمة CELL لاخرى - samnaj00 - 05-09-2019 (03-09-2019, 06:21 PM)Delphi4Us كتب : استخدم الربط المباشر عن طريق خصائص الجدول MasterSource تم الحل باذن الله (03-09-2019, 05:49 PM)Delphi4Us كتب : وعليكم السلام ورحمة اللهend;[/code] كيف يكون الكود؟ ------------------------------- عندما ارتبطت الحسابات الفرعية بالرئيسية اصبح عندما اضيف سطراً جديداً يتكرر قيمة id_R في الحسابات الفرعية وهذا جيد لكن كيف يتكرر id_F مع زيادة 1 - كنت قد جعلت نوع الحقل id_R في الرئيسية هو من نوع char و 3 ارقام فقط لكي لا يضيف المستخدم سوى 3ارقام فقط وكذلك جعلت id_F في الفرعية لكن ب 6 ارقام ..... فهل هذه العمل صحيحاً؟؟ RE: فلترة جدول ب ID جدول اخر - نسخ قيمة CELL لاخرى - larbiparadox - 06-09-2019 حمل المثال من المرفقات ، ربما تجد الاجوبة التي تريدها ![]() حمل المثال من المرفقات ، ربما تجد الاجوبة التي تريدها RE: فلترة جدول ب ID جدول اخر - نسخ قيمة CELL لاخرى - samnaj00 - 07-09-2019 (06-09-2019, 12:55 PM)larbiparadox كتب : حمل المثال من المرفقات ، ربما تجد الاجوبة التي تريدهاكل (06-09-2019, 12:55 PM)larbiparadox كتب : حمل المثال من المرفقات ، ربما تجد الاجوبة التي تريدها الشكر لك اخي الكريم لكن ألا يمكن ان تكون قيمة i ظاهرة في حقل id_f بدل ظهورها في dbedit وذلك في حدث beforInsert كيف يمكن اظهار رسالة في حال كان الرقم المدخل في Id_f اذا كان اول 3 ارقام لا تطابق قيمة ID_R فلو كان قيمة ID_R تساوي 112 وادخلت 125011 في ID_f فيعطيني رسالة الخطأ لانه يجب ان يكون اول 3ارقام هي 112 وما بعدها لا يهم وكذلك شرط اخر فيما لوكان الرقم المدخل 112 فقط اي نفس رقم ID_R RE: فلترة جدول ب ID جدول اخر - نسخ قيمة CELL لاخرى - larbiparadox - 07-09-2019 * بالنسبة للسؤال الاول : لكن ألا يمكن ان تكون قيمة i ظاهرة في حقل id_f بدل ظهورها في dbedit وذلك في حدث beforInsert - الجواب : بالنسبة لـ DbGrid1 إستبدل DBEdit1.Text := intTOstr(i) بـ DBGrid1.DataSource.DataSet.FieldByName('id_r').Value := intTOstr(i) و باقي الاسئلة سأعدل على المثال تم التعديل حسب طلبك |