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

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

لدي في الداتا جريد 20سطر مثلا كلها اصناف واحتجت ان ابحث عن صنف مثلا واحتاج السطر الذي يحتوي على البحث عن يتغير بلون معين مثلا

ممكن يكون البحث برقم الصنف داخل تكست بوكس مثلا
PHP كود :
Private Sub Form1_Load(ByVal sender As ObjectByVal e As EventArgsHandles MyBase.Load
    dgv_data
.AllowUserToAddRows False

End Sub

Private Sub TextBox1_KeyPress(ByVal sender As ObjectByVal e As KeyPressEventArgsHandles TextBox1.KeyPress
    Select 
Case e.KeyChar

        
Case ChrW(Keys.Enter)

            
Dim code sender.Text.Trim
            Dim qty 
As Integer 1

            Dim spP
() As String sender.Text.Trim.Split("+")
            If 
spP.Count 2 Then
                code 
spP(0)
                
qty spP(1)
            
End If

            
Dim spM() As String sender.Text.Trim.Split("-")
            If 
spM.Count 2 Then
                code 
spM(0)
                
qty = -spM(1)
            
End If

            
Using dp As New OleDb.OleDbDataAdapter("SELECT * FROM [Items] WHERE [ItemCode] = @code"con)
                
dp.SelectCommand.Parameters.AddWithValue("@code"code)
                
Dim dt_itm As New DataTable
                
If dp.Fill(dt_itm) > 0 Then
                    Dim r 
As DataRow dt_itm.Rows(0)

                    
dgv_data.ClearSelection()

                    
Dim dgvRow As DataGridViewRow = (From x In Me.dgv_data.Rows Where x.Cells(0).Value r("ItemCode")).SingleOrDefault
                    
If IsNothing(dgvRowThen
                        
If qty 0 Then
                            dgv_data
.Rows.Add(r("ItemCode"), r("ItemName"), r("ItemPrice"), qty)

                            
dgv_data.FirstDisplayedScrollingRowIndex dgv_data.Rows.Count 1
                            dgv_data
.Rows(dgv_data.Rows.Count 1).Selected True
                        End 
If

                    Else

                        
dgvRow.Cells(3).Value += qty

                        dgv_data
.FirstDisplayedScrollingRowIndex dgvRow.Index
                        dgv_data
.Rows(dgvRow.Index).Selected True

                        
If dgvRow.Cells(3).Value <= 0 Then Me.dgv_data.Rows.RemoveAt(dgvRow.Index)

                    
End If

                    
sender.Clear()
                    
sender.Select()

                
End If
            
End Using

        
Case "+"
            
If sender.Text.Trim "" Then
                Dim dgvRow 
As DataGridViewRow = (From x In Me.dgv_data.Rows).LastOrDefault
                
If Not IsNothing(dgvRowThen
                    dgvRow
.Cells(3).Value += 1
                End 
If
                
e.Handled True
            End 
If

        Case 
"-"
            
If sender.Text.Trim "" Then
                Dim dgvRow 
As DataGridViewRow = (From x In Me.dgv_data.Rows).LastOrDefault
                
If Not IsNothing(dgvRowThen
                    dgvRow
.Cells(3).Value -= 1
                    
If dgvRow.Cells(3).Value 0 Then Me.dgv_data.Rows.RemoveAt(dgvRow.Index)
                
End If
                
e.Handled True
            End 
If

    
End Select

End Sub

Private Sub TextBox1_TextChanged(ByVal sender As ObjectByVal e As EventArgsHandles TextBox1.TextChanged
    
If sender.Text.Trim "" Then Return
    
dgv_data.ClearSelection()
    
Dim dgvRow As DataGridViewRow = (From x In Me.dgv_data.Rows Where x.Cells(0).Value Val(sender.Text)).SingleOrDefault
    
If Not IsNothing(dgvRowThen
        dgv_data
.FirstDisplayedScrollingRowIndex dgvRow.Index
        dgv_data
.Rows(dgvRow.Index).Selected True
    End 
If
End Sub 
الله يعطيك العافية والله تعجز اللسان عن التعبير والشكر لك اخي الكريم



تمام لاكن بعد هذا الكود 

 If e.KeyChar = ChrW(Keys.Enter) Then


            dgv_data.ClearSelection()
            Dim dgvRow As DataGridViewRow = (From x In Me.dgv_data.Rows Where x.Cells(0).Value = sender.Text).SingleOrDefault
            If Not IsNothing(dgvRow) Then
                dgv_data.FirstDisplayedScrollingRowIndex = dgvRow.Index
                dgv_data.Rows(dgvRow.Index).Selected = True
            End If
        End If

اذا ضغطنا على زر Delete احتاج منه حذف السطر كامل
PHP كود :
Private Sub Form1_Load(ByVal sender As ObjectByVal e As EventArgsHandles MyBase.Load
    dgv_data
.AllowUserToAddRows False

End Sub

Private Sub TextBox1_KeyPress(ByVal sender As ObjectByVal e As KeyPressEventArgsHandles TextBox1.KeyPress
    Select 
Case e.KeyChar

        Case ChrW
(Keys.Enter)

 
           Dim code sender.Text.Trim
            Dim qty 
As Integer 1

            Dim spP
() As String sender.Text.Trim.Split("+")
 
           If spP.Count 2 Then
                code 
spP(0)
 
               qty Val(spP(1))
 
           End If

 
           Dim spM() As String sender.Text.Trim.Split("-")
 
           If spM.Count 2 Then
                code 
spM(0)
 
               qty = -spM(1)
 
           End If

 
           Using dp As New OleDb.OleDbDataAdapter("SELECT * FROM [Items] WHERE [ItemCode] = @code"con)
 
               dp.SelectCommand.Parameters.AddWithValue("@code"code)
 
               Dim dt_itm As New DataTable
                If dp
.Fill(dt_itm) > 0 Then
                    Dim r 
As DataRow dt_itm.Rows(0)

 
                   dgv_data.ClearSelection()

 
                   Dim dgvRow As DataGridViewRow = (From x In Me.dgv_data.Rows Where x.Cells(0).Value r("ItemCode")).SingleOrDefault
                    If IsNothing
(dgvRowThen
                        If qty 
0 Then
                            dgv_data
.Rows.Add(r("ItemCode"), r("ItemName"), r("ItemPrice"), qty)

 
                           dgv_data.FirstDisplayedScrollingRowIndex dgv_data.Rows.Count 1
                            dgv_data
.Rows(dgv_data.Rows.Count 1).Selected True
                        End 
If

 
                   Else

                        dgvRow
.Cells(3).Value += qty

                        dgv_data
.FirstDisplayedScrollingRowIndex dgvRow.Index
                        dgv_data
.Rows(dgvRow.Index).Selected True

                        If dgvRow
.Cells(3).Value <= 0 Then Me.dgv_data.Rows.RemoveAt(dgvRow.Index)

 
                   End If

 
                   sender.Clear()
 
                   sender.Select()

 
               End If
 
           End Using

        Case 
"+"
 
           If sender.Text.Trim "" Then
                Dim dgvRow 
As DataGridViewRow = (From x In Me.dgv_data.Rows).LastOrDefault
                If Not IsNothing
(dgvRowThen
                    dgvRow
.Cells(3).Value += 1
                End 
If
 
               e.Handled True
            End 
If

 
       Case "-"
 
           If sender.Text.Trim "" Then
                Dim dgvRow 
As DataGridViewRow = (From x In Me.dgv_data.Rows).LastOrDefault
                If Not IsNothing
(dgvRowThen
                    dgvRow
.Cells(3).Value -= 1
                    If dgvRow
.Cells(3).Value 0 Then Me.dgv_data.Rows.RemoveAt(dgvRow.Index)
 
               End If
 
               e.Handled True
            End 
If


 
   End Select

End Sub

Private Sub TextBox1_KeyUp(ByVal sender As ObjectByVal e As KeyEventArgsHandles TextBox1.KeyUp
    Dim dgvRow 
As DataGridViewRow = (From x In Me.dgv_data.Rows Where x.Cells(0).Value Val(sender.Text)).SingleOrDefault
    If Not IsNothing
(dgvRowThen
        dgv_data
.ClearSelection()
 
       dgv_data.FirstDisplayedScrollingRowIndex dgvRow.Index
        dgv_data
.Rows(dgvRow.Index).Selected True
    End 
If
 
   If e.KeyCode Keys.Delete Then
        If Not IsNothing
(dgvRowThen
            dgv_data
.Rows.Remove(dgvRow)
 
           dgv_data.ClearSelection()
 
           sender.Clear()
 
       End If
 
   End If
End Sub 
أستاذ أحمد بعد اذنك الرجاء مراجعة مشكلتي وأريد منك الحل لو سمحت
http://vb4arb.com/vb/showthread.php?tid=22633
اخ احمد
الله يبارك فيك في ملاحظة عجزت عنها بصراحة وهي

الان عندي ثلاث اصناف في الداتا جريد لما اعمل امر مثلا انقاص الكمية كالتالي:

3000-10
يعني ينقص 10 حبات وهي اجمالي الكمية في الداتا جريد الكود شغال تمام ولاكن يبقى الصنف والكمية صفر
ماهو التعديل بحيث انه بعد عملية الانقاص اذا كانت النتيجة للكمية 0 يعني احذف الصف
PHP كود :
Private Sub Form1_Load(ByVal sender As ObjectByVal e As EventArgsHandles MyBase.Load
    dgv_data
.AllowUserToAddRows False

End Sub

Private Sub TextBox1_KeyPress(ByVal sender As ObjectByVal e As KeyPressEventArgsHandles TextBox1.KeyPress
    Select 
Case e.KeyChar

        
Case ChrW(Keys.Enter)

            
Dim code sender.Text.Trim
            Dim qty 
As Integer 1

            Dim spP
() As String sender.Text.Trim.Split("+")
            If 
spP.Count 2 Then
                code 
spP(0)
                
qty Val(spP(1))
            
End If

            
Dim spM() As String sender.Text.Trim.Split("-")
            If 
spM.Count 2 Then
                code 
spM(0)
                
qty = -spM(1)
            
End If

            
Using dp As New OleDb.OleDbDataAdapter("SELECT * FROM [Items] WHERE [ItemCode] = @code"con)
                
dp.SelectCommand.Parameters.AddWithValue("@code"code)
                
Dim dt_itm As New DataTable
                
If dp.Fill(dt_itm) > 0 Then
                    Dim r 
As DataRow dt_itm.Rows(0)

                    
dgv_data.ClearSelection()

                    
Dim dgvRow As DataGridViewRow = (From x In Me.dgv_data.Rows Where x.Cells(0).Value r("ItemCode")).SingleOrDefault
                    
If IsNothing(dgvRowThen
                        
If qty 0 Then
                            dgv_data
.Rows.Add(r("ItemCode"), r("ItemName"), r("ItemPrice"), qty)

                            
dgv_data.FirstDisplayedScrollingRowIndex dgv_data.Rows.Count 1
                            dgv_data
.Rows(dgv_data.Rows.Count 1).Selected True
                        End 
If

                    Else

                        
dgvRow.Cells(3).Value += qty

                        dgv_data
.FirstDisplayedScrollingRowIndex dgvRow.Index
                        dgv_data
.Rows(dgvRow.Index).Selected True

                        
If dgvRow.Cells(3).Value <= 0 Then Me.dgv_data.Rows.RemoveAt(dgvRow.Index)

                    
End If

                    
sender.Clear()
                    
sender.Select()

                
End If
            
End Using

        
Case "+"
            
If sender.Text.Trim "" Then
                Dim dgvRow 
As DataGridViewRow = (From x In Me.dgv_data.Rows).LastOrDefault
                
If Not IsNothing(dgvRowThen
                    dgvRow
.Cells(3).Value += 1
                End 
If
                
e.Handled True
            End 
If

        Case 
"-"
            
If sender.Text.Trim "" Then
                Dim dgvRow 
As DataGridViewRow = (From x In Me.dgv_data.Rows).LastOrDefault
                
If Not IsNothing(dgvRowThen
                    dgvRow
.Cells(3).Value -= 1
                    
If dgvRow.Cells(3).Value 0 Then Me.dgv_data.Rows.RemoveAt(dgvRow.Index)
                
End If
                
e.Handled True
            End 
If


    
End Select

End Sub

Private Sub TextBox1_KeyUp(ByVal sender As ObjectByVal e As KeyEventArgsHandles TextBox1.KeyUp
    Dim dgvRow 
As DataGridViewRow = (From x In Me.dgv_data.Rows Where x.Cells(0).Value Val(sender.Text)).SingleOrDefault
    
If Not IsNothing(dgvRowThen
        dgv_data
.ClearSelection()
        
dgv_data.FirstDisplayedScrollingRowIndex dgvRow.Index
        dgv_data
.Rows(dgvRow.Index).Selected True
    End 
If
    If 
e.KeyCode Keys.Delete Then
        
If Not IsNothing(dgvRowThen
            dgv_data
.Rows.Remove(dgvRow)
            
dgv_data.ClearSelection()
            
sender.Clear()
        
End If
    
End If
End Sub 
اخ احمد عند عمود 2 و 3 السعر والكمية

اريد كود لضرب السعر في الكمية واظهاره في العمود رقم 4

يارت الله يبارك فيك تعطيني فقط طريقة الكود وانا اقوم بأظافة على الكود السابق

جزاك الله خير
PHP كود :
Private Sub Form1_Load(ByVal sender As ObjectByVal e As EventArgsHandles MyBase.Load
    dgv_data
.AllowUserToAddRows False

End Sub

Private Sub TextBox1_KeyPress(ByVal sender As ObjectByVal e As KeyPressEventArgsHandles TextBox1.KeyPress
    Select 
Case e.KeyChar

        
Case ChrW(Keys.Enter)

            
Dim code sender.Text.Trim
            Dim qty 
As Integer 1

            Dim spP
() As String sender.Text.Trim.Split("+")
            If 
spP.Count 2 Then
                code 
spP(0)
                
qty Val(spP(1))
            
End If

            
Dim spM() As String sender.Text.Trim.Split("-")
            If 
spM.Count 2 Then
                code 
spM(0)
                
qty = -spM(1)
            
End If

            
Using dp As New OleDb.OleDbDataAdapter("SELECT * FROM [Items] WHERE [ItemCode] = @code"con)
                
dp.SelectCommand.Parameters.AddWithValue("@code"code)
                
Dim dt_itm As New DataTable
                
If dp.Fill(dt_itm) > 0 Then
                    Dim r 
As DataRow dt_itm.Rows(0)

                    
dgv_data.ClearSelection()

                    
Dim dgvRow As DataGridViewRow = (From x In Me.dgv_data.Rows Where x.Cells(0).Value r("ItemCode")).SingleOrDefault
                    
If IsNothing(dgvRowThen
                        
If qty 0 Then
                            Dim total 
As Double = (qty Val(r("ItemPrice"))).ToString("0.00")
                            
dgv_data.Rows.Add(r("ItemCode"), r("ItemName"), r("ItemPrice"), qtytotal)

                            
dgv_data.FirstDisplayedScrollingRowIndex dgv_data.Rows.Count 1
                            dgv_data
.Rows(dgv_data.Rows.Count 1).Selected True
                        End 
If

                    Else

                        
dgvRow.Cells(3).Value += qty
                        Dim total 
As Double = (Val(dgvRow.Cells(2).Value) * Val(dgvRow.Cells(3).Value)).ToString("0.00")
                        
dgvRow.Cells(4).Value total

                        dgv_data
.FirstDisplayedScrollingRowIndex dgvRow.Index
                        dgv_data
.Rows(dgvRow.Index).Selected True

                        
If dgvRow.Cells(3).Value <= 0 Then Me.dgv_data.Rows.RemoveAt(dgvRow.Index)

                    
End If

                    
sender.Clear()
                    
sender.Select()

                
End If
            
End Using

        
Case "+"
            
If sender.Text.Trim "" Then
                Dim dgvRow 
As DataGridViewRow = (From x In Me.dgv_data.Rows).LastOrDefault
                
If Not IsNothing(dgvRowThen
                    dgvRow
.Cells(3).Value += 1
                    Dim total 
As Double = (Val(dgvRow.Cells(2).Value) * Val(dgvRow.Cells(3).Value)).ToString("0.00")
                    
dgvRow.Cells(4).Value total
                End 
If
                
e.Handled True
            End 
If

        Case 
"-"
            
If sender.Text.Trim "" Then
                Dim dgvRow 
As DataGridViewRow = (From x In Me.dgv_data.Rows).LastOrDefault
                
If Not IsNothing(dgvRowThen
                    dgvRow
.Cells(3).Value -= 1
                    Dim total 
As Double = (Val(dgvRow.Cells(2).Value) * Val(dgvRow.Cells(3).Value)).ToString("0.00")
                    
dgvRow.Cells(4).Value total
                    
If dgvRow.Cells(3).Value 0 Then Me.dgv_data.Rows.RemoveAt(dgvRow.Index)
                
End If
                
e.Handled True
            End 
If


    
End Select

End Sub

Private Sub TextBox1_KeyUp(ByVal sender As ObjectByVal e As KeyEventArgsHandles TextBox1.KeyUp
    Dim dgvRow 
As DataGridViewRow = (From x In Me.dgv_data.Rows Where x.Cells(0).Value Val(sender.Text)).SingleOrDefault
    
If Not IsNothing(dgvRowThen
        dgv_data
.ClearSelection()
        
dgv_data.FirstDisplayedScrollingRowIndex dgvRow.Index
        dgv_data
.Rows(dgvRow.Index).Selected True
    End 
If
    If 
e.KeyCode Keys.Delete Then
        
If Not IsNothing(dgvRowThen
            dgv_data
.Rows.Remove(dgvRow)
            
dgv_data.ClearSelection()
            
sender.Clear()
        
End If
    
End If
End Sub 
استاذ احمد
احتاج ان اضع كود لاظهار رسالة في حالة ان رقم الصنف غير موجود
الصفحات : 1 2 3