برمجة تطبيقات قواعد البيانات بإستخدام ado (الجزء2: ADOTable / ADOConnection)
#12
السلام عليكم ورحمة الله

ما سنتناوله في هذا القسم (Calculated/Lookup) ( درس فلاشي )

كيفية العمل بــ
Calculated/Lookup Fields

تحميل الدرس
http://www.mediafire.com/?7gyaeg82chbx31w
إقتباس :قد يتسائل البعض كي يمكن إنشائها ديناميكيا ( برمجيا) للأسف لا يمكن <-- خطأ
شكر خاص للأخ hanipino وجازاه الله خيرا على التصحيح

لإنشاء حقل Lookup برمجيا
يجب أن يكون الـ Dataset مغلقا أي تغلقه إذا كان مفتوحا
مثال ( متابعة لما في المرفق )
كود :
tbl_Product.Close ; with TStringField.Create(tbl_Product) do begin FieldName := 'LookupFieldname'; FieldKind := fkLookup; DataSet := tbl_Product; Name := DataSet.Name + FieldName; KeyFields := 'Category_Id'; LookupDataSet := tbl_cat_lookup; LookupKeyFields := 'Category_Id'; LookupResultField := 'Category_Name'; end; tbl_Product.open ;
لإنشاء حقل Calculated برمجيا
نفس الشيئ يجب أن يكون الـ Dataset مغلقا أي تغلقه إذا كان مفتوحا
كود :
tbl_Product.Close ; with TCurrencyField.Create(tbl_Product) do begin FieldName := 'CalcField2'; FieldKind := fkCalculated ; DataSet := tbl_Product; Name := DataSet.Name + FieldName; end; tbl_Product.open ;
أما في الحدث OnCalcFields 'أين تضع تعليمة الحساب' + نضيف شرط ليكون الحساب فقط إذا وجد الحقل المراد إضافته
لكي لا نواجه مشكل Field not Found
كود :
procedure TForm1.tbl_ProductCalcFields(DataSet: TDataSet); begin if tbl_Product.FindField('CalcField2')<>nil then tbl_Product.FieldByName('CalcField2').Value :=tbl_ProductProduct_Qtt.Value *(tbl_ProductProduct_Price.value) ; end;
و المثال في المرفق

و السلام عليكم


الملفات المرفقة
.rar   Lookup-Calc ! Fields.rar (الحجم : 10.66 ك ب / التحميلات : 577)
الرد


الردود في هذا الموضوع
برمجة تطبيقات قواعد البيانات بإستخدام ado (الجزء2: ADOTable / ADOConnection) - بواسطة Lam.Abdeldjalil - 22-11-2010, 01:07 PM

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


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