عدم التناسق في نوع الحقل؟
#1
السلام عليكم

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

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

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

هذه الصورة

[صورة مرفقة: 22.png]
الرد
#2
لا مشكلة عندي في الكود. حاول ان تنظم الكود قليلا حتى يسهل عليك تنقيحه
PHP كود :
var
  qtysumtotalReal;
begin

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

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

هل تستخدم الكود في الفاستريبورت ام خارجه؟
[-] كل من 1 user says قال شكرا ل sofiane201 على المشاركة المفيدة
  • ALG2009
الرد
#3
(11-05-2020, 05:16 PM)sofiane201 كتب : هل تستخدم الكود في الفاستريبورت ام خارجه؟

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

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

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

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

شكرا لكم لا عليكم سأضع الكود في الفاست ريبورت مباشرة لأني اعتقد ان وضع الكود في محرر الاكواد في الفاست ريبورت يثقل من عمل الفاست عند العرض لهذا السبب اردت وضعه في البوتون مباشرة
الرد
#7
(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;  في بوتون و الباقي ضعه في المكان كما قلت لك
الرد
#8
هل تريد المجموع الكلي لqnt /50 * sum, يعني مجموع حاصل كل سطر؟
اذا نعم
قم بعمل استعلام sql احسن, استخدم TFDQuery
مثال
PHP كود :
Var
  queryString;
  totalSingle;
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

هذا يعطيك مجموع كل الحقول
[-] كل من 1 user says قال شكرا ل sofiane201 على المشاركة المفيدة
  • ALG2009
الرد
#9
جزاكم الله خير وبارك الله فيكم

تقبل الله منكم صالح الاعمال
[-] كل من 1 user says قال شكرا ل ALG2009 على المشاركة المفيدة
  • sofiane201
الرد


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


مستخدمين يتصفحوا هذا الموضوع: 1 ضيف