منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : البحث بالداتاجريد عن القيمة الاقرب
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
السلام عليكم ورحمة الله وبركاتة

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

[attachment=23729]

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

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

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

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


كود :
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

دمتم بخير وعافية .
(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

لم اجد المرفقات التي ذكرتها
المرفقات بالملف

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