bertani 0 Denunciar post Postado Julho 19, 2011 Pessoal, estou precisando de uma ajuda no processo de pesquisa. Tenho um form onde possui 4 campos e uma grid. Gostaria que ao preencher algum campo, aparecesse o resultado na grid. Obrigado Compartilhar este post Link para o post Compartilhar em outros sites
Joffre Mota 0 Denunciar post Postado Julho 19, 2011 Vou te dar um exemplo do que uso. Tenho um formulário com 4 campos. Código, Descrição, Referência, Valor. Sempre que eu clico em ADICIONAR, os valores vão para o grid e são salvos em determinada tabela do banco de dados. Eis meu código do evento click do botão ADICIONAR: Private Sub btn_AddReceitas_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_AddReceitas.Click If txt_Valor.Text = "" Then MessageBox.Show("O campo 'Valor' é obrigatório!", "Falha na inclusão", MessageBoxButtons.OK, MessageBoxIcon.Warning) ElseIf txt_Referencia.Text = " /" Then MessageBox.Show("O campo 'Referência' é obrigatório!", "Falha na inclusão", MessageBoxButtons.OK, MessageBoxIcon.Warning) Else 'Aqui estou incluindo os valores ao banco de dados' dao.IncluirReceita(txt_Referencia.Text, cbb_Descricao.Text, txt_Valor.Text) 'Aqui estou incluindo os valores do formulário na grid' dao.PreencherGrid(dgv_Receitas, txt_Codigo.Text, cbb_Descricao.Text, txt_Valor.Text, txt_Referencia.Text) LimparCampos() End If End Sub E abaixo segue o que minha sub PreencherGrid está fazendo: Public Sub PreencherGrid(ByRef dataGrid As DataGridView, ByVal pnCod As Integer, ByVal pcDescr As String, ByVal pnVlrUni As Double, ByVal pcRef As String) Dim valores() As String = {CStr(pnCod), pcDescr, CStr(pnVlrUni), pcRef} dataGrid.Rows.Add(valores) End Sub Se você quer adicionar valor por valor, terá que fazer algumas adaptações, mas a lógica é basicamente a mesma. Espero ter ajudado. Qualquer dúvida, avise que tentarei te ajudar. Compartilhar este post Link para o post Compartilhar em outros sites
bertani 0 Denunciar post Postado Julho 19, 2011 Joffre, acho que coloquei a minha dúvida de forma errada, me desculpe. Porque é o seguinte, incluir na grid eu consegui, o que eu preciso é que no Form ao pesquisar por um campo, tipo NOME DA FILIAL, ao executar a filial que preciso apareça na grid entendeu?. Os dados que inseri na grid, possam ser pesquidos tb. Obrigado pela atenção Compartilhar este post Link para o post Compartilhar em outros sites
Joffre Mota 0 Denunciar post Postado Julho 20, 2011 Você quer dar tipo um duplo click no grid e com isso fazer com que os campos do formulário correspondentes sejam preenchidos? Se for, não tem segredo também. Antes de mais nada, você precisa criar uma Sub que fará a consulta no banco de dados para retornar os valores para preenchimento do formulário. Note que por parâmetro passaremos o código: Public Function ConsultaRec(ByVal pnCodigo As Int32) As DataSet Dim ds As New DataSet Try Dim str As String str = " SELECT * FROM receitas WHERE codigo=" & pnCodigo ds = bd.PreencheDataSet(str) Catch ex As Exception MsgBox(ex.ToString) End Try Return ds End Function Depois você vai criar uma Sub chamada PreencheForm (ou MontarTela), que irá preencher os campos do formulário de acordo com o resultado da consulta acima: Private Sub PreencheForm(ByVal pnCodigo As Integer) Try Dim ds As New DataSet ds = dao.ConsultaRec(pnCodigo) If ds.Tables(0).Rows.Count > 0 Then txt_Codigo.Text = pnCodigo cbb_Descricao.Text = ds.Tables(0).Rows(0)("descricao") txt_Valor.Text = ds.Tables(0).Rows(0)("vlr_Receita") txt_Referencia.Text = ds.Tables(0).Rows(0)("ref") End If Catch ex As Exception MsgBox(ex.Message) End Try End Sub Depois disso, adicione o seguinte evento ao DataGridView: Private Sub dgv_Receitas_DoubleClick(ByVal sender As Object, ByVal e As System.EventArgs) Handles dgv_Receitas.DoubleClick Try PreencheForm(dgv_Receitas.Item("codigo", dgv_Receitas.CurrentCell.RowIndex).Value) Catch ex As Exception MsgBox(ex.Message) End Try End Sub Com isso, ao dar duplo click em qualquer elemento do grid, as linhas do mesmo preencherão o formulário. Obs.: estou pegando como base a mesma tabela informada no meu post anterior (com 4 campos). Se ainda não for isso, me avise que tentarei te ajudar no que for possível. Se ainda não for essa sua dúvida, desenha aí pra mim pois não entendi! Hahahaha Compartilhar este post Link para o post Compartilhar em outros sites
bertani 0 Denunciar post Postado Julho 20, 2011 Joffre, não seria esta minha dúvida, mas achei muito interessante este procedimento que passou e irei implementar na minha aplicação rsss. Como sou iniciante, é uma coisa nova pra mim. Mas vou desenhar o que preciso rs. No meu Form tenho 4 campos(TextBox):(Filial, Código do Produto,Descrição Produto e Tipo de Movimento). um botao executar que serve para pesquisar e atualizar os dados que constam na grid. Vou informar como e feito a inclusao. Abaixo da grid tenho o botão incluir, nele ao clicar, aparece uma telinha para cadastrar os campos solicitados. Ao incluir, ele aparece na grid e assim por diante, fora o botao alterar e cancelar. Então é o seguinte, eu preciso que no meu form eu consiga pesquisar utilizando um dos 4 campos que informei e que a resposta apareça na grid. Tipo, Filial 900002, apareça na grid somente a filial informada na pesquisa. Isso usando o botao executar blza? Mais uma vez, obrigado pela atenção E vou usar o exemplo que passou rs.. Valeu Compartilhar este post Link para o post Compartilhar em outros sites
Joffre Mota 0 Denunciar post Postado Julho 20, 2011 No meu Form tenho 4 campos(TextBox):(Filial, Código do Produto,Descrição Produto e Tipo de Movimento). um botao executar que serve para pesquisar e atualizar os dados que constam na grid. Vou informar como e feito a inclusao. Abaixo da grid tenho o botão incluir, nele ao clicar, aparece uma telinha para cadastrar os campos solicitados. Ao incluir, ele aparece na grid e assim por diante, fora o botao alterar e cancelar. Então é o seguinte, eu preciso que no meu form eu consiga pesquisar utilizando um dos 4 campos que informei e que a resposta apareça na grid. Tipo, Filial 900002, apareça na grid somente a filial informada na pesquisa. Isso usando o botao executar blza? Se a idéia for cadastrar no Formulário 2 para consultar no Formulário 1 através dos TextBox + botão Executar, a lógica é a mesma do que postei pra você anteriormente. Mas se quiser, apenas confirma se é isso mesmo que implementarei pra você. Eis minha dúvida: Quando você clica no botão INCLUIR abaixo do grid, aparece uma telinha para você cadastrar os 4 campos OU apenas um dos 4 campos? Se possível, tira um print dos dois formulários e manda pro meu e-mail, tá? (vou passar ele para você por mensagem privada) Compartilhar este post Link para o post Compartilhar em outros sites
bertani 0 Denunciar post Postado Julho 20, 2011 No meu Form tenho 4 campos(TextBox):(Filial' date=' Código do Produto,Descrição Produto e Tipo de Movimento). um botao executar que serve para pesquisar e atualizar os dados que constam na grid. Vou informar como e feito a inclusao. Abaixo da grid tenho o botão incluir, nele ao clicar, aparece uma telinha para cadastrar os campos solicitados. Ao incluir, ele aparece na grid e assim por diante, fora o botao alterar e cancelar. Então é o seguinte, eu preciso que no meu form eu consiga pesquisar utilizando um dos 4 campos que informei e que a resposta apareça na grid. Tipo, Filial 900002, apareça na grid somente a filial informada na pesquisa. Isso usando o botao executar blza? [/quote'] Se a idéia for cadastrar no Formulário 2 para consultar no Formulário 1 através dos TextBox + botão Executar, a lógica é a mesma do que postei pra você anteriormente. Mas se quiser, apenas confirma se é isso mesmo que implementarei pra você. Eis minha dúvida: Quando você clica no botão INCLUIR abaixo do grid, aparece uma telinha para você cadastrar os 4 campos OU apenas um dos 4 campos? Se possível, tira um print dos dois formulários e manda pro meu e-mail, tá? (vou passar ele para você por mensagem privada) Mandei o print pra você. Vou aceitar sua ajuda sim. Valeu demais Compartilhar este post Link para o post Compartilhar em outros sites
Joffre Mota 0 Denunciar post Postado Julho 20, 2011 Mandei o print pra você. Vou aceitar sua ajuda sim. Valeu demais A idéia é aquilo que falei mesmo? Se a idéia for cadastrar no Formulário 2 para consultar no Formulário 1 através dos TextBox + botão Executar, a lógica é a mesma do que postei pra você anteriormente. Mas se quiser, apenas confirma se é isso mesmo que implementarei pra você. No horário de almoço olho as screens. Compartilhar este post Link para o post Compartilhar em outros sites
bertani 0 Denunciar post Postado Julho 20, 2011 Beleza. Valeu Compartilhar este post Link para o post Compartilhar em outros sites
Joffre Mota 0 Denunciar post Postado Julho 20, 2011 Você quer cadastrar no Formulário 2 para consultar no Formulário 1 através dos TextBox + botão Executar? Compartilhar este post Link para o post Compartilhar em outros sites
bertani 0 Denunciar post Postado Julho 20, 2011 Você quer cadastrar no Formulário 2 para consultar no Formulário 1 através dos TextBox + botão Executar? Isso mesmo. Valeu Compartilhar este post Link para o post Compartilhar em outros sites
Joffre Mota 0 Denunciar post Postado Julho 20, 2011 Se você já estiver conseguindo incluir os dados no banco de dados, a parte da consulta é fácil. Olha o evento CONSULTAR abaixo como exemplo. Ele vai preencher uma grid, acho que é basicamente o que você está querendo. A diferença é que sua passagem de parâmetros é por TextBox ao invés de RadioButton. Uma idéia que você pode usar é ao invés de utilizar 4 TextBox usar apenas UM no qual você vai digitar o que quer procurar, e, através de um ComboBox você selecionar qual dos itens você quer encontrar. Acho que ficaria mais limpo o formulário. Se fizer alterações nos Forms, me envie novamente. Private Sub btn_Consultar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_Consultar.Click Dim str As String = "" If rdb_EPI.Checked Then str = " SELECT descricao, qtd, dt_validade FROM materiais WHERE tipo='EP' ORDER BY descricao " ElseIf rdb_Venenos.Checked Then str = " SELECT descricao, qtd, dt_validade FROM materiais WHERE tipo='VE' ORDER BY descricao " ElseIf rdb_Utilitarios.Checked Then str = " SELECT descricao, qtd, dt_validade FROM materiais WHERE tipo='UT' ORDER BY descricao " End If ds = bd.CarregarGrid(str, "materiais") dgv_Resultado.DataSource = ds.Tables("materiais").DefaultView dgv_Resultado.Columns(0).HeaderText = "DESCRIÇÃO" dgv_Resultado.Columns(1).HeaderText = "QUANTIDADE" dgv_Resultado.Columns(2).HeaderText = "VALIDADE" End Sub E o aqui está a Função CarregarGrid: Public Function CarregarGrid(ByVal comandoSql As String, ByVal tabela As String) As DataSet Try Conectar() Dim SQL As String = comandoSql Dim da As Npgsql.NpgsqlDataAdapter = New NpgsqlDataAdapter(SQL, conn) Dim ds As DataSet = New DataSet() da.Fill(ds, tabela) Return (ds) Catch ex As Exception MessageBox.Show(ex.Message, "Erro durante pesquisa!", MessageBoxButtons.OK, MessageBoxIcon.Error) Return Nothing Finally If Not conn Is Nothing Then If conn.State = ConnectionState.Open Then conn.Close() End If End If End Try End Function Se isso servir de base para você desenvolver, bom. Caso contrário, me avise que tentarei ser mais claro ainda! (provavelmente utilizando seus formulários) ;D Compartilhar este post Link para o post Compartilhar em outros sites
bertani 0 Denunciar post Postado Julho 20, 2011 Se você já estiver conseguindo incluir os dados no banco de dados, a parte da consulta é fácil. Olha o evento CONSULTAR abaixo como exemplo. Ele vai preencher uma grid, acho que é basicamente o que você está querendo. A diferença é que sua passagem de parâmetros é por TextBox ao invés de RadioButton. Uma idéia que você pode usar é ao invés de utilizar 4 TextBox usar apenas UM no qual você vai digitar o que quer procurar, e, através de um ComboBox você selecionar qual dos itens você quer encontrar. Acho que ficaria mais limpo o formulário. Se fizer alterações nos Forms, me envie novamente. Private Sub btn_Consultar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_Consultar.Click Dim str As String = "" If rdb_EPI.Checked Then str = " SELECT descricao, qtd, dt_validade FROM materiais WHERE tipo='EP' ORDER BY descricao " ElseIf rdb_Venenos.Checked Then str = " SELECT descricao, qtd, dt_validade FROM materiais WHERE tipo='VE' ORDER BY descricao " ElseIf rdb_Utilitarios.Checked Then str = " SELECT descricao, qtd, dt_validade FROM materiais WHERE tipo='UT' ORDER BY descricao " End If ds = bd.CarregarGrid(str, "materiais") dgv_Resultado.DataSource = ds.Tables("materiais").DefaultView dgv_Resultado.Columns(0).HeaderText = "DESCRIÇÃO" dgv_Resultado.Columns(1).HeaderText = "QUANTIDADE" dgv_Resultado.Columns(2).HeaderText = "VALIDADE" End Sub E o aqui está a Função CarregarGrid: Public Function CarregarGrid(ByVal comandoSql As String, ByVal tabela As String) As DataSet Try Conectar() Dim SQL As String = comandoSql Dim da As Npgsql.NpgsqlDataAdapter = New NpgsqlDataAdapter(SQL, conn) Dim ds As DataSet = New DataSet() da.Fill(ds, tabela) Return (ds) Catch ex As Exception MessageBox.Show(ex.Message, "Erro durante pesquisa!", MessageBoxButtons.OK, MessageBoxIcon.Error) Return Nothing Finally If Not conn Is Nothing Then If conn.State = ConnectionState.Open Then conn.Close() End If End If End Try End Function Se isso servir de base para você desenvolver, bom. Caso contrário, me avise que tentarei ser mais claro ainda! (provavelmente utilizando seus formulários) ;D Beleza Joffre,vou fazer aqui e te dou uma resposta. Valeu demais Compartilhar este post Link para o post Compartilhar em outros sites
Joffre Mota 0 Denunciar post Postado Julho 20, 2011 Beleza Joffre,vou fazer aqui e te dou uma resposta.Valeu demais Espero que dê certo. Qualquer coisa não exite em chamar. Compartilhar este post Link para o post Compartilhar em outros sites
bertani 0 Denunciar post Postado Julho 28, 2011 Beleza Joffre,vou fazer aqui e te dou uma resposta.Valeu demais Espero que dê certo. Qualquer coisa não exite em chamar. Ola Joffre, desculpe a demora ai para responder, tive um probleminha particular e fiquei sem usar a net estes dias. Cara funcionou direitinho, só precisei converter para C#. Muito obrigado pele atenção. Valeu demais Abraço Compartilhar este post Link para o post Compartilhar em outros sites
Joffre Mota 0 Denunciar post Postado Julho 28, 2011 Ola Joffre,desculpe a demora ai para responder, tive um probleminha particular e fiquei sem usar a net estes dias. Cara funcionou direitinho, só precisei converter para C#. Muito obrigado pele atenção. Valeu demais Abraço Às ordens. Qualquer coisa é só avisar! ;D Compartilhar este post Link para o post Compartilhar em outros sites