تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
التعامل مع two data sourse في Crystal Report
#1
السلام عليكم ورحمة الله وبركاته
الاخوة الافاضل...
تحية طيبة وبع
أرجو المساعدة في استخدام متغييرين لل datasourse في الكريستال ريبورت ....فالاول يدخل بيانات من الداتاجريد والثاني من التكست بوكس ....كما هو مبين بالكود التالي


Dim reportTextBox As CrystalDecisions.CrystalReports.Engine.ReportDocument
        reportTextBox = New CryRep_Pos_Inv_Sales_Print
        reportTextBox.SetParameterValue("TxbInv_Num", TxbInv_Num.Text)
        Frm_CryRep_Pos_Inv_Sales_Print.CrystalReportViewer1.ReportSource = reportTextBox

        Dim reportTable As CrystalDecisions.CrystalReports.Engine.ReportDocument
        reportTable = New CryRep_Pos_Inv_Sales_Print
        reportTable.SetDataSource(dt)
        Frm_CryRep_Pos_Inv_Sales_Print.CrystalReportViewer1.ReportSource = reportTable
اذ لا يظهر الا القيمة من التكست بوكس وليس من الداتا جريدفيو، ولكن ان حذفت خطوات التكست بوكس تظهر قيم الداتاجريد فيو ...
وبارك الله بكم
الرد
تم الشكر بواسطة:
#2
السلام عليكم ورحمة الله وبركاته،
أشكر لكم مروركم...
حاولت تطبيق الكود ولكن يطلب قيمة التكست بوكس ولا يقرأ قيمته وبالتالي لا يدل القيمة بالتقرير بينما قيم الداتاجريدفيو يتم تحميل قيمها بالشكل الصحيح ...
أرجو المساعدة ان امكن
وشكرا لكم....
الرد
تم الشكر بواسطة:
#3
السلام عليكم ورحمة الله وبركاته...
الإخوة الافاضل ، تحية طيبة وبعد...
بعد الحمد لله والشكر على ما من به علينا من علم ، توصلت لحل المشكلة وهو كالتالي ...
حيث كانت قيم الداتاجريد هي قيم لداتا تيبل يتم تعبأتها كما هو مفصل بنص الكود المرفق ، تم اضافة حقل التكست بوكس كحقل فالداتاست ولكن يتم تعبأته من التكستبوكس وليس من الداتا جريد وبالتالي لم أحتاج لداتا ست ثانية ...
وان لزم الامر لاي استفسار للكود فانا بكل تواضع مستعد للشرح والنقاش ان شاء الله ...
وان وجد حل آخر للتعامل مع مصدرين في الكريستال ريبورت ، ارجو مشاركتها لتعم المنفعة...
وبارك الله بالجميع

Private Sub BtnCrystalReport_Click(sender As Object, e As EventArgs) Handles BtnCrystalReport.Click

        Dim dt As New DataTable

        With dt
            .Columns.Add("SeqNo")
            .Columns.Add("ColNumber")
            .Columns.Add("ColItemBarcode")
            .Columns.Add("ColItemNumber")
            .Columns.Add("ColItemName")
            .Columns.Add("ColItemUnit")
            .Columns.Add("ColItemExpDate")
            .Columns.Add("ColQuantity")
            .Columns.Add("Qty")
            .Columns.Add("ColItemPrice")
            .Columns.Add("ColItemTotal")
            .Columns.Add("ColItemPerUnit")
            .Columns.Add("ColExpDate")
            .Columns.Add("QtyBackIn")
            .Columns.Add("QtyBackUnit")
            .Columns.Add("TotalBack")
            .Columns.Add("ColTotalBack")
            .Columns.Add("SerialNo")
            .Columns.Add("TxbInv_Num")
            .Columns.Add("TxbInvDate_Today")
            .Columns.Add("TxbTimeNow")
        End With

        For Each dgr As DataGridViewRow In Me.DGVewItems.Rows
            dt.Rows.Add(dgr.Cells("SeqNo").Value, dgr.Cells("ColNumber").Value, dgr.Cells("ColItemBarcode").Value, dgr.Cells("ColItemNumber").Value, dgr.Cells("ColItemName").Value, dgr.Cells("ColItemUnit").Value, dgr.Cells("ColItemExpDate").Value, dgr.Cells("ColQuantity").Value, dgr.Cells("Qty").Value, dgr.Cells("ColItemPrice").Value, dgr.Cells("ColItemTotal").Value, dgr.Cells("ColItemPerUnit").Value, dgr.Cells("ColExpDate").Value, dgr.Cells("QtyBackIn").Value, dgr.Cells("QtyBackUnit").Value, dgr.Cells("TotalBack").Value, dgr.Cells("ColTotalBack").Value, dgr.Cells("SerialNo").Value, TxbInv_Num.Text, TxbInvDate_Today.Text, TxbTimeNow.Text)
        Next

        Dim reportTable As CrystalDecisions.CrystalReports.Engine.ReportDocument
        reportTable = New CryRep_Pos_Inv_Sales_Print
        reportTable.SetDataSource(dt)
        Frm_CryRep_Pos_Inv_Sales_Print.CrystalReportViewer1.ReportSource = reportTable

        Frm_CryRep_Pos_Inv_Sales_Print.ShowDialog()
        Frm_CryRep_Pos_Inv_Sales_Print.Dispose()

    End Sub
الرد
تم الشكر بواسطة: Anas Mahmoud



التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم