سؤال

أقوم بإنشاء تقرير "رئيسي" في SSRS 2008 والذي يتعاون مع التقارير الأخرى حول شخص ما.في بعض الأحيان، لا تكون جميع التقارير الأخرى ذات صلة، وبالتالي لا تُرجع أي شيء.أود أن أكون قادرًا على استبعاد هذا من التقرير الرئيسي حتى لا يترك صفحة فارغة.

أنا على دراية بميزة "عدم وجود صفوف من الرسائل"، ولكن الصفحة الكاملة التي تحتوي ببساطة على عبارة "لا ينطبق على هذا الشخص" لا تعد الحل الأفضل!

أنا أبحث بشكل أساسي عن طريقة لتحديد ما إذا كان التقرير الفرعي "فارغًا" واستخدامه في تعبير الرؤية.

اقدر اى مساعدة

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

المحلول

حسنًا، لقد فهمت هذا الآن.الجواب هو وضع التقرير الفرعي في مستطيل.ثم اضبط رؤية المستطيل على شيء مثل هذا:

=IIF(First(Fields![SOMEFEILD].Value, "[SOMEDATASET]") IS NOTHING, TRUE, FALSE)

أين [SOMEDATASET] هي مجموعة بيانات تتم تعبئتها بنفس الطريقة التي تتم بها تعبئة التقرير الفرعي.ثم إذا كان التقرير الفرعي فارغًا، إذن [SOMEDATASET] سيكون أيضًا فارغًا، وأكثر من ذلك، الحقل [SOMEFEILD] سيكون مساويا ل NOTHING.

بادا بنج!تقرير واحد غير مزدحم بالصفحات الفارغة التي تهدر الورق.

ملحوظة:هناك تأثير جانبي سيء لهذا الأسلوب، وهو أن خادم SQL سيرسل نفس المعلومات مرتين، مرة لملء مجموعة بيانات التقرير الفرعي، ومرة ​​أخرى لملء مجموعة البيانات المكررة في التقرير.بالنسبة لي، هذا أمر مقبول، وقد يرغب الآخرون في أن يكونوا على علم بذلك.

نصائح أخرى

وهذا الحل يعمل بالنسبة لي كما هو متوقع، والقضاء على الارتباط التشعبي إلى subrepot. داخل «العمل» القائمة في القسم حيث يمكنك تحديد اسم فرعي:

=iif(fields!SomfieldName.Value <> Nothing, "YourSubReportName",Nothing)

والحل بسيط وسهل!

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