تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[VB.NET] البحث بالداتاجريد عن القيمة الاقرب
#1
السلام عليكم ورحمة الله وبركاتة

انا عندي داتاجريد فيو وبها الاعمدة الاتية :

   

ما اريدة هو الاستعلام والبحث عن القيمة الرقمية الاقرب للقيمة المحددة من الداتاجريد الاولي واضافتها بالداتاجريد البحث والثانية | قبل التاريخ المحدد والقيمة الاقرب بعد التاريخ المحدد لصف محدد او مجموعة صفوف محددة من الداتاجريد الاولي واظهار الصفوف الناتجة بالداتاجريد الثانية مع رسالة خطأ اذا لم يوجد قيم قبل ابعد

اذا كان هناك نفس القيم بالقرب الرقمي يتم الاختيار لاول قيمة قبل الاستعلام والاول بعد الاستعلام الناتج قيمة واحدة ]دائما

الكود الي حاولت بية .

هوا بيجبلي كل القيم القريبة قبل وليس قيمة واحدة قبل الصف المحدد ولو في قيم متشابهة بتظهر كلها والناتج المراد واحد فقط


كود :
Dim str As New List(Of Double)
       Dim colosest As Double = 0
       For i As Integer = 0 To DATAG_CLIEN.RowCount - 1
           If Convert.ToDateTime(DATAG_CLIEN.SelectedRows.Item(0).Cells(1).Value) > Convert.ToDateTime(DATAG_CLIEN.Rows(i).Cells(1).Value) Then
               str.Add(DATAG_CLIEN.Rows(i).Cells(3).Value)
               Dim myDouble As Double = DATAG_CLIEN.SelectedRows.Item(0).Cells(3).Value
               colosest = str.OrderBy(Function(item) Math.Abs(myDouble - item)).First
               If DATAG_CLIEN.Rows(i).Cells(3).Value = colosest Then
                   DATAG_QUERYA.Rows.Add(New String() {"Q1.B", DATAG_CLIEN.Rows(i).Cells(1).Value.ToString, DATAG_CLIEN.Rows(i).Cells(2).Value, DATAG_CLIEN.Rows(i).Cells(3).Value})
               End If
           End If
       Next
       TabControl1.SelectedIndex = 1


برنامج بسيط بالمرفقات بية العمليات باسم QUERY

دمتم بخير وعافية .
الرد }}}
تم الشكر بواسطة:
#2
(21-12-19, 09:19 PM)محمد اسماعيل كتب : السلام عليكم ورحمة الله وبركاتة

انا عندي داتاجريد فيو وبها الاعمدة الاتية :



ما اريدة هو الاستعلام والبحث عن القيمة الرقمية الاقرب للقيمة المحددة من الداتاجريد الاولي واضافتها بالداتاجريد البحث والثانية | قبل التاريخ المحدد والقيمة الاقرب بعد التاريخ المحدد لصف محدد او مجموعة صفوف محددة من الداتاجريد الاولي واظهار الصفوف الناتجة بالداتاجريد الثانية مع رسالة خطأ اذا لم يوجد قيم قبل ابعد

اذا كان هناك نفس القيم بالقرب الرقمي يتم الاختيار لاول قيمة قبل الاستعلام والاول بعد الاستعلام الناتج قيمة واحدة ]دائما

الكود الي حاولت بية .

هوا بيجبلي كل القيم القريبة قبل وليس قيمة واحدة قبل الصف المحدد ولو في قيم متشابهة بتظهر كلها والناتج المراد واحد فقط


كود :
Dim str As New List(Of Double)
       Dim colosest As Double = 0
       For i As Integer = 0 To DATAG_CLIEN.RowCount - 1
           If Convert.ToDateTime(DATAG_CLIEN.SelectedRows.Item(0).Cells(1).Value) > Convert.ToDateTime(DATAG_CLIEN.Rows(i).Cells(1).Value) Then
               str.Add(DATAG_CLIEN.Rows(i).Cells(3).Value)
               Dim myDouble As Double = DATAG_CLIEN.SelectedRows.Item(0).Cells(3).Value
               colosest = str.OrderBy(Function(item) Math.Abs(myDouble - item)).First
               If DATAG_CLIEN.Rows(i).Cells(3).Value = colosest Then
                   DATAG_QUERYA.Rows.Add(New String() {"Q1.B", DATAG_CLIEN.Rows(i).Cells(1).Value.ToString, DATAG_CLIEN.Rows(i).Cells(2).Value, DATAG_CLIEN.Rows(i).Cells(3).Value})
               End If
           End If
       Next
       TabControl1.SelectedIndex = 1


برنامج بسيط بالمرفقات بية العمليات باسم QUERY

دمتم بخير وعافية .

اعمل بحثين، الاول لقبل والاخر لبعد
كود :
For i As Integer = 0 To DATAG_CLIEN.SelectedRows.Item(0).Index - 1
'
' للبحث قبل
'
Next
For i As Integer = DATAG_CLIEN.SelectedRows.Item(0).Index + 1 To DATAG_CLIEN.Rows.Count - 1
'
' للبحث بعد
'
Next

لم اجد المرفقات التي ذكرتها
الرد }}}
تم الشكر بواسطة:
#3
المرفقات بالملف

مشكلتي بالقيمة الاقرب وليس بالبحث بين تاريخين المثال فية كل شيء


الملفات المرفقة
.rar   QUERY.rar (الحجم : 69.9 ك ب / التحميلات : 22)
الرد }}}
تم الشكر بواسطة:



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


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