PDA

View Full Version : ارسال یک RecordSet به CrystallReport



riyahiyan
دوشنبه 29 آبان 1385, 21:51 عصر
سلام
این موضوع مهمیه که چند بار در مورد اون بحث شده و به دلیل عدم عنوان مناسب دوستان نتونستند منظور خودشون رو واضح بیان کنند.
سوال اینکه چصوری میتونیم یک Recordset رو به کریستال ارسال کنیم؟
یک کد هست ولی نمی دونم مشکل چیه درست جواب نمیده نظر بدید:



Private Sub rpt_Lst_Student()
Dim crApp As New CRAXDDRT.Application
Dim crRept As New CRAXDDRT.Report

Set crRept = crApp.OpenReport(App.Path & "\Report\RptLstStudent.rpt")
crRept.Database.Tables(1).location = App.Path & "\DataBase\SM.mdb"


'rss_Report مشکلی ندارد

crRept.DiscardSavedData
crRept.Database.Tables(1).SetDataSource rss_Report, 3
CRViewer1.ReportSource = crRept
CRViewer1.EnableGroupTree = False
CRViewer1.ViewReport

Set crApp = Nothing
Set crRept = Nothing


End Sub

riyahiyan
سه شنبه 30 آبان 1385, 21:52 عصر
یکی گفته بود با Datainviroment قضیه حل شده اگه کسی اطلاعاتی داره بزاره.

jannati
شنبه 25 آذر 1385, 11:28 صبح
دوست عزیز شما یک Dataenviromentتعریف میکنی.بعد روی اون یک کانکشن تعریف میکنی و متصل میکنی به دیتابیست.بعد روی کانکشن یک commandتعریف میکنی.بعد یک datareportجدید ایجاد میکنی و فیلدهای لازم رو از کامند روی اون میکشی.حالا در جایی که میخواهی گزارش گیری کنی کد زیر را اضافه کن:


DataEnvironment1.rsCommand1.Open SQL
DataEnvironment1.rsCommand1.Requery
'DataReport1.Sections("section2").Controls("label1").Caption = date1(False)
DataReport2.Sections("section1").Controls("label2").Caption = " " + Text2.Text
DataReport2.Sections("section2").Controls("label7").Caption = Text1.Text
DataReport2.Sections("section2").Controls("label8").Caption = date1(False)
'DataReport1.RightMargin = 300
'DataReport2.Title = "kjhsdkfhfshk"
'nameh.Show
DataReport2.Show

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

jannati
شنبه 25 آذر 1385, 11:30 صبح
توضیح دیگه اینکه labelها در دیتاریپورت تعریف شده اند.و این تکس باکس ها در فرم هستند.من برای پرکردن مثلا تاریخ و غیره از این روش استفاده کرده ام.اما اون چیزی که شما میخواهید همون ارسال SQLبه دیتاریپورته.اینطوری فقط اطلاعاتی که میخواهید چاپ میشود.