![]() |
|
ماهي افضل طريقة للعمليات الحسابية - نسخة قابلة للطباعة +- delphi4arab منتديات دلفي للعرب (https://delphi4arab.net/forum) +-- قسم : منتديات دلفي للعرب التعليمية (https://delphi4arab.net/forum/forumdisplay.php?fid=3) +--- قسم : سؤال و جواب حول دلفي (https://delphi4arab.net/forum/forumdisplay.php?fid=15) +--- الموضوع : ماهي افضل طريقة للعمليات الحسابية (/showthread.php?tid=2272) |
ماهي افضل طريقة للعمليات الحسابية - medreg - 07-08-2010 السلام عليكم ورحمة الله تعالى وبركاته ماهي احسن طريقة تستعمل في العمليات الحسابية انا معتاد على هذه الطريقة لكني اجدها تقيلة نوعا ما هل من طريقة اخرى احسن واسرع الطريقة التي استعملها الآن هي كالتالي كود : table1.first;
while not table1.eof do begin
table1.edit;
table1MT_TOT.Value:=table1MT_01.value * table2Tx.value/100;
table1.post;
table1.next;
end;ماهي افضل طريقة للعمليات الحسابية - Lam.Abdeldjalil - 07-08-2010 و عليكم السلام و رحمة الله و بركاته شخصيا أفضل طريقة الحقل المحسوب (Calculated ) 'الحقل المحسوب لا يوضع في القاعدة' للعمل بها إتبع : قم بإضافة حقل من نوع Calculated في الجدول كما في الصورة ![]() * إضغط مرتين على الجدول ( Table.. ) 1- إضغط باليمين على النافذة الظاهرة 2 - إختر NewField تظهر لك نافذة أخرى كما في الصورة - أكتب إسم الحقل - أختر نوع المتغير - نوع الحقل Calculated Ok أضف كود الحساب في الحدث OnCalcFields الخاص بالحول المستعمل بالشكل التالي كود : procedure TDataM.Table1CalcFields(DataSet: TDataSet);
begin
table1calcField.Value:=table1MT_01.value * table2Tx.value/100;
end;بالتوفيق ماهي افضل طريقة للعمليات الحسابية - medreg - 07-08-2010 شكرًا سأجرب وارد عليك لاحقًا ماهي افضل طريقة للعمليات الحسابية - kachwahed - 07-08-2010 إقتباس :الطريقة التي استعملها الآن هي كالتاليشيء آخر، أضف إليها: كود : table1.DisableControls;
table1.first;
...
end;
table1.EnableControls;ماهي افضل طريقة للعمليات الحسابية - medreg - 07-08-2010 اخي شكرا لكم على هذه المعلومة القيمة كنت عللى وشك ان اسأل هل تعمل على كل السجلات دفعة واحدة ام الواحد تلوا الأخر وها انت تفاجءني بهذه الإضافة والتي ربما هي التي كنت على وشك السؤال عنها اخي اين اضع هذا الكود من فضلك هل تقصد هكذا PHP كود : procedure TDataM.Table1CalcFields(DataSet: TDataSet);ماهي افضل طريقة للعمليات الحسابية - Lam.Abdeldjalil - 07-08-2010 1- بالنسبة للطريقة المعطاة من طرف الأستاذ kachwahed أي أضف في كودك الأول دون إستعمال الطريقة الثانية يصبح الكود كالتالي كود : table1.DisableControls;
table1.first;
while not table1.eof do begin
table1.edit;
table1MT_TOT.Value:=table1MT_01.value * table2Tx.value/100;
table1.post;
table1.next;
end;
table1.EnableControls;فقط تأكد من الخاصية AutoCalcFields بقيمة true الحساب يقام به أوتوماتيكيا بعد الفتح / التعديل / الإضافة لا تنسى فقط الكود كود : procedure TDataM.Table1CalcFields(DataSet: TDataSet);
begin
table1calcField.Value:=table1MT_01.value * table2Tx.value/100;
end;ماهي افضل طريقة للعمليات الحسابية - medreg - 07-08-2010 اخي انا قمت بوضع الكود الذي اعطيتني ورايت النتيجة فعلا شيء رائع لكن انا كنت اتساءل بالنسبة للعملية على عدة سجلات دفعة واحدة كيف يمكن فعل ذلك على ان تكون العملية اسرع وحتى في عملية جمع عمود في الديبقريد ماهي افضل طريقة للعمليات الحسابية - Lam.Abdeldjalil - 07-08-2010 إقتباس :لكن انا كنت اتساءل بالنسبة للعملية على عدة سجلات دفعة واحدةالكود السابق يقوم بها جرب مع عدة تسجيلات وسوف ترى فالحدث OnCalcFields يقوم بحساب جميع الحقول الحسابية في جميع الأسطر بالنسبة لـ : إقتباس :عملية جمع عمود في الديبقريدأفضل طريقة Sql بالتوفيق |