مشکل با Crystal Report در تعیین DataBase
من می خوام با کریستال ریپورت گزارشی بسازم که شامل نمودار باشه.
وقتی که از طریق ویزارد خود کریستال یه کانکشن جدید به دیتابیس درست می کنم و در داخل کریستال هم یه نمودار درست می کنم و بعد هم با ReportViewer نشونش می دم
همه چیز به خوبی کار میکنه.
اما............اگه در مسیر دیتابیس تغییری ایجاد بشه مثلا نام پوشه ای عوض بشه دیگه هیچ چیزی نمایش داده نمی شه.
من می خوام مسیر دیتابیس را در هنگام اجرای برنامه بدست بیارم و بعد به کریستال ربطش بدم. کد بدست آوردن مسیر که اینه
string DataPath = Application.StartupPath+@"\Data\DataBase.mdb"; //1
حالا ( با توجه به اینکه من یکبار برای کریستال ریپورت تو حالت ویزارد ، کانکشن تعریف کردم و مسیر دیتابیس را مشخص کردم ) چطور می تونم این دیتابیس را در کد نویسی به کریستال ربط بدم که کریستال اطلاعات مورد نیازش را از این دیتابیس بخونه.
البته من چون می خوام نمودار طراحی کنم پس در اول کار مجبورم یه کانکشن جدید تو ویزارد کریستال ریپورت ایجاد کنم. چون برای رسم نمودار باید حتما یه سری فیلد باشه تا کریستال اجازه رسم نمودار را تو حالت طراحی بده.(ایا راه دیگه ای هم هست ؟؟)
یه سوال دیگه ==>> ایا می تونم یه دیتاست را که شامل اطلاعات یه جدول هست به عنوان منبع داده برای کریستال تعریف کنم تا اطلاعات را ازش بخونه ؟؟
راستی من از C# VS 2005 استفاده میکنم.و بانک اطلاعاتی هم Access
نقل قول: مشکل با Crystal Report در تعیین DataBase
طریقه نصب wizard را مرحله ایی میشه بگید
نقل قول: مشکل با Crystal Report در تعیین DataBase
salam be ham
man fekr mikonam moshkele shoma ba feature FIELD DEFINITION toye Crystal Report hal beshe
نقل قول: مشکل با Crystal Report در تعیین DataBase
دوستان من فکر می کنم راه بهتر این باشه که DataSource رو پاس بدیم به گزارش ، نه اینکه مسیر پایگاه رو بدیم به کریستال و بگیم اون برامون عمل فیلترینگ رو انجام بده
ما فقط نتیجه رو پاس می دیم به کریستال
5 ضمیمه
نقل قول: مشکل با Crystal Report در تعیین DataBase
نقل قول:
نوشته شده توسط
mpmsoft
دوستان من فکر می کنم راه بهتر این باشه که DataSource رو پاس بدیم به گزارش ، نه اینکه مسیر پایگاه رو بدیم به کریستال و بگیم اون برامون عمل فیلترینگ رو انجام بده
ما فقط نتیجه رو پاس می دیم به کریستال
سلام ...
منم موافقم ... برای اینکه فقط مسیر رو پاس بدین بایستی توی available datasource از قسمت database Expert گزینه ole db رو انتخاب کنید و دیتابیس رو به اون معرفی کنید ... دیگه نیازی به مسیر دادن نیست فقط کافیه اسم دیتابیس رو بنویسید ... اینجوری
تصاویرو به ترتیب نگاه کنید ...
https://barnamenevis.org/attach...5&d=1214860690
https://barnamenevis.org/attach...6&d=1214860690
https://barnamenevis.org/attach...7&d=1214860690
https://barnamenevis.org/attach...8&d=1214860690
https://barnamenevis.org/attach...9&d=1214860690
بعد این دستورات رو در فرم لودتون که قراره گزارش درون اون نمایش داده بشه بنویسید البته یه crystalreportview روی فرم بزارید ...
Dim strConnection As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=DBTaxitellFile.accdb"
Dim Connection As New OleDbConnection(strConnection)
Dim strSQL As String = "Select * From drivers where ID='" & textbox1.text & "'"
Dim DA As New OleDbDataAdapter(strSQL, Connection)
Dim DS As New DataSet
'Variable to assign the report name
Dim strReportName As String
DA.Fill(DS)
'Pass the reportname to string variable
strReportName = "CardReport"
'Get the Report Location
Dim strReportPath As String = Application.StartupPath & "\" & strReportName & ".rpt"
'Check file exists
If Not IO.File.Exists(strReportPath) Then
Throw (New Exception("Unable to locate report file:" & vbCrLf & strReportPath))
End If
'Assign the datasource and set the properties for Report viewer
Dim rptDocument As New CrystalDecisions.CrystalReports.Engine.ReportDocum ent
rptDocument.Load(strReportPath)
rptDocument.SetDataSource(DS.Tables(0))
rptViewer.ShowRefreshButton = False
rptViewer.ShowCloseButton = False
rptViewer.ShowGroupTreeButton = False
rptViewer.ReportSource = rptDocument
اگر مشکلی داشتین در خدمتم ...
موفق باشید ...
نقل قول: مشکل با Crystal Report در تعیین DataBase
حالا من یک مشکل مشابه دارم اگر دیتابیس رو از نوع ADO.net بگذارید . زمانی که برنامه اجرا بشه هیچی نشون نمیده . کسی می دونه دلیلش چیه؟ من از dataset های پروژه ام استفاده می کنم اونا هم در قسمتهای دیگه برنامه مشکلی ندارن فقط با کریستال مشکل داره.