delphi4arab منتديات دلفي للعرب

نسخة كاملة : عدم التناسق في نوع الحقل؟
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
السلام عليكم

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

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

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

هذه الصورة

[صورة: 22.png]
لا مشكلة عندي في الكود. حاول ان تنظم الكود قليلا حتى يسهل عليك تنقيحه
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); 

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

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

[صورة: 22.png]
الخطأ كان أن أضع كود في الفاست ريبورت نسيت أن أحدفه

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

[صورة: 167296965.png]
لا يوجد شيء في 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;

شكرا لكم لا عليكم سأضع الكود في الفاست ريبورت مباشرة لأني اعتقد ان وضع الكود في محرر الاكواد في الفاست ريبورت يثقل من عمل الفاست عند العرض لهذا السبب اردت وضعه في البوتون مباشرة
(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;  في بوتون و الباقي ضعه في المكان كما قلت لك
هل تريد المجموع الكلي ل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; 

هذا يعطيك مجموع كل الحقول
جزاكم الله خير وبارك الله فيكم

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