ارسال همزمان چند DataTable به StimulSoft Report
برای ارسال چند Datatable به StimulSoft Report باید چیکار کرد.
در یک برنامه سه تا Datatable دارم
//دیتاتیبل 1
DataTable dtPart= new DataTable();
dtPart.Columns.Add("PartsNumber");
dtPart.Columns.Add("PartName");
//دیتاتیبل 2
DataTable dtDelay= new DataTable();
dtDelay.Columns.Add("DelayName");
dtDelay.Columns.Add("NoteDelay");
dtDelay.Columns.Add("DurationDelay");
//دیتاتیبل 3
DataTable dtDesc= new DataTable();
dtDesc.Columns.Add("DescWork");
dtDesc.Columns.Add("SystemName");
dtDesc.Columns.Add("DateRepair");
dtDesc.Columns.Add("durationRepair");
که پس از مقدار دهی به این جداول جهت ارسال به StimulSoft از دستورات زیر استفاده میکنم
StiReport report = new StiReport();
string fileReport = "Report\\ReportTest.mrt";
string myfile = System.AppDomain.CurrentDomain.BaseDirectory + fileReport;
report.Load(myfile);
report.Compile();
report.RegData(dtDelay);
report.RegData(dtDesc);
report.RegData(dtPart);
report.Show();
اما در گزارش فقط داده های جدول dtPart نمایش داده میشود و اگر دستورات آخر را به صورت زیر قرار دهیم فقط اطلاعات جدول dtDesc نمایش داده می شود
report.RegData(dtDelay);
report.RegData(dtPart);
report.RegData(dtDesc);
report.Show();
و به همین ترتیب اگر دستور report.RegData(dtDelay) را قبل از report.Show قرار دهیم اطلاعات جدول dtDelay به گزارش ارسال میشود.
جهت رفع این ایراد باید چکار کرد.
در ضمن برنامه ویندوزی می باشد.
پاسخ هوش مصنوعی
برای ارسال همزمان چند DataTable به StimulSoft Report و اطمینان از اینکه تمامی داده ها به درستی نمایش داده شوند، شما باید از یک روش مناسب برای مدیریت داده ها در گزارش استفاده کنید. در StimulSoft، باید نام مستعار (Alias) برای هر DataTable تنظیم کنید تا آنها به طور مستقل از هم شناسایی شوند.
در ادامه، چگونگی اضافه کردن DataTable ها با نام مستعار را نشان می دهم:
StiReport report = new StiReport();
string fileReport = "Report\\ReportTest.mrt";
string myfile = System.AppDomain.CurrentDomain.BaseDirectory + fileReport;
report.Load(myfile);
report.Compile();
// ثبت DataTable ها با نام مستعار
report.RegData("dtPart", dtPart);
report.RegData("dtDelay", dtDelay);
report.RegData("dtDesc", dtDesc);
report.Show();
با اجرای این کد، همه DataTable ها به گزارش اضافه خواهند شد و شما می توانید در طراحی گزارش از نام های مستعار استفاده کنید تا داده های مربوط به هر DataTable را جداگانه نمایش دهید.
لطفاً دقت نمایید که در طراحی گزارش شما، کنترل های جداگانه ای برای نمایش داده های مربوط به هر DataTable وجود داشته باشد تا اطلاعات به درستی نمایش یابند.
امکان ارسال چند DataTable به این روشی که شما نوشتید وجود نداره. لینک زیر رو مطالعه کنید 2...3 روش برای این کار گفته شده.
سلام. این موردی که در لینک ارسالی فرستادید قبلا تست کردم اما باز هم داده ای به گزارش ارسال نمی شود و گزارش بدون داده نمایش داده میشود.
در لینک زیر نمونه برنامه رو قرار دادم.ممنون میشم کد ها رو یک بررسی کنید
سلام.یک روش واسه انتقال چند دیتاتیبل پیدا کردم که گفتم در اینجا بیان کنم.
بعد از مقدار دهی به دیتاتیبل ها باید آنها را در یک دیتاست لود کنیم.
DataSet ds = new DataSet();
datatable1.TableName = "datatable1";
datatable2.TableName = "datatable2";
datatable3TableName = "datatable3";
ds.Tables.Add(datatable1);
ds.Tables.Add(datatable2);
ds.Tables.Add(datatable3);
بعد از آن باید دیتاست رو به یک فایل xml منتقل کنیم.
ds.WriteXml("Report\\Report.xml");
دراینجا مقادیر موجود در دیتاتیبل ها در یک فایل xml نوشته شد.
در اینجا برنامه را یک بار اجرا کرده تا فایل xml ایجاد شود.
حالا باید فایل گزارش در استیمول سافت را طراحی کنیم.
یک فایل جدید در برنامه استیمول سافت دیزاینر باز کرده و به تعداد هر جدول یک subReport به جدول اضافه میکنیم.
در مرحله بعد باید جداول ها را در استیمول سافت اضافه کنیم.
برای اینکار باید از فایل xml را درون استیمول سافت اضافه کنیم.
برای اینکار از قسمت data source گزینه new data source را انتخاب و روی xml کلیک میکنیم.
از پنجره باز شده باید فایل xml مورد نظر را انتخاب کنیم و OK را میزنیم.
و سپس از پنجره باز شده جداول مورد نظر را انتخاب میکنیم و OK را میزنیم
در اینجا حداول مربوط به برنامه اضافه شده و میتوان هر کدام را در subreport مورنظر قرار دهیم
حال می توانید برنامه را اجرا و گزارشگیری نمایید.
- آموزش استفاده از پلاگین گردونه شانس در Asp.net core به همراه سورس
- نمایش متن به صورت فرمت شده در CkEditor
- آموزش استفاده از SignalR در Asp.net Core با مثال عملی
- ادغام چند گزارش استیمول سافت بصورت پی دی اف در یک فایل
- نحوه تغییر استایل کامپوننت select2 چگونه است ؟
- چگونه امنیت پروژه را در Asp.net Core افزایش دهیم ؟
- ارسال پارامتر در دستور window.open جی کویری
- ارسال پارامتر از طریق جاوااسکریپت با کلیک روی تگ a
- خطای 500 زمان اجرا شدن پروژه روی هاست
- کویری نویسی در استیمول سافت جهت فیلتر اطلاعات
- مشکل تاریخ شمسی در سی شارپ
- نمایش گزارش stimulsoft روی کلاینت
- تفاوت های سی شارپ 8 با نسخه های قبلی چیه؟
- انتخاب چند سطر دلخواه توسط چک باکس در DataGrid و محاسبه جمع سطرهای انتخاب شده
- نمایش نوتیفکیشن در سی شارپ
- ارسال پارامتر از سی شارپ به استیمول سافت
- عدم نمایش عکس در دیتاگرید ویو در wpf
- Library Animation برای کنترلهای WPF
- مشکل در تغییر مقدار Text کنترل RibbonBar در کامپوننت DevExpress
- قرار دادن مقادیر ارسالی یک ستون از جدول به صورت سطری در استیمول