تهیه گزارشات Crosstab به کمک LINQ
تهیه گزارشات Crosstab به کمک LINQ - قسمت دوم
در دنیای واقعی، تهیه گزارشات به سادگی که در اکثر نرم افزارهای گزارش ساز موجود پیش بینی شده است، نیست. در این نوع نرم افزارها، بر اساس یک طراح بصری، تعدادی ستون مشخص، ایجاد شده، منبع دادهای به این ستونها متصل و نهایتا گزارش تهیه میشود. اما اگر همین گزارش دارای تعداد ستونهای متغیری باشد، اغلب این برنامهها ناکارآمد خواهند بود. برای مثال لیست حضور و غیاب دانش آموزان را درنظر بگیرید.
اگر معلمی بخواهد سه روز در هفته را گزارش بگیرد، گزارش نیاز به سه ستون خواهد داشت. اگر 20 روز قبل مد نظر باشد، 20 ستون و همینطور الی آخر.
یا نمونهی دیگری از این دست، گزارش حضور و غیاب پرسنل است. در اینجا بر اساس تعداد باری که شخص کارت میزند، ورود و خروج او محاسبه میشود. این مورد هم تعداد ثابتی نیست. ممکن است یک نفر 8 بار در طول روز کارت بزند، یک نفر فقط دو بار. به علاوه جمع ساعات هم اینجا دیگر عددی نیست و نیاز به فرمول خاصی دارد.
روش حل این نوع مسایل را در PdfReport در مثالهای جدید ذیل میتوانید مشاهده کنید:
1) DynamicCrosstab (یک گزارش Crosstab با تعداد ستون متغیر)
2) WorkedHours (یک گزارش Crosstab با تعداد ستون متغیر به علاوه تابع تجمعی سفارشی محاسبه جمع ساعات اشخاص)
3) ExtraHeadingCells (یک گزارش Crosstab به همراه ردیفهای header اضافی و نحوه تعریف آن)
4) ExpensesCrosstab (یک گزارش Crosstab کلاسیک)
5) PdfA (یک گزارش Crosstab که به صورت استاندارد PdfA تهیه شده است. PdfA حالت خاصی از استاندارد PDF است که برای مستند سازی عموما مورد استفاده قرار میگیرد. رمزنگاری اطلاعات در آن ممنوع است. تصاویر بکارگرفته شده نباید شفاف باشند. قلمهای مورد استفاده حتما باید در فایل مدفون شوند و مواردی از این دست)