PDA

View Full Version : سوال: تركيب دو شرط براي گزارش



Dr.Bronx
دوشنبه 06 آبان 1387, 21:52 عصر
با عرض سلام و خسته نباشيد
من از كريستال ريپورت 10 استفاده مي كنم و مي خوام براي فيلتر كردن اطلاعاتي كه قراره چاپ بشه از دو شرط استفاده كنم
اولين كد كه براي شناسايي و نشان داده شدن ريپورت به كار مي ره اين هست

Private Sub LSButton3_Click()
Dim Crapp As New CRAXDRT.Application
Dim Crrept As New CRAXDRT.report
Dim CrDBTable As CRAXDRT.DatabaseTable
On Error Resume Next
'For Each CrDBTable In Crrept.Database.Tables
'CrDBTable.Location = App.Path & "\Data\DBE.mdb"
'Next
Set Crrept = Crapp.OpenReport(App.Path & "\report\rpt_karkard.rpt")
Rpt_Karkard.CrystalActiveXReportViewer1.ReportSour ce = Crrept
'bind formul
Crrept.FormulaFields.GetItemByName("jama").Text = "'" & Trim(LSLabel7.Text) & "'"
Crrept.FormulaFields.GetItemByName("tarikhkol").Text = "'" & tarikh.Shamsi & "'"
Crrept.FormulaFields.GetItemByName("nameperson").Text = "'" & Trim(LSLabel3.Caption) & "'"
Crrept.FormulaFields.GetItemByName("tarikhaz").Text = "'" & Trim(tt1.Text) & "'"
Crrept.FormulaFields.GetItemByName("tarikhta").Text = "'" & Trim(tt2.Text) & "'"


If Return_Formula <> vbNullString Then
Crrept.RecordSelectionFormula = Return_Formula

End If
If IsNumeric(txtsearch.Text) Then
Rpt_Karkard.CrystalActiveXReportViewer1.ViewReport
Rpt_Karkard.CrystalActiveXReportViewer1.EnableGrou pTree = False
Rpt_Karkard.Show
Set Crapp = Nothing
Set Crrept = Nothing
Else
Dim EWS As String
EWS = MsgBox("ÝíáÏ ÔãÇÑå ÑÓäá ÑÇ Èå ØæÑ ÕÍíÍ ˜Çãá äãÇííÏ", vbExclamation + vbOKOnly + vbMsgBoxRight, "ÇÎØÇÑ")
End If
End Sub

اون قسمتي رو كه پررنگ كردم اينجا رو به عنوان فيلتر معرفي مي كنه


Private Function Return_Formula() As String
Dim Str_Formula As String
Str_Formula = "{ekhtelaf.Dateout} in " & "'" & Trim(frmkarkard.tt1.Text) & "'To'" & Trim(frmkarkard.tt2.Text) & "' And "
Str_Formula = "{ekhtelaf.ID} Like '*" & Trim(frmkarkard.txtsearch.Text) & "*' And "
Str_Formula = Trim(Str_Formula)
If UCase(Right(Str_Formula, 3)) = "AND" Then Str_Formula = Mid(Str_Formula, 1, Len(Str_Formula) - 3)
Return_Formula = Str_Formula
End Function

حالا من مي خوام اين دو تا شرط يعني :


Str_Formula = "{ekhtelaf.Dateout} in " & "'" & Trim(frmkarkard.tt1.Text) & "'To'" & Trim(frmkarkard.tt2.Text) & "' And "

و


Str_Formula = "{ekhtelaf.ID} Like '*" & Trim(frmkarkard.txtsearch.Text) & "*' And "

با هم تركيب بشه يعني اين كه هم تاريخ بين دو عدد باشه و هم عددي كه جستجو شده نشون داده بشه - من كلمه And رو هم در آخر اون استفاده كردم ولي جواب نميده
اگه همين روش رو ميشه اصلاح كرد كه خوب چه بهتر يا اگر هم راه ديگري هست ممنون ميشم معرفي كنيد . قبلا از همكاري شما متشكرم