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

## iranigirl1364

با سلام:
دوستان گرامی به کمکتون نیاز دارم
من در برنامم یک CheckListBox دارم که در قسمت پنجره Properties این ابزار در قسمت  Items حدود 35 مورد با نام دلخواه خودم  قرار دادم که این موارد  مربوط به یک جدول در دیتا بیسم می باشند.
 چه طوری می تونم فقط با نوشتن یک StroeProcedure این امکان رو به کاربر بدم که هر چند تا از این موارد رو که در زمان اجرا در این ChekListBox انتخاب کرد , فقط اون فیلد هایی رو که انتخاب کرده در کریستال ریپورت ببینه؟
اگه ابزار دیگه ای به جز کریستال ریپورت می تونه این کار رو انجام بده, لطفا معرفی کنید و طریقه کار با اون و همچنین کد مورد نیاز رو لطفا اینجا قرار بدهید
لطفا منو راهنمایی کنید.
با تشکر فراوان

----------


## iranrose63

تو لینک زیر یه مثال کامل گزارش گیری داینامیک هست ببین به دردت می خوره
http://www.codeproject.com/KB/cs/Dyn...al_Report.aspx

----------


## iranigirl1364

با اینکه توی این سایت عضو بودم اما نتونستم اون فایلو DownLoad کنم.
میشه لطفا شما اگه اونو DownLoad کردید اینجا بذاریدش(فقط یک مثاله من گزارش گیری پویا رو می خوام توی C#‎.NET Win انجام بدم, آیا امکانش هست؟)
با تشکر فراوان

----------


## اَرژنگ

> با اینکه توی این سایت عضو بودم اما نتونستم اون فایلو DownLoad کنم.
> میشه لطفا شما اگه اونو DownLoad کردید اینجا بذاریدش(فقط یک مثاله من گزارش گیری پویا رو می خوام توی C#‎.NET Win انجام بدم, آیا امکانش هست؟)
> با تشکر فراوان


پروژه ضمیمه شده.

در مورد سوال پست اولتان:"چه طوری می تونم فقط با نوشتن یک StroeProcedure این امکان رو به کاربر بدم که هر چند تا از این موارد رو که در زمان اجرا در این ChekListBox انتخاب کرد , فقط اون فیلد هایی رو که انتخاب کرده در کریستال ریپورت ببینه؟
اگه ابزار دیگه ای به جز کریستال ریپورت می تونه این کار رو انجام بده, لطفا معرفی کنید و طریقه کار با اون و همچنین کد مورد نیاز رو لطفا اینجا قرار بدهید"
کریستال ریپورت اهمیتی به این ماجرا ندارد، منتها اگر میخواهید که ریپورت در کریستال ریپورت نمایش داده بشد داستان دیگری است، میشه گذارشها را در اچ‌تی‌ام‌ال و یا تکست و یا ‌ورد ساخت، ولی سوالات دیگری پیش میاد.

سوالتان را یکمی ساده کنید،اگر  کریستال ریپورت را از سوالتان حذف کنید و فقط بپرسید که 
"چه طوری می تونم فقط با نوشتن یک StroeProcedure این امکان رو به کاربر بدم که هر چند تا از این موارد رو که در زمان اجرا در این ChekListBox انتخاب کرد؟"  کافی است.

سوال دوم این است که "کریستال ریپورت چگونه میتواند هر داتاستی را (تا ۳۶ فیلد) با هم به شکل ژنریک نمایش بده؟

پیدا کردن جواب برایه این ۲ سوال، جداگانه ساده تر است.

----------


## iranigirl1364

با سلام مجدد:
آقای آرژنگ:
به خاطر این مطلبتون ممنونم, دقیقا چیزی است که مد نظر من بود
می شه فایل ضمیمه رو نگاه کنید و در صورت امکان به چند سوال من جواب بدهید؟
با تشکر و احترام فراوان

----------


## iranigirl1364

با عرض سلام مجدد:
می شه لطفا به این فایل برنامه من یک نگاه بیندازید و منو راهنمایی کنید .
با تشکر فراوان

----------


## iranigirl1364

دوستان گرامی:
اگر کسی می دونه چه طوری می شه با توجه به سوالی که مطرح کردم , گزارش گیری پویا رو انجام داد (حتی اگه توی کریستال ریپورت نباشه ,فقط لطفا توی فایلی باشه که قابلیت پرینت هم داشته باشه) , من رو رهنمایی کنید
با تشکر

----------


## اَرژنگ

> دوستان گرامی:
> اگر کسی می دونه چه طوری می شه با توجه به سوالی که مطرح کردم , گزارش گیری پویا رو انجام داد (حتی اگه توی کریستال ریپورت نباشه ,فقط لطفا توی فایلی باشه که قابلیت پرینت هم داشته باشه) , من رو رهنمایی کنید
> با تشکر


اگر از گزارش گیری پویا  منظورتان این است که تعداد فیلدها متغییر باشد و کاربر بتواند با یک چکس باکس اضافه‌اشان کند، میشه یک اس‌کیو‌ال استرینگ به صورت داینامیک ساخت، و فیلدهایی را که قراره استفاده بشند را اضافه کرد. (اگر باید از استورد پروزیجر استفاده بشد، میشه نام فیلدها را به شکل یک آرایه و یا یک رشته به استورد پروسیجر و یا یک ویو داد ).

در مورد فایلی که قابلیت پرینت داشته باشد. یک فایل CSV را میشه با Excel باز کرد و کاربر میتواند بعد از انجام دادن هر عملیات دلخواهی نتیجه را پرینت کند.

اگر این مسئله را به دو قسمت متفاوت تقسیم کنید حل کردن هر قسمت خیلی ساده تر است.

----------


## parisa63

اون قسمت داینامیک گزارش گیری رو می تونی این جوری انجام بدی که توی کریستال ریپورت
query رو این جوری بنویسی{ select * from test where argument1={?argument 
و بعد از توی فرمت با این دستور به این پارامتر مقدار بدی
 test.CrystalReport_moshahede_parvande crm = new test.CrystalReport_moshahede_parvande();
                crm.SetParameterValue("argument1", argument);
                crv_moshahede.ReportSource = crm;

----------


## اَرژنگ

این مثال قسمت اول این کار است. زیاد تعریفی ندارد چونکه از روش استنداردی استفاده نکردم و همینطوری سرهم کردم، اگر یکی اصلاح و بهترش کند ممکند بیشتر به کار بیاد.

در ۲۰۰۸ با استفاده از
LINQ
اینکار  ساده‌تر است

----------


## iranigirl1364

قبل از هر چیز باید از راهنمایی و لطف تک تک شکا دوستان تشکر کنم.
گفته اند امکان گزارش گیری پویا با ابزارهای گزارش گیری  با نام های :Active Reports یا 
StimulReport به راحتی انجام می شه.من  کلی Search  کردم اما به نتیجه ای نرسیدم
می خواستم منو در موارد زیر راهنمایی کنید:
1)آیا امکان استفاده از این ابزارها در سی شارپ وجود داره؟
2)اگه کسی از دوستان لینک دانلود این ابزارها رو به همراه کرکش رو اطلاع داره , لطفا اینجا قرار بده
با تشکر فراوان

----------


## happy65_sh

دوست عزیز منم مشکل شما را داشتم ومشکلم با مراجعه به لینک زیر حل شد . http://www.codeproject.com/KB/cs/Dyn...al_Report.aspx
 Active Reports  هم هزینه ای نزدیک به 60 هزار تومان داره البته چند وقت پیش که من پرس و جو کردم . لینک بالا دقیقا همون کاری را انجام میده که شما می خواهی انجام بدهی یعنی چندتا checklistbox داره و با انتخاب هر کدوم گزارش بر اساس موارد انتخاب شده تغییر می کنه.

----------


## اَرژنگ

> دوست عزیز منم مشکل شما را داشتم ومشکلم با مراجعه به لینک زیر حل شد . http://www.codeproject.com/KB/cs/Dyn...al_Report.aspx
>  Active Reports  هم هزینه ای نزدیک به 60 هزار تومان داره البته چند وقت پیش که من پرس و جو کردم . لینک بالا دقیقا همون کاری را انجام میده که شما می خواهی انجام بدهی یعنی چندتا checklistbox داره و با انتخاب هر کدوم گزارش بر اساس موارد انتخاب شده تغییر می کنه.


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

----------


## iranigirl1364

بازم به خاطر کمک های تمام شما از همه شما ممنونم 
دوست گرامی با آی دی,  happy65_sh :
آقای آرژنگ قبلا همین فایل رو اینجا قرار دادند و من الان باز به سراغ  اون رفتم و از لینک ارسالی شما استفاده کردم .
من یک مشکل دارم و اون اینکه برنامه ای که من ساختم با توجه به مراحلی که در سایت 
CodeProject توضیح داده بود هیچ گونه Error نمی ده و اجرا می شه ولی هیچ مقداری از Database  من در این کریستال ریپورت ویور نمایش داده نمی شه و فقط عنوان ستون ها رو نمایش می ده بدون هیچ مقداری.
دوستان عزیز:
میشه دو فایل زیر رو یک نگاهی بیندازید و منو راهنما یی کنید
فایل WindowsApplication1.zip  سورس برنامه است و فایل DataBase Properties.zip هم خصوصیات و نام پایگاه داده ام در SqlServer  و جدول و نام فیلد ها است
با تشکر و احترام فراوان

----------


## parisa63

واسه activereport توی گوگل data dynamic رو جستجو کن پیداش می کنی!

----------


## iranigirl1364

با سلام:
دوستان گرامی لطفا به آخرین پاسخ من نگاهی بیندازید و  دو تا فایلی رو که ضمیمه کرده ام با نام های :
1)WindowsApplication.zip
2)DataBase Properties.zip
ببینید و منو راهنمایی کنید.
 به کمک شما نیاز دارم.
