السلام عليكم
نفرض أنه عندي جدول به منتوج وإذا كانت الكمية أكثر من 20 أنقص 0.2 من السعر
(Id,ProductName,Qty,Price,CalcPrice)ProductsTable
قمت بإضافة حقل محسوب في الجدول وفي الحدث OnCalcFields قمت بالتالي
كود :
If qty >20 then
CalcPrice:=Price-0.2
else
CalcPrice:=price
ما أردته وهو أن أعرض الحقل المحسوب في الفاست ريبورت عن طريق إستعلام هكذا
كود :
SELECT ProductName,Qty,Price,CalcPrice from ProductsTable
ولكن الحقل المحسوب لم يظهر في الإستعلام لماذا؟
أو هناك طريقة أفضل لحل هذه المشكلة
وعليكم السلام ورحمة الله
يبدوا لي ان كل شئ طبيعي الا جملة الاستعلام الاخيرة غير منطقية فالحقل Calc لا يوجد بجدول البيانات وانما بمكون الجدول
طالما الجدول مفتوح اربطه مباشرة بمصدر بيانات الفاست ريبورت ولا تقوم باستخدام مكون استعلام جديد
مشكلتك تبدو هنا ارجو ان تكون قد فهمت المقصود
ولكن انا أعرض البيانات في الفاست ريبورت عن طريق الإستعلام والذي بدوره أي الإستعلام يقوم بعرض العديد من الحقول من جداول مختلفة مربوطه بـ join
كل الحقول ظهرت إلا الحقل المحسوب لا أدري ما المشكل
لا ادري إن كانت صحيحة إدخال جملة شرطية في الـ SELECT وهل هي منطقية
(10-10-2020, 02:08 PM)Delphi4Us كتب : [ -> ]وعليكم السلام ورحمة الله
يبدوا لي ان كل شئ طبيعي الا جملة الاستعلام الاخيرة غير منطقية فالحقل Calc لا يوجد بجدول البيانات وانما بمكون الجدول
طالما الجدول مفتوح اربطه مباشرة بمصدر بيانات الفاست ريبورت ولا تقوم باستخدام مكون استعلام جديد
مشكلتك تبدو هنا ارجو ان تكون قد فهمت المقصود
بالفعل لا يوجد في جدول البيانات وإن وضعته على الفاست ريبورت فيظهر قيمه وحدة للجميع
ما الحل في هذه الحالة
أو إظهار البيانات بإستعلام غير صحيحة مع العلم اني سمعت انها أفضل من إستخدام الجداول
إقتباس :ما الحل في هذه الحالة
أو إظهار البيانات بإستعلام غير صحيحة مع العلم اني سمعت انها أفضل من إستخدام الجداول
الامر بسيط جدا
قم بانشاء مكون استعلام يجلب البيانات
SELECT ProductName,Qty,Price from ProductsTable
واضف فيه حقل الجمع CalcPrice وفي الحدث OnCalcFields ضع الكود الخاص بك
If qty >20 then
CalcPrice:=Price-0.2
else
CalcPrice:=price
ونفس المكون استخدمه لمصدر بيانات الفاست ريبورت
(10-10-2020, 05:14 PM)Delphi4Us كتب : [ -> ]إقتباس :ما الحل في هذه الحالة
أو إظهار البيانات بإستعلام غير صحيحة مع العلم اني سمعت انها أفضل من إستخدام الجداول
الامر بسيط جدا
قم بانشاء مكون استعلام يجلب البيانات
SELECT ProductName,Qty,Price from ProductsTable
واضف فيه حقل الجمع CalcPrice وفي الحدث OnCalcFields ضع الكود الخاص بك
If qty >20 then
CalcPrice:=Price-0.2
else
CalcPrice:=price
ونفس المكون استخدمه لمصدر بيانات الفاست ريبورت
جزاك الله خير أخي على المساعدة لقد إستخدمت جملة If فكان الكود هكذا
كود :
SELECT ProductName,Qty,Price,iff(qty>20,price-0.2,price) from ProductsTable
أريد أن أكتب كود صحيح ومنطقي لا أريد أن أبرمج وأن يشتغل الكود ولا يهمني شكل الكود لهذا سألت ووجد الحل و أتمنى أن يكون صحيح ولا يحدث بطئ في حال كانت قاعدة البيانات كبيرة
لا اعتقد ان هناك مشكلة بقاعدة بيانات كبيرة
يعني انت استغنيت عن استخدام OnCalcFields واستخدمت الاجراء المذكور للتوضيح فقط
(10-10-2020, 08:39 PM)Delphi4Us كتب : [ -> ]لا اعتقد ان هناك مشكلة بقاعدة بيانات كبيرة
يعني انت استغنيت عن استخدام OnCalcFields واستخدمت الاجراء المذكور للتوضيح فقط
ما دام الحقل المحسوب لم يظهر قمت بحسابه في الاستعلام وأظنه نفس الشيء كما قلت جزاك الله خيرا