چند دیتا سورس به عنوان ورودی داده
اهمیت: عادی نوع: درخواست راهنمایی شماره نگارش: 2.1
سلام

آیا امکان استفاده از چند دیتا سورس وجود داره
که بطور مثال یکی از دیتا سورس‌ها بصورت اتوماتیک فیلد ایجاد کنه و یکی هم سفارشی قرار بگیره
به این دلیل این سوال رو دارم که من یه گزارش سفارشی می‌خوام ایجاد کنم ولی دیتا که از دیتابیس میحونم با Pivot چند سطر به ستون تبدیل شده و این حالت داینامیک داره و من نمیدونم دیتای من با چند ستون برمیگرده که از پیش آماده کنم 
میخوام ببینم میش اطلاعات استاتیکم رو با یک دیتا سورس بخونم و سفارشی قرار بدم 
و اطلاعات داینامیکم رو به صورت اتوماتیک براش فیلد قرار بدم در خروجی
متشکرم از شما و وقتی که میگذارید
  • #
    ‫۱۱ سال و ۲ ماه قبل، شنبه ۱۹ مرداد ۱۳۹۲، ساعت ۰۱:۵۰
    از چند دیتاسورس استفاده کنید و نهایتا با ترکیب این‌ها (شبیه به مباحث projection در LINQ) یک خروجی مشخص را ایجاد کنید (و در آخر از AnonymousTypeListDataSource برای پردازش آن استفاده کنید).
    مثال گزارش حضورغیاب از همین نوع است. سه ستون اول شماره، نام و تاریخ آن ثابت است و ستون‌های بعدی آن پویا هستند و کاملا متغیر. مثلا یک شخص ممکنه در طول روز 2 بار کارت بزنه، روز بعد 4 بار یا روز بعدش 8 بار.
    مثال گزارش Dynamic cross tab هم بر همین مبنا تهیه شده.
    • #
      ‫۱۱ سال و ۲ ماه قبل، شنبه ۱۹ مرداد ۱۳۹۲، ساعت ۰۵:۰۲
      خیلی خیلی ممنونم  از توضیحات شما
      البته من در اس کیو ال عمل Pivot  رو انجام میدادم که با توضیحات شما اون رو به این روش تغییر دادم
      الان من وقتی این کار رو انجام میدم دیباگ که میکنم دیتا مورد نظر من ایجاد میشه اما این خطا به من داده میشه
      Source should be the result of the CrosstabExtension.Pivot method here 
      و کد به این صورت نوشته شده است :
       .MainTableDataSource(dataSource =>
                                        {
                                            var crossTabList = Evaluations_Result.Pivot(x => new
                                            {
                                                گروه_سوال = x.QuestionGroupName,
                                                سوال = x.QuestionName,
                                                وزن = x.QuestionWeight.Value
                                            },
                                                x1 => x1.IndexName,
                                                x2 => x2.Count(x => x.IndexName != null));
                                            dataSource.Crosstab(crossTabList);                                    
                                        })
                                        .MainTableAdHocColumnsConventions(adHocColumnsConventions =>
                                        {
                                            adHocColumnsConventions.ShowRowNumberColumn(true);
                                            adHocColumnsConventions.RowNumberColumnCaption("ردیف");
                                        })
                                        .MainTableSummarySettings(summarySettings =>
                                        {
                                            summarySettings.OverallSummarySettings("جمع کل");
                                            summarySettings.PageSummarySettings("جمع صفحه");
                                        })
                                        .MainTableEvents(events =>
                                        {
                                            events.DataSourceIsEmpty(message: "اطلاعاتی برای نمایش وجود ندارد.");
      }
      و  Evaluations_Result پاسخ یک StoreProcedure است که از سمت دیتابیس میاد
      • #
        ‫۱۱ سال و ۲ ماه قبل، شنبه ۱۹ مرداد ۱۳۹۲، ساعت ۰۶:۰۳
        - این خطا یعنی در دیتاسورس شما PropertyName (نام ستون) قابل تشخیص نیست یا نال و خالی است.
        - اگر pivot رو در سمت بانک اطلاعاتی تشکیل دادید، اصلا نیازی به روش فوق نیست. لیست رو به یک دیتاسورس لیستی معمولی پاس بدید. قسمت تعاریف ستون‌ها رو حذف کنید. به صورت خودکار ستون‌های پویا تشکیل خواهند شد.