PDA

View Full Version : سوال: تعیین مسیر بانک اطلاعاتی با کدنویسی



y.saied
دوشنبه 24 تیر 1387, 13:24 عصر
من این سوال رو تو بخش کریستال ریپورت مطرح کردم ولی جواب ندادند خواهشاً حذف نفرمائید و جواب بدین

من با استفاده از متن آموزشی گروه محترم این چند نفر که زحمتش و کشیدان با کریستال ریپورت 10 در vb گزارشگیری میکنم و من می خوام با کریستال ریپورت گزارشی بسازم که شامل نمودار باشه .

همه چیز به خوبی کار میکنه.
اما............اگه در مسیر دیتابیس تغییری ایجاد بشه مثلا نام پوشه ای عوض بشه دیگه هیچ چیزی نمایش داده نمی شه.

حالا ( با توجه به اینکه من یکبار برای کریستال ریپورت تو حالت ویزارد ، کانکشن تعریف کردم و مسیر دیتابیس را مشخص کردم ) چطور می تونم این دیتابیس را در کد نویسی به کریستال ربط بدم که کریستال اطلاعات مورد نیازش را از این دیتابیس بخونه.


البته من چون می خوام نمودار طراحی کنم پس در اول کار مجبورم یه کانکشن جدید تو ویزارد کریستال ریپورت ایجاد کنم. چون برای رسم نمودار باید حتما یه سری فیلد باشه تا کریستال اجازه رسم نمودار را تو حالت طراحی بده.(ایا راه دیگه ای هم هست ؟؟)


راستی من از VB 6.0 استفاده میکنم.و بانک اطلاعاتی هم Access

vbhamed
دوشنبه 24 تیر 1387, 17:45 عصر
سلام

اينم روش مسير دادن

y.saied
جمعه 28 تیر 1387, 20:25 عصر
سلام

اينم روش مسير دادن


میشه در مورد کدها یه توضیحی بدی .......... ممنون

vbhamed
شنبه 29 تیر 1387, 09:17 صبح
سلام


Dim x As New CRAXDRT.Application
Dim y As CRAXDRT.Report
تعريف متغير از نوع داده هاي كريستال

Private Sub cmdPreview_Click()

Set y = x.OpenReport(App.Path & "\Test.rpt")
باز كردن فايل گزارش با مسير

With y
.DiscardSavedData
انصراف از ركوردهاي قبلي كه توي فايل گزارش ذخيره ميشه

.DisplayProgressDialog = False
پنجره نوار پيشرفت نمايش داده نشود

.PaperOrientation = crPortrait
PaperSize = crPaperA4
تعيين كاغذ به صورت عمودي و با سايز آ4

frmReport.CRViewer.ReportSource = y
نسبت دادن گزارش باز شده به كنترل گزارش روي فرم

frmReport.CRViewer.ViewReport
نمايش گزارش

frmReport.CRViewer.Zoom 100
تعيين ميزان بزرگنمايي

frmReport.Show vbModal
نمايش فرم گزارش
End With
End

End Sub

Private Sub cmdPrint_Click()

Set y = x.OpenReport(App.Path & "\Test.rpt")

With y
.DiscardSavedData
.DisplayProgressDialog = False
.PaperOrientation = crPortrait
.PaperSize = crPaperA4

.PrintOutEx False
چاپ گزارش
End With

End Sub

m_vb1386
شنبه 29 تیر 1387, 13:51 عصر
سلام


Dim x As New CRAXDRT.Application
Dim y As CRAXDRT.Report
تعريف متغير از نوع دادهاي كريستال

Private Sub cmdPreview_Click()

Set y = x.OpenReport(App.Path & "\Test.rpt")
باز كردن فايل گزارش با مسير

With y
.DiscardSavedData
انصراف از ركوردهاي قبلي كه توي فايل گزارش ذخيره ميشه

.DisplayProgressDialog = False
پنجره نوار پيشرفت نمايش داده نشود

.PaperOrientation = crPortrait
PaperSize = crPaperA4
تعيين كاغذ به صورت عمودي و با سايز آ4

frmReport.CRViewer.ReportSource = y
نسبت دادن گزارش باز شده به كنترل گزارش روي فرم

frmReport.CRViewer.ViewReport
نمايش گزارش

frmReport.CRViewer.Zoom 100
تعيين ميزان بزرگنمايي

frmReport.Show vbModal
نمايش فرم گزارش
End With
End

End Sub

Private Sub cmdPrint_Click()

Set y = x.OpenReport(App.Path & "\Test.rpt")

With y
.DiscardSavedData
.DisplayProgressDialog = False
.PaperOrientation = crPortrait
.PaperSize = crPaperA4

.PrintOutEx False
چاپ گزارش
End With

End Sub


حامد جان همه چیز رو کامل گذاشتی بجز یکی و اون هم چیزی هست که تواون فایل اموزشی که فرمودن نیست واون روش اتصال گزارش تو محیط کریستال به بانک هست که باید تو محیط خود کریستال و از طریق منوی database و گزینه set database location تنظیم بشه
تا خود فایلprt هم بتونه بانک رو شناسایی کنه چیزی که الان شما گفتین معرفی مسیر فایل گزارش به برنامه هست ولی باید خود فایل گزارش هم یک اتصال دوم به بانک پیدا کنه که اونجوری که گفتم این ارتباط دوم مشخص میشه

vbhamed
شنبه 29 تیر 1387, 17:21 عصر
سلام

خب دوست عزيز، اگر اون كار رو انجام ندي از اول كه اصلا نمي توني گزارش رو بسازي و فيلدهات رو بچيني
منظور دوستمون بعد از طراحي تو محيط كريستال بود

در هر حال براي خود محيط راه شما درسته، ضمن اينكه وقتي قراره يك گزارش جديد ساخته بشه خود ويزارد از شما مي‌خواد مسير بانك رو مشخص كنيد

m_vb1386
یک شنبه 30 تیر 1387, 07:36 صبح
بله ولی همونجور که ایشون گفتن تو اموزش این چند نفر این نکته گفته نشده و حتی خودشون هم گفتن که باید این مثال حتما تو درایو c باشه یعنی خودشون هم این نکته رو بیان نکردن


در هر حال براي خود محيط راه شما درسته، ضمن اينكه وقتي قراره يك گزارش جديد ساخته بشه خود ويزارد از شما مي‌خواد مسير بانك رو مشخص كنيد

مشکل ایشون هم از همینه زیرا که ویزارد کریستال ادونس (مدلRDCمنظورمه)مسیر بانک رو بصورت C:\TEST میگیره و بعد باید تغیرش بدی ولی مدل پرفشنال این امکان رو نداره و احتیاج به برنامه نویسی و اضافه کردن دستی یک DLL و یک کامپونت که تو اموزش گفته شده هست به اضافه یک سری کد نویسی داره که ورژن ادونس خودش اینها رو میسازه