تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
جمع الوقت الموجود في عمود في الداتاقريد فيو
#1
 لسلام عليكم ورحمة االله وبركاته
 اخواني كيف يتم جمع الوقت الموجود عمود في الداتاقريدفيو  علماً أني استخدمت الكود الموجود في الأسفل لكن يعمل أحيانا وأحيانا يظهر لي الخطأ  التالي


التحويل من السلسلة "" إلى النوع 'Double' غير صالح.

 



Dim columnIndex As Integer = 8

Dim h, m As Integer

For Each r As DataGridViewRow In Me.DataGridView2.Rows

If Not IsNothing(r.Cells(columnIndex).Value) Then

h += r.Cells(columnIndex).Value.ToString.Split(":")(0)

m += r.Cells(columnIndex).Value.ToString.Split(":")(1)

End if
Next

If m > 59 Then

h += Math.Floor(m / 60)

m = m Mod 60

End If

Dim result As String = String.Format("{0}:{1}", h, m)

Me.TextBox15.Text = result











لكم جزيل الشكر

دمتم بود
الرد
تم الشكر بواسطة: asemshahen5
#2
السلام عليكم ورحمة الله وبركاته
اخي الكريم
الكود صحيح ولالبس فيه 
قد تكون تجمع الوقت (اي الزمن ساعة - دقيقة - ثانية) وربما نظام الساعة 24 هذا ليس له علاقة بجمع الوقت 
والمفروض ان تكون القيم هي حاصل الفرق بين وقت دخول العامل وانصرافه مقدرة بالساعة والدقيقة فقط
بمعنى ان لديك داتا غرايد تظهر اسم ورقم العامل وعمود للحضور  وعمود أخر للانصراف 
والغمود الثالث وهو الذي سيكون حاصل فرق الزمن بين الحضور والانصراف هكذا  3:35 
اي ان العامل قضى وقتا مجموعه 3 ساعات وخمس وثلاثون دقيقة وهو الفرق بين وقت الحضور ووقت الانصراف
هذا العمود ستجمع قيم خلاياه وفق الكود الذي عندك
اعمل الخير واجرك لاتنتظره فالله خير من اليك يرده
البرمجة ليست مجرد كود بل هي منهج تفكير منطقي لحل المشكلات







الرد
تم الشكر بواسطة: عبد العزيز البسكري , asemshahen5
#3
(22-04-20, 04:41 AM)ابراهيم ايبو كتب : السلام عليكم ورحمة الله وبركاته
اخي الكريم
الكود صحيح ولالبس فيه 
قد تكون تجمع الوقت (اي الزمن ساعة - دقيقة - ثانية) وربما نظام الساعة 24 هذا ليس له علاقة بجمع الوقت 
والمفروض ان تكون القيم هي حاصل الفرق بين وقت دخول العامل وانصرافه مقدرة بالساعة والدقيقة فقط
بمعنى ان لديك داتا غرايد تظهر اسم ورقم العامل وعمود للحضور  وعمود أخر للانصراف 
والغمود الثالث وهو الذي سيكون حاصل فرق الزمن بين الحضور والانصراف هكذا  3:35 
اي ان العامل قضى وقتا مجموعه 3 ساعات وخمس وثلاثون دقيقة وهو الفرق بين وقت الحضور ووقت الانصراف
هذا العمود ستجمع قيم خلاياه وفق الكود الذي عندك

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

ليس المقصود حساب فرق الزمن بين الحضور والانصراف  المقصود حساب مقدار التأخر للعامل بمعنى يوجد عندي عمودين الأول يسجل وقت حضور العامل  والثاني يسجل مقدار التأخر عن الوقت المحدد يومياً  وهو الساعة  (  07:00   صباحاً )   وإذا تأخر عن الموعد المحدد  مثلاً تأخر 10 دقائق يسجل له  00:10    وإذا لم يحصل تأخر من قبل العامل يسجل له القمية   00:00     وهكذا ............يعني يسجل يومياً ............ الذي أريده في نهاية الشهر يقوم بحساب  مجموع التأخرات للشهر كاملاً ثم يضعها في textbox15
أرجو يكون الشرح واضح

