DataGridViewComboBoX - يونس علي - 01-05-19
السلام عليكم ورحمة الله وبركاتة
انا لدي كود لتعبية داتاجريد فيو كمبوبوكس
وشغال والحمد لله لكن
ابغى المستخدم لما يختار من الكمبوبكس
الحقول الاخرة تتعبة حسب الاختيار
وهذا كود تعبيئة الكمبوبوكس
كود :
Sub getItemunits(ItemsID As String)
Dim adp As New SqlClient.SqlDataAdapter("select * from TBLItems where ItemsID =N'" & ItemsID & "'", SqlConn)
Dim ds As New DataSet
adp.Fill(ds)
Dim dt = ds.Tables(0)
If dt.Rows.Count > 0 Then
Dim DGV As DataGridViewComboBoxCell
DGV = DGVK.Rows(DGVK.Rows.Count - 1).Cells(2)
DGV.Items.Clear()
DGV.Items.Add(dt.Rows(0).Item("ItemsUnit1"))
If dt.Rows(0).Item("ItemsUnit2").ToString <> "" Then DGV.Items.Add(dt.Rows(0).Item("ItemsUnit2"))
If dt.Rows(0).Item("ItemsUnit3").ToString <> "" Then DGV.Items.Add(dt.Rows(0).Item("ItemsUnit3"))
DGVK.ClearSelection()
DGVK.Rows(DGVK.Rows.Count - 1).Cells(2).Selected = True
End If
End Sub
وهذا التابل
كود :
USE [Antaj]
GO
/****** Object: Table [dbo].[TBLItems] Script Date: 05/01/2019 14:29:57 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[TBLItems](
[ID] [int] IDENTITY(1,1) NOT NULL,
[ItemsID] [nvarchar](50) NULL,
[ItemsName] [nvarchar](50) NULL,
[ItemsBarcode] [int] NULL,
[ItemsCategories] [nvarchar](50) NULL,
[ItemsQTY] [int] NULL,
[SuplersID] [int] NULL,
[ItemsUnit1] [nvarchar](50) NULL,
[ItemsUnit1QTY] [int] NULL,
[ItemsUnit1PRICE] [decimal](18, 0) NULL,
[ItemsUnit2] [nvarchar](50) NULL,
[ItemsUnit2QTY] [int] NULL,
[ItemsUnit2PRICE] [decimal](18, 0) NULL,
[ItemsUnit3] [nvarchar](50) NULL,
[ItemsUnit3QTY] [int] NULL,
[ItemsUnit3PRICE] [decimal](18, 0) NULL,
[ItemsCostprice] [decimal](18, 0) NULL,
[ItemsSaleprice] [decimal](18, 0) NULL,
[Itemsactive] [bit] NULL,
[ItemsPhoto] [image] NULL,
[PORK] [int] NULL,
CONSTRAINT [PK_TBLItems] PRIMARY KEY CLUSTERED
(
[ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
اتمنى احد يساعدني وولو بجملة IF الشرطية
RE: DataGridViewComboBoX - يونس علي - 02-05-19
مافيش اي رد يا جماعة
RE: DataGridViewComboBoX - saoud2 - 02-05-19
عزيزي
لم أفهم موضوعك
RE: DataGridViewComboBoX - يونس علي - 03-05-19
[b]الموضوع كل مافية انه لدي عمود في الداتا جريد فيو من نوع كمبوبكس [/b]
[b]الكمبوبوكس هذا يتم تعبئته بوحدات الصنف الثلاث [/b]
[b]انا اريد لما اختار من الكمبوبوكس وحدة من الوحدات [/b]
[b]ياتي لي بالكمية وسعر الصنف لهذه الوحدة [/b]
[b]لان كل وحدة لها سعر وكمية [/b]
[b]مع العلم ان الوحدات وكمياتها واسعارها موجودة في نفس جدول الصنف [/b]
[b]اتمنى ان تكون وضحة الفكرة[/b]
RE: DataGridViewComboBoX - saoud2 - 03-05-19
عزيزي
هذا كود حدث الإختيار من كمبوبكس الداتاجريد من أساتذة المنتدى وستجد فيه مكان الاستعلام
كود :
Private Sub editingComboBox_SelectedIndexChanged(ByVal sender As Object, ByVal e As EventArgs)
Dim combo As ComboBox = TryCast(sender, ComboBox)
If combo.Text IsNot Nothing Then
' الاستعلام
Dim v = combo.Text
Dim da As New SqlDataAdapter("SELECT * FROM [table] WHERE [column]=@c", SqlConn)
da.SelectCommand.Parameters.AddWithValue("@c", v)
Dim dt As New DataTable
If da.Fill(dt) > 0 Then
DataGridView1.CurrentRow.Cells(0).Value = dt.Rows(0)("unitPrice")
End If
End If
End Sub
Private Sub DataGridView1_EditingControlShowing(ByVal sender As Object, ByVal e As DataGridViewEditingControlShowingEventArgs) Handles DataGridView1.EditingControlShowing
Dim c = TryCast(e.Control, ComboBox)
If c IsNot Nothing Then
RemoveHandler c.SelectedIndexChanged, New EventHandler(AddressOf editingComboBox_SelectedIndexChanged)
AddHandler c.SelectedIndexChanged, New EventHandler(AddressOf editingComboBox_SelectedIndexChanged)
End If
End Sub
قم بتعديل ما يلزمك
RE: DataGridViewComboBoX - يونس علي - 03-05-19
بارك الله فيك اخي لقد استعملت الكود وقد اتى نتيجة رائعة
وللافادة الكود كامل بعد تعديل ما يلزمني
كود :
Private Sub editingComboBox_SelectedIndexChanged(ByVal sender As Object, ByVal e As EventArgs)
Dim combo As ComboBox = TryCast(sender, ComboBox)
If combo.Text IsNot Nothing Then
' الاستعلام
If combo.SelectedIndex = 0 Then
Dim v1 = combo.Text
Dim da1 As New SqlClient.SqlDataAdapter("select * from TBLItems WHERE ItemsUnit1=@c1", SqlConn)
da1.SelectCommand.Parameters.AddWithValue("@c1", v1)
Dim dt1 As New DataTable
If da1.Fill(dt1) > 0 Then
DGVK.CurrentRow.Cells(3).Value = dt1.Rows(0)("ItemsUnit1QTY")
DGVK.CurrentRow.Cells(4).Value = dt1.Rows(0)("ItemsUnit1PRICE")
End If
End If
If combo.SelectedIndex = 1 Then
Dim v1 = combo.Text
Dim da1 As New SqlClient.SqlDataAdapter("select * from TBLItems WHERE ItemsUnit2=@c1", SqlConn)
da1.SelectCommand.Parameters.AddWithValue("@c1", v1)
Dim dt1 As New DataTable
If da1.Fill(dt1) > 0 Then
DGVK.CurrentRow.Cells(3).Value = dt1.Rows(0)("ItemsUnit2QTY")
DGVK.CurrentRow.Cells(4).Value = dt1.Rows(0)("ItemsUnit2PRICE")
End If
End If
If combo.SelectedIndex = 2 Then
Dim v1 = combo.Text
Dim da1 As New SqlClient.SqlDataAdapter("select * from TBLItems WHERE ItemsUnit3=@c1", SqlConn)
da1.SelectCommand.Parameters.AddWithValue("@c1", v1)
Dim dt1 As New DataTable
If da1.Fill(dt1) > 0 Then
DGVK.CurrentRow.Cells(3).Value = dt1.Rows(0)("ItemsUnit3QTY")
DGVK.CurrentRow.Cells(4).Value = dt1.Rows(0)("ItemsUnit3PRICE")
End If
End If
End If
End Sub
Private Sub DGVK_EditingControlShowing(ByVal sender As Object, ByVal e As DataGridViewEditingControlShowingEventArgs) Handles DGVK.EditingControlShowing
Dim c = TryCast(e.Control, ComboBox)
If c IsNot Nothing Then
RemoveHandler c.SelectedIndexChanged, New EventHandler(AddressOf editingComboBox_SelectedIndexChanged)
AddHandler c.SelectedIndexChanged, New EventHandler(AddressOf editingComboBox_SelectedIndexChanged)
End If
End Sub
|