# برنامه نویسی با محصولات مایکروسافت > برنامه نویسی مبتنی بر Microsoft .Net Framework > ابزارهای گزارش سازی >  ارسال یک Dataset با 2 دیتاتیبل به Stimulsoft

## p30help

با سلام و احترام
بنده برای گزارش گیری برنامه ام از 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

https://barnamenevis.org/showthread.p...=1#post1593851

----------


## gbmtoday

منم همین مشکل رو دارم دقیقا همین مشکل

----------


## mahdinayebi

> با سلام و احترام
> بنده برای گزارش گیری برنامه ام از Stimulsoft استفاده می کنم
> و این رو هم بگم که گزارشی که ساختم ارتباط مستقیم با دیتابیس نداره و از طریق ارسال دیتاتیبل از طریق برنامه ی C#‎‎‎‎‎‎‎ کار می کنه.
> بنده برای ارسال یک دیتا تیبل به گزارشم، کدهای زیر رو در سی شارپ استفاده می کردم:
> 
> DataSet ds = new DataSet();
> dtSa.TableName = "dtSa";
> ds.Tables.Add(dtSa);
> Report.RegData(ds);
> ...



با سلام.

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

StiReport1.RegData("ds.dsList1", dt1)
        StiReport1.RegData("ds.dsList2", dt2)
برای تفهیم راحت تر این موضوع به کد نمونه پیوست توجه کنید.

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

----------


## mandagarana

با سلام
فکر میکنم جواب شما وقتی درست که تو حالت دیزاین دو تا جدول نداشته باشیم.اینجا شما اتوماتیک وار دارید مقادیر رو پاس میدید به خود viewer.
تو برنامه من این روش شما کار نکرد.راه حا دیگه ای ندارید؟
ممنون

----------


## مهران صرافی

با سلام
من از Entity  Framework استفاده می کنم و مقادیر را به صورت لیستی از آبجکت ها می خونه، نه دیتاتیبل. میشه راهنمایی کنید چه کدی را باید بنویسم ؟

----------


## samie_shamsi

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

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

----------

