PDA

View Full Version : مشکل در کریستال ریپورت



forozeshfard
سه شنبه 07 آذر 1385, 11:19 صبح
سلام
دوستان من دربرنامه خودم از کریستال ریپورت استفاده می کنم و به این صورت عمل می کند که در یک textbox یک نام می گیرد و در ریپورت جزئیات را نمایش می دهد که تکه کد مورد نظر در زیر آورده شده است .

Dim rpt As New CrystalDecisions.CrystalReports.Engine.ReportDocum ent
Dim var As String
var = TextBox1.Text
Try

rpt.Load("D:\Documents and Settings\mehdi\My Documents\Visual Studio Projects\WindowsApplication8\CrystalReport1.rpt")
rpt.SetParameterValue("name", var)

Catch ex As Exception
MessageBox.Show(ex.Message)
End Try

CrystalReportViewer1.ReportSource = rpt
حالا می خواهم برنامه ام را روی کامپیو تری نصب کنم که کریستال ریپورت ندارد تمام کارهای زیر را انجام می دهم
تمام فایلهایی که باید به Merge Module اضافه کنم :

Crystal_Database_Access2003.msm
2. Crystal_Database_Access2003_enu.msm
3. Crystal_Managed2003.msm
4. Crystal_regwiz2003.msm
5. VC_User_CRT71_RTL_X86_---.msm
6. VC_User_STL71_RTL_X86_---.msm


ضمناً License رو برای فایل Crystal_regwiz2003.msm می دهم

حالا که برنامه را نصب می کنم و در textbox نام مورد نظر را می دهم و می خواهد جزئیات را نمایش دهد یک box باز شده و یپغام load report failed و بعد که ok می کنم یک box جدید باز شده و پیغام invalid report file path را می دهد .خواهشمندم راهنمایی نمایید .
ضمنا فکر می کنم مشکل من در مسیری است که به rpt.load("") می دهم باشد خواهشمند در هر صورت کمک نمایید .

forozeshfard
سه شنبه 07 آذر 1385, 16:28 عصر
خواهشمندم راهنمایی نمایید

forozeshfard
سه شنبه 07 آذر 1385, 22:36 عصر
با سلام
دوستان مشکل من اینجاست که می خواهم مسیر زیر نباشد یعنی با استفاده از یک تابع خودش
مسیر جاری را پیدا کند

rpt.Load("D:\Documents and Settings\mehdi\My Documents\Visual Studio Projects\WindowsApplication8\CrystalReport1.rpt

بعبارت دیگر : فقط لازم باشد بنویسیم
rptload("crystalreport1.rpt")

یعنی با استفاده از یک تابع که جلو فرمول بالا بکار می بریم لازم نباشد مسیر کامل دهیم یا هر راه حل دیگری
با سپاس فراوان

asar_001
چهارشنبه 08 آذر 1385, 08:38 صبح
مگه این گزارش را به پروژه ات add نکردی
اگه add کرده باشی لازم نیست مسیر را برای پیدا کردن اون بدی

fotrosi
چهارشنبه 08 آذر 1385, 10:56 صبح
با سلام

ضمن تایید حرف دوست عزیز asar_001 به هر حال مسیر اجرای برنامه exe پروژهتون application.startuppath هستش.

forozeshfard
چهارشنبه 08 آذر 1385, 17:19 عصر
با سلام
احتراما ضمن تشکر از شما به استحضار می رسانم که من گزارش را به پروزه ام add کرده ام و اگر دقت کرده باشید مسیر کریستال ریپورت را از من می خواهد و حالا که من می خواهم setup برنامه را روی کامپیو تر دیگری نصب کنم مطمئنا مسیر کریستال ریپورت تغییر می کند چون محل نصب برنامه در programfail می باشد حالا نکته این است که programfail در درایو d یا c است که من این را نمی دانم .
حال دنبال تابعی هستم که مسیر جاری را خودش پیدا کند یا راه حل دیگری که لازم به مسیر نباشد و من فقط بخواهم اسم کریستال ریپورت را بدهم .
اگر به کد برنامه نگاه دقیق تر کنید متوجه منظور من می شوید
مجددا از توجه شما متشکرم

forozeshfard
یک شنبه 12 آذر 1385, 16:42 عصر
خواهشمندم راهنمایی کنید

asar_001
دوشنبه 13 آذر 1385, 06:12 صبح
اگه می خوای گزارش را مستقیم چاپ کنی کافیه که بنویسی


Dim rpt As New crystalreport1
rpt.PrintToPrinter(1, True, 0, 0)

اگه میخوای که یه preview هم از گزارشت داشته باشی کافیه که یه فرم بسازی وتوش یه crystalreportviewer بندازی و گزارشت را به اون نسبت بدی:


Dim f As New FrmRepView
f.crystalreportviewer1.ReportSource = rpt
prn.ShowDialog()

اگه با این راه مشکل داری و حتما می خوای که از load استفاده کنی از app.config استفاده کن که قبلا در موردش توضیح داده شده