السلام عليكم ورحمة الله
ما سنتناوله في هذا القسم (
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;
و السلام عليكم