با تشکر و احترام فراوان

----------


## iranigirl1364

با سلام:
دوستان گرامی لطفا به مطلب  من  که در تاریخ 10 دی ماه  نوشته ام , نگاهی بیندازید و دو تا فایلی رو که ضمیمه کرده ام با نام های :
1)WindowsApplication.zip
2)DataBase Properties.zip
ببینید و منو راهنمایی کنید.
به کمک شما نیاز دارم.
با تشکر و احترام فراوان

----------


## iranigirl1364

با سلام:
من می خواستم یک بار دیگه از همه شما خواهش کنم که لطفا به مطلب  من که  در تاریخ  
10 دی ماه نوشته ام , نگاهی بیندازید و دو تا فایلی رو که ضمیمه کرده ام با نام های :
1)WindowsApplication.zip
2)DataBase Properties.zip
ببینید و منو راهنمایی کنید.
به کمک شما نیاز دارم.
با تشکر و احترام فراوان

----------


## happy65_sh

دوست عزیز اگه دقیقا همراه لینک ارسال شده پیش می رفتی کارت گیر نمی افتاد 
من به فایل های ضمیمه ات نگاه انداختم اول از همه توی Dataset که تعریف کردی نباید نام فیلد هات باشه وباید column ها ت به همراه شمارشون قرار بگیره دوم اینکه Database اضافه شده به Crystal report باید همون Data set ایجاد شده توی برنامه ات باشه تا همون column ها را به report اضافه کنی یه چیز دیگه دقت کن شماره گذاری col ها و column هات یکسان باشه 
امیدوارم مشکلت حل بشه.

