یکی به داد من برسه من می خواهم امکانی برای مدیر بذارم که بتونه گزارش از جدول و ستونهای دلخواهش بگیرد (گزارش پویا) .نمی دونم چه کنم از کریستال باید استفاده کنم یا Report Service Sql ؟ و چطور ؟ توضیح کامل می خوام .
یکی به داد من برسه من می خواهم امکانی برای مدیر بذارم که بتونه گزارش از جدول و ستونهای دلخواهش بگیرد (گزارش پویا) .نمی دونم چه کنم از کریستال باید استفاده کنم یا Report Service Sql ؟ و چطور ؟ توضیح کامل می خوام .
اصولا برای اینگونه گزارشات (پویا) فرمی با ابجکت checkedlistbox طراحی می کنند و فیلدای گزارش در ان لیست می کنند و کاربر فیلد های مورد نظر خودش انتخاب می کنه و شما آن فیلد هارو تو query می گذارید و query می سازید یعنی (پویا)
حالا آن query می تونید به crystal report و.. پاس بدید.
چه جوری میشه یک query رو به کریستال پاس کرد ؟
من لیست جداول و ستونها را به مدیر نشان می دهم و اون می تونه انتخاب کنه مشکل من قسمت report شه . می تونم نام ستونها را به صورت پارامتر بگیرم ولی اصولا چون با کریستال به صورت ویزاردی کار می کنم و در قسمت Expert جدولی که می خوام گزارش تهیه کنم وارد کرده و فیلدهای اونو می کشم روی صفحه ، برای همین نمی دونم اگر Table را نخوام به صورت ویزاردی بیارم چطور می تونم فیلداشو تعریف کنم .
یکی یه راه حل برای من پیدا کنه
سلام خدمت 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
ممنون
سلام
اگر منظورتان شرط WHERE است که در دستور SELECT آورده اید، اگر کد همین است باید اجرا شود و اگر نشد دوحالت دارد!
1) هیچ چیز نشان نمیدهد!
در این حالت و با این کد شما، احتمالاً مشکل از کدینگ کاراکترها است، مثلاً کد شرط را با نام های انگلیسی امتحان کنید و اگر از بانک SQL Server استفاده میکنید یک N قبل از شروع تک کوتیشنها بیاورید و...
2) همه چیز را نشان میدهد!
در این حالت یا DataSet شما مثل این کد محلی تعریف نشده و یک بار در سطح ماژول تعریف شده و داده های قبلی از پر کردن مجدد، پاک نکرده اید.
یا فایل کریستالتان مشکل دارد و شاید تنظیمات را طوری دستکاری کرده باشید که خودش همواره به منبع مشخصی وصل شود و دستور SetDataSource عملاً بی استفاده شده. (البته اصلاً مطمئن نیستم همچین تنظیمی داشته باشیم)
در این مورد میتوانید سری هم به این نمونه کد ساده بیاندازید که البته فیلترینگ ندارد ولی کار با کریستال را در ساده ترین شکل نشان میدهد.
موفق باشید.