منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
[سؤال] بخصوص متابعة تواريخ انتهاء الوثائق - نسخة قابلة للطباعة

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb)
+-- قسم : قسم لغة الفيجوال بيسك VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=182)
+--- قسم : قسم اسئلة VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=183)
+--- الموضوع : [سؤال] بخصوص متابعة تواريخ انتهاء الوثائق (/showthread.php?tid=36232)



بخصوص متابعة تواريخ انتهاء الوثائق - محمد العامر - 27-08-20

السلام عليكم ورحمة الله وبركاته
اسعد الله اوقاتكم بكل خير،،،
وجدة موضوع للاخ سعود مشابه لما أبحث عنه ولكن يعمل بطريقة يدوية
الفكرة التي اتحدث عنها متابعة لتاريخ انتهاء الوثائق مثل رخصة بطاقة عمل.... ألخ يتم اضافتهم في DataGridview لكل من تبقى على تاريخ الانتهاء 90 يوم وأقل
اتمنى ان تكون وضحت الفكرة 
^_^


RE: بخصوص متابعة تواريخ انتهاء الوثائق - عيد مبارك - 27-08-20

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

(متابعة لتاريخ انتهاء الوثائق) يعني أن تقوم بالاستعلام كل مدة حسب ما يناسبك
فقد تجد أن من الأنسب لك أن تقوم به في بداية تشغيل البرنامج في كل مرة
وقد تجد أن من الأنسب لك أن تقوم به في داخل Timer يعمل كل ساعة مثلا


RE: بخصوص متابعة تواريخ انتهاء الوثائق - محمد العامر - 27-08-20

صحيح اخي العزيز عيد الاستعلام يكون بتاريخ اليوم فقط


RE: بخصوص متابعة تواريخ انتهاء الوثائق - محمد العامر - 30-08-20

للرفع
سبحان الله وبحمده سبحان الله العظيم


RE: بخصوص متابعة تواريخ انتهاء الوثائق - Anas Mahmoud - 30-08-20

كان هناك موضوع مشابه بالامس : http://vb4arb.com/vb/showthread.php?tid=36253

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

في حدث اللود في الفورم : 

كود :
      Dim query As String = "SELECT * FROM documents
                              WHERE CAST(DueDate AS date) <= CAST(DATEADD(day,90, GETDATE()) AS date)
                              AND   CAST(DueDate AS date) >= CAST(getdate() AS date)"

      Dim cmd As New SqlCommand(query, conn)
      Dim sda As New SqlDataAdapter(cmd)
      Dim dt As New DataTable
      Dim RowCount As Integer

      conn.Open()

      RowCount = sda.Fill(dt)

      conn.Close()

      If RowCount > 0 Then

          'عرض تفاصيل الوثائق
          DataGridView1.DataSource = dt

      End If

عدل documents الى اسم جدول الوثائق وكذلك DueDate الى اسم عمود تواريخ الانتهاء

وراجع ايضا اجابات الاساتذه الافاضل في المشاركة التي رابطها بالاعلى فهي مفيدة جدا


RE: بخصوص متابعة تواريخ انتهاء الوثائق - محمد العامر - 30-08-20

يسلام هذا المطلوب
بارك الله فيك
تم تجربة الكود واظهر فقط من تبقى على تاريخ الانتهاء 90 يوم.
قمت بإضافة تعديل على الاستعلام ليظهر ايضا من هو أقل من 90 يوم كما يلي:
كود :
       Dim query As String = "SELECT * FROM documents
                             WHERE CAST(DueDate AS date) <= CAST(DATEADD(day,90, GETDATE()) AS date)
                               OR   CAST(DueDate AS date) = CAST(DATEADD(day,90, GETDATE()) AS date)
                                 AND   CAST(DueDate AS date) >= CAST(getdate() AS date)"

       Dim cmd As New SqlCommand(query, conn)
       Dim sda As New SqlDataAdapter(cmd)
       Dim dt As New DataTable
       Dim RowCount As Integer

       conn.Open()

       RowCount = sda.Fill(dt)

       conn.Close()

       If RowCount > 0 Then

           'عرض تفاصيل الوثائق
           DataGridView1.DataSource = dt

       End If
فهل الكود سليم ؟؟


RE: بخصوص متابعة تواريخ انتهاء الوثائق - Anas Mahmoud - 30-08-20

الكود يظهر التواريخ اقل من 90 ايضا هذه هي وظيفة علامة الاصغر من او يساوي في السطر التالي 
كود :
                             WHERE CAST(DueDate AS date) <= CAST(DATEADD(day,90, GETDATE()) AS date)


لا اعلم ما المشكلة اخي اذا كان يظهر فقط التواريخ عند 90 يوم فقط فهذا يعني ان الكود لم ينفذ بشكل سليم

يعمل عندي بشكل طبيعي 

[attachment=25553]

اذا قمت بارفاق مثال صغير ممكن نعدل عليه لنعلم من اين المشكلة


RE: بخصوص متابعة تواريخ انتهاء الوثائق - محمد العامر - 31-08-20

السلام عليكم ورحمة الله وبركاته
أعتذر عن التأخير أخواني
مرفق لكم ملف مثال


RE: بخصوص متابعة تواريخ انتهاء الوثائق - Anas Mahmoud - 01-09-20

قاعدة البيانات من نوع اكسس لذلك عدلت الاستعلام ليناسب قاعدة البيانات

كود :
   Sub ff()
       Dim query As String = "SELECT * FROM TBLithem
                             WHERE    DateValue(EXPDAT) <= DateValue(DATEADD('d',90, now()))
                             AND    DateValue(EXPDAT) >= DateValue(now())"

       Dim cmd As New OleDbCommand(query, Con)
       Dim da As New OleDbDataAdapter(cmd)
       Dim dt As New DataTable

       Dim RowCount As Integer

       Con.Open()

       RowCount = da.Fill(dt)

       Con.Close()

       If RowCount > 0 Then

           'عرض تفاصيل الوثائق
           DataGridView1.DataSource = dt

       End If
   End Sub



RE: بخصوص متابعة تواريخ انتهاء الوثائق - محمد العامر - 06-09-20

بارك الله فيك وجزاك الله كل خير نفع الله بك وسهل أمرك
شكرا شكرا شكراً