Usuário com melhor resposta
Campos não limpam após clicar "+" da BindingNavigator!

Pergunta
-
Boa noite a todos!
Estou trabalhando com o VB.NET 2012, neste projeto estou usando a BindingNavigator, em forms em que estou trabalhando apenas com uma tabela quando clico no botão "+" da barra, os campos são limpos automaticamente sem eu ter que escrever uma linha se quer e funciona blz, já quando estou trabalhando com relacionamento, ou seja "Mestre-Detalhes" em se pressionando o já mencionado botão simplesmente não acontece nada, ai tenho que no evento click do mesmo e forçar a limpeza dos controles!
Alguém por um acaso tem alguma solução para que possa resolver tal enigma? Segue fragmento do meu código:
ElseIf ordTab = 2 Then gSQL = "Select * From tbMateriaPrima Order by Descricao asc" daDADOS2 = New SqlDataAdapter(gSQL, gCN) daDADOS2.TableMappings.Add("Table", "tbMateriaPrima") daDADOS2.Fill(dsDADOS2, "tbMateriaPrima") gSQL1 = "Select * From tbMarca as MP, tbFornecedor as FORN Where FORN.IdFornecedor = MP.IdFornecedor Order by DescricaoMarca asc" daChildDados2 = New SqlDataAdapter(gSQL1, gCN) daChildDados2.TableMappings.Add("Table", "tbMarca") daChildDados2.Fill(dsDADOS2, "tbMarca") gMensagem = "Estabelecer uma relação entre as duas tabelas 'Materia Prima e Marca'" Dim Relação As New DataRelation("MatPrima_Marca", dsDADOS2.Tables("tbMateriaPrima").Columns("IdMateriaPrima"), dsDADOS2.Tables("tbMarca").Columns("IdMateriaPrima"), False) dsDADOS2.Relations.Add(Relação) gMensagem = "Vincular o conector de dados mestre para a tabela Materia Prima." bsDADOS2.DataMember = "tbMateriaPrima" bsDADOS2.DataSource = dsDADOS2 gMensagem = "Vincular o conector de dados detalhes para o conector de dados mestre, " & vbNewLine _ & "usando o nome DataRelation para filtrar as informações no " & vbNewLine _ & "Detalhes tabela com base na linha atual na tabela mestre." bsChildDados2.DataSource = bsDADOS2 bsChildDados2.DataMember = "MatPrima_Marca" bnItensProducao.BindingSource = bsDADOS2 dgvMarcas.AutoGenerateColumns = False dgvMarcas.DataSource = bsChildDados2 Call Carrega_Campos(2) Desabilita_Edicao(2) Private Sub Carrega_Campos(ByVal pTabAtual As Integer) Try If pTabAtual = 1 Then gMensagem = "Carregando campos do Form aba Produtos" txtProduto.DataBindings.Add("Text", bsDADOS1, "Produto", True) ElseIf pTabAtual = 2 Then gMensagem = "Configurando Controles do Form aba Materias Primas" ordbNao = New Binding("ChecKed", bsDADOS2, "Embalagem") olsbUnidades = New Binding("Text", bsDADOS2, "DescUnidade") omskQtdeEstoque = New Binding("Text", bsDADOS2, "Estoque") omskCapacidadeEmbal = New Binding("Text", bsDADOS2, "Capacidade") omskValorUnitario = New Binding("Text", bsDADOS2, "Valor_Unitario") omskCustoUnitario = New Binding("Text", bsDADOS2, "Custo_Unitario") omskVlrEstoque = New Binding("Text", bsDADOS2, "Valor_Estoque") omskQtdeUltCompra = New Binding("Text", bsDADOS2, "QtdeUltCompra") omskQtdeUltSaida = New Binding("Text", bsDADOS2, "QtdeUltSaida") gMensagem = "Carregando campos do Form aba Materias Primas" txtMateriaPrima.DataBindings.Add("Text", bsDADOS2, "Descricao", True) rdbSim.DataBindings.Add("ChecKed", bsDADOS2, "Embalagem") rdbNao.DataBindings.Add(ordbNao) lsbUnidades.DataBindings.Add(olsbUnidades) txtAbrevUnidade.DataBindings.Add("Text", bsDADOS2, "DescUnidade", True) mskQtdeEstoque.DataBindings.Add(omskQtdeEstoque) mskCapacidadeEmbal.DataBindings.Add(omskCapacidadeEmbal) mskValorUnitario.DataBindings.Add(omskValorUnitario) mskCustoUnitario.DataBindings.Add(omskCustoUnitario) mskVlrEstoque.DataBindings.Add(omskVlrEstoque) dtpUltimaCompra.DataBindings.Add("Text", bsDADOS2, "DataUltCompra", True) mskQtdeUltCompra.DataBindings.Add(omskQtdeUltCompra) dtpUltimaSaida.DataBindings.Add("Text", bsDADOS2, "DataUltSaida", True) mskQtdeUltSaida.DataBindings.Add(omskQtdeUltSaida) End If Catch ex As Exception MsgBox(ex.Message & vbNewLine & gMensagem, MsgBoxStyle.Critical, "Carrega_Campos") End Try End Sub Private Sub Desabilita_Edicao(ByVal pQualTab As Integer) Try If pQualTab = 1 Then gMensagem = "Desabilitando campos da Tab 1" txtProduto.ReadOnly = True ElseIf pQualTab = 2 Then gMensagem = "Desabilitando campos da Tab 2" txtMateriaPrima.ReadOnly = True rdbSim.Enabled = False rdbNao.Enabled = False rdbSim.TabStop = False rdbNao.TabStop = False lsbUnidades.Enabled = False mskQtdeEstoque.Readonly = True mskCapacidadeEmbal.Readonly = True mskValorUnitario.Readonly = True mskCustoUnitario.Readonly = True mskVlrEstoque.Readonly = True dtpUltimaCompra.Readonly = True mskQtdeUltCompra.Readonly = True dtpUltimaSaida.Readonly = True mskQtdeUltSaida.Readonly = True End If Catch ex As Exception MsgBox(ex.Message & vbNewLine & gMensagem, MsgBoxStyle.Critical, "Desabilita_Edicao") End Try End Sub
Att.
Dilson J. Hasselmann Desenvolvedor VB.NET
Respostas
-
Pelo que vi você está usando o controle tabcontrol, com ele o funcionamento do binding é diferente, não funciona como na tela diretamente. Para usar o tabcontrol você tem que atribuir a cada tabpage um bindingsource e no selectedindex dela atribui ao binding.
Dá uma olhada nesse link: http://www.vbforums.com/showthread.php?444097-2005-Use-of-Binding-navigator
Bruno Ferreira de Souza
MVP - Microsoft Valuable Professional
MCTS .NET Framework - Windows Applications
MCPD .NET Framework - Windows Applications
www.maestrodotnet.com.br
@BrunoMaestro- Marcado como Resposta DJHasselmann quinta-feira, 19 de fevereiro de 2015 15:51
Todas as Respostas
-
Primeiro: não é recomendável criar nomes de variáveis, métodos, etc com acentuação = "Dim Relação As New DataRelation".
Segundo: Verifique o relacionamento na tabela e as chaves nessa declaração se está ok.
Bruno Ferreira de Souza
MVP - Microsoft Valuable Professional
MCTS .NET Framework - Windows Applications
MCPD .NET Framework - Windows Applications
www.maestrodotnet.com.br
@BrunoMaestro -
-
Pelo que vi você está usando o controle tabcontrol, com ele o funcionamento do binding é diferente, não funciona como na tela diretamente. Para usar o tabcontrol você tem que atribuir a cada tabpage um bindingsource e no selectedindex dela atribui ao binding.
Dá uma olhada nesse link: http://www.vbforums.com/showthread.php?444097-2005-Use-of-Binding-navigator
Bruno Ferreira de Souza
MVP - Microsoft Valuable Professional
MCTS .NET Framework - Windows Applications
MCPD .NET Framework - Windows Applications
www.maestrodotnet.com.br
@BrunoMaestro- Marcado como Resposta DJHasselmann quinta-feira, 19 de fevereiro de 2015 15:51