الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

عرض بيانات تقرير بين تاريخين بعمل filter

بدأه abo_ali في 16 فبراير 2014 · 20 رد · 2,371 مشاهدة · في تصميم وبرمجة التقارير
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته

واجهتني بعض المشاكل اثناء عمل تقرير يقوم بعرض بيانات من اكثر من جدول (4 جداول) حيث تم عمل view داخل sql server واظهر نتائج سليمة 

ثم قمت بعمل تقرير crystal rep يعرض بيانات ال view

لكن المشكلة انني اريد عرض بيانات التقرير باستخدام اداتين datetimepicker وذلك ليقوم المستخدم بعرض بيانات التقرير بين تاريخين يقوم هو بتحديدهم 

الفكره بالطبع في عمل filter للبيانات على حقل التاريخ لكن لم استطع عملها 

 

ارجو المشاركة بمثال عملي لحل المشكله ..

#2

أخي الفاضل abo_ali

 

أستخدم البحث في المنتدي حيث أن قليل من البحث في المنتدي أو الموضوعات المثبته في القسم ستجد نتائج جيده ان شاء الله

فهذا السؤال طرح كثيرا هنا وقد قمنا بالاجابه عليه

تم تعديل هذه المشاركة بواسطة محمد فؤاد تركي في 16 فبراير 2014 في 12:26

certifiedj.jpg

 

 

Image Hosted by ImageShack.us
#3

-_-  -_-  -_-

انا بحثت بالفعل في المنتدى لكن لم  اصل لحل والموجود هو فلتره الداتاجريد وهذه الطريقة جربتها مع التقارير ولم تفلح 

#4

تم نقل الموضوع لقسم التقارير

=====================

هذا الموضوع يخص منتدي تصميم وبرمجة التقارير

اذهب هناك ستجد في الموضوعات المثبته موضوع عن الموضوعات المهمه في قسم تصميم وبرمجة التقارير

 

/index.php/forum/169-%D8%AA%D8%B5%D9%85%D9%8A%D9%85-%D9%88%D8%A8%D8%B1%D9%85%D8%AC%D8%A9-%D8%A7%D9%84%D8%AA%D9%82%D8%A7%D8%B1%D9%8A%D8%B1/

certifiedj.jpg

 

 

Image Hosted by ImageShack.us
#5

قم بفلترة البيانات من خلال جمله sql  للview بناء على حقل التاريخ

(SELECT * FROM YourViewName WHERE (DateCol>=@DateFrom AND DateCol<=@DateTo

مرر الاستعلام لقاعدة البيانات وسيجلب لك البيانات مفلترة املاءها ب DATASET  ومرره للتقرير كمصدر للبيانات

dtTo&dtFrom هى اداه الdatetimepicker  بعد التسميه

  Dim objDS As DataSet = New DataSet
            Using cnn As SqlConnection = New SqlConnection
                cnn.ConnectionString = My.Settings.CONNECTIONSTRING
                Using objDA As SqlDataAdapter = New SqlDataAdapter
                    Using cmd As SqlCommand = New SqlCommand
                        cmd.Connection = cnn
                        cmd.CommandType = CommandType.Text
                        (cmd.CommandText = "SELECT * FROM YourViewName WHERE (DateCol>=@DateFrom AND DateCol<=@DateTo"
                        cmd.Parameters.Add("@DateFrom", SqlDbType.DateTime).Value = Me.dtFrom.Text
                        cmd.Parameters.Add("@DateTo", SqlDbType.DateTime).Value = Me.dtTo.Text

                        objDA.SelectCommand = cmd
                        objDA.Fill(objDS, "YourView")

                    End Using
                End Using
            End Using
            Dim rpt As YourReport = New YourReport
            rpt.SetDataSource(objDS.Tables("YourView"))

            rpt.SummaryInfo.ReportTitle = "  من الفترة " & Me.dtFrom.Text & "  الى الفترة " & Me.dtTo.Text
            My.Forms.frmReportViewer.crViewer.ReportSource = rpt
            My.Forms.frmReportViewer.ShowDialog()

تم تعديل هذه المشاركة بواسطة SOLO.NET في 17 فبراير 2014 في 03:46

1

VB.NET and C# Comparison

http://www.harding.edu/fmccown/vbnet_csharp_comparison.html

002.gif

=-=-=-=-=-=-=
ذو العلم يشقى فى النعيم بعلمه .:. واخو الجهالة فى الشقاوة ينعم
=-=-=-=-=-=-=
يا من بدنياه اشتغل . قد غره طول الأمل . فالموت يأتى بغتة . والقبر صندوق العمل
=-=-=-=-=-=-=
ان لم تستطع ان تجد ما تفعله فافعل ما لم تسطع ان تجده

screen_shot_2011-05-19_at_12.44.49_pm.pn

#6

شكرا لك  solo.net

جربت الكود لكن ظهرت بعض الأخطاء لا ادري لماذا 

لو أمكن تضع لنا مثال به الكود وبارك الله فيك

#7

وضح لنا ما الاخطاء التي ظهرت  لا الكود ليس به اي مشكله

تم تعديل هذه المشاركة بواسطة KARIMSOFT في 18 فبراير 2014 في 11:00

1
#8

هذا هو الكود بالكامل على الفورم

مع العلم ان اسم الاستعلام zz_quilt_wating واسم حقل التاريخ inv_r_date وتم تغيير اسماء الادوات مثل الموجود بالكود

Imports System.Data
Imports System.Data.SqlClient
Imports CrystalDecisions.CrystalReports.Engine
Imports CrystalDecisions.Shared
================================================================================================================
Public Class Form1
    Private cn As New SqlConnection("Data Source=DC-SERVER;Initial Catalog=Tuhama;Persist Security Info=True;User ID=sa;Password=fil9970")
    Dim da As New SqlDataAdapter
    Dim dt As New DataTable
    Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim crtableLogoninfos As New TableLogOnInfos()
        Dim crtableLogoninfo As New TableLogOnInfo()
        Dim crConnectionInfo As New ConnectionInfo()
        Dim CrTables As Tables
        Dim CrTable As Table
        Dim crReportDocument As New CrystalReport1
        With crConnectionInfo
            .DatabaseName = "Tuhama"
            .Password = "fil9970"
            .ServerName = "DC-SERVER"
            .UserID = "sa"
        End With
        CrTables = crReportDocument.Database.Tables
        For Each CrTable In CrTables
            crtableLogoninfo = CrTable.LogOnInfo
            crtableLogoninfo.ConnectionInfo = crConnectionInfo
            CrTable.ApplyLogOnInfo(crtableLogoninfo)
        Next
        frmReportViewer.ReportSource = crReportDocument
    End Sub
================================================================================================================
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim objDS As DataSet = New DataSet
        Using cnn As SqlConnection = New SqlConnection
            cnn.ConnectionString = "Data Source=DC-SERVER;Initial Catalog=Tuhama;Persist Security Info=True;User ID=sa;Password=fil9970"
            Using objDA As SqlDataAdapter = New SqlDataAdapter
                Using cmd As SqlCommand = New SqlCommand
                    cmd.Connection = cnn
                    cmd.CommandType = CommandType.Text
                    cmd.CommandText = "SELECT * FROM zz_quilt_wating WHERE inv_r_date>=@DateFrom AND DateCol<=@DateTo"
                    cmd.Parameters.Add("@DateFrom", SqlDbType.DateTime).Value = Me.dtFrom.Text
                    cmd.Parameters.Add("@DateTo", SqlDbType.DateTime).Value = Me.dtto.Text
                    objDA.SelectCommand = cmd
                    objDA.Fill(objDS, "zz_quilt_wating")
                End Using
            End Using
        End Using
        Dim rpt As CrystalReport1 = New CrystalReport1
        rpt.SetDataSource(objDS.Tables("zz_quilt_wating"))
        rpt.SummaryInfo.ReportTitle = "  من الفترة " & Me.dtFrom.Text & "  الى الفترة " & Me.dtto.Text
        Me.frmReportViewer.ReportSource = rpt
        Me.frmReportViewer.Show()
    End Sub
End Class
#9

قم بحذف الكود في Form2_Load واخبرنا بالخطء

#10

الخطأ يظهر في السطر المظلل بالأصفر

 

post-281170-0-68681300-1392732841_thumb.

#11

الخطأ يظهر في السطر المظلل بالأصفر

post-281170-0-18511300-1392732927_thumb.

#12

ما هى رساله الخطأ

يبدو ان جمله SELECT كتبتها خاطئه حيث انك لم تعدل DateCol باسم الحقل عندك فى الداتا بيز

لا حظ

SELECT * FROM zz_quilt_wating WHERE inv_r_date>=@DateFrom AND DateCol<=@DateTo

تم تعديل هذه المشاركة بواسطة SOLO.NET في 18 فبراير 2014 في 17:44

VB.NET and C# Comparison

http://www.harding.edu/fmccown/vbnet_csharp_comparison.html

002.gif

=-=-=-=-=-=-=
ذو العلم يشقى فى النعيم بعلمه .:. واخو الجهالة فى الشقاوة ينعم
=-=-=-=-=-=-=
يا من بدنياه اشتغل . قد غره طول الأمل . فالموت يأتى بغتة . والقبر صندوق العمل
=-=-=-=-=-=-=
ان لم تستطع ان تجد ما تفعله فافعل ما لم تسطع ان تجده

screen_shot_2011-05-19_at_12.44.49_pm.pn

#13

الخطأ لم يظهر في الفورم لكن النتائج خاطئة 

فالتقرير يعمل وأقوم باختيار التاريخين لكن يظهر نتائج مختلفة كأن التايم بيكر لا تعمل لكن لو وضعت تاريخ قديم جدا للاختبار قبل تاريخ انشاء قاعدة البيانات يظهر التقرير فارغ

ها هي الجمله التي قمت بتعديلها SELECT * FROM zz_quilt_wating WHERE inv_r_date>=@DateFrom AND inv_r_date<=@DateTo

Dim objDS As DataSet = New DataSet
        Using cnn As SqlConnection = New SqlConnection
            cnn.ConnectionString = "Data Source=DC-SERVER;Initial Catalog=Tuhama;Persist Security Info=True;User ID=sa;Password=fil9970"
            Using objDA As SqlDataAdapter = New SqlDataAdapter
                Using cmd As SqlCommand = New SqlCommand
                    cmd.Connection = cnn
                    cmd.CommandType = CommandType.Text
                    cmd.CommandText = "SELECT * FROM zz_quilt_wating WHERE inv_r_date>=@DateFrom AND inv_r_date<=@DateTo"
                    cmd.Parameters.Add("@DateFrom", SqlDbType.DateTime).Value = Me.dtFrom.Text
                    cmd.Parameters.Add("@DateTo", SqlDbType.DateTime).Value = Me.dtto.Text
                    objDA.SelectCommand = cmd
                    objDA.Fill(objDS, "zz_quilt_wating")
                End Using
            End Using
        End Using
        Dim rpt As Delevared = New Delevared
        rpt.SetDataSource(objDS.Tables("zz_quilt_wating"))
        rpt.SummaryInfo.ReportTitle = "  من الفترة " & Me.dtFrom.Text & "  الى الفترة " & Me.dtto.Text
        Me.CrystalReportViewer1.ReportSource = rpt
        Me.CrystalReportViewer1.Show()
#14

ما هو نوع البيانات للعمود inv_r_date   وكيف يتم حفظ البيانات به(التنسيق)

طبق الاستعلام السابق مباشرة داخل SQL Server  وانظر للنتائج

VB.NET and C# Comparison

http://www.harding.edu/fmccown/vbnet_csharp_comparison.html

002.gif

=-=-=-=-=-=-=
ذو العلم يشقى فى النعيم بعلمه .:. واخو الجهالة فى الشقاوة ينعم
=-=-=-=-=-=-=
يا من بدنياه اشتغل . قد غره طول الأمل . فالموت يأتى بغتة . والقبر صندوق العمل
=-=-=-=-=-=-=
ان لم تستطع ان تجد ما تفعله فافعل ما لم تسطع ان تجده

screen_shot_2011-05-19_at_12.44.49_pm.pn

#15

جرب استخدام تاريخ اقل من يوم 13 واخبرنا

#16

نوع حقل التاريخ inv_r_date داخل sql هو smalldatetime 

وهذا هو الاستعلام الموجود في sql 2000  مع العلم ان الجداول ليست بينها علاقات وتم عمل العلاقات في الاستعلام بربط اربعة جداول بالاضافة الى شروط اخرى

قمت بعمل مشروع صغير به المشكلة ارجو التعديل واعادة ارسالة 

SELECT     TOP 100 PERCENT dbo.INV_Header.Inv_No, dbo.INV_Header.Inv_No_Old, dbo.INV_Header.Inv_Cust_name, dbo.INV_Header.Inv_R_Date, 
                      dbo.ITEM_DEF_Sale.IT_NAME, dbo.INV_Header.Inv_R_Day_Name, dbo.INV_Header.Inv_user_name, dbo.INV_Header.Inv_Serial, 
                      dbo.INV_Header.Inv_Type, dbo.INV_Header.Inv_Cust_no, dbo.INV_Header.INV_R_Time, dbo.INV_Header.Inv_Curr_Status, dbo.INV_Header.Inv_Time1, 
                      dbo.INV_Detail.D_Item_no, dbo.INV_Header.Inv_Time2, dbo.INV_Header.Inv_Time3, dbo.INV_Header.Inv_Time4, dbo.INV_Header.Inv_Time5, 
                      dbo.INV_Header.Inv_Time6, dbo.INV_Header.Inv_Driver_no, dbo.INV_Header.Inv_Driver_no_R, dbo.INV_Header.Inv_Driver_Name_R, 
                      dbo.INV_Detail.D_Count, dbo.INV_Header.Inv_Total_Price, dbo.INV_Header.Inv_Final_Price, dbo.INV_Header.INV_Payed_Price, 
                      dbo.INV_Header.Inv_User_No, dbo.INV_Header.Deleted, dbo.INV_Header.Inv_US_Br, dbo.INV_Detail.D_Unit_Price, dbo.Items_Type_Def.TP_Desc, 
                      dbo.Items_Type_Def.TP_NO, dbo.INV_Header.Inv_isDeliver, CONVERT(datetime, dbo.INV_Header.Inv_R_Date + dbo.INV_Header.INV_R_Time, 103) 
                      AS Inv_R_DateTime, dbo.INV_Header.Inv_Driver_Name, dbo.INV_Header.Inv_Gotraa_Style, dbo.INV_Header.Inv_Gotraa_Nisha, 
                      dbo.INV_Header.Inv_Nile, dbo.INV_Header.Inv_Date
FROM         dbo.INV_Header INNER JOIN
                      dbo.INV_Detail ON dbo.INV_Header.Inv_Serial = dbo.INV_Detail.Inv_Serial INNER JOIN
                      dbo.ITEM_DEF_Sale ON dbo.INV_Detail.D_Item_no = dbo.ITEM_DEF_Sale.IT_ID INNER JOIN
                      dbo.Items_Type_Def ON dbo.ITEM_DEF_Sale.IT_Type = dbo.Items_Type_Def.TP_NO
WHERE     
                      (dbo.INV_Detail.D_Item_no = '9') AND (dbo.INV_Header.Inv_Curr_Status = ' 3') OR
                      (dbo.INV_Detail.D_Item_no = '10') AND (dbo.INV_Header.Inv_Curr_Status = ' 3')
ORDER BY dbo.INV_Header.Inv_R_Date DESC
#17

المشروع

RepTowTate.rar

#18

ارجو الرد الاخطاء عندي تظهر في الكود كما في الصوره المرفقة مع العلم قمت بتعديل الاستعلام داخل sql serverواظهر نتائج سليمه داخل sql

 

 

post-281170-0-83143300-1392903504_thumb.

#19

غير كود هذا بما يناسبك هذا لاول مشكله

cnn.ConnectionString = "Data Source=DC-SERVER;Initial Catalog=Tuhama;Persist Security Info=True;User ID=sa;Password=fil9970"

اخذف كلمة

my.forms.

تم تعديل هذه المشاركة بواسطة KARIMSOFT في 20 فبراير 2014 في 22:47

#20

اشكركم جزيل الشكر فقد تم حل المشكلة فاشكر اخي     karimsoft   و  solo.net   و  محمد فؤاد تركي  

جزاكم الله خيرا وانفعكم بعلمكم واذادكم من فضله وعلمه قدر ما تحبون وأكثر 

تم حل المشكلة بنفس الكود وها هو الكود النهائي بعد التعديلات 

 Dim objDS As DataSet = New DataSet
        Using cnn As SqlConnection = New SqlConnection
            cnn.ConnectionString = "Data Source=DC-SERVER;Initial Catalog=Tuhama;Persist Security Info=True;User ID=sa;Password=fil9970"
            Using objDA As SqlDataAdapter = New SqlDataAdapter
                Using cmd As SqlCommand = New SqlCommand
                    cmd.Connection = cnn
                    cmd.CommandType = CommandType.Text
                    cmd.CommandText = "SELECT * FROM zz_Quilt_Delevared WHERE (inv_r_date>=@DateFrom AND inv_r_date<=@DateTo)"
                    cmd.Parameters.Add("@DateFrom", SqlDbType.DateTime).Value = Me.dtFrom.Text
                    cmd.Parameters.Add("@DateTo", SqlDbType.DateTime).Value = Me.dtto.Text

                    objDA.SelectCommand = cmd
                    objDA.Fill(objDS, "zz_Quilt_Delevared")

                End Using
            End Using
        End Using
        Dim rpt As Delevared = New Delevared
        rpt.SetDataSource(objDS.Tables("zz_Quilt_Delevared"))

        rpt.SummaryInfo.ReportTitle = "  من الفترة " & Me.dtFrom.Text & "  الى الفترة " & Me.dtto.Text
        Me.CrystalReportViewer1.ReportSource = rpt
        Me.CrystalReportViewer1.Show()
#21

اكرمك الله

ولكن اخبرنا ما كان سبب المشكلة ليستفيد الجميع

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…