delphi4arab منتديات دلفي للعرب
عدم التناسق في نوع الحقل؟ - نسخة قابلة للطباعة

+- delphi4arab منتديات دلفي للعرب (https://delphi4arab.net/forum)
+-- قسم : منتديات دلفي للعرب التعليمية (https://delphi4arab.net/forum/forumdisplay.php?fid=3)
+--- قسم : سؤال و جواب حول دلفي (https://delphi4arab.net/forum/forumdisplay.php?fid=15)
+--- الموضوع : عدم التناسق في نوع الحقل؟ (/showthread.php?tid=10826)



عدم التناسق في نوع الحقل؟ - ALG2009 - 11-05-2020

السلام عليكم

TfrxMemoView(dmDATA.frxReport1.FindObject('memo3')).Text :=floattostr(round(dmData.tblEmp.FieldByName('Qnt').Value/50* dmData.tblEmp.FieldByName('sum').Value)

الخطأ كما هو موضح في الصورة 

مع العلم أن حاولت من رقم إلى نص floattostr لماذا هذا الخطأ

هذه الصورة

[صورة: 22.png]


RE: عدم التناسق في نوع الحقل؟ - sofiane201 - 11-05-2020

لا مشكلة عندي في الكود. حاول ان تنظم الكود قليلا حتى يسهل عليك تنقيحه
PHP كود :
var
  qty, sum, total: Real;
begin

  qty 
:= FDTable1.FieldByName('Qnt').AsFloat / 50;
  sum := FDTable1.FieldByName('sum').AsFloat;
  total := Round(qty * sum);

  TfrxMemoView(frxReport1.FindObject('memo3')).Text := FloatToStr(total); 

هل تستخدم الكود في الفاستريبورت ام خارجه؟


RE: عدم التناسق في نوع الحقل؟ - ALG2009 - 11-05-2020

(11-05-2020, 05:16 PM)sofiane201 كتب : هل تستخدم الكود في الفاستريبورت ام خارجه؟

خارجه عند الضغط على البوتون طبعا
ولكن عند تنفيذ السطر الأخير 
dmData.frxReport1.ShowReport
يظهر الخطأ لا أدري ما السبب دائما نفس الخطأ

[صورة: 22.png]


RE: عدم التناسق في نوع الحقل؟ - ALG2009 - 12-05-2020

الخطأ كان أن أضع كود في الفاست ريبورت نسيت أن أحدفه

ولكن يحسب الحقل الأول فقط لا يمر إلى بقية الحقول هل من كويري لإظهار نتائج كل الجقول بعد الحساب؟


RE: عدم التناسق في نوع الحقل؟ - larbiparadox - 12-05-2020

ضعه في الاحداث عند أخذ القيم كما في الصورة

[صورة: 167296965.png]


RE: عدم التناسق في نوع الحقل؟ - ALG2009 - 12-05-2020

لا يوجد شيء في OnGetValue وحتى في OnDblClickObject

الكود موضوع في بوتون في الفورم واريد القيام بعملية حسابية على جميع الحقول وعرضها في الفاست ريبورت

qty := dmData.FDTable1.FieldByName('Qnt').AsFloat / 50;
sum :=dmData. FDTable1.FieldByName('sum').AsFloat;
total := Round(qty * sum);

TfrxMemoView(frxReport1.FindObject('memo3')).Text := FloatToStr(total);
dmData.frxReport1.ShowReport;

شكرا لكم لا عليكم سأضع الكود في الفاست ريبورت مباشرة لأني اعتقد ان وضع الكود في محرر الاكواد في الفاست ريبورت يثقل من عمل الفاست عند العرض لهذا السبب اردت وضعه في البوتون مباشرة


RE: عدم التناسق في نوع الحقل؟ - larbiparadox - 12-05-2020

(12-05-2020, 06:43 PM)ALG2009 كتب : لا يوجد شيء في OnGetValue وحتى في OnDblClickObject

الكود موضوع في بوتون في الفورم واريد القيام بعملية حسابية على جميع الحقول وعرضها في الفاست ريبورت

qty := dmData.FDTable1.FieldByName('Qnt').AsFloat / 50;
  sum :=dmData. FDTable1.FieldByName('sum').AsFloat;
  total := Round(qty * sum);

  TfrxMemoView(frxReport1.FindObject('memo3')).Text := FloatToStr(total);
dmData.frxReport1.ShowReport;

شكرا لكم لا عليكم سأضع الكود في الفاست ريبورت مباشرة لأني اعتقد ان وضع الكود في محرر الاكواد في الفاست ريبورت يثقل من عمل الفاست عند العرض لهذا السبب اردت وضعه في البوتون مباشرة

اترك هذا dmData.frxReport1.ShowReport;  في بوتون و الباقي ضعه في المكان كما قلت لك


RE: عدم التناسق في نوع الحقل؟ - sofiane201 - 12-05-2020

هل تريد المجموع الكلي لqnt /50 * sum, يعني مجموع حاصل كل سطر؟
اذا نعم
قم بعمل استعلام sql احسن, استخدم TFDQuery
مثال
PHP كود :
Var
  query: String;
  total: Single;
Begin
  query 
:= 'SELECT SUM( (qnt / 3) * sum) AS "Total" FROM TableName';
  FDQuery1.Open(query);

  If FDQuery1.RecNo <> -1 Then
  Begin
    total 
:= FDQuery1.FieldByName('Total').AsSingle;
    TfrxMemoView(frxReport1.FindObject('memo1')).Text := total.ToString;
  End;
  frxReport1.ShowReport();
End; 

هذا يعطيك مجموع كل الحقول


RE: عدم التناسق في نوع الحقل؟ - ALG2009 - 12-05-2020

جزاكم الله خير وبارك الله فيكم

تقبل الله منكم صالح الاعمال