COMO ACRESCENTO COLUNA DATAGRIDVIEW
Pessoal tenho a estrutura abaixo já aplicado em meu sistema. Porém preciso acrescer uma coluna para quantidade e ainda outra para soma do Ãtem. Como faço isso na estrutura já ativa ? O código abaixo tá no evento click do botão.
conn = New OleDbConnection([Ô]Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:ivaldo.mdb;Persist Security Info=false;jet oledb:database password=gibadoexpresso340[Ô])
conn.Open()
da = New OleDbDataAdapter([Ô]select produto,preco from produtos where produto=[ô][Ô] & ComboBox6.Text & [Ô][ô][Ô], conn)
ds = New DataSet()
da.Fill(ds, [Ô]produtos[Ô])
DataGridView1.DataSource = ds.Tables([Ô]produtos[Ô])
conn.Close()
With DataGridView1
.Columns(0).Width = [Ô]250[Ô] [ô]Primeira coluna
[ô].Columns(0).HeaderText = [Ô]Salão[Ô]
.Columns(1).Width = [Ô]100[Ô] [ô]segunda coluna
[ô].Columns(1).HeaderText = [Ô]Nome_cliente[Ô]
Dim Indice As Integer = 1
For x = 0 To DataGridView1.Rows.Count - 1
If Indice = 1 Then
.Rows(x).DefaultCellStyle.BackColor = Color.Aqua
Else
If Indice = 2 Then
.Rows(x).DefaultCellStyle.BackColor = Color.White
End If
End If
Indice += 1
If Indice = 3 Then
Indice = 1
End If
Next
End With
DataGridView1.Rows(0).Selected = True
ComboBox6.Focus()
Agradeço;
conn = New OleDbConnection([Ô]Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:ivaldo.mdb;Persist Security Info=false;jet oledb:database password=gibadoexpresso340[Ô])
conn.Open()
da = New OleDbDataAdapter([Ô]select produto,preco from produtos where produto=[ô][Ô] & ComboBox6.Text & [Ô][ô][Ô], conn)
ds = New DataSet()
da.Fill(ds, [Ô]produtos[Ô])
DataGridView1.DataSource = ds.Tables([Ô]produtos[Ô])
conn.Close()
With DataGridView1
.Columns(0).Width = [Ô]250[Ô] [ô]Primeira coluna
[ô].Columns(0).HeaderText = [Ô]Salão[Ô]
.Columns(1).Width = [Ô]100[Ô] [ô]segunda coluna
[ô].Columns(1).HeaderText = [Ô]Nome_cliente[Ô]
Dim Indice As Integer = 1
For x = 0 To DataGridView1.Rows.Count - 1
If Indice = 1 Then
.Rows(x).DefaultCellStyle.BackColor = Color.Aqua
Else
If Indice = 2 Then
.Rows(x).DefaultCellStyle.BackColor = Color.White
End If
End If
Indice += 1
If Indice = 3 Then
Indice = 1
End If
Next
End With
DataGridView1.Rows(0).Selected = True
ComboBox6.Focus()
Agradeço;
Uma boa soluçao e pesquisar.
Como está acima,basta escrever quantidade e
nome e tamanho da coluna.
é desse jeito mesmo.
Como está acima,basta escrever quantidade e
nome e tamanho da coluna.
é desse jeito mesmo.
Caros, pesquisei mas não consegui uma que adapte à continuação de meu processo.
Tentei raciocinar no que o OMAR sugeriu e apliquei desta forma
.Columns(0).Width = [Ô]250[Ô] [ô]Primeira coluna
[ô].Columns(0).HeaderText = [Ô]Salão[Ô]
.Columns(1).Width = [Ô]100[Ô] [ô]segunda coluna
[ô].Columns(1).HeaderText = [Ô]Nome_cliente[Ô]
.Columns(2).Width = [Ô]100[Ô] [ô]segunda coluna
[ô].Columns(2).HeaderText = [Ô]Nome_cliente[Ô]
mas percebi que não é assim.
No meu caso não tenho no banco nem a coluna quantidade nem a coluna total do Ãtem.
Sugiram algo por favor
Agradeço;
Tentei raciocinar no que o OMAR sugeriu e apliquei desta forma
.Columns(0).Width = [Ô]250[Ô] [ô]Primeira coluna
[ô].Columns(0).HeaderText = [Ô]Salão[Ô]
.Columns(1).Width = [Ô]100[Ô] [ô]segunda coluna
[ô].Columns(1).HeaderText = [Ô]Nome_cliente[Ô]
.Columns(2).Width = [Ô]100[Ô] [ô]segunda coluna
[ô].Columns(2).HeaderText = [Ô]Nome_cliente[Ô]
mas percebi que não é assim.
No meu caso não tenho no banco nem a coluna quantidade nem a coluna total do Ãtem.
Sugiram algo por favor
Agradeço;
tem isso cara
[ô]multiplica coluna valorunitaria pela coluna qtde. e exibe na coluna total
For Each Linha As DataGridViewRow In Me.dgv_venda.Rows
Linha.Cells([Ô]coltotal[Ô]).Value = Linha.Cells([Ô]colvalorunit[Ô]).Value * Linha.Cells([Ô]colqtde[Ô]).Value
Next
mais seria melhor vc criar essa duas colunas no banco de dados e no select exibir os dados nessas colunas usando o [Ô]sum[Ô]
ex: select sum([Ô]o campo a ser somado[Ô]) as [Ô]coluna a ser exibida[Ô] from produto
[ô]multiplica coluna valorunitaria pela coluna qtde. e exibe na coluna total
For Each Linha As DataGridViewRow In Me.dgv_venda.Rows
Linha.Cells([Ô]coltotal[Ô]).Value = Linha.Cells([Ô]colvalorunit[Ô]).Value * Linha.Cells([Ô]colqtde[Ô]).Value
Next
mais seria melhor vc criar essa duas colunas no banco de dados e no select exibir os dados nessas colunas usando o [Ô]sum[Ô]
ex: select sum([Ô]o campo a ser somado[Ô]) as [Ô]coluna a ser exibida[Ô] from produto
Caro Felipe obrigado. Sua sugestão não foi aplicada na totalidade não, mas me deu a idéia do que fazer. Juntei com outras partes que eu já tinha achado na internet e pude criar o que eu precisava. Segue abaixo como meu código ficou. Ele acrescenta a coluna no datagridview. Segue para outros tirarem proveito.
Dim vCol
Dim vCol2
strCliente = ComboBox1.Text
strProduto = ComboBox6.Text
conn = New OleDbConnection([Ô]Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:ivaldo.mdb;Persist Security Info=false;jet oledb:database password=gibadoexpresso340[Ô])
conn.Open()
da = New OleDbDataAdapter([Ô]select produto,preco from produtos where produto=[ô][Ô] & ComboBox6.Text & [Ô][ô][Ô], conn)
ds = New DataSet()
da.Fill(ds, [Ô]produtos[Ô])
DataGridView1.DataSource = ds.Tables([Ô]produtos[Ô])
conn.Close()
With DataGridView1
.Columns(0).Width = [Ô]250[Ô] [ô]Primeira coluna
[ô].Columns(0).HeaderText = [Ô]Salão[Ô]
.Columns(1).Width = [Ô]100[Ô] [ô]segunda coluna
[ô].Columns(1).HeaderText = [Ô]Nome_cliente[Ô]
Dim Indice As Integer = 1
For x = 0 To DataGridView1.Rows.Count - 1
If Indice = 1 Then
.Rows(x).DefaultCellStyle.BackColor = Color.Aqua
Else
If Indice = 2 Then
.Rows(x).DefaultCellStyle.BackColor = Color.White
End If
End If
Indice += 1
If Indice = 3 Then
Indice = 1
End If
Next
End With
vCol = New System.Windows.Forms.DataGridViewTextBoxColumn
vCol.Name = [Ô]quantidade[Ô]
vCol.HeaderText = [Ô]Quantidade[Ô]
vCol.CellTemplate = New DataGridViewTextBoxCell
vCol.AutoSizeMode = DataGridViewAutoSizeColumnMode.ColumnHeader
DataGridView1.Columns.Add(vCol)
DataGridView1.Rows(0).Cells(2).Value = CDbl(TextBox3.Text)
vCol2 = New System.Windows.Forms.DataGridViewTextBoxColumn
vCol2.Name = [Ô]Total unit[Ô]
vCol2.HeaderText = [Ô]Total unit[Ô]
vCol2.CellTemplate = New DataGridViewTextBoxCell
vCol2.AutoSizeMode = DataGridViewAutoSizeColumnMode.ColumnHeader
DataGridView1.Columns.Add(vCol2)
DataGridView1.Rows(0).Cells(3).Value = DataGridView1.Rows(0).Cells(1).Value * DataGridView1.Rows(0).Cells(2).Value
Abraços;
Dim vCol
Dim vCol2
strCliente = ComboBox1.Text
strProduto = ComboBox6.Text
conn = New OleDbConnection([Ô]Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:ivaldo.mdb;Persist Security Info=false;jet oledb:database password=gibadoexpresso340[Ô])
conn.Open()
da = New OleDbDataAdapter([Ô]select produto,preco from produtos where produto=[ô][Ô] & ComboBox6.Text & [Ô][ô][Ô], conn)
ds = New DataSet()
da.Fill(ds, [Ô]produtos[Ô])
DataGridView1.DataSource = ds.Tables([Ô]produtos[Ô])
conn.Close()
With DataGridView1
.Columns(0).Width = [Ô]250[Ô] [ô]Primeira coluna
[ô].Columns(0).HeaderText = [Ô]Salão[Ô]
.Columns(1).Width = [Ô]100[Ô] [ô]segunda coluna
[ô].Columns(1).HeaderText = [Ô]Nome_cliente[Ô]
Dim Indice As Integer = 1
For x = 0 To DataGridView1.Rows.Count - 1
If Indice = 1 Then
.Rows(x).DefaultCellStyle.BackColor = Color.Aqua
Else
If Indice = 2 Then
.Rows(x).DefaultCellStyle.BackColor = Color.White
End If
End If
Indice += 1
If Indice = 3 Then
Indice = 1
End If
Next
End With
vCol = New System.Windows.Forms.DataGridViewTextBoxColumn
vCol.Name = [Ô]quantidade[Ô]
vCol.HeaderText = [Ô]Quantidade[Ô]
vCol.CellTemplate = New DataGridViewTextBoxCell
vCol.AutoSizeMode = DataGridViewAutoSizeColumnMode.ColumnHeader
DataGridView1.Columns.Add(vCol)
DataGridView1.Rows(0).Cells(2).Value = CDbl(TextBox3.Text)
vCol2 = New System.Windows.Forms.DataGridViewTextBoxColumn
vCol2.Name = [Ô]Total unit[Ô]
vCol2.HeaderText = [Ô]Total unit[Ô]
vCol2.CellTemplate = New DataGridViewTextBoxCell
vCol2.AutoSizeMode = DataGridViewAutoSizeColumnMode.ColumnHeader
DataGridView1.Columns.Add(vCol2)
DataGridView1.Rows(0).Cells(3).Value = DataGridView1.Rows(0).Cells(1).Value * DataGridView1.Rows(0).Cells(2).Value
Abraços;
Tópico encerrado , respostas não são mais permitidas