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

## Neda_Bagheri

یکی به داد من برسه من می خواهم امکانی برای مدیر بذارم که بتونه گزارش از جدول و ستونهای دلخواهش بگیرد (گزارش پویا) .نمی دونم چه کنم از کریستال باید استفاده کنم یا Report Service Sql ؟ و چطور ؟ توضیح کامل می خوام .

----------


## ardavan

اصولا برای اینگونه گزارشات (پویا) فرمی با ابجکت checkedlistbox طراحی می کنند و فیلدای گزارش در ان لیست می کنند و کاربر فیلد های مورد نظر خودش انتخاب می کنه و شما آن فیلد هارو تو query می گذارید و query می سازید یعنی (پویا) 
حالا آن query می تونید به crystal report و.. پاس بدید.

----------


## Dashti

چه جوری میشه  یک   query  رو به  کریستال  پاس کرد  ؟

----------


## Neda_Bagheri

من لیست جداول و ستونها را به مدیر نشان می دهم و اون می تونه انتخاب کنه مشکل من قسمت report شه . می تونم نام ستونها را به صورت پارامتر بگیرم ولی اصولا چون با کریستال به صورت ویزاردی کار می کنم و در قسمت Expert جدولی که می خوام گزارش تهیه کنم وارد کرده و فیلدهای اونو می کشم روی صفحه ، برای همین نمی دونم اگر Table را نخوام به صورت ویزاردی بیارم چطور می تونم فیلداشو تعریف کنم .

----------


## Neda_Bagheri

یکی یه راه حل برای من پیدا کنه

----------


## __H2__

سلام



> چه جوری میشه یک query رو به کریستال پاس کرد ؟


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

----------


## حامد فراست

سلام خدمت h2عزیز
 گفتی که SetDataSource چیز های زیادی رو بجای منبعش میگیره  یه نگاه به این کد من بکن بیبن کجاش اشتباه که فیلتر نمیشه .Dim ds As myDataSet = New myDataSet
            'Me.SqlDataAdapter1.SelectCommand.CommandText = "SELECT  *   FROM   reportv   WHERE  (name ='حامد') AND (last_name ='فراست')"
            Me.SqlDataAdapter1.Fill(ds, "reportv")

            Dim rp_pth As String = Application.StartupPath & "\" & "CrystalReport1.rpt"
            reportDocument1.Load(rp_pth)
            reportDocument1.SetDataSource(ds)
          
            Me.CrystalReportViewer1.ReportSource = reportDocument1
 ممنون

----------


## __H2__

سلام
اگر منظورتان شرط WHERE است که در دستور SELECT آورده اید، اگر کد همین است باید اجرا شود و اگر نشد دوحالت دارد!
1) هیچ چیز نشان نمیدهد!
 در این حالت و با این کد شما، احتمالاً مشکل از کدینگ کاراکترها است، مثلاً کد شرط را با نام های انگلیسی امتحان کنید و اگر از بانک SQL Server استفاده میکنید یک N قبل از شروع تک کوتیشنها بیاورید و...


2) همه چیز را نشان میدهد!
در این حالت یا DataSet شما مثل این کد محلی تعریف نشده و یک بار در سطح ماژول تعریف شده و داده های قبلی از پر کردن مجدد، پاک نکرده اید.
یا فایل کریستالتان مشکل دارد و شاید تنظیمات را طوری دستکاری کرده باشید که خودش همواره به منبع مشخصی وصل شود و دستور  SetDataSource عملاً بی استفاده شده. (البته اصلاً مطمئن نیستم همچین تنظیمی داشته باشیم)
در این مورد میتوانید سری هم به این نمونه کد ساده بیاندازید که البته فیلترینگ ندارد ولی کار با  کریستال را در ساده ترین شکل نشان میدهد.

موفق باشید.

----------

