PDA

View Full Version : ساختن یک گزارش با استفاده از کریستال ریپورت بطوریکه بتوان به گزارش پارامتر دلخواه خود



tayebeh
چهارشنبه 17 خرداد 1385, 08:05 صبح
ساختن یک گزارش با استفاده از کریستال ریپورت بطوریکه بتوان به گزارش پارامتر دلخواه خود را پاس داد .

1- ابتدا با استفاده از گزینه add new item در پروژه خود یک گزارش کریستال ریپورت ایجاد می کنیم و نام آن را cr1 می گذاریم .
2- از پنجره crystal report gallery نوع گزارش خود را as a blank report انتخاب می کنیم .
3- پس از ok کردن ، پنجره standard report expert ظاهر می شود که دارای چندین سربرگ می باشد . اولین سربرگ آن data می باشد . در این سربرگ ، از قسمت available data sources ، برروی project data که کلیک کنید یک گزینه به نام ado.net dataset ظاهر می شود که از اینجا dataset موردنظر خود را مشخص می کنید .با استفاده از دیتاست موردنظر جدول /جداول خود را انتخاب می کنید .
4- پس از زدن دکمه next فیلدها ظاهر می شوند ، که آنها را هم انتخاب می کنید .
5- مراحل بعدی را باتوجه به نیاز گزارشتان تنظیم می کنید .
6- در آخر هم دکمه finish را کلیک می کنید .
7- تا اینجای کار ، شما قالب گزارش خود را درست کردید.

خوب ، حالا باید یک فرم ایجاد کنید که در این فرم یک شی crystalreportviewer وجود داشته باشد . اسم شی خود را crystalreportviewer1 می گذاریم .سپس یک تکس باکس در فرم می گذاریم و نام آنرا text1 می گذاریم .بعد یک باتن روی صفحه ایجاد می کنید و نام آنرا viewreport می گذاریم . در رویداد کلیک آن کد زیر را می نویسیم .


Private Sub viewreport_click(ByVal sender As System.Object, ByVal e As System.EventArgs)

Dim rpt As New cr1 'The report you created.
Dim myConnection As SqlConnection
Dim MyCommand As New SqlCommand
Dim myDA As New SqlDataAdapter
Dim myDS As New DataSet1 'The DataSet you created.

Try

myConnection = New SqlConnection("Data Source=localhost;Integrated Security=SSPI; Initial Catalog=foods;")
MyCommand.Connection = myConnection
MyCommand.CommandText = "SELECT * FROM foods where id=N'" & text1.text &"'"
MyCommand.CommandType = CommandType.Text
myDA.SelectCommand = MyCommand
myDA.Fill(myDS, " foods")
rpt.SetDataSource(myDS)
CrystalReportViewer1.ReportSource = rpt

Catch Excep As Exception
MessageBox.Show(Excep.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try

End Sub


حالا شما هر مقداری از تکس باکس را می توانید به کوئری خود پاس دهید .
باتشکر از شما