PDA

View Full Version : با انتقال فایل اکسس کنارفایل exe کریستال ریپورت نمی تواند گزارش گیری کند-راه حل؟



mah.yar
پنج شنبه 28 دی 1385, 13:30 عصر
موقع ساخت کریستال ریپورت فایل اکسس توی فولدر My Document بود.(تا اینجا برنامه مشکلی نداشت). اما پس از پایان کار وقتی Setup برنامه رو توی یه کامپیوتر دیگه نصب کردم کریستال ریپورت نمیتونه فایل اکسس رو که کنار فایل EXE ست پیدا کنه به همین خاطر پنجره Database Login ظاهر میشه.(برخلاف خود برنامه که به صورت اتوماتیک اطلاعات مربوط به رکوردها رو از فایل اکسس که توی فولدر برنامه هست میگیره .اما حتما باید فایل اکسس رو توی فولدر My Document بذارم تا کریستال بتونه گزارش گیری کنه).

چه جوری میشه به کریستال ریپورت فهموند که فایل اکسس توی همین فولدریه که خودش هست .:عصبانی++:

programmermp
پنج شنبه 28 دی 1385, 13:55 عصر
سلام

ببین عزیز دو تا راه داری

اول اینکه بزاری فایل اکسست توی mydocument بمونه

دوم اینه که توی وی بی دات نت بری و بعد در کریستال ریپورت (توی سیستم خودت) و در

پنجره field explorer روی database Files کلیک سمت راست کنی و گزینه set datasource Location رو انتخاب کنی و تیبل هات رو update کنی در محل جدید

mah.yar
پنج شنبه 28 دی 1385, 14:31 عصر
این روش دوم شما موقتیه. اگه من بازم بخوام جای فولدرم رو عوض کنم چی. تازه تویه یه کامپیوتر دیگه که من برنامه رو نصب کردم اونجا

که وی بی نیست من بخوام تیبل ها رو آپدیت کنم.
به هر حال ممنوم از جوابتون

programmermp
پنج شنبه 28 دی 1385, 14:37 عصر
این روش دوم شما موقتیه. اگه من بازم بخوام جای فولدرم رو عوض کنم چی. تازه تویه یه کامپیوتر دیگه که من برنامه رو نصب کردم اونجا

که وی بی نیست من بخوام تیبل ها رو آپدیت کنم.
به هر حال ممنوم از جوابتون


چرا موقتی مگه توی هر سیستمی که می خواهی برنامتو نصب کنی مرتبا جای

دیتابیست تغییر میکنه

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

دهی می کنی بعد موقع نصب ستاپ هم همونجا دیتابیست رو بزار نصب بشه منظورم

توی فولدری که برنامت نصب می شه اینطوری فکر نکنم مشکلی داشته باشی

تازه اگر هم نخواهی کنار فایل اجرایی برنامت باشه یک جایه ثابت واسش در نظر بگیر توی

سیستم خودت مثلا c:\myapp\db بعد توی ستاپ برنامت کاری بکن که دیتابیست توی همین

مسیر در کامپیتر مقصد نصب بشه

دیگه فکر نمی کنم مشکلی باشه

mah.yar
پنج شنبه 28 دی 1385, 14:44 عصر
فرض کنیم برنامه من توی D:\test هست(هم فایل اجرایی و هم دیتابیس و هم کریستال ریپورت).
و تا اینجا برنامه کار میکنه چون آدرشو میدونه. اما اگه من برنامه رو ببرم توی یه کامپیوتر دیگه و تو شاخه C:\program file\test نصب بکنم اونوقت کریستال ریپورت نمیتونه دیتابی روپیدا کنه چون ادرس قبلیش یه جای دیگه بود.

مال من که اینجوریه. نمیدونم چی کارش کنم.
یکی می گفت با APP مسیر رو برای همیشه کنار خودش در نظر میگیره. APP چیه ایا میشه؟

mah.yar
پنج شنبه 28 دی 1385, 14:53 عصر
چه کار کنم تا برنامه فایل اکسس رو به صورت اتوماتیک از فولدری که فایل Exe توشه پیدا کنه و با این روش برنامه رو هر جا که خواستم جابجا کنم.

