# مباحث متفرقه برنامه نویسی > گزارش سازی با Crystal Report >  Data Environment and Crystal Reports

## meh_secure

سلام.
یکی از راههای ساده  برای اتصال بانک به گزارش استفاده از 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

باسلام وتشکر 
اگه امکان داره مثال آماده  بزارین

----------


## meh_secure

سلام 
این که می بینید یک مثال هستش
فقط کافیه که شما با Data Environment به پایگاه خودتون یه Connection بسازید و عبارت Query که می خواهید رو در StrSql بنویسید که اون هم خیلی ساده هستش.
روش کار کنید حتما متوجه میشید

----------


## meh_secure

بابا می بینید یه نظرم بدید دلمون خوش باشه دیگه باشه ؟؟!
پس نظر یادت نره.

----------


## Reza_sh_42

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

----------


## meh_secure

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

----------


## Reza_sh_42

سلام
من از طریق Vb و DataEnv به یه بانک اکسس وصل می شم الان هم با Crystal ver9  کارمی کنم ویک پارامتر به نام Crystal report 9 در Vb هست که باهاش گزارش های مورد نیازم رو می سازم اما وقتی نسخه 10 یا 11 رو نصب می کنم این پارامتر وجود نداره حتی گزارش هایی رو که با نسخه 9 ساخنه ام رو هم باز نمی کنه نمی دونم مشکل کجاست

----------


## meh_secure

سلام.
این احتمال وجود داره که نسخه های 10 یا 11 رو که نصب می کنید با خودشون Developer Kit رو نصب نمی کنه و به این علت این پارامتر رو به شما نشون نمیده.

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

----------

