استفاده از توابع پارامتریک در طراحی گزارشات چاپی تدبیر-بخش دوم
تذکر: به لحاظ نیاز به آشنایی با SQL، نحوۀ طراحی گزارشات چاپی تدبیر و همینطور آشنایی با مفاهیم تحلیل و طراحی پایگاه دادهها، بحث این نوشته؛ زیرساختی و مخاطب آن -بیشتر- مدیران فنی سیستم مالی تدبیر و نمایندگان و کارکنان بخشهای استقرار و پشتیبانی شرکت پردازش موازی سامان هستند. کاربری عادی نرمافزارهای تدبیر نیازی به یادگیری این مفاهیم ندارد.
صورت مسئلۀ مثال بعدی ما این است: میخواهیم در چاپ فاکتور فروش، به ازای هر سطر اقلام کالا، مبلغ اضافات فاکتور فروش، بر اساس نسبتِ مبلغ کل سطر؛ به جمع کل مبلغ همۀ سطرها تسهیم شده، به عنوان «اضافات سطر» نمایش داده شود. فرضاً اگر اضافات کل فاکتور فروش ما ۱۰۰۰۰ ریال است و در سطر اول از کالای شماره ۱ با قیمت واحد ۱۰۰۰۰ ریال ۱۰ عدد و در سطر دوم از کالای شماره ۲ با قیمت واحد ۲۵۰۰۰ ریال ۶ عدد داریم (جمع مبلغ کالاها: ۱۰۰۰۰*۱۰+۲۵۰۰۰*۶ = ۲۵۰۰۰۰) اضافات سطر کالای شماره ۱ برابر نسبت (۲۵۰۰۰۰)/(۱۰*۱۰۰۰۰)=۰٫۴ ضرب در اضافات کل (۱۰۰۰۰) و برابر با ۴۰۰۰ ریال و با همین محاسبه اضافات سطر کالای شماره ۲ برابر ۶۰۰۰ ریال خواهد بود. تصویر زیر گزارش چاپی پیشفرض را برای مثال یاد شده نمایش میدهد.
همچنان که از صورت مسئله مشخص است پیشنیاز نمایش چنین اطلاعاتی در گزارش چاپی آن است که بتوانیم «سهم اضافات هر سطر» را با توجه به سناریوی تسهیم تعیین شده محاسبه کنیم. برای این کار ابتدا از طریق منوی «امکانات»، فرمان «گزارشات پارامتریک» را اجرا کرده، با استفاده از کلید ترکیبی Alt+E پنجرۀ «موجودیتهای تعریف شده» را باز میکنیم. از کمبوی «سیستم» عنوان «خرید و فروش» و از کمبوی «نوع» عنوان «عملیات» را انتخاب میکنیم. از فهرست موجودیتهای قابل انتخاب روی «فاکتور فروش» دو بار کلیک میکنیم تا فهرست موجودیتهای وابسته به آن را مشاهده کنیم.
ردیف «ریز اقلام فاکتور فروش» را انتخاب و سپس کلیک راست کرده و فرمان «ایجاد کپی از موجودیت ردیف جاری» را اجرا میکنیم (علت این کار آن است که سیستم اجازۀ تغییر موجودیتهای سیستمی -یعنی آن دسته از موجودیتها که در ستون «ردیف» آنها نماد «قفل» نمایش داده میشود- را نمیدهد و ما برای حل مسئلۀ خودمان نیاز داریم فیلد محاسباتی اضافات سطر را به موجودیت «ریز اقلام فاکتور فروش» اضافه کنیم، با ایجاد کپی -چون کپی یک موجودیت سیستمی یک موجودیت کاربری است- سیستم اجازۀ اصلاح آن را میدهد و میتوانیم از آن استفاده کنیم).
فرمان ایجاد کپی، موجودیت «کپی ریز اقلام فاکتور فروش» را با نما (VIEW در SQL)ی کپی شدهاش (با نام پیشفرض UD___TPRSalesFactorArticleView__ ) میسازد. ما برای اضافه کردن فیلد محاسباتی مورد نظرمان از طریق Microsoft SQL Server Management Studio به سراغ دیتابیس شرکت رفته و VIEWی مورد نظر را پیدا کرده آن را برای ویرایش باز میکنیم.
عبارت محاسباتی مورد نظر ما برای محاسبۀ اضافات سطر چیزی شبیه شکل زیر است. آن را به صورت یک فیلد جدید (اضافات سطر) به نمای موجودیت جدید اضافه کرده و آن را ذخیره میکنیم (به نسبت کد پیشفرض، الیاس spa برای جدول اصلی نما یعنی __SPArticle__ تعریف شده تا تداخل با عبارت داخلی برطرف شود).
به محیط تدبیر باز میگردیم، ردیف «کپی ریز اقلام فاکتور فروش» را انتخاب کرده، روی دکمۀ «فیلدها» کلیک میکنیم. در پنجرۀ «فیلدهای موجودیت» روی دکمۀ «ایجاد نما» کلیک میکنیم.