Carcleo 4 Denunciar post Postado Novembro 22, 2008 Seguinte: tenho no meu formulario de pedidos, um texbox com o código do produto e uma textbox com a descrição do produto. Abaixo, tenho uma Gridview e um botão incluir. O que eu preciso: Preciso que quando clikar em incluir, pegar os valores que estão nas textbox e preencher a gridview com com eles e, quando trocar os valores das textbox teria que ao clikar no botão incluir de novo, preencher outra linha na gridview. Outra coisa é que essa gridview não esta ligada a nenhum datasource e dessa forma, as colunas dele veem vazias e dai tentei preenher(alterar) os nomes(cabeçalhos) das colunas com o código abaixo mas só da um erro dizendo que esta fora do intervalo. O que fazer? Private Sub Pedidos_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load DGWPedidos.Columns.Item(0).HeaderText = "CODIGO" DGWPedidos.Columns.Item(1).HeaderText = "DESCRIÇÃO" DGWPedidos.Columns.Item(2).HeaderText = "TIPO UNIDADE" DGWPedidos.Columns.Item(3).HeaderText = "PREÇO UNITÁRIO" DGWPedidos.Columns.Item(4).HeaderText = "SUB-TOTAL" End Sub Compartilhar este post Link para o post Compartilhar em outros sites
Carcleo 4 Denunciar post Postado Novembro 23, 2008 Seguinte pessoal, aproveitando que ninguem respondeu, deixa eu mudar a exposição do problema. Bom, tenho um dataset, uma gridview e um datasource A tabela que é ligada à gridview atraves do datasource e a tabela DetalhesPedidos e ela esta assim: pedidoID produtoID preco quantidadeNa gridview gostaria de alterar esses campos, acrecentando mais 3 campos ficando assim: CODIGO DESCRICAO TIPO UNIDADE PREÇO UNITÁRIO QUANTIDADE PRECOTOTALCom relação aos 4 primeiros campos tudo bem mas, como acrecentar mais colunas na gridview e na ordem que preciso e o que é + dificil para mim: Estando usando essa grid view para que, ao clikar em um, botão inserir, fazer aparecer na gridview o conteudo de umas textbox e,.............. à cada vez que clikar no botão inserir, tambem acrecentar + uma linha à gridview a cada clike no botão inserir em um form de pedidos. Como fazer isso? Compartilhar este post Link para o post Compartilhar em outros sites
Carcleo 4 Denunciar post Postado Novembro 24, 2008 Insistindo mais um pouquinho: Bom tentei incrementar mais uma linha à gridview cada vez que o botão "Incluir item ao pedido" for clikado (incluir.mouseclik) mas ta dando o seguinte erro quando incrementa mais 1 linha: O índice estava fora do intervalo. Ele deve ser não-negativo e menor que o tamanho da coleção. Nome do parâmetro: indexO incremento, 1, 2, 3, 4 ... esta funcionando agora mas quando manda inserir a 2ª linha da erro.Eis o código: Dim I As Integer = 0 ... ... ... Private Sub Incluir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Incluir.Click If qtde.Text = String.Empty Then MsgBox("Informe a quantidade requerida...") qtde.Focus() Exit Sub End If DGWPedidos.Rows(I).Cells(0).Value = registro DGWPedidos.Rows(I).Cells(1).Value = produto.Text DGWPedidos.Rows(I).Cells(2).Value = unidade.Text DGWPedidos.Rows(I).Cells(3).Value = preco.Text DGWPedidos.Rows(I).Cells(4).Value = qtde.Text DGWPedidos.Rows(I).Cells(5).Value = preco.Text * qtde.Text I = I + 1 End SubE agora. Como sair dessa? Compartilhar este post Link para o post Compartilhar em outros sites
quintelab 91 Denunciar post Postado Novembro 24, 2008 Em qual linha do código que deu este erro? Abraços... Compartilhar este post Link para o post Compartilhar em outros sites
Carcleo 4 Denunciar post Postado Novembro 24, 2008 Bom. O erro ocorre quando, na parte abaixo do código, é gerada a 2ª linha. Private Sub Incluir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Incluir.Click If qtde.Text = String.Empty Then MsgBox("Informe a quantidade requerida...") qtde.Focus() Exit Sub End If DGWPedidos.Rows(i).Cells(0).Value = registro DGWPedidos.Rows(i).Cells(1).Value = produto.Text DGWPedidos.Rows(i).Cells(2).Value = unidade.Text DGWPedidos.Rows(i).Cells(3).Value = preco.Text DGWPedidos.Rows(i).Cells(4).Value = qtde.Text DGWPedidos.Rows(i).Cells(5).Value = preco.Text * qtde.Text For x = 0 To DGWPedidos.Rows.Count total.Text = DGWPedidos.Rows(0).Cells(5).Value Next i = i + 1 'quando o código chega aqui e gera i=2, na hora de fazer o DGWPedidos.Rows(2).Cells(0).Value aí da o erro End SubMeu código todo é: Imports MySql.Data.MySqlClient Public Class Pedidos Dim accDb As New DBConnection Dim registro As Integer Dim dr As DataRow Dim dt As DataTable Dim ds As DataSet = Nothing Dim b As New DataGridViewColumn Dim i As Integer = 0 Private Sub mostracolunas() DGWPedidos.Columns.Item(0).HeaderText = "CODIGO" DGWPedidos.Columns.Item(1).HeaderText = "DESCRIÇÃO" DGWPedidos.Columns.Item(2).HeaderText = "TIPO UNIDADE" DGWPedidos.Columns.Item(3).HeaderText = "PREÇO UNITÁRIO" DGWPedidos.Columns.Item(4).HeaderText = "QTDE" DGWPedidos.Columns.Item(5).HeaderText = "SUBTOTAL" End Sub Private Sub bcliente_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bcliente.Click Dim dialogo As New frmClientes dialogo.ShowDialog() If dialogo.DialogResult = Windows.Forms.DialogResult.OK Then Dim tabela As String = "Clientes" Dim sql As String = "Select * from " & tabela & " where clienteID = '" & dialogo.registro & "'" ds = accDb.ExecuteDS(sql, tabela) Dim dr As DataRow For Each dr In ds.Tables(0).Rows codigo.Text = dr.Item("clienteID") cliente.Text = dr.Item("nome") registro = dr.Item("clienteID") Next dr Else MsgBox("Não foi selecionado nenhum cliente.") codigo.Text = "" cliente.Text = "" End If End Sub Private Sub bproduto_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bproduto.Click Dim dialogo As New frmProdutos dialogo.ShowDialog() If dialogo.DialogResult = Windows.Forms.DialogResult.OK Then Dim tabela As String = "Produtos" Dim sql As String = "Select * from " & tabela & " where produtoID = '" & dialogo.registro & "'" ds = accDb.ExecuteDS(sql, tabela) Dim dr As DataRow For Each dr In ds.Tables(0).Rows produto.Text = dr.Item("descricao") preco.Text = dr.Item("preco") unidade.Text = dr.Item("unidade") registro = dr.Item("produtoID") Next dr Else MsgBox("Não foi selecionado nenhum cliente.") codigo.Text = "" cliente.Text = "" End If End Sub Private Sub Pedidos_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim tabela As String = "detalhespedidos" Dim sql As String = "Select * from " & tabela & "" ds = accDb.ExecuteDS(sql, tabela) DGWPedidos.DataSource = ds.Tables(0).DefaultView mostracolunas() End Sub Private Sub Incluir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Incluir.Click 'DGWPedidos.Rows(0).Cells(0).Value = registro 'DGWPedidos.Rows(0).Cells(1).Value = produto.Text 'DGWPedidos.Rows(0).Cells(2).Value = unidade.Text 'DGWPedidos.Rows(0).Cells(3).Value = preco.Text 'DGWPedidos.Rows(0).Cells(4).Value = qtde.Text 'DGWPedidos.Rows(0).Cells(5).Value = preco.Text * qtde.Text If qtde.Text = String.Empty Then MsgBox("Informe a quantidade requerida...") qtde.Focus() Exit Sub End If DGWPedidos.Rows(i).Cells(0).Value = registro DGWPedidos.Rows(i).Cells(1).Value = produto.Text DGWPedidos.Rows(i).Cells(2).Value = unidade.Text DGWPedidos.Rows(i).Cells(3).Value = preco.Text DGWPedidos.Rows(i).Cells(4).Value = qtde.Text DGWPedidos.Rows(i).Cells(5).Value = preco.Text * qtde.Text For x = 0 To DGWPedidos.Rows.Count total.Text = DGWPedidos.Rows(0).Cells(5).Value Next i = i + 1 End Sub End ClassSó não sei se estou fazendo certo.A ideia é : textbox para exibir dados do produto botão incluir, que quando clikado popula a primeira linha da gridview O problema é que, na texbox, quando se escolhe o novo produto(ítem do pedido), não gera mais uma linha na GRIDVIEW e da o erro. Compartilhar este post Link para o post Compartilhar em outros sites