PDA

View Full Version : Data Environment and Crystal Reports



meh_secure
یک شنبه 19 تیر 1384, 11:52 صبح
سلام.
یکی از راههای ساده برای اتصال بانک به گزارش استفاده از Data Env می باشد.
راههای دیگری برای اتصال نیز می باشد و شما باید توجه کنید که یک RecordSet به گزارش خود بفرستید.

روش اتصال Data Env به گزارش:

ابتدا در DatEnv یک Command بسازید و دستور مورد نظر خود را بنویسید به عنوان مثال :
Select Id, Fname, Lname From Customers
در اینجا نام Command را sqlCustomers گذاشتم.

شروع به ساختن گزارش توسط Crystal Reports کنید و توجه کنید که برای انتخاب بانک مورد نظر از Project Data استفاده نمایید.(اولین گزینه در لیست)

پس از اتمام ساخت گزارش این کدها را در فرمی که CRViewer موجود بنویسید.


Dim Report As New CrystalReports1

Private Sub Form_Load()
Screen.MousePointer = vbHourglass
Report.DiscardSavedData '*1
datEnv.Recordsets.Item(1).Open ' *2
Report.Database.SetDataSource datEnv.rssqlCustomers '*3
CRViewer91.ReportSource = Report
CRViewer91.ViewReport
Screen.MousePointer = vbDefault
datEnv.Recordsets.Item(1).Close '*4
End Sub

1- این کد به صورت هوشمند عمل می کند. در واقع می توانید مقادیری از قبیل Text هارا تغییر و همچنین برای update شدن اتصال بین بانک و گزارش استفاده نمایید. توجه کنید که اگر تغییری در اجزای گزارش ندهید آنها به صورتی که در گزارش اولیه طراحی شده اند باقی می مانند.
2- این خط Command ی که در بالا نوشته ایم را برای استفاده باز می کند.
3- این خط کد که مهمترین بخش این قسمت می باشد RecordSet ی که مربوط به Command ما می باشد و به طور خودکار توسط VB ایجاد شده است را به گزارش می فرستد.
4- در پایان نیز Command می بایست بسته شود تا سبب ایجاد خطا نگردد.

نکته: شما می توانید در زمان اجرای برنامه Command خود را تغییر دهید که گزارش شما به صورت پارامتری تهیه گردد یعنی قبل از اینکه Command را Open کنید آنرا تغیییر دهید مثال:



strsql = "Select Id, Fname, Lname From Customers where Fname= '" & strFname &"' ;"
datEnv.Commands.Item(1).CommandText = strsql

h_r_ibm
شنبه 05 شهریور 1384, 10:07 صبح
باسلام وتشکر
اگه امکان داره مثال آماده بزارین

meh_secure
شنبه 05 شهریور 1384, 13:17 عصر
سلام
این که می بینید یک مثال هستش
فقط کافیه که شما با Data Environment به پایگاه خودتون یه Connection بسازید و عبارت Query که می خواهید رو در StrSql بنویسید که اون هم خیلی ساده هستش.
روش کار کنید حتما متوجه میشید

meh_secure
دوشنبه 21 شهریور 1384, 20:32 عصر
بابا می بینید یه نظرم بدید دلمون خوش باشه دیگه باشه ؟؟!
پس نظر یادت نره.

Reza_sh_42
دوشنبه 04 مهر 1384, 13:44 عصر
با سلام . ممنون از طرح این مسئله ولی نکته ای که برای من مشکل ساز شده اینه که با Crystal ver 10 & 11 نمی تونم تو VB ارتباط برقرار کنم یعنی هیچ پارامتری مربوط به این دو نسخه در VB وجود نداره آیا می تونید در این مورد هم کمک کنید ؟

meh_secure
دوشنبه 04 مهر 1384, 21:57 عصر
سلام.
تفاوت زیادی در نسخه ها دیده نمیشه. خصوصا در مورد ارتباطشون.
لازم بذکره که این مثال با استفاده از Designer ها در VB درست شده و بانک اطلاعاتی هم Access هستش.
لطفا اطلاعات لازم رو در مورد بانک مورد استفاده و نحوه ی استفاده از Crystal report در برنامه رو ذکر کنید.

Reza_sh_42
چهارشنبه 06 مهر 1384, 19:21 عصر
سلام
من از طریق Vb و DataEnv به یه بانک اکسس وصل می شم الان هم با Crystal ver9 کارمی کنم ویک پارامتر به نام Crystal report 9 در Vb هست که باهاش گزارش های مورد نیازم رو می سازم اما وقتی نسخه 10 یا 11 رو نصب می کنم این پارامتر وجود نداره حتی گزارش هایی رو که با نسخه 9 ساخنه ام رو هم باز نمی کنه نمی دونم مشکل کجاست

meh_secure
پنج شنبه 07 مهر 1384, 13:17 عصر
سلام.
این احتمال وجود داره که نسخه های 10 یا 11 رو که نصب می کنید با خودشون Developer Kit رو نصب نمی کنه و به این علت این پارامتر رو به شما نشون نمیده.

با خرید نسخه Developer Edition که خیلی هم سخت گیر میاد این مشکل رفع میشه.