PDA

View Full Version : ارسال يك ديتاست به كريستال



navid1n2000
سه شنبه 30 تیر 1388, 16:37 عصر
من توي فرمم يك ديتاست دارم كه بر اساس دلخواه كاربر درست ميشه
من نميدونم چطور اين ديتاستو بفرستم براي كريستال ريپورت
يعني وقتي كاربر دكمه چاپو زد همون ديتاست بره توي سكرم كريستال
كمك ؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟

mc_laren
چهارشنبه 31 تیر 1388, 15:21 عصر
با سلام
بعد از ساخت یک ReportDocument دستور زیر را نوشته :



ReportDocument.SetDataSource(DataSet)
CrystalReportViewer.ReportSource=ReportDocumnet

navid1n2000
چهارشنبه 31 تیر 1388, 15:26 عصر
با سلام
بعد از ساخت یک ReportDocument دستور زیر را نوشته :



ReportDocument.SetDataSource(DataSet)
CrystalReportViewer.ReportSource=ReportDocumnet

اينو من ميدونم . حالا اونجا چطور بذارشم توي يك جدول ؟؟؟؟؟؟؟؟؟؟؟؟؟؟

mc_laren
چهارشنبه 31 تیر 1388, 22:28 عصر
نکنه شما نحوه ساخت گزارش رو بلد نیستید؟
که این اصلا با سوال شما جور در نمیاد و منظورتون از بذارمش توی جدول چیه؟

navid1n2000
پنج شنبه 01 مرداد 1388, 11:08 صبح
نکنه شما نحوه ساخت گزارش رو بلد نیستید؟
که این اصلا با سوال شما جور در نمیاد و منظورتون از بذارمش توی جدول چیه؟
ببينين من يك ديتا گريد ويو دارمكه بر اساس اطلاعات كاربر پر ميشه
بعد كه كاربر دكمه چاپو ميزنه فرم كريستال ريپورت باز ميشه
من اينكدو نوشتم . بايد توي كريستال ريپورتم جدول تعريف كنم ؟؟؟؟؟؟؟؟
چجوريه ؟؟؟؟؟؟؟؟؟؟؟؟؟؟

mc_laren
پنج شنبه 01 مرداد 1388, 20:35 عصر
اینه که دیگه نمیشه با چند خط توضیح داد اگه بگردی و یه pdf تو سایت در مورد کریستال ریپورت پیدا کنی خیل بهتر کارت راه می افته.

navid1n2000
پنج شنبه 01 مرداد 1388, 23:43 عصر
اینه که دیگه نمیشه با چند خط توضیح داد اگه بگردی و یه pdf تو سایت در مورد کریستال ریپورت پیدا کنی خیل بهتر کارت راه می افته.

من اونقدر سوال پرسيدم و جواب نگرفتم كه مجبور شدم اينطور بگم
شما وقتي يك اطلاعات توي ديتا گريد ويو دارين چجوري با كريستال ريپورت چاپ مي كنين؟
كسي ميتونه يه مثال اتچ كنه ؟؟؟؟؟؟

kiarayan
چهارشنبه 07 مرداد 1388, 19:28 عصر
به نظر من شما بهتره یک مقدار با پاس دادن جداول دیتا ست به گزارش کریستال اطلاعات بیشتری بدست بیاری تا به راحتی بتوانی هر گزارشی رو خواستی بسازی و حتی سر راهش فیلترش بکنی!

navid1n2000
پنج شنبه 15 مرداد 1388, 23:12 عصر
به نظر من شما بهتره یک مقدار با پاس دادن جداول دیتا ست به گزارش کریستال اطلاعات بیشتری بدست بیاری تا به راحتی بتوانی هر گزارشی رو خواستی بسازی و حتی سر راهش فیلترش بکنی!
ميشه بيشتر راهنمايي بدين
حداقل يك مثال بزارين اينجا
من مطمئنم اين مشكل خيلياست

shafi21
دوشنبه 19 مرداد 1388, 22:01 عصر
منم همین مشکل ارسال اطلاعات گراید به کریستال رو دارم.وقتی دکمه ی سرچ رو میزنم اطلاعات براساس چند فیلد فیلتر میشه ولی چون نمیشه از دیتا ویو واسه سورس گزارش استفاده کنم مجبور شدم یسری دستورات رو تکرار کنم:

Private Sub Btn_search_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_search.Click
ds.Clear()
filter = ""
If txt_num.Text.Length > 0 Then
filter = "( numbere like " + "'%" + txt_num.Text + "%')"
End If
If txt_person.Text.Length > 0 And filter = "" Then
filter = "(person_code = '" & txt_person.Text & "')"
ElseIf txt_person.Text.Length > 0 Then
filter = filter + "and" + "( person_code = '" & txt_person.Text & "')"
End If

Dim cmd As New OleDb.OleDbCommand("select code,numbere,letter.person_code,nam from letter,person where letter.person_code=person.person_code", con)
con.Open()
Dim da As New OleDbDataAdapter(cmd)
da.Fill(ds, "letter")
Dim dv As DataView = New DataView(ds.Tables(0))
dv.RowFilter = filter
dtg.DataSource = dv
con.Close()
End Sub

Private Sub Btn_print_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_print.Click
Dim cmd1 As New OleDb.OleDbCommand("select code,numbere,letter.person_code,nam from letter,person where letter.person_code=person.person_code", con)
If dv.RowFilter <> "" Then
cmd1.CommandText += " Where " + dv.RowFilter
End If
Dim daprint As New OleDb.OleDbDataAdapter(cmd1)
con.Open()
daprint.Fill(dsprint, "person")
daprint.Fill(dsprint, "letter")
con.Close()
Dim strReportPath As String = GetCurrentDirectory()
If strReportPath.Substring(strReportPath.Length - 9) = "bin\Debug" Then
strReportPath = strReportPath.Substring(0, strReportPath.Length - 10)
End If
strReportPath &= "\CrystalReport1.rpt"
Dim rpttb As New CrystalDecisions.CrystalReports.Engine.ReportDocum ent
rpttb.Load(strReportPath)
rpttb.SetDataSource(dsprint)
report.CrystalReportViewer1.ReportSource = rpttb
report.Show()
End Subکه دیتاویو با اینکه در دکمه سرچ پر میشه وگراید هم داده های فیلتر شده رو نشون میده ولی داخل رویداد پرینت دیتاویو خالی درنظر گرفته میشه یعنی اطلاعات داخل کریستال بدون فیلتر نمایش داده میشن!
خواهش میکنم کمکم کنید

shafi21
سه شنبه 20 مرداد 1388, 22:54 عصر
خواهش میکنم اگه میدونید یه کمکی کنید،خودم نتونستم حلش کنم!:ناراحت:

mahdi87_gh
جمعه 23 مرداد 1388, 17:51 عصر
ولا که موقعی که داری واسه کریستال ریپورت فیلتر تعریف می کنی باید قبل از نوشتن نام فیلد نام جدول رو بتویسی اونم به فرمت زیر:

{table.field} =???

در ضمن ما توی کریستال ریپورت % نداریم، بلکه باید از * بجاش استفاده کنیم.

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

Application.StartupPath
موفق باشی دوست عزیزم:قلب: