منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
البحث بين تاريخين لاسم معين - نسخة قابلة للطباعة

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (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=29807)



البحث بين تاريخين لاسم معين - alshandodi - 13-06-19

ممكن معرفة ناتج الوقت في الداتا جريد فيو 
وكود البحث بين تاريخين لشخص معين فأنا كتبت الاستعلام ولكن هنالك خطأ في الاستعلام والكود الثالث إيجاد رئيس الفريق لجروب معين والاستلام ظهر عندي خطأ   وشاكرا لكم كرمكم ومساعدتكم لي Heart


RE: مساعدة وتغير عنوان - sniperjawadino - 13-06-19

قم باستخدام هذا الكود لحساب مجموع العمود
لكن قبل ذلك أضن أنه من الأفضل أن تقوم بإضافة عمود مخفي و تحويل عمود الوقت إلى دقائك
بعد حساب مجموع الدقائق بهذا الكود
قم بقسمته على 60 

هذه فكرة فقط
انتظر الأعضاء لحل أفضل

كود :
       Dim i As Integer
       Dim x As Double = 0


       For i = 0 To DataGridView1.Rows.Count - 1
           If Not DataGridView1.Rows(i).Cells(6).Value Is DBNull.Value Then

               x = x + DataGridView1.Rows(i).Cells(6).Value

           End If
       Next

       Label6.Text = x



RE: مساعدة وتغير عنوان - alshandodi - 13-06-19

اخي لم يجدي نفعا هذا الكود واتمنى ان يكون هناك كود اخر وأريد أيضا البحث عن شخص بين تاريخين واسم الشخص وأريد بعد كود إيجاد رئيس الفريق في الجدول


RE: البحث بين تاريخين لاسم معين - elgokr - 14-06-19

تعال فى كود حدث Button1_Click
واستبدله كلياً بهذا الكود
كود :
       DT.Clear()
       adapter = New OleDbDataAdapter("SELECT * FROM Table1 WHERE NameT LIKE '%" & TextBox1.Text & "%' AND DateA BETWEEN #" & DateTimePicker1.Value.ToShortDateString & "# AND #" & DateTimePicker2.Value.ToShortDateString & "#", con)

       adapter.Fill(DT)
       DataGridView1.DataSource = DT

       If DT.Rows.Count = 0 Then
           MsgBox("No match found ?")
       End If

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

تحياتى لك
وتمنياتى لك التوفيق



RE: البحث بين تاريخين لاسم معين - alshandodi - 15-06-19

(14-06-19, 02:54 PM)elgokr كتب :
تعال فى كود حدث Button1_Click
واستبدله كلياً بهذا الكود
كود :
       DT.Clear()
       adapter = New OleDbDataAdapter("SELECT * FROM Table1 WHERE NameT LIKE '%" & TextBox1.Text & "%' AND DateA BETWEEN #" & DateTimePicker1.Value.ToShortDateString & "# AND #" & DateTimePicker2.Value.ToShortDateString & "#", con)

       adapter.Fill(DT)
       DataGridView1.DataSource = DT

       If DT.Rows.Count = 0 Then
           MsgBox("No match found ?")
       End If

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

تحياتى لك
وتمنياتى لك التوفيق


أشكرك أخي على الرد نجح عندي الكود ولكن اريد الاشياء الأخرى
الا وهي كيفية حساب الوقت في الداتا جريد فيو واظهار الناتج في تيكست بوكس 
كيفية معرفة رئيس الفريق


RE: البحث بين تاريخين لاسم معين - elgokr - 15-06-19

(15-06-19, 09:50 AM)alshandodi كتب : أشكرك أخي على الرد نجح عندي الكود ولكن اريد الاشياء الأخرى

الشكر لله والحمد لله
والحمد لله على كل حال

(15-06-19, 09:50 AM)alshandodi كتب : الا وهي كيفية حساب الوقت في الداتا جريد فيو واظهار الناتج في تيكست بوكس

بخصوص الوقت ستحتاج الى استخدام TimeSpan
ولاتمام الامر بكود منى وارساله لك قم بتوضيح ولو بصورة
اى من الاعمدة المطلوبة والفكرة المطلوبة تماماً من الاحتساب كا طرح والجمع
حتى يتم عمل الكود بناءاً لما ترده

(15-06-19, 09:50 AM)alshandodi كتب : كيفية معرفة رئيس الفريق
اين موقعه فى قاعدة البيانات
بمعنى ما العمود والجدول المشير الى رئيس الفرق حتى افيدك به
فيجب انت من يكون على علم بناءاً لتوزيعك لقاعدة البيانات
فقط وضح لى اى جدول واى عمود يكون مذكور به اسم الرئيس
حتى افيدك بالكود الذى يعرض لك اسم الرئيس فى TExtBox او فى الدتا جريد باعطائه لون معين

تحياتى لك
وتمنياتى لك التوفيق



RE: البحث بين تاريخين لاسم معين - alshandodi - 16-06-19

