03-09-2019, 05:11 PM (آخر تعديل لهذه المشاركة: 03-09-2019, 05:42 PM بواسطة samnaj00.)
السلام عليكم ورحمة الله وبركاته
السادة الكرام
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 في السجل الجديد
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 واسناد القيمة البه بالحدث السابق
ليس لدي قاعدة البيانات التي تستخدمها والا لكنت عدلت المثال
قل: اللهم فاطِرَ السماوات والأرض عالم الغيبِ والشهادة، ربَّ كُلِّ شَيءٍ ومَلِيكَه، أَشْهد أن لا إله إلا أنت، أعوذ بك من شرِّ نفسي وشرِّ الشيطان وشِرْكِهِ وأن أقترف على نفسي سوءًا أو أجرُّه إلى مسلم
كل من 1 user says قال شكرا ل Delphi4Us على المشاركة المفيدة1 user says Thank You to Delphi4Us for this post • samnaj00
اذا كان معك وقت اصنع مثال على قاعدة بيانات Access لنعمل فيه معا وسوف اراه عندما اتفرغ لذلك
قل: اللهم فاطِرَ السماوات والأرض عالم الغيبِ والشهادة، ربَّ كُلِّ شَيءٍ ومَلِيكَه، أَشْهد أن لا إله إلا أنت، أعوذ بك من شرِّ نفسي وشرِّ الشيطان وشِرْكِهِ وأن أقترف على نفسي سوءًا أو أجرُّه إلى مسلم
03-09-2019, 06:03 PM (آخر تعديل لهذه المشاركة: 03-09-2019, 06:20 PM بواسطة Delphi4Us.)
(03-09-2019, 05:49 PM)Delphi4Us كتب : اولا مالم افهمه وغير منطقي هو لماذا اداة الفلترة هي نفسها التي تضع فيها قيمة كالتالي بالحدث المذكور
اذاً كيف افلتر الحسابات الفرعية للحسبا الرئيسي؟؟
(03-09-2019, 05:49 PM)Delphi4Us كتب : اذا اردت ان تضع قيمة حقل عندما تنتقل الى سجل جديد دائما استخدم الحدث التالي:
[code]procedure TForm1.ADOTable1AfterScroll(DataSet: TDataSet);
ان شاء الله سأجرب
(03-09-2019, 05:49 PM)Delphi4Us كتب : بالنسبة الى جمع قيمة حقلين في حقل جديد استخدم الحقل التالي:
[code]procedure TForm1.ADOTable1CalcFields(DataSet: TDataSet);
تحتاج الى اضافة حقل بالاداة DataSet من نوع Calculate واسناد القيمة البه بالحدث السابق
ليس لدي قاعدة البيانات التي تستخدمها والا لكنت عدلت المثال
لا اريد جمع حقلين بل اريد قيمة اخر قيمة للحقل ID_F مضافاً اليها 1 وتكون في خلية ID_F للسجل الجديد اي مثل AUTONUMER
(03-09-2019, 05:55 PM)Delphi4Us كتب : اذا كان معك وقت اصنع مثال على قاعدة بيانات Access لنعمل فيه معا وسوف اراه عندما اتفرغ لذلك
03-09-2019, 06:21 PM (آخر تعديل لهذه المشاركة: 03-09-2019, 06:24 PM بواسطة Delphi4Us.)
إقتباس :اذاً كيف افلتر الحسابات الفرعية للحسبا الرئيسي؟؟
استخدم الربط المباشر عن طريق خصائص الجدول MasterSource
انت مع اسرع بيئة لصنع التطبيقات
قل: اللهم فاطِرَ السماوات والأرض عالم الغيبِ والشهادة، ربَّ كُلِّ شَيءٍ ومَلِيكَه، أَشْهد أن لا إله إلا أنت، أعوذ بك من شرِّ نفسي وشرِّ الشيطان وشِرْكِهِ وأن أقترف على نفسي سوءًا أو أجرُّه إلى مسلم
كل من 1 user says قال شكرا ل Delphi4Us على المشاركة المفيدة1 user says Thank You to Delphi4Us for this post • samnaj00
(03-09-2019, 06:21 PM)Delphi4Us كتب : استخدم الربط المباشر عن طريق خصائص الجدول MasterSource
انت مع اسرع بيئة لصنع التطبيقات
تم الحل باذن الله
(03-09-2019, 05:49 PM)Delphi4Us كتب : وعليكم السلام ورحمة اللهend;[/code]
اذا اردت ان تضع قيمة حقل عندما تنتقل الى سجل جديد دائما استخدم الحدث التالي:
كود :
procedure TForm1.ADOTable1AfterScroll(DataSet: TDataSet);
begin
end;
كيف يكون الكود؟
-------------------------------
عندما ارتبطت الحسابات الفرعية بالرئيسية اصبح عندما اضيف سطراً جديداً يتكرر قيمة id_R في الحسابات الفرعية وهذا جيد
لكن كيف يتكرر id_F مع زيادة 1
- كنت قد جعلت نوع الحقل id_R في الرئيسية هو من نوع char و 3 ارقام فقط لكي لا يضيف المستخدم سوى 3ارقام فقط وكذلك جعلت id_F في الفرعية لكن ب 6 ارقام ..... فهل هذه العمل صحيحاً؟؟
07-09-2019, 02:47 PM (آخر تعديل لهذه المشاركة: 07-09-2019, 03:31 PM بواسطة samnaj00.)
(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
07-09-2019, 03:59 PM (آخر تعديل لهذه المشاركة: 07-09-2019, 04:30 PM بواسطة larbiparadox.)
* بالنسبة للسؤال الاول : لكن ألا يمكن ان تكون قيمة i ظاهرة في حقل id_f بدل ظهورها في dbedit وذلك في حدث beforInsert
- الجواب : بالنسبة لـ DbGrid1 إستبدل DBEdit1.Text := intTOstr(i) بـ DBGrid1.DataSource.DataSet.FieldByName('id_r').Value := intTOstr(i)
و باقي الاسئلة سأعدل على المثال
تم التعديل حسب طلبك