المشاركات : 421
المواضيع 77
:
: 195
الإنتساب : Dec 2008
09-10-2020, 01:58 AM
(آخر تعديل لهذه المشاركة: 10-10-2020, 02:43 PM بواسطة ALG2009.)
السلام عليكم
نفرض أنه عندي جدول به منتوج وإذا كانت الكمية أكثر من 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
ولكن الحقل المحسوب لم يظهر في الإستعلام لماذا؟
أو هناك طريقة أفضل لحل هذه المشكلة
المشاركات : 1,677
المواضيع 349
:
: 1,069
الإنتساب : Nov 2013
وعليكم السلام ورحمة الله
يبدوا لي ان كل شئ طبيعي الا جملة الاستعلام الاخيرة غير منطقية فالحقل Calc لا يوجد بجدول البيانات وانما بمكون الجدول
طالما الجدول مفتوح اربطه مباشرة بمصدر بيانات الفاست ريبورت ولا تقوم باستخدام مكون استعلام جديد
مشكلتك تبدو هنا ارجو ان تكون قد فهمت المقصود
قل: اللهم فاطِرَ السماوات والأرض عالم الغيبِ والشهادة، ربَّ كُلِّ شَيءٍ ومَلِيكَه، أَشْهد أن لا إله إلا أنت، أعوذ بك من شرِّ نفسي وشرِّ الشيطان وشِرْكِهِ وأن أقترف على نفسي سوءًا أو أجرُّه إلى مسلم
المشاركات : 421
المواضيع 77
:
: 195
الإنتساب : Dec 2008
10-10-2020, 03:07 PM
(آخر تعديل لهذه المشاركة: 10-10-2020, 03:08 PM بواسطة ALG2009.)
ولكن انا أعرض البيانات في الفاست ريبورت عن طريق الإستعلام والذي بدوره أي الإستعلام يقوم بعرض العديد من الحقول من جداول مختلفة مربوطه بـ join
كل الحقول ظهرت إلا الحقل المحسوب لا أدري ما المشكل
لا ادري إن كانت صحيحة إدخال جملة شرطية في الـ SELECT وهل هي منطقية
(10-10-2020, 02:08 PM)Delphi4Us كتب : وعليكم السلام ورحمة الله
يبدوا لي ان كل شئ طبيعي الا جملة الاستعلام الاخيرة غير منطقية فالحقل Calc لا يوجد بجدول البيانات وانما بمكون الجدول
طالما الجدول مفتوح اربطه مباشرة بمصدر بيانات الفاست ريبورت ولا تقوم باستخدام مكون استعلام جديد
مشكلتك تبدو هنا ارجو ان تكون قد فهمت المقصود
بالفعل لا يوجد في جدول البيانات وإن وضعته على الفاست ريبورت فيظهر قيمه وحدة للجميع
ما الحل في هذه الحالة
أو إظهار البيانات بإستعلام غير صحيحة مع العلم اني سمعت انها أفضل من إستخدام الجداول
المشاركات : 1,677
المواضيع 349
:
: 1,069
الإنتساب : Nov 2013
10-10-2020, 05:14 PM
(آخر تعديل لهذه المشاركة: 10-10-2020, 05:18 PM بواسطة Delphi4Us.)
إقتباس :ما الحل في هذه الحالة
أو إظهار البيانات بإستعلام غير صحيحة مع العلم اني سمعت انها أفضل من إستخدام الجداول
الامر بسيط جدا
قم بانشاء مكون استعلام يجلب البيانات
SELECT ProductName,Qty,Price from ProductsTable
واضف فيه حقل الجمع CalcPrice وفي الحدث OnCalcFields ضع الكود الخاص بك
If qty >20 then
CalcPrice:=Price-0.2
else
CalcPrice:=price
ونفس المكون استخدمه لمصدر بيانات الفاست ريبورت
قل: اللهم فاطِرَ السماوات والأرض عالم الغيبِ والشهادة، ربَّ كُلِّ شَيءٍ ومَلِيكَه، أَشْهد أن لا إله إلا أنت، أعوذ بك من شرِّ نفسي وشرِّ الشيطان وشِرْكِهِ وأن أقترف على نفسي سوءًا أو أجرُّه إلى مسلم
المشاركات : 421
المواضيع 77
:
: 195
الإنتساب : Dec 2008
10-10-2020, 07:40 PM
(آخر تعديل لهذه المشاركة: 10-10-2020, 07:43 PM بواسطة ALG2009.)
(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
أريد أن أكتب كود صحيح ومنطقي لا أريد أن أبرمج وأن يشتغل الكود ولا يهمني شكل الكود لهذا سألت ووجد الحل و أتمنى أن يكون صحيح ولا يحدث بطئ في حال كانت قاعدة البيانات كبيرة
كل من 1 user says قال شكرا ل ALG2009 على المشاركة المفيدة1 user says Thank You to ALG2009 for this post
• Delphi4Us
المشاركات : 1,677
المواضيع 349
:
: 1,069
الإنتساب : Nov 2013
لا اعتقد ان هناك مشكلة بقاعدة بيانات كبيرة
يعني انت استغنيت عن استخدام OnCalcFields واستخدمت الاجراء المذكور للتوضيح فقط
قل: اللهم فاطِرَ السماوات والأرض عالم الغيبِ والشهادة، ربَّ كُلِّ شَيءٍ ومَلِيكَه، أَشْهد أن لا إله إلا أنت، أعوذ بك من شرِّ نفسي وشرِّ الشيطان وشِرْكِهِ وأن أقترف على نفسي سوءًا أو أجرُّه إلى مسلم
المشاركات : 421
المواضيع 77
:
: 195
الإنتساب : Dec 2008
(10-10-2020, 08:39 PM)Delphi4Us كتب : لا اعتقد ان هناك مشكلة بقاعدة بيانات كبيرة
يعني انت استغنيت عن استخدام OnCalcFields واستخدمت الاجراء المذكور للتوضيح فقط
ما دام الحقل المحسوب لم يظهر قمت بحسابه في الاستعلام وأظنه نفس الشيء كما قلت جزاك الله خيرا
المشاركات : 1,677
المواضيع 349
:
: 1,069
الإنتساب : Nov 2013
بامكانك مراجعة الدرس التالي ايضا للاخ ابو معاذ فيه طريقة اجراء المجاميع في التقرير نفسه يمكن ان يفيدك
https://delphi4arab.net/forum/showthread...5#pid52035
ملاحظة ما يميز استخدام الحدث OnCalcFields هو انه بامكانك اجراء عمليات معقدة
قل: اللهم فاطِرَ السماوات والأرض عالم الغيبِ والشهادة، ربَّ كُلِّ شَيءٍ ومَلِيكَه، أَشْهد أن لا إله إلا أنت، أعوذ بك من شرِّ نفسي وشرِّ الشيطان وشِرْكِهِ وأن أقترف على نفسي سوءًا أو أجرُّه إلى مسلم