لك جزيل الشكر
دمت بود
الرد
تم الشكر بواسطة: asemshahen5
#4
(22-04-20, 02:41 AM)جيولوجي مبتدئ كتب :
 لسلام عليكم ورحمة االله وبركاته
 اخواني كيف يتم جمع الوقت الموجود عمود في الداتاقريدفيو  علماً أني استخدمت الكود الموجود في الأسفل لكن يعمل أحيانا وأحيانا يظهر لي الخطأ  التالي


التحويل من السلسلة "" إلى النوع 'Double' غير صالح.

 



Dim columnIndex As Integer = 8

Dim h, m As Integer

For Each r As DataGridViewRow In Me.DataGridView2.Rows

If Not IsNothing(r.Cells(columnIndex).Value) Then

h += r.Cells(columnIndex).Value.ToString.Split(":")(0)

m += r.Cells(columnIndex).Value.ToString.Split(":")(1)

End if
Next

If m > 59 Then

h += Math.Floor(m / 60)

m = m Mod 60

End If

Dim result As String = String.Format("{0}:{1}", h, m)

Me.TextBox15.Text = result











لكم جزيل الشكر

دمتم بود


أتوقع أن المشكلة ليست بهذا الكود طالما يعمل أحيانا


رسالة الخطأ معناها أن القيم التي تحاول جمعها، بها قيمة أو أكثر غير قابلة للحساب، بمعني أن تكون حروف أو رموز مثلا أو خانة الساعات مثلا ليست رقمية كأن تكون خالية و ليست أصفار  .. الخ

فعندما تعطيك خطأ، راجع يدويا القيم التي تحاول جمعها ستجد بها خطأ يرجع لكود تسجيل التأخير 
الرد
تم الشكر بواسطة: ابراهيم ايبو , asemshahen5
#5
جرب هذا الكود

كود :
Dim dgvrRow As DataGridViewRow  
       Dim tsSum As TimeSpan  
       Dim tsTemp As TimeSpan          
       TimeSpan.TryParse("00:00:00", tsSum)
       For Each row In datagridview2.rows  
           strTemp = row.Cells(8).Value.ToString  
           If strTemp <> String.Empty Then  
               tsTemp = DateTime.ParseExact(strTemp, "HH,mm,ss", Nothing).TimeOfDay  
               tsSum = tsSum.Add(tsTemp)  
           End If  
       Next  
       TextBox15.Text = tsSum.toString  