programmermp
پنج شنبه 28 دی 1385, 14:59 عصر
مال من که اینجوریه. نمیدونم چی کارش کنم.
یکی می گفت با APP مسیر رو برای همیشه کنار خودش در نظر میگیره. APP چیه ایا میشه؟

فکر کنم منظور از app کد زیر باشه که می شه مسیری که فایل اجرایی برنامت قرار داره

PictureBox1.Image = Image.FromFile(Application.StartupPath & "\sunset.jpg")

application.startup می شه همون مسیری که فایل اجراییت در کامپیوتر خودت هست

اما از این طریق که نمی تونی استفاده کنی برای ادرس دهی دیتابیس به کریستال ریپورت

می تونی من که فکر نکنم بشه

programmermp
پنج شنبه 28 دی 1385, 15:06 عصر
مگه اینکه از کد زیر برای ادرس دهی جدول و فیلدهای کریستال ریپورت استفاده کنی

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

Dim crpt As New CrystalReport1
crpt.Database.Tables.Item(0).Location = Application.StartupPath & ""

crpt یک متغیر از نوع crystal report هست

و بقیه هم که محل دیتابیست رو مشخص می کنه

امیدوارم کار کنه اگه کار کرد به من هم بگو

mah.yar
پنج شنبه 28 دی 1385, 16:12 عصر
دکتون گرم. کار میکنهو جواب میده.

البته باید دستور زیر رو اخرش بنویسی

CrystalReportViewer1.ReportSource = crpt

یعنی به صورت زیر

Dim crpt As New CrystalReport1
crpt.Database.Tables.Item(0).Location = Application.StartupPath & "\test.mdb"
CrystalReportViewer1.ReportSource = crpt

از تلاش شما صمیمانه سپاسگذارم. :تشویق: :تشویق:

programmermp
پنج شنبه 28 دی 1385, 16:25 عصر
دکتون گرم. کار میکنهو جواب میده.

البته باید دستور زیر رو اخرش بنویسی

CrystalReportViewer1.ReportSource = crpt

یعنی به صورت زیر

Dim crpt As New CrystalReport1
crpt.Database.Tables.Item(0).Location = Application.StartupPath & "\test.mdb"
CrystalReportViewer1.ReportSource = crpt

از تلاش شما صمیمانه سپاسگذارم. :تشویق: :تشویق:

خواهش می کنم قابلی نداشت باعث شد خودم یه چیزی یاد بگیرم

در ضمن کدی که گفتی باید اضافه بشه اخرش رو فراموش کردم بنویسم:قهقهه: :قهقهه: :قهقهه:

تست کن ببین رو کامپیوتر دیگه هم جواب می ده با این روش یا نه به من هم بگو

mah.yar
پنج شنبه 28 دی 1385, 16:30 عصر
فکر نکنم روی کامپیوتر دیگه فرقی بکنه جواب میده.
چون روی سیستم خودم هر بلایی سرش اوردم بازم جواب میداد. حتی کل سورس برنامه رو از هاردم پاک کردم و فقط فایل exe و دیتابیس رو توی یه فولدر گذاشتم و بازم جواب میداد.

hosseinhossein
چهارشنبه 01 اسفند 1386, 22:25 عصر
سلام
واقعا به چه سختی با اینجا رسیدید اخه من هم همین مشکل رو دارم یا همون داشتم

visual_sadegh
پنج شنبه 02 اسفند 1386, 10:06 صبح
توی ستاپ برنامت کاری بکن که دیتابیست توی همین
مسیر در کامپیتر مقصد نصب بشه

چطوری می شه توی ستاپ اینکارو کرد؟
ستاپ ساز خود وی بی دات نت.

damanpak
شنبه 30 مهر 1390, 15:10 عصر
سلام دوست عزیز
بهتره جهت ساخت هرگون ستاپی از برنامه های دیگه مثل اینستال شیلد استفاده کنی
اگه از اینستال شیلد استفاده کردی یادت نره InstallShield12 رو که حدود 2.5 گیگه رو نصب کنی
با تشکر
دامن پاک