Navegar pelos registros
Preciso fazer três ajustes neste form, mas não estou conseguindo...agradeço se alguém puder ajudar :
*Windows form e BD Access.
- O campo hora que carrega pelo botão adicionar do bindingnavigator com o código abaixo :
Depois de salvar fica a data mais a hora, mas tem de ser somente a hora, o que deve estar errado ?
No banco está correto, somente a hora.
- Quando se clica no botão adicionar será adicionado nova locação, é necessário limpar o grid para que se possa incluir novos itens, como fazer isto ?
Fiz com o código abaixo, mas apaga do banco também...
-E por último, quando se clicar nas setas do bindingnavigator para navegar pelos registros, que mude também os itens no grid.
Estando na locação 1 mostrar os livros da locação 1, quando mudar para locação 2, mostrar os livros da locação 2 e assim por diante.
[img]http://arquivo.devmedia.com.br/forum/imagem/343353-20141222-162231.png[/img]
*Windows form e BD Access.
- O campo hora que carrega pelo botão adicionar do bindingnavigator com o código abaixo :
Depois de salvar fica a data mais a hora, mas tem de ser somente a hora, o que deve estar errado ?
No banco está correto, somente a hora.
horaTextBox.Text = DateTime.Now.ToShortTimeString();
- Quando se clica no botão adicionar será adicionado nova locação, é necessário limpar o grid para que se possa incluir novos itens, como fazer isto ?
Fiz com o código abaixo, mas apaga do banco também...
while (itemLocacaoDataGridView.Rows.Count > 0) { itemLocacaoDataGridView.Rows.Remove(itemLocacaoDataGridView.CurrentRow); }
-E por último, quando se clicar nas setas do bindingnavigator para navegar pelos registros, que mude também os itens no grid.
Estando na locação 1 mostrar os livros da locação 1, quando mudar para locação 2, mostrar os livros da locação 2 e assim por diante.
[img]http://arquivo.devmedia.com.br/forum/imagem/343353-20141222-162231.png[/img]
Jair Souza
Curtidas 0
Respostas
Joel Rodrigues
22/12/2014
Vamos lá.
Questão 1:
Como está o tipo de dados no banco?
Tem algum código extra no botão de salvar?
Questão 2:
Tente isso:
Questão 3:
No evento CurrentChanged do BindingSource das locações, você precisa preencher o grid dos itens de acordo com o registro atual.
Questão 1:
Como está o tipo de dados no banco?
Tem algum código extra no botão de salvar?
Questão 2:
Tente isso:
itemLocacaoDataGridView.DataSource = null;
Questão 3:
No evento CurrentChanged do BindingSource das locações, você precisa preencher o grid dos itens de acordo com o registro atual.
GOSTEI 0
Jair Souza
22/12/2014
Questão 1 :
[img]http://arquivo.devmedia.com.br/forum/imagem/343353-20141224-075142.png[/img]
Questão 2 : Funcionou assim :
Questão 3 :
Não sei como fazer, podes detalhar ?
[img]http://arquivo.devmedia.com.br/forum/imagem/343353-20141224-075142.png[/img]
Questão 2 : Funcionou assim :
bDBibliotecaDataSet.ItemLocacao.Clear();
Questão 3 :
Não sei como fazer, podes detalhar ?
GOSTEI 0
Jair Souza
22/12/2014
Olá, tens mais alguma dica ?
GOSTEI 0
Joel Rodrigues
22/12/2014
Sobre a questão 3, trate o evento CurrentChanged do binding source da locação, como eu falei, vai ser algo mais ou menos assim
Obviamente não é pra copiar este código, mas sim pegar a ideia.
if(locacaoBindingSource.Current != null) { DataRowView row = locacaoBindingSource.Current as DataRowView; itemLocacaoTableAdapter.Fill(dataSet.itemLocacaoTable, row["CodLocacao"].ToString()) }
Obviamente não é pra copiar este código, mas sim pegar a ideia.
GOSTEI 0
Jair Souza
22/12/2014
Tentei ajustar, mas não estou conseguindo acertar....
[img]http://arquivo.devmedia.com.br/forum/imagem/343353-20150102-172923.png[/img]
[img]http://arquivo.devmedia.com.br/forum/imagem/343353-20150102-172923.png[/img]
GOSTEI 0
Joel Rodrigues
22/12/2014
Dessa forma que está aí eu não consegui identificar qual é o erro exatamente. Aparentemente esse método FillByLocacoesPendentes não existe, tem certeza que é esse Fill que você usa?
GOSTEI 0
Jair Souza
22/12/2014
Este método é válido e é usado em outra parte do código.
Veja abaixo como está agora...:
[img]http://arquivo.devmedia.com.br/forum/imagem/343353-20150105-210130.png[/img]
Veja abaixo como está agora...:
[img]http://arquivo.devmedia.com.br/forum/imagem/343353-20150105-210130.png[/img]
GOSTEI 0
Joel Rodrigues
22/12/2014
E qual foi o problema ao utilizá-lo?
Nesta imagem aí o erro é que não tem esse ponto, como mostrei no exemplo: row["IDLocacao"].ToString().
Nesta imagem aí o erro é que não tem esse ponto, como mostrei no exemplo: row["IDLocacao"].ToString().
GOSTEI 0
Jair Souza
22/12/2014
Então...sem o ponto que realmente não faz sentido, dá o erro da imagem anterior, já tentei vários ajustes, mas nada funciona...
GOSTEI 0
Jair Souza
22/12/2014
Deixei o fill nativo, Agora está dando este erro, mas não sei o que significa...
[img]http://arquivo.devmedia.com.br/forum/imagem/343353-20150107-213959.png[/img]
[img]http://arquivo.devmedia.com.br/forum/imagem/343353-20150107-213959.png[/img]
GOSTEI 0
Jair Souza
22/12/2014
Bom dia, pessoal, alguma dica para este aprendiz ?
GOSTEI 0
Joel Rodrigues
22/12/2014
Você testou apenas corrigir o erro que falei e usar o FillByLocacoesPendentes?
O erro aí é bastante claro: não existe um método Fill que receba 2 argumentos.
O erro aí é bastante claro: não existe um método Fill que receba 2 argumentos.
GOSTEI 0
Jair Souza
22/12/2014
Corrigi o erro que falaste Retirando o ponto e voltei ao FillByLocacoesPendentes e dá este erro :
[img]http://arquivo.devmedia.com.br/forum/imagem/343353-20150112-110725.png[/img]
[img]http://arquivo.devmedia.com.br/forum/imagem/343353-20150112-110725.png[/img]
GOSTEI 0
Joel Rodrigues
22/12/2014
Aí diz que o método não existe.
Você consegue pelo menos identificar quais métodos existem, e quais argumentos eles esperam?
Você consegue pelo menos identificar quais métodos existem, e quais argumentos eles esperam?
GOSTEI 0
Jair Souza
22/12/2014
Este existe e está funcionando na querybuilder :
[img]http://arquivo.devmedia.com.br/forum/imagem/343353-20150113-122417.png[/img]
E também aparece nas opções no código :
[img]http://arquivo.devmedia.com.br/forum/imagem/343353-20150113-122502.png[/img]
[img]http://arquivo.devmedia.com.br/forum/imagem/343353-20150113-122417.png[/img]
E também aparece nas opções no código :
[img]http://arquivo.devmedia.com.br/forum/imagem/343353-20150113-122502.png[/img]
GOSTEI 0
Jair Souza
22/12/2014
Pessoal, já excedi meu conhecimento....rrrrs, se alguém puder ajudar, agradeço muito.
GOSTEI 0
Joel Rodrigues
22/12/2014
Cara, seu problema é com a compreensão desses métodos Fill. Você vai precisar dar uma pesquisada pra entender como eles funcionam e como passar parâmetros para um método, pois vejo que você está com dificuldade de entender os argumentos esperados pelo método.
Por exemplo, esse FillByLocacoesPendentes não recebe nenhum filtro, ele recebe apenas a tabela que vai ser preenchida. Você vai precisar, neste caso, de um Fill que receba, além da tabela, o ID/Código da locação, para retornar os itens dela. Algo do tipo: FillByLocacao(dataTable, 10); que preencheria os itens da locação 10.
Por exemplo, esse FillByLocacoesPendentes não recebe nenhum filtro, ele recebe apenas a tabela que vai ser preenchida. Você vai precisar, neste caso, de um Fill que receba, além da tabela, o ID/Código da locação, para retornar os itens dela. Algo do tipo: FillByLocacao(dataTable, 10); que preencheria os itens da locação 10.
GOSTEI 0
Jair Souza
22/12/2014
Finalmente consegui ficou assim :
Criei uma query FillIBytensLocados :
E chamo nos clicks dos botões de navegação do form :
Aqui está buscando pelo ID do Locatário, em outro form coloquei para chamar pelo ID da locação :
Valeu !
Criei uma query FillIBytensLocados :
SELECT ItemLocacao.IDItem, ItemLocacao.IDLocacao, ItemLocacao.IDLivro, ItemLocacao.IDLocatario, ItemLocacao.IDFuncionario, ItemLocacao.[Data de Devolucao], ItemLocacao.Obs1, ItemLocacao.Obs2, ItemLocacao.Obs3 FROM ((ItemLocacao INNER JOIN Locacao ON Locacao.IDLocacao = ItemLocacao.IDLocacao) INNER JOIN Locatario ON Locatario.IDLocatario = Locacao.IDLocatario) WHERE (Locatario.IDLocatario = ?) AND (ItemLocacao.[Data de Devolucao] IS NULL)
E chamo nos clicks dos botões de navegação do form :
private void BtnPrimeiro_Click(object sender, EventArgs e) { this.itemLocacaoTableAdapter.FillByIDLocatario(this.bDBibliotecaDataSet.ItemLocacao,Convert.ToInt32(iDLocatarioTextBox.Text)); }
Aqui está buscando pelo ID do Locatário, em outro form coloquei para chamar pelo ID da locação :
SELECT ItemLocacao.IDItem, ItemLocacao.IDLocacao, ItemLocacao.IDLivro, ItemLocacao.IDLocatario, ItemLocacao.IDFuncionario, ItemLocacao.[Data de Devolucao], ItemLocacao.Obs1, ItemLocacao.Obs2, ItemLocacao.Obs3 FROM ((ItemLocacao INNER JOIN Locacao ON Locacao.IDLocacao = ItemLocacao.IDLocacao) INNER JOIN Locatario ON Locatario.IDLocatario = Locacao.IDLocatario) WHERE (Locacao.IDLocacao = ?) AND (ItemLocacao.[Data de Devolucao] IS NULL)
Valeu !
GOSTEI 0