بیان مسأله
هنگام تلاش برای ایجاد سرویسهای گزارش سرور SQL، که بر اساس دادههای فهرست شیرپوینت هستند، که ممکن است مجبور شویم پارامترهای فیلتر را در گزارش ایجاد کنیم تا دادههای گزارش اصلی را فیلتر کنیم. با این حال، هنگام ایجاد، فیلترها بر اساس ستون فهرست شیرپوینت از دادههایی که از لیست خارج میشوند، میتوانند حاوی مقادیر تکراری باشند، همانطور که در زیر نشان داده شده است. هیچ روش خارج از جعبه ای برای حذف مقادیر تکراری وجود ندارد.
با این حال، SSRS گزینه ای برای اضافه کردن کد ویژوال بیسیک برای مقابله با این نوع موقعیت ها را فراهم می کند. خواهیم دید که چگونه از کدهای ویژوال بیسیک برای پاک کردن موارد تکراری و حفظ مقادیر منحصر به فرد استفاده کنیم.
چگونه انجامش بدهیم
علاوه بر پارامتر اصلی اصلی، یک پارامتر ساختگی نیز برای پیاده سازی منطق ایجاد خواهیم کرد.
بیایید آن را به عنوان 'DummyProductsFilter' بنامیم. آن را به عنوان "مخفی" تنظیم کنید، زیرا فقط برای اجرای داخلی منطق استفاده می شود. ما یک پارامتر اصلی دیگر خواهیم داشت که در رابط کاربری گزارش قابل مشاهده است.
در تب مقادیر موجود، مقادیر را از مجموعه داده گزارش دریافت کنید.
به طور مشابه برای تب مقادیر پیش فرض، مقادیر را از همان مجموعه داده دریافت کنید.
از کد ویژوال بیسیک برای فیلتر کردن مقادیر تکراری استفاده کنید.
مقادیر پارامتر ساختگی به این بلوک کد ارسال می شود که مقادیر منحصر به فرد را به پارامتر اصلی برمی گرداند. کاری که کد انجام می دهد این است که در ابتدا آرایه را مرتب می کند، آیتم فعلی و آیتم قبلی را بررسی می کند. فقط در صورتی که متفاوت باشند، مورد به آرایه اضافه می شود تا برگردانده شود.