(15-06-19, 04:20 PM)elgokr كتب :
(15-06-19, 09:50 AM)alshandodi كتب : أشكرك أخي على الرد نجح عندي الكود ولكن اريد الاشياء الأخرى

الشكر لله والحمد لله
والحمد لله على كل حال

(15-06-19, 09:50 AM)alshandodi كتب : الا وهي كيفية حساب الوقت في الداتا جريد فيو واظهار الناتج في تيكست بوكس

بخصوص الوقت ستحتاج الى استخدام TimeSpan
ولاتمام الامر بكود منى وارساله لك قم بتوضيح ولو بصورة
اى من الاعمدة المطلوبة والفكرة المطلوبة تماماً من الاحتساب كا طرح والجمع
حتى يتم عمل الكود بناءاً لما ترده




(15-06-19, 09:50 AM)alshandodi كتب : كيفية معرفة رئيس الفريق
اين موقعه فى قاعدة البيانات
بمعنى ما العمود والجدول المشير الى رئيس الفرق حتى افيدك به
فيجب انت من يكون على علم بناءاً لتوزيعك لقاعدة البيانات
فقط وضح لى اى جدول واى عمود يكون مذكور به اسم الرئيس
حتى افيدك بالكود الذى يعرض لك اسم الرئيس فى TExtBox او فى الدتا جريد باعطائه لون معين

تحياتى لك
وتمنياتى لك التوفيق


إقتباس :[attachment=21677]
إقتباس :حساب هذا الوقت الموضح في الصورة



RE: البحث بين تاريخين لاسم معين - elgokr - 16-06-19

بخصوص هذا الامر كل ما عليك اضافة هذا الـ Function
كود :
   Function GetTotalTime(ByVal dgv As DataGridView, ByVal iRows As Integer, Optional iRmove As Integer = 2)
       Dim sumtime As TimeSpan = New TimeSpan
       For i As Integer = 0 To dgv.RowCount - iRmove
           Dim MTime As String() = dgv.Rows(i).Cells(iRows).Value.ToString.Split(":")
           sumtime += TimeSpan.FromSeconds(Val((MTime(0) * 60) * 60)) + TimeSpan.FromSeconds(Val(MTime(1) * 60)) + TimeSpan.FromSeconds(MTime(2))
       Next
       Dim mtTotalTime As String = sumtime.Hours.ToString("00") & ":" & sumtime.Minutes.ToString("00") & ":" & sumtime.Seconds.ToString("00")
       Return mtTotalTime
   End Function

الان ناتى فى حدث اللود الفورم أو الزر حسب ما تريد اتمام تنفيذ كود اجمالى الوقت

وقم بوضع الكود كمثال التالى
كود :
       Label1.Text = GetTotalTime(DataGridView1, 0)

كن معايا هنا كده عشان توضح معك الامر جيداً
حتى تتجنب اى خطاء قد يحدث معك

الـ GetTotalTime يتطلب 3 قيم
القيمة الاولى وهو اسم الداتا جريد
القيمة الثانية وهو رقم العمود الذى يحتوى على الوقت
القيمة الثالثة اختيارى لعدد الصفوف التى سيتم تخطيها فى عملية For

الكود الفعلى للامر هو
كود :
GetTotalTime(DataGridView1, 0, 2)

حيث DataGridView1 هو اسم الداتا جريد لديك

ورقم 0 هنا يشير الى ترتيب رقم العمود الذى يحتوى على الوقت تذكر ان العد يبداء من 0 وليس 1
يعنى لو العمود كان رقم 4 من حيث العد برقم 1 يبقي هنا المقصود به ان العمود رقم 3 فيكتب بدلاً من 0

ورقم 2 هنا اختياري لا يلزم كتابته
ولكن سيتم كتابته بدلاً منه رقم 1 اذا كان الداتا جريد لا يدعم الاضافة اليدوية
بمعنى انه معطل خاصية ادخال البيانات من خلال المستخدم كا كتابة بالداتا جريد

وهو يخص عملية For لهذا الكود
كود :
For i As Integer = 0 To DataGridView1.RowCount - 2

فاذا كان عملية الاضافة معطلة بالداتا جريد 

فهنا سيلزم عليك جعل الامر بهذا الشكل
كود :
       Label1.Text = GetTotalTime(DataGridView1, 0, 1)

اتمنى يكون الشرح مبسط لك
وان يكون الامور كاملة معك الان

عند تنفيذ الكود على الصورة ستجد يتم جلب الاجمالى
PHP كود :
12:00:30 

تحياتى لك
وتمنياتى لك التوفيق



RE: البحث بين تاريخين لاسم معين - alshandodi - 17-06-19

اشكرك جزيل الشكر عزيزي وأخي واتمنى لك التوفيق والتقدم


RE: البحث بين تاريخين لاسم معين - elgokr - 18-06-19

الشكر لله والحمد لله
والحمد لله على كل حال

تحياتى لك
وتمنياتى لك التوفيق