Keyarmin
یک شنبه 27 دی 1388, 14:15 عصر
بسم الله الرحمن الرحیم
سلام به تمام جویندگان علم و ایمان
از اونجایی که ، منم مدتی رو برای پیدا کردن روش ارسال username , password و سایر پارامترهای Connection String SQL وهمچنین پارامترهای گزارش گیری به گزارش Crystal Report درVB.Net هنگام اجرای برنامه و فراخوانی گزارش ، به همه جای اینترنت سرزدم ولی متاسفانه چیز کامل و عملی که بتونم ازش استفاده کنم پیدا نکردم و فقط سرو کلم خونین و مالین شد (!!!) - از بس به همه جا سر زده بودم - که بالاخره با رویی سرخ :خجالت: از یکی از دوستان همکار که قبلا در پروژه ایی این کار را انجام داده روش کار را گرفتم ؛ مصمم شدم کاری رو که همکارمون نکرده بود انجام بدم ؛ و اون کار ، نشر این روش برای استفاده همه جویندگان علمه تا روشون سرخ و سروکلشون خونی نشه ......
:لبخندساده:
و اما شرح بلاغ ...
داشته ها :
1- Microsoft SQL Server 2000 ( برای 2005 خودتون چک کنید )
2- VB.Net 2005 یا 2003 ( برای ورژن های دیگه خودتون چک کنید )
3- گزارش Report Crystal که در Solution ایجاد و تعریف گردیده است ( با نام فرضی Report1.rpt )
4- کنترل CrystalReportViewer با نام فرضی CrystalReportViewer1
5- سایر مواد لازم ....
آنچه میخواهیم :
فراخوانی گزارش مربوطه با نام Report1.rpt و ارسال پارامترهای Connection String SQL به همراه پارامترهای تعبیه شده در گزارش (Parameter Fields) به Report1.rpt
روش کار :
بعد از آنکه کنترل CrystalReportViewer را بر روی فرم مربوطه قرار دادید ، در event (رویداد ) مدنظرتان مثلا در Event Form Load یا هر event مناسب دیگر که میخواهید دستورات زیر را بنویسید
البته دستورات Imports لازمه در ابتدای صفحه کد را فراموش نکنید
Imports CrystalDecisions.CrystalReports.Engine
Imports CrystalDecisions.Shared
Dim RptDoc As New ReportDocument
Dim i As Int32 = 0
Dim mylogoninfo As New rystalDecisions.Shared.TableLogOnInfo
مربوط به پارامترهای تعریف شده در گزارش///'
Dim Params As New ParameterFields
Dim param1 As New ParameterField
Dim param2 As New ParameterField
Dim param3 As New ParameterField
... برای سایر پارامترها هم به همین ترتیب
Dim ParamValue1 As New ParameterDiscreteValue
Dim ParamValue2 As New ParameterDiscreteValue
Dim ParamValue3 As New ParameterDiscreteValue
... برای سایر پارامترها هم به همین ترتیب
آدرس فایل گزارش ///'
"RptAddress = "D:\bin\Reports\ Report1.rpt
(RptDoc.Load(RptAddress
With mylogoninfo.ConnectionInfo
نام سرور///' "ServerName = "Server1.
UserID = "sa" '///SQL User name.
Password = "123" '/// SQL Password.
DatabaseName = "Pubs_TEST" '/// SQL DtatBase Name.
End With
For i = 0 To RptDoc.Database.Tables.Count - 1
(RptDoc.Database.Tables(i).ApplyLogOnInfo(mylogoni nfo
Next i
نام اولین پارامتر گزارش///' "param1.Name = "P_par1
نام دومین پارامتر گزارش///' "param2.Name = "P_par2
... برای سایر پارامترها هم به همین ترتیب
مقدار اولین پارامتر گزارش ///' ParamValue1.Value = 888
مقدار دومین پارامتر گزارش ///' "سعید"= ParamValue2.Value
... برای سایر پارامترها هم به همین ترتیب
(param1.CurrentValues.Add(ParamValue1
(param2.CurrentValues.Add(ParamValue2
... برای سایر پارامترها هم به همین ترتیب
(Params.Add(param1
(Params.Add(param2
... برای سایر پارامترها هم به همین ترتیب
CrystalReportViewer1.ParameterFieldInfo = Params
CrystalReportViewer1.ReportSource = RptDoc
:تشویق::تشویق::تشویق:
به زودی دستورات C# را هم برای جویندگان موضوع در این قسمت مینویسم . ( در واقع براتون پیدامیکنم !!! :لبخند: )
موفق باشید
سلام به تمام جویندگان علم و ایمان
از اونجایی که ، منم مدتی رو برای پیدا کردن روش ارسال username , password و سایر پارامترهای Connection String SQL وهمچنین پارامترهای گزارش گیری به گزارش Crystal Report درVB.Net هنگام اجرای برنامه و فراخوانی گزارش ، به همه جای اینترنت سرزدم ولی متاسفانه چیز کامل و عملی که بتونم ازش استفاده کنم پیدا نکردم و فقط سرو کلم خونین و مالین شد (!!!) - از بس به همه جا سر زده بودم - که بالاخره با رویی سرخ :خجالت: از یکی از دوستان همکار که قبلا در پروژه ایی این کار را انجام داده روش کار را گرفتم ؛ مصمم شدم کاری رو که همکارمون نکرده بود انجام بدم ؛ و اون کار ، نشر این روش برای استفاده همه جویندگان علمه تا روشون سرخ و سروکلشون خونی نشه ......
:لبخندساده:
و اما شرح بلاغ ...
داشته ها :
1- Microsoft SQL Server 2000 ( برای 2005 خودتون چک کنید )
2- VB.Net 2005 یا 2003 ( برای ورژن های دیگه خودتون چک کنید )
3- گزارش Report Crystal که در Solution ایجاد و تعریف گردیده است ( با نام فرضی Report1.rpt )
4- کنترل CrystalReportViewer با نام فرضی CrystalReportViewer1
5- سایر مواد لازم ....
آنچه میخواهیم :
فراخوانی گزارش مربوطه با نام Report1.rpt و ارسال پارامترهای Connection String SQL به همراه پارامترهای تعبیه شده در گزارش (Parameter Fields) به Report1.rpt
روش کار :
بعد از آنکه کنترل CrystalReportViewer را بر روی فرم مربوطه قرار دادید ، در event (رویداد ) مدنظرتان مثلا در Event Form Load یا هر event مناسب دیگر که میخواهید دستورات زیر را بنویسید
البته دستورات Imports لازمه در ابتدای صفحه کد را فراموش نکنید
Imports CrystalDecisions.CrystalReports.Engine
Imports CrystalDecisions.Shared
Dim RptDoc As New ReportDocument
Dim i As Int32 = 0
Dim mylogoninfo As New rystalDecisions.Shared.TableLogOnInfo
مربوط به پارامترهای تعریف شده در گزارش///'
Dim Params As New ParameterFields
Dim param1 As New ParameterField
Dim param2 As New ParameterField
Dim param3 As New ParameterField
... برای سایر پارامترها هم به همین ترتیب
Dim ParamValue1 As New ParameterDiscreteValue
Dim ParamValue2 As New ParameterDiscreteValue
Dim ParamValue3 As New ParameterDiscreteValue
... برای سایر پارامترها هم به همین ترتیب
آدرس فایل گزارش ///'
"RptAddress = "D:\bin\Reports\ Report1.rpt
(RptDoc.Load(RptAddress
With mylogoninfo.ConnectionInfo
نام سرور///' "ServerName = "Server1.
UserID = "sa" '///SQL User name.
Password = "123" '/// SQL Password.
DatabaseName = "Pubs_TEST" '/// SQL DtatBase Name.
End With
For i = 0 To RptDoc.Database.Tables.Count - 1
(RptDoc.Database.Tables(i).ApplyLogOnInfo(mylogoni nfo
Next i
نام اولین پارامتر گزارش///' "param1.Name = "P_par1
نام دومین پارامتر گزارش///' "param2.Name = "P_par2
... برای سایر پارامترها هم به همین ترتیب
مقدار اولین پارامتر گزارش ///' ParamValue1.Value = 888
مقدار دومین پارامتر گزارش ///' "سعید"= ParamValue2.Value
... برای سایر پارامترها هم به همین ترتیب
(param1.CurrentValues.Add(ParamValue1
(param2.CurrentValues.Add(ParamValue2
... برای سایر پارامترها هم به همین ترتیب
(Params.Add(param1
(Params.Add(param2
... برای سایر پارامترها هم به همین ترتیب
CrystalReportViewer1.ParameterFieldInfo = Params
CrystalReportViewer1.ReportSource = RptDoc
:تشویق::تشویق::تشویق:
به زودی دستورات C# را هم برای جویندگان موضوع در این قسمت مینویسم . ( در واقع براتون پیدامیکنم !!! :لبخند: )
موفق باشید