PDA

View Full Version : ارسال یک Dataset با 2 دیتاتیبل به Stimulsoft



p30help
دوشنبه 06 شهریور 1391, 21:04 عصر
با سلام و احترام
بنده برای گزارش گیری برنامه ام از Stimulsoft استفاده می کنم
و این رو هم بگم که گزارشی که ساختم ارتباط مستقیم با دیتابیس نداره و از طریق ارسال دیتاتیبل از طریق برنامه ی C#‎‎‎ کار می کنه.
بنده برای ارسال یک دیتا تیبل به گزارشم، کدهای زیر رو در سی شارپ استفاده می کردم:

DataSet ds = new DataSet();
dtSa.TableName = "dtSa";
ds.Tables.Add(dtSa);
Report.RegData(ds);
Report.Show();

که در کد بالا Report یک شی از StiReport است. و با کد بالا و معرفی یک دیتاسورس با نام dtSa در گزارش قشنگ بین سی شارپ و گزارشم ارتباط برقرار میشه و می تونم اطلاعات رو در گزارشم نمایش بدم...
----
اما الان نیاز دارم تا دو تا دیتا تیبل به گزارشم ارسال کنم و اونها رو نمایش بدم. بنابراین از کد زیر استفاده کردم

DataSet ds = new DataSet();
dtP.TableName = "dtP";
dtF.TableName = "dtF";
ds.Tables.Add(dtP);
ds.Tables.Add(dtF);
Report.RegData(ds);
Report.Show();

و در خود گزارشم هم دو تا دیتاسورس با نام های dtP و dtF ایجاد کردم و ستونهای مورد نظر هم داخلش وارد کردم، ولی مشکل اینه که وقتی صفحه ی گزارش نمایش داده میشه هیچ چیزی نمایش داده نمیشه و صفحه کاملاً سفیده.
زمانی هم از طریق سی شارپ یک کدوم از دیتا تیبل ها رو از دیتاست حذف می کنم اون یکی جدول در گزارش بخوبی نمایش داده میشه...
حالا چیکار کنم تا بتونم این دو تا دیتا تیبل رو کنار هم به گزارشم ارسال کنم؟
با تشکر

fakhravari
شنبه 25 شهریور 1391, 01:21 صبح
http://barnamenevis.org/showthread.php?117526-%D8%B3%D9%88%D8%A7%D9%84%D8%A7%D8%AA-%D9%85%D8%B1%D8%A8%D9%88%D8%B7-%D8%A8%D9%87-StimulReport-%D8%B1%D9%88-%D8%AF%D8%B1-%D8%A7%DB%8C%D9%86-%D8%AA%D8%A7%D9%BE%DB%8C%DA%A9-%D9%85%D8%B7%D8%B1%D8%AD-%DA%A9%D9%86%DB%8C%D8%AF&p=1593851&viewfull=1#post1593851

gbmtoday
یک شنبه 29 فروردین 1395, 12:29 عصر
منم همین مشکل رو دارم دقیقا همین مشکل

mahdinayebi
پنج شنبه 13 خرداد 1395, 10:24 صبح
با سلام و احترام
بنده برای گزارش گیری برنامه ام از Stimulsoft استفاده می کنم
و این رو هم بگم که گزارشی که ساختم ارتباط مستقیم با دیتابیس نداره و از طریق ارسال دیتاتیبل از طریق برنامه ی C#‎‎‎‎‎‎ کار می کنه.
بنده برای ارسال یک دیتا تیبل به گزارشم، کدهای زیر رو در سی شارپ استفاده می کردم:

DataSet ds = new DataSet();
dtSa.TableName = "dtSa";
ds.Tables.Add(dtSa);
Report.RegData(ds);
Report.Show();

که در کد بالا Report یک شی از StiReport است. و با کد بالا و معرفی یک دیتاسورس با نام dtSa در گزارش قشنگ بین سی شارپ و گزارشم ارتباط برقرار میشه و می تونم اطلاعات رو در گزارشم نمایش بدم...
----
اما الان نیاز دارم تا دو تا دیتا تیبل به گزارشم ارسال کنم و اونها رو نمایش بدم. بنابراین از کد زیر استفاده کردم

DataSet ds = new DataSet();
dtP.TableName = "dtP";
dtF.TableName = "dtF";
ds.Tables.Add(dtP);
ds.Tables.Add(dtF);
Report.RegData(ds);
Report.Show();

و در خود گزارشم هم دو تا دیتاسورس با نام های dtP و dtF ایجاد کردم و ستونهای مورد نظر هم داخلش وارد کردم، ولی مشکل اینه که وقتی صفحه ی گزارش نمایش داده میشه هیچ چیزی نمایش داده نمیشه و صفحه کاملاً سفیده.
زمانی هم از طریق سی شارپ یک کدوم از دیتا تیبل ها رو از دیتاست حذف می کنم اون یکی جدول در گزارش بخوبی نمایش داده میشه...
حالا چیکار کنم تا بتونم این دو تا دیتا تیبل رو کنار هم به گزارشم ارسال کنم؟
با تشکر


با سلام.

در این حالت به یک نکته مهم باید توجه کنید. زمانی که DataSource را تعریف می کنید، باید Name in Source را به صورت ds.dsList1 تعریف کنید و در زمان دادن RegData هم به صورت زیر کدها را وارد کنید.


StiReport1.RegData("ds.dsList1", dt1)
StiReport1.RegData("ds.dsList2", dt2)

برای تفهیم راحت تر این موضوع به کد نمونه پیوست توجه کنید.

در این کد، اطلاعات از دو دیتاگرید به دو دیتاتیبل ارسال می شود و سپس به گزارش ارسال می گردد.

mandagarana
شنبه 24 آذر 1397, 17:51 عصر
با سلام
فکر میکنم جواب شما وقتی درست که تو حالت دیزاین دو تا جدول نداشته باشیم.اینجا شما اتوماتیک وار دارید مقادیر رو پاس میدید به خود viewer.
تو برنامه من این روش شما کار نکرد.راه حا دیگه ای ندارید؟
ممنون

مهران صرافی
شنبه 24 فروردین 1398, 13:17 عصر
با سلام
من از Entity Framework استفاده می کنم و مقادیر را به صورت لیستی از آبجکت ها می خونه، نه دیتاتیبل. میشه راهنمایی کنید چه کدی را باید بنویسم ؟

samie_shamsi
شنبه 01 آبان 1400, 23:47 عصر
دستت طلا داداش همین جواب بود . :قلب:
ببینید دوستان تنها راه چاره اینه که دو تا DataSource مجزا تعریف کنید و هرکدوم رو جداگانه با تابع RegData پر کنید . برای راحتی کار میتونید از آموزش استاد ایمان مدائنی که در سایت TopLearn.com هم هست استفاده کنید .

دوره پیشرفته آموزش سی شارپ > جلسه 20 . اونجا کامل نحوه ساخت DateTable رو گفتن استاد. حتما سر بزنید