----------


## iranigirl1364

با سلام:
من توی DataSet نام Column ها رو هم قرار دادم , اما تغییری حاصل نشد . فکر کنم مشکل از این قسمت که گفتید:DataBase اضافه شده به کریستال ریپورت باید همون Data Set   ایجاد شده در برنامه باشه
*می شه در مورد اینکه من چه طوری DataBase اضافه شده به کریستال ریپورت رو همون* * Data Set  ایجاد شده در برنا مه ام قرار بدم؟*این قسمت رو من سعی کردم مثل توضیحاتش عمل کنم , اما نشد و  مجبور شدم از راه دیگه ای عمل کنم  :ناراحت:  :ناراحت: 
لطفا منو راهنمایی کنید
با تشکر و احترام فراوان

----------


## iranigirl1364

دوستان گرامی:
بالاخره به نتیجه رسیدم 
لازم می دونم از تما می شما دوستان گرامی که توی این مدت در مورد این تاپیک به من با راهنما یی های اثر بخشتون نهایت لطف رو داشتید , تشکر کنم.
*بهترین راه حل برای این مساله در سایت CodeProject که لینکش رو دوستان اینجا قرار دادند , است(البته باید تمامی مراحل توضیح داده شده دقیقا انجام شود)*
بازم ممنونم
با احترام فراوان

----------

