سؤال

لدي موقف في التقارير بيرت. الإصرار الذي أنشأته هو الإصرار على عرض بعض الحقول فارغة بدلاً من الصفر. ينشأ الموقف عندما يكون الحقل في الواقع عبارة عن مجموعة فرعية لا تعيد صفوفًا.

على سبيل المثال ، إذا كان الاختيار يتضمن:

0 as p3,

ثم يتم عرض 0 بخير. ومع ذلك ، فإن Select لديه:

(select sum(other_field) from other_table where ...) as p3,

الحقل يعرض فارغًا.

يؤدي تعديل البيانات بحيث يؤدي وجود الصفوف للرقم الفرعي إلى عرض قيمة ، حتى لو كانت قيمتها الناتجة صفر.

لذلك أنا أفكر في أن Birt يعامل بطريقة ما من صفوف صفر عودة إلى الصفر كخلفي (والذي يعرضه أيضًا كخلية فارغة) بدلاً من الصفر. هل لدى أي شخص أي فكرة عن كيفية إجبار BIRT على عرض 0 من الخلية الفارغة؟

أنا أستخدم DB2/Z V8 إذا احتاج أي شخص إلى نشر إجابة خاصة بـ DBMS ، على الرغم من أن الاقتراحات المستندة إلى البائعين الآخرين ستكون موضع تقدير.

هل كانت مفيدة؟

المحلول

حاول استخدام دالة coalesce لفرض قيمة عندما يكون عمود أو تعبير لاغية.

COALESCE((select sum(other_field) from other_table where ...), 0) as p3,

نصائح أخرى

طريقة أخرى ، على الرغم من أنها ليست أنيقة ولكنها ضرورية في بعض الأحيان (على سبيل المثال ، إذا كنت تنفذ إجراءً مخزنًا أنت لا يمكن أن يتغير) ، سيكون استخدام JavaScript لإجبار عرض "0" في وقت التشغيل.

استخدم التعبير التالي لربط البيانات الخاص بك:

if (dataSetRow["your_data_set"] == null)
{
    0
}
else
{
    dataSetRow["your_data_set"]
}

اعتمادًا على نوع البيانات الذي قد تحتاجه لإضافة عروض أسعار إلى الصفر

"0"

لتمثيل السلاسل ، بدون عروض الأسعار ، يتم التعامل معها على أنها عدد صحيح.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top