السلام عليكم ورحمة الله وبركاته،
قمت بعمل تقرير على crystal report يحتاج الى عرض البيانات بين تاريخين ، وكانت الداتا سيت الخاصة بالربورت تحتوي جملة select تظهر في خاصية Fill كما يلي :
SELECT Support.SupportNo, SupportType.SupportTypeName, SupportItem.SupportItemName, Support.SupportDate, Support.SupportGoal, Support.SupprotCost, DonateSide.DonateName FROM Support LEFT OUTER JOIN DonateSide ON Support.DonateSource = DonateSide.DonateNo LEFT OUTER JOIN SupportItem ON Support.SupportKind = SupportItem.SupportItemNo LEFT OUTER JOIN SupportType ON Support.SupportType = SupportType.SupportTypeNo WHERE (Support.SupportDate BETWEEN @Par1 AND @Par2)
وهي تعمل بشكل سليم عند فحصها من خلال ال Query Builder
وقد اضفت للتقرير المبني عليها على ال Parameter Fields البارميترات التالية :
@Par1 @Par2
في النموذج الذي يعرض به التقرير وبعد ان اضفت ال CrystalReportViewer1 قمت باضافة الكود التالي للنموذج الذي يعرض التقرير :
Dim conn As New SqlConnection("Data Source=.\SQLEXPRESS;AttachDbFilename=" & Application.StartupPath & "\SQS.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True")
Dim str As String = "SELECT Support.SupportNo, SupportType.SupportTypeName, SupportItem.SupportItemName, Support.SupportDate, Support.SupportGoal, Support.SupprotCost, DonateSide.DonateName FROM Support LEFT OUTER JOIN DonateSide ON Support.DonateSource = DonateSide.DonateNo LEFT OUTER JOIN SupportItem ON Support.SupportKind = SupportItem.SupportItemNo LEFT OUTER JOIN SupportType ON Support.SupportType = SupportType.SupportTypeNo WHERE (Support.SupportDate BETWEEN @Par1 AND @Par2)"
Dim SqlDataAdapter1 As New SqlDataAdapter(str, conn)
Dim ds2 As New SupportDS
'ds2 = new SupportDS
Dim fdate, sdate As Date
Public paramFields As New ParameterFields()
Private Sub SupportReport_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim rpt As New ReportDocument
Dim paramField, paramField2 As New ParameterField()
Dim discreteVal As New ParameterDiscreteValue()
paramField.ParameterFieldName = "@Par1"
paramField.ParameterType = ParameterType.ReportParameter
paramFields.Add(paramField)
paramField2.ParameterFieldName = "@Par2"
paramField2.ParameterType = ParameterType.ReportParameter
paramFields.Add(paramField2)
rpt.Load("C:\QSS\SupportCrystalReport.rpt")
CrystalReportViewer1.ParameterFieldInfo = paramFields
CrystalReportViewer1.ReportSource = rpt
CrystalReportViewer1.Refresh()
End Subوالتقرير يطلب البارميترات بشكل صحيح ولكنه للاسف يعرض التقرير فارغا رغم انني اعطيه تاريخين يوجد بينهما بيانات بالتأكيد.
لا ادري ما المشكلة وقد تصفحت كل المواضيع ذات العلاقة هنا ولكن دون جدوى في حل المشكلة.
علما بانني جعلت البارميترات المدخله على التقرير تظهر على التقرير (اي ان البارمترات تظهر فعلا) لكنه لا يظهر اي بيانات حسب البارميترز الظاهرة نهائيا
اتمنى مساعدتي في حلها والبرنامج هو لجمعية خيرية تعمل مع الاطفال المشردين والمتسربيين والايتام .