الرد
#6
السلام عليكم ورحمة الله وبركاته
شكرا لكم اخواني
سوف اجرب الكود واعطيكم النتائج في أقرب وقت
دمتم بود
الرد
تم الشكر بواسطة: asemshahen5 , ابراهيم ايبو
#7
السلام عليكم ورحمة الله وبركاته
في هذا السؤال يوجد توصيف غير كامل بمعنى ان الكود الذي اوردته اخي جيولوجي قلت لك انه صحيح مئة بالمئة لكن يبدو انك غير مقتنع بعد وسأشرح لك
في البدء كودك وطيفته جمع قيم حاصل فرق بين حضور وانصراف 
يعني كل يوم سيتم حساب الدوام من ساعة الحضور الى الانصراف وتكون القيمة الفرق بينهما (وفق كود أخر غير كودك وقد اوردته في المثال
وقيمة الفرق توضع في حقل اسمه وليكن (زمن العمل المؤدى) حسب تاريخ اليوم
وبهذا سيكون لدينا سجلات لكل موطف بعدد ايام الشهر تستدعى بشرط حقل اسم الموطف هنا ستكون الداتا غرايد فيها سجلات الدوام الشهري لموظف واحد 
هنا يأتي دور كودك اخي جيولوجي حيث سيقوم بجمع قيم خلايا العمود الذي اسميناه  (زمن العمل المؤدى) ويضعها في مربع نص او اي مكان أخر تريده

بقي شيء واحد لم انتبه له وهو انك تريد وقت التأخر 
يمكنك فعل ذلك بأن تضع مجموع عدد ساعات الدوام الكلي للشهر وتطرح منها مجموع زمن الدوام المؤدى وبذلك النتيجة تكون زمن التأخر


الملفات المرفقة صورة/صور
   

.zip   CalculateComeGoTime.zip (الحجم : 146.32 ك ب / التحميلات : 11)
اعمل الخير واجرك لاتنتظره فالله خير من اليك يرده
البرمجة ليست مجرد كود بل هي منهج تفكير منطقي لحل المشكلات







الرد
تم الشكر بواسطة: عبد العزيز البسكري , asemshahen5
#8
(23-04-20, 12:30 AM)ابراهيم ايبو كتب : السلام عليكم ورحمة الله وبركاته
في هذا السؤال يوجد توصيف غير كامل بمعنى ان الكود الذي اوردته اخي جيولوجي قلت لك انه صحيح مئة بالمئة لكن يبدو انك غير مقتنع بعد وسأشرح لك
في البدء كودك وطيفته جمع قيم حاصل فرق بين حضور وانصراف 
يعني كل يوم سيتم حساب الدوام من ساعة الحضور الى الانصراف وتكون القيمة الفرق بينهما (وفق كود أخر غير كودك وقد اوردته في المثال
وقيمة الفرق توضع في حقل اسمه وليكن (زمن العمل المؤدى) حسب تاريخ اليوم
وبهذا سيكون لدينا سجلات لكل موطف بعدد ايام الشهر تستدعى بشرط حقل اسم الموطف هنا ستكون الداتا غرايد فيها سجلات الدوام الشهري لموظف واحد 
هنا يأتي دور كودك اخي جيولوجي حيث سيقوم بجمع قيم خلايا العمود الذي اسميناه  (زمن العمل المؤدى) ويضعها في مربع نص او اي مكان أخر تريده

بقي شيء واحد لم انتبه له وهو انك تريد وقت التأخر 
يمكنك فعل ذلك بأن تضع مجموع عدد ساعات الدوام الكلي للشهر وتطرح منها مجموع زمن الدوام المؤدى وبذلك النتيجة تكون زمن التأخر

 الله يبارك فيك تم الحل بفضل جهودكم
الرد
تم الشكر بواسطة: asemshahen5 , ابراهيم ايبو


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  اضافة عمود كمبوبوكس atefkhalf2004 17 284 منذ 10 ساعة مضت
آخر رد: ابراهيم ايبو
  حذف صف من الداتاقريد فيو وقاعدة البيانات جيولوجي مبتدئ 2 85 11-05-20, 03:26 AM
آخر رد: جيولوجي مبتدئ
  حساب فرق الوقت فقط بالساعة والدقائق بين تاريخين mostafa nada 2 108 04-05-20, 12:10 AM
آخر رد: mostafa nada
  [سؤال] فتح الفورم بحسب اسم الفورم الموجود في مربع النص بسام هزاع 2 170 24-03-20, 11:22 PM
آخر رد: kiki
  كيف يمكن كتابة الوقت داخل datagridview matrixmas 22 6,017 14-03-20, 01:51 PM
آخر رد: khaled95
Exclamation [VB.NET] هل يوجد ويب بروزر غير الويب البروزر الموجود على الفجوال بيسك ويعمل بشكل صحيح SnTnt 9 557 21-01-20, 07:45 PM
آخر رد: abubasilIraq
  مساعدة في كود اضافة عمود في المكان المناسب sofiane-phy 8 397 12-12-19, 07:30 PM
آخر رد: sofiane-phy
  الوقت والتاريخ moha8080 1 247 20-11-19, 07:50 PM
آخر رد: asemshahen5
  عاوز اعرف اكبر رقم فى عمود من خلال السنة بالفجوال بيسك عمرو نجيب 1 209 13-11-19, 11:19 PM
آخر رد: smalw
  ماهي طريقة نقل جميع محتويات كومبوبوكس على خلية واحدة معينة في الداتاقريد فيو جيولوجي مبتدئ 3 338 12-11-19, 10:49 AM
آخر رد: علي نوري

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


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