05-03-18, 02:40 AM
عندي داتا جريد فيو بها مجموعة من الطلاب وتاريخ دفع المصروفات الخاص بفترة معينة من اول مدة الدفع الي اخر الشهر من الدفع وانتهاء المصروف الشهري اريد معرفة كل طالب كم تاخر بالايام او الشهو عن الدفع الشهري الي الشهر التالي
لكل طالب ماهي مدة تاخير وتاتي بفرق امدة الحالية لنفس الطالب - اخر تاريخ للمدة السابقة لطالب
صورة توضيحية لطالب والقياس علية لكل طالب استخدمت الكود التالي ولكن يعتمد في الطرح علي اول تاريخ لطالب وليس كل تاريخ جديد الصورة المطلوبة بالمرفقات
حاولت اعمل حلقة تكرارية وعلي اساس التكرار ياتي باسم الطالب ويطرح المدة ولكن الكود يعتمد علي اول تاريخ وليس كل تاريخ جديد
الكود
لكل طالب ماهي مدة تاخير وتاتي بفرق امدة الحالية لنفس الطالب - اخر تاريخ للمدة السابقة لطالب
صورة توضيحية لطالب والقياس علية لكل طالب استخدمت الكود التالي ولكن يعتمد في الطرح علي اول تاريخ لطالب وليس كل تاريخ جديد الصورة المطلوبة بالمرفقات
حاولت اعمل حلقة تكرارية وعلي اساس التكرار ياتي باسم الطالب ويطرح المدة ولكن الكود يعتمد علي اول تاريخ وليس كل تاريخ جديد
الكود
كود :
On Error Resume Next
For intI = DataGridView1.Rows.Count - 1 To 0 Step -1
For intJ = intI - 1 To 0 Step -1
Dim t As String = DataGridView1.Rows(intI).Cells(16).Value ' duplicat
Dim j As String = DataGridView1.Rows(intJ).Cells(16).Value ' original
Dim fromDate As String = Regex.Match(t, "(?<=من\s).+?(?=\s)").Value
Dim toDate As String = Regex.Match(t, "(?<=الي\s).+?(?=\s)").Value
Dim fromDate1 As String = Regex.Match(j, "(?<=من\s).+?(?=\s)").Value
Dim toDate1 As String = Regex.Match(j, "(?<=الي\s).+?(?=\s)").Value
Dim d1 As Date = CDate(fromDate)
Dim d2 As Date = CDate(toDate)
Dim d3 As Date = CDate(fromDate1)
Dim d4 As Date = CDate(toDate1)
If DataGridView1.Rows(intI).Cells(15).Value = DataGridView1.Rows(intJ).Cells(15).Value Then
If IsDate(fromDate) And IsDate(toDate) Then
DataGridView1.Rows(intI).Cells(17).Value = DateDiff("d", d4, d1) 'intJ,intI
DataGridView1.Rows(intI).Cells(18).Value = DateDiff("M", d4, d1)
Else
DataGridView1.Rows(intI).Cells(17).Value = 0
DataGridView1.Rows(intI).Cells(18).Value = 0
End If
End If
Next
Next