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

نسخة كاملة : طلب مساعدة بخصوص الدات تايم في الداتا جريد
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
السلام عليكم
عندي خانتين بهما أداة DATETIMEPICKER داخل DATAGRIDVIEW وكنت أريد في حالة ادخال الأولى أن يحسب مدة معينة وتكون القيمة للثانية
بمعنى أن الأولى لو بتاريخ 01-01-2020 تكون الثانية 28-01-2020
وأشكركم شكرا جزيلا
السلام عليكم اخي الكريم عاشق الرسول
اللهم صل على محمد وال محمد
اسعد الله صباحكم ووقاكم من كل شر
اخي الكريم اذا كنت تدخل التاريخ من اداتي DateTimePecke  اليك هذا الكود في الجدث التالي
كود :
Private Sub DateTimePicker1_ValueChanged(sender As Object, e As EventArgs) Handles DateTimePicker1.ValueChanged
       DateTimePicker2.Value = DateTimePicker1.Value.AddDays(27)
   End Sub

واذا كنت تدخل التاريخ من مربعي نص اليك هذا الكود ولكن انتبه ضروري جملة try_Catch
كود :
Private Sub TextBox1_TextChanged(sender As Object, e As EventArgs) Handles TextBox1.TextChanged
       Try
           Dim dd As DateTime = (CDate(TextBox1.Text)).AddDays(27)
           TextBox2.Text = dd
       Catch ex As Exception
       End Try
   End Sub
ضع بدل الرقم 27 عدد الايام التي تريد وان اردت بالاشهر اكتب AddMonths
وعند الحفظ ستأخذ القيم
(23-03-20, 11:00 AM)ابراهيم ايبو كتب : [ -> ]السلام عليكم اخي الكريم عاشق الرسول
اللهم صل على محمد وال محمد
اسعد الله صباحكم ووقاكم من كل شر
اخي الكريم اذا كنت تدخل التاريخ من اداتي DateTimePecke  اليك هذا الكود في الجدث التالي
كود :
Private Sub DateTimePicker1_ValueChanged(sender As Object, e As EventArgs) Handles DateTimePicker1.ValueChanged
       DateTimePicker2.Value = DateTimePicker1.Value.AddDays(27)
   End Sub

واذا كنت تدخل التاريخ من مربعي نص اليك هذا الكود ولكن انتبه ضروري جملة try_Catch
كود :
Private Sub TextBox1_TextChanged(sender As Object, e As EventArgs) Handles TextBox1.TextChanged
       Try
           Dim dd As DateTime = (CDate(TextBox1.Text)).AddDays(27)
           TextBox2.Text = dd
       Catch ex As Exception
       End Try
   End Sub
ضع بدل الرقم 27 عدد الايام التي تريد وان اردت بالاشهر اكتب AddMonths
وعند الحفظ ستأخذ القيم

جزاك الله خيرا عل الرد ولكن أريد الكود للأداة داخل الداتا جريد (خليتين داخل الداتا جريد)
السلام عليكم احي الكريم
ان كنت ترغب بالتحريرداخل الداتا غرايد اليك هذا الكود في حذث RowValidated
يمكنك اختيار الحدث الموافق لطريقة الادخال لديك
كود :
Private Sub DataGridView1_RowValidated(sender As Object, e As DataGridViewCellEventArgs) Handles DataGridView1.RowValidated
       Try
           If DataGridView1.CurrentRow.Cells(2).Value.ToString().Trim() <> "" Then
               Dim DD As Date = (CDate(DataGridView1.CurrentRow.Cells(2).Value))
               DataGridView1.CurrentRow.Cells(3).Value = DD.AddDays(27).ToString("dd/MM/yyyy")
           End If
       Catch ex As Exception

       End Try
   End Sub
