سلام
سئوالات دوستان در انجمن من رو بر آن داشت تا مختصر اطلاعاتی در خصوص کار با کریستال ریپورت رو برای شما در فروم قرار بدم.
1. .حق انتخاب:
اولا توجه کنید که با توجه به عدم احترام از طرف ما برای حق کپی رایت و در اختیار بودن امکانات نرم افزاری به صورت مکفی بنابراین ترس رو کنار گذاشته و نرم افزارهای حرفه ای رو برای کارتون در نظر بگیرید
2. استارت:
سعی کنید گزارشاتتون رو با نرم افزار کریستال ریپورت بسازید من خودم نسخه کریستال 2008 developer رو استفاده میکنم این نسخه موجود ترین نسخه بازار است
3.
وقتی یک گزارش رو با کریستال ریپورت محیا میکنید کار بسیار ساده است با انتخاب روش wizard همه روال به صورت یک روال ساده از ساخت یک کانکشن تا نحوه نمایش رکورد به صورت ساده قابل انجام است.

4.من فرض رو بر این میزارم که شما یک گزارش ساختید اون رو به پروژتون اضافه کنید این رو هم فکر کنم همه بلدن مثل اضافه کردن هر فایلی به گزارش
5. به فرمتون یک crystal report viewer اضافه کنید
6. گوشه crystal report viewer یک فلش کوچک است که در واقع به شما این امکان رو میده تا تنضیماتی رو برای نمایش دهنده گزارشتون انجام بدید
7. با زدن فلش پنجره کوچکی نمایش داده می شود در قسمت اول این پنجره می توانید سورس گزارش خود را انتخاب نمایید برای قسمت choose report source گزینه new report source را انتخاب کنید حال پنجره ای ظاهر می شود که از شما می خواهد نامی برای سورس خود و یک گزارش برای نمایش انتخاب کنید.اگر در قسمت اضافه کردن فایل گزارش با پروژه درست عمل کرده باشید نام گزارش شما در لیست انتخاب گزارش نمایش داده می شود. و بعد کلیک کردن ok
8.اکنون نمایش دهنده کریستال گارش شما رو نمایش می دهد اگر شما پروژه را اجرا کنید کشاهده می کنید هیچ چیز نمایش داده نمی شود.
9. چرا؟
دلیل این اتفاق اینه که در واقع نمایش دهنده کریستال نمیتونه برای دریافت اطلاعات گزارش به پایگاه داده وصل بشه
10.چه باید کرد؟
باید اطلاعات مربوط به وصل شدن به پایگاه داده به صورت مجزا برای نمایش دهنده کریستال ریپورت تعریف شود
11.
بر روی فرم خود کلیک راست کرده و به حالت نمایش کد برویدفرض کنید که نام صفحه گزارشات شما report.aspx باشد بنابراین صفحه کد شما به طور مثال برای وی بی report.aspx.vb است

12.نوشتن کد:
کدهای زیر را به صفحه اضافه کنبد
[align=left]Private Sub ConfigureCrystalReports()

Dim myConnectionInfo As ConnectionInfo = New ConnectionInfo()
SetDBLogonForReport(myConnectionInfo)
myConnectionInfo.ServerName = ".\sqlexpress"
myConnectionInfo.DatabaseName = "نام دیتابیس"
myConnectionInfo.UserID = "یوزر ورود به sql server"
myConnectionInfo.Password = "پسورد "
myConnectionInfo.IntegratedSecurity = 1

End Sub


Private Sub SetDBLogonForReport(ByVal myConnectionInfo As ConnectionInfo)
Dim myTableLogOnInfos As TableLogOnInfos = CrystalReportViewer1.LogOnInfo
For Each myTableLogOnInfo As TableLogOnInfo In myTableLogOnInfos
myTableLogOnInfo.ConnectionInfo = myConnectionInfo
Next
End Sub[/align]
و همچنین برای رویداد بالا آمدن صفحه کدی را برای صدا زدن تابع بالا می نویسیم.
مانند زیر:
[align=left]Protected Sub Page_Init(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Init
ConfigureCrystalReports()


End Sub[/align]
و همچنین

[align=left] Protected Sub CrystalReportViewer1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles CrystalReportViewer1.Load
CrystalReportViewer1.ReportSource = Server.MapPath(DropDownList1.SelectedValue.ToStrin g)
CrystalReportViewer1.RefreshReport()
End Sub[/align]
13.پویا سازی:
برای اینکه گزارش شما پویا باشد می بایست در روال به روز شدن گزارش اتصال به پایگاه داده تعریف گردد بنابراین هر بار گزارش نمایش داده می شود قبل از آن اطلاعاتش به روز شده.
[align=left]Protected Sub CrystalReportViewer1_ReportRefresh(ByVal source As Object, ByVal e As CrystalDecisions.Web.ViewerEventArgs) Handles CrystalReportViewer1.ReportRefresh
CrystalReportViewer1.ReportSource = Server.MapPath("نام گزارش")
ConfigureCrystalReports()

End Sub[/align]
اما توضیح تکمیلی:
در اولین کد یک تابع تعریف شده برای ایجاد تنضیمات برای کریستال ریپورت که برای اتصال به sql server پیکربندی شده است و تنضیمات نام سرور sql و پس از آن نام پایگاه داده یا (دیتابیس) سپس نام کاربری و کلمه عبور اتصال به sql server وارد شده توجه داشته باشید که پس از خط کلمه عبور کدی وارد شده که مشخص می کند از امنیت ویندوز برای اتصال به sql server استفاده می شود یعنی اگر در موقع نصب sql server شما انتخاب کرده باشید که به صورت windows mode به sql server وصل می شود باید این کد موجود باشد اما اگر در سرور خود یوزر و پسورد خاصی برای اتصال تعریف کرده باشید اولا این کد را حذف کنید
myConnectionInfo.IntegratedSecurity = 1
ثانیا یوزر و پسورد را با دقت مشخص کنید


ااین کد
Protected Sub Page_Init(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Init
ConfigureCrystalReports()

End Sub
کریستال ریپورت را پیش از بارگزاری گزارش به پایگاه داده متصل می کند

کد زیر:
Protected Sub CrystalReportViewer1_ReportRefresh(ByVal source As Object, ByVal e As CrystalDecisions.Web.ViewerEventArgs) Handles CrystalReportViewer1.ReportRefresh
CrystalReportViewer1.ReportSource = Server.MapPath("نام گزارش")
ConfigureCrystalReports()

End Sub

باعث می شود تا هربار گزارش refresh می شود به روز گردد


و کد زیر:
Protected Sub CrystalReportViewer1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles CrystalReportViewer1.Load
CrystalReportViewer1.ReportSource = Server.MapPath("نام گزارش")
CrystalReportViewer1.RefreshReport()
End Sub
باعث می شود تا هر بار گزارش بالا می آید پویا باشد.

امیدوارم این آموزش مفید به فایده باشد
در نظر سنجی مربوط به میزان مفید بودن آموزش شرکت کنید.

چندین پروژه آماده با asp.net ,vb.net,crystal 2008 با نازلترین قیمت به فروش می رسد. ali10062010@yahoo.com,1006corp@gmail.com