Usuário com melhor resposta
como adicionar numeração de item em datagrid

Pergunta
-
Ola pessoal, eu desejo adicionar uma coluna de numeração de ITENS, antes do código ter a numeração , na imagem tem 6 produto, então conta 1 para o produto na linha um assim por diante, se não tiver mais produto ele para a numeração no produto
Respostas
-
Boa tarde.
Tente assim.
Private Sub PpesquisarNome() Using con As OleDbConnection = getConnection() Try con.Open() Dim sql As String = "Select CodigoProduto,Produto,UnidadeMedida,Quantidade,ValorUnitario,ValorTotal FROM Tab_Saida WHERE NOME Like '%" & txtNome.Text & "%'" Dim cmd As OleDbCommand = New OleDbCommand(sql, con) Dim da As OleDbDataAdapter = New OleDbDataAdapter(cmd) Dim dt As DataTable = New DataTable Dim dc1 As DataColumn = dt.Columns.Add("Item", Type.GetType("System.Int32")) dc1.AutoIncrement = True dc1.AutoIncrementSeed = 1 dc1.AutoIncrementStep = 1 da.Fill(dt) Dim SomaColuna As Double 'Percorre o data table para somar a coluna do salario For Each row In dt.Rows SomaColuna += CDbl(row("ValorTotal").ToString()) Next row dgvCadastro1.DataSource = dt lblTotaGeral1.Text = SomaColuna.ToString("#,#.00;(#,#.00)") 'Formata a gridview PFormataDataGridView() Catch ex As Exception MsgBox(ex.Message) Finally con.Close() End Try End Using
MARIANO1776
- Marcado como Resposta Arlindo António quarta-feira, 20 de dezembro de 2017 19:54
-
Complementando, eu particularmente evito o uso do For Each, preferindo sempre que possível o For Next.
Como sugestão para a SomaColuna, some diretamante as células do datagridview carregado.
da.Fill(dt) dgvCadastro1.DataSource = dt Dim SomaColuna As Double = 0 For i As Int32 = 0 To dgvCadastro1.Rows.Count - 1 somacoluna += CDbl(dgvCadastro1.Rows(i).Cells(número da coluna com os valores).Value) Next
MARIANO1776
- Marcado como Resposta Arlindo António domingo, 31 de dezembro de 2017 12:52
Todas as Respostas
-
-
-
boa tarde , eu carrego desse modo
Private Sub PpesquisarNome()
Using con As OleDbConnection = getConnection()
Try
con.Open()
Dim sql As String = "Select CodigoProduto,Produto,UnidadeMedida,Quantidade,ValorUnitario,ValorTotal FROM Tab_Saida WHERE NOME Like '%" & txtNome.Text & "%'"
Dim cmd As OleDbCommand = New OleDbCommand(sql, con)
Dim da As OleDbDataAdapter = New OleDbDataAdapter(cmd)
Dim dt As DataTable = New DataTable
da.Fill(dt)
Dim SomaColuna As Double
da.Fill(dt)
'Percorre o data table para somar a coluna do salario
For Each row In dt.Rows
SomaColuna += CDbl(row("ValorTotal").ToString())
Next row
dgvCadastro1.DataSource = dt
lblTotaGeral1.Text = SomaColuna.ToString("#,#.00;(#,#.00)")
'Formata a gridview
PFormataDataGridView()
Catch ex As Exception
MsgBox(ex.Message)
Finally
con.Close()
End Try
End Usingo que desejo e implementar um for each que permita fazer a numeração cada vez que aumentar produto
exemplo
ITEMS PRODUTO
1 LUVA
2 APONTADOR
se tiver mais produto ele adicionar a numeração
-
Boa tarde.
Tente assim.
Private Sub PpesquisarNome() Using con As OleDbConnection = getConnection() Try con.Open() Dim sql As String = "Select CodigoProduto,Produto,UnidadeMedida,Quantidade,ValorUnitario,ValorTotal FROM Tab_Saida WHERE NOME Like '%" & txtNome.Text & "%'" Dim cmd As OleDbCommand = New OleDbCommand(sql, con) Dim da As OleDbDataAdapter = New OleDbDataAdapter(cmd) Dim dt As DataTable = New DataTable Dim dc1 As DataColumn = dt.Columns.Add("Item", Type.GetType("System.Int32")) dc1.AutoIncrement = True dc1.AutoIncrementSeed = 1 dc1.AutoIncrementStep = 1 da.Fill(dt) Dim SomaColuna As Double 'Percorre o data table para somar a coluna do salario For Each row In dt.Rows SomaColuna += CDbl(row("ValorTotal").ToString()) Next row dgvCadastro1.DataSource = dt lblTotaGeral1.Text = SomaColuna.ToString("#,#.00;(#,#.00)") 'Formata a gridview PFormataDataGridView() Catch ex As Exception MsgBox(ex.Message) Finally con.Close() End Try End Using
MARIANO1776
- Marcado como Resposta Arlindo António quarta-feira, 20 de dezembro de 2017 19:54
-
Complementando, eu particularmente evito o uso do For Each, preferindo sempre que possível o For Next.
Como sugestão para a SomaColuna, some diretamante as células do datagridview carregado.
da.Fill(dt) dgvCadastro1.DataSource = dt Dim SomaColuna As Double = 0 For i As Int32 = 0 To dgvCadastro1.Rows.Count - 1 somacoluna += CDbl(dgvCadastro1.Rows(i).Cells(número da coluna com os valores).Value) Next
MARIANO1776
- Marcado como Resposta Arlindo António domingo, 31 de dezembro de 2017 12:52
-
Bom dia.
só substituir o select por:
Select ROW_NUMBER() over (ORDER BY CodigoProduto ASC) as linha, CodigoProduto,Produto,UnidadeMedida,Quantidade,ValorUnitario,ValorTotal FROM Tab_Saida WHERE NOME Like '%" & txtNome.Text & "%'
a função ROW_NUMBER gerará uma numeração automática sem mexer no seu código.
na cláusula ORDER BY você pode colocar o campo que quer que faça a ordenação.
Se ajudou, coloque como respondida.
Abs.
- Sugerido como Resposta Fernando.Jarcen segunda-feira, 1 de janeiro de 2018 11:51