للتذكير العمود رقم 3 اندكس 2 فيه التاريخ    ... والعمود رقم 4 اندكس 3 تصبح القيمة فيه + 27 يوم غير حسب طلبك
(23-03-20, 09:12 PM)ابراهيم ايبو كتب : [ -> ]السلام عليكم احي الكريم
ان كنت ترغب بالتحريرداخل الداتا غرايد اليك هذا الكود في حذث RowValidated
يمكنك اختيار الحدث الموافق لطريقة الادخال لديك
كود :
Private Sub DataGridView1_RowValidated(sender As Object, e As DataGridViewCellEventArgs) Handles DataGridView1.RowValidated
       Try
           If DataGridView1.CurrentRow.Cells(2).Value.ToString().Trim() <> "" Then
               Dim DD As Date = (CDate(DataGridView1.CurrentRow.Cells(2).Value))
               DataGridView1.CurrentRow.Cells(3).Value = DD.AddDays(27).ToString("dd/MM/yyyy")
           End If
       Catch ex As Exception

       End Try
   End Sub
للتذكير العمود رقم 3 اندكس 2 فيه التاريخ    ... والعمود رقم 4 اندكس 3 تصبح القيمة فيه + 27 يوم غير حسب طلبك

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

      
كود :
Select Case (Test)

          ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
          Case 0
             If DGV_BILL.CurrentRow.Cells(6).Value = ("مادة").Trim() Then
                  ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
                  'تحديد قيمة دات تايم بناء عل أخرى في الجريد
                  Try
                      If DGV_BILL.CurrentRow.Cells(7).Value.ToString().Trim() <> "" Then
                          Dim DD As Date = (CDate(DGV_BILL.CurrentRow.Cells(7).Value))
                          DGV_BILL.CurrentRow.Cells(8).Value = DD.ToString("dd/MM/yyyy")
                      End If
                      DGV_BILL.CurrentRow.Cells(8).ReadOnly = True
                  Catch ex As Exception

                  End Try
              End If
          Case 1
              If DGV_BILL.CurrentRow.Cells(6).Value = ("شهري").Trim() Then
                  ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
                  'تحديد قيمة دات تايم بناء عل أخرى في الجريد
                  Try
                      If DGV_BILL.CurrentRow.Cells(7).Value.ToString().Trim() <> "" Then
                          Dim DD As Date = (CDate(DGV_BILL.CurrentRow.Cells(7).Value))
                          DGV_BILL.CurrentRow.Cells(8).Value = DD.AddDays(29).ToString("dd/MM/yyyy")
                      End If
                      DGV_BILL.CurrentRow.Cells(9).ReadOnly = True
                  Catch ex As Exception

                  End Try
              End If
      End Select
السلام عليكم اخي عاشق الرسول
اريد لفت انتباهك الى ارقام الاعمدة استبدلها باسمائها ضمن دبل كوتيشن
تفضل هذا الكود سيكون التاريخ بناء على عمود رقم 6 ان كان مكتوب به (مادة - شهري) 
عندها اما ان يبقي التاريخ على حاله او يزيد بقدار الايام
كود :
Private Sub DataGridView1_RowValidated(sender As Object, e As DataGridViewCellEventArgs) Handles DGV_BILL.RowValidated
       Try
           '  التحقق من ان خانة المادة غير فارغة وكذلك خانة التاريخ غير فارغة
           If DGV_BILL.CurrentRow.Cells(6).Value.ToString().Trim() <> "" And DGV_BILL.CurrentRow.Cells(7).Value.ToString().Trim() <> "" Then

               'بناء عى الخلية رقم 6 ان كان مكتوب فيها مادة
               If DGV_BILL.CurrentRow.Cells(6).Value.ToString().Trim() = "مادة" Then
                   ' يبقى التاريخ على حاله
                   DGV_BILL.CurrentRow.Cells(8).Value = DGV_BILL.CurrentRow.Cells(7).Value.ToString()
                   DGV_BILL.CurrentRow.Cells(8).ReadOnly = True

                   'بناء عى الخلية رقم 6 ان كان مكتوب فيها شهري سيتم اعتماد زيادة التاريخ
               ElseIf DGV_BILL.CurrentRow.Cells(6).Value.ToString().Trim() = "شهري" Then
                   Dim DD As Date = (CDate(DGV_BILL.CurrentRow.Cells(7).Value))
                   DGV_BILL.CurrentRow.Cells(8).Value = DD.AddDays(29).ToString("dd/MM/yyyy")
                   DGV_BILL.CurrentRow.Cells(8).ReadOnly = True
               End If
           End If
       Catch ex As Exception

       End Try

   End Sub