PDA

View Full Version : سوال در مورد crystal report



snbb000
سه شنبه 03 دی 1392, 09:56 صبح
سلام .

دوستان من با استفاده از کریستال ریپورت یک فاکتور درست کردم فقط یک مشکلی که دارم اینه که پارامتر نمیدونم چطور براش بفرستم

مثلا ببینیند مخوام بگم فاکتور از تاریخ فلان تا فلان حالا این تاریخ فلان تا فلان رو چطوری براش بفرستم که نشون بده ؟ با خود report توی vb.net دیتاست خودش میسازه ولی نمیشه براش پارامتر فرستاد یعنی دستورات از پیش تعریف شده هست و نمدونم چطور بهش اضافه کنم

یعنی اگه بتونم مثلا 2 تا تاریخ رو براش بفرستم با دستور where میشه اونی رو که میخوام پرینت بگیره

ممنون میشم کمک کنید

بخدا هرچی گشتم توی سایت هیچی نفهمیدم

ممنون

Naghibi
سه شنبه 03 دی 1392, 11:06 صبح
سلام

من توی پروژه هام همیشه توی vb دیتاتیبل رو میسازم و اطلاعاتی که قراره نشون بده داخلش میریزم یعنی فیلتر کردن رو توی vb انجام میدم بعدش دیتاتیبل رو به crystal report میفرستم. فکر کنم راحت تر از این باشه که توی crystal report بخواین شرط بذارین. به هر حال اینم یه راه حل دیگه :چشمک:

behrooz69
سه شنبه 03 دی 1392, 21:20 عصر
بفرما داداش فقط جایگذاری هارو انجام بده . بازم گنگ بود بگو توضیح بدم . یه توضیح کلی بهت میدم

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

If TxtAzTarikh.Text = String.Empty Then
MsgBox("لطفا قسمت از تاریخ را مشخص كنيد", vbExclamation + vbOKOnly, "پيام")
TxtAzTarikh.Focus()
Exit Sub
ElseIf TxtTaTarikh.Text = String.Empty Then
MsgBox("لطفا قسمت تا تاریخ را مشخص كنيد", vbExclamation + vbOKOnly, "پيام")
TxtTaTarikh.Focus()
Exit Sub
End If

'// chap gozaresh bar asas name moshtari dar vorod kala = filter by name moshtari \\

Dim rpt As New CReportInsert
Dim myconnection As SqlConnection
Dim mycommand As New SqlCommand
Dim myda As New SqlDataAdapter
Dim myds As New SardkhoneDataSet

Try
myconnection = New SqlConnection(My.Settings.conn)
mycommand.Connection = myconnection
mycommand.CommandText = "select * from TblVorodKala where TarikhVorod BETWEEN '" & TxtAzTarikh.Text & "' AND '" & TxtTaTarikh.Text & "' "
'mycommand.Parameters.Add("@NameMoshtari", SqlDbType.NVarChar, 50).Value = TxtSearchByNameMoshtari.Text

mycommand.CommandType = CommandType.Text
myda.SelectCommand = mycommand
myda.Fill(myds, "TblVorodKala")
rpt.SetDataSource(myds)
FrmGozareshgiriVorodKala.CrystalReportViewer1.Repo rtSource = rpt
FrmGozareshgiriVorodKala.ShowDialog()

Catch ex As Exception
MessageBox.Show(ex.Message, "error", MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try

اولش که می خوای تکس باکس از تاریخ و تکس باکس تا تاریخ رو چک می کنه که خالی نباشه .

دومش اومدم رشته های ریپورت و sql هامو تعریف کردم .

مرحله سوم که مهمترینشه اومدم همه فیلد هامو انتخاب کردم به شرطی که تاریخ ورود داده هام بین تکس باکس : از تاریخ و تکس باکس : تا تاریخ باشه و مقدارشم رو از تکس باکس های مشخصش بگیره .

خط بعدشم با یه تکس باکس دیگه به اسم نام مشتری هم جستجو کردم.

مرحله آخرم اومدم مقدار تیبل ای که درست کردم رو با مقداری تیبل جستجو شده ی من برابر کردم . و منبع چاپ رو هم اسم کریستال خودم رو انتخاب کردم.


یا حق

snbb000
سه شنبه 03 دی 1392, 23:28 عصر
بفرما داداش فقط جایگذاری هارو انجام بده . بازم گنگ بود بگو توضیح بدم . یه توضیح کلی بهت میدم

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

If TxtAzTarikh.Text = String.Empty Then
MsgBox("لطفا قسمت از تاریخ را مشخص كنيد", vbExclamation + vbOKOnly, "پيام")
TxtAzTarikh.Focus()
Exit Sub
ElseIf TxtTaTarikh.Text = String.Empty Then
MsgBox("لطفا قسمت تا تاریخ را مشخص كنيد", vbExclamation + vbOKOnly, "پيام")
TxtTaTarikh.Focus()
Exit Sub
End If

'// chap gozaresh bar asas name moshtari dar vorod kala = filter by name moshtari \\

Dim rpt As New CReportInsert
Dim myconnection As SqlConnection
Dim mycommand As New SqlCommand
Dim myda As New SqlDataAdapter
Dim myds As New SardkhoneDataSet

Try
myconnection = New SqlConnection(My.Settings.conn)
mycommand.Connection = myconnection
mycommand.CommandText = "select * from TblVorodKala where TarikhVorod BETWEEN '" & TxtAzTarikh.Text & "' AND '" & TxtTaTarikh.Text & "' "
'mycommand.Parameters.Add("@NameMoshtari", SqlDbType.NVarChar, 50).Value = TxtSearchByNameMoshtari.Text

mycommand.CommandType = CommandType.Text
myda.SelectCommand = mycommand
myda.Fill(myds, "TblVorodKala")
rpt.SetDataSource(myds)
FrmGozareshgiriVorodKala.CrystalReportViewer1.Repo rtSource = rpt
FrmGozareshgiriVorodKala.ShowDialog()

Catch ex As Exception
MessageBox.Show(ex.Message, "error", MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try

اولش که می خوای تکس باکس از تاریخ و تکس باکس تا تاریخ رو چک می کنه که خالی نباشه .

دومش اومدم رشته های ریپورت و sql هامو تعریف کردم .

مرحله سوم که مهمترینشه اومدم همه فیلد هامو انتخاب کردم به شرطی که تاریخ ورود داده هام بین تکس باکس : از تاریخ و تکس باکس : تا تاریخ باشه و مقدارشم رو از تکس باکس های مشخصش بگیره .

خط بعدشم با یه تکس باکس دیگه به اسم نام مشتری هم جستجو کردم.

مرحله آخرم اومدم مقدار تیبل ای که درست کردم رو با مقداری تیبل جستجو شده ی من برابر کردم . و منبع چاپ رو هم اسم کریستال خودم رو انتخاب کردم.


یا حق

خیلی خیلی منونم از کمکتون فقط

Dim myds As New SardkhoneDataSet

و

Dim rpt As New CReportInsert

رو نمیشناسه یعنی زیرش دندونه آبی میکشه
چیکار باید کنم ؟
ممنون