Fórum Atualizar o grid de outra Tela Após inserir/alterar ou deletar - Delphi XE7 #521622

01/06/2015

0

Olá sou iniciante em delphi e estou a quase seis meses programando nessa ferramente incrivel.

Estou desenvolvendo um sistema de clinicas e consultórios e estou implementando os primeiros códigos de inserir através do banco Firebird 2.5.1.

eu possuo duas telas:

a de cadastros que cadastrará e iniciará a alteração

a de gerenciamentos que mostrará os cadastros e a partir de seleção no grid irá iniciar a alteração

E tenho dois problemas:

* Estou inserindo porém para aparecer os dados no grid tenho que fechar as duas telas e reabrir a de gerenciamento. Como eu faço para ao incluir os dados caiam diretamente no grid desta tela de gerenciamento?

* como eu faço para carregar os cadastros do banco de inseri-los no campos da tela de cadastro levando em consideração que lá no banco a minha tabela chama-se CategProcedimentos e tem os campos id_categproced e categproced.

Me ajudem ai

Obrigado
Thiago Santos

Thiago Santos

Responder

Posts

01/06/2015

Marcos P

Thiago,

DBgrid... certo ?

Você tem um "Data Source" associado a grid na segunda tela, certo ?

Faça um teste simples... depois de gravar todos os dados, feche e reabra esse "Data Source" que alimenta a DBgrid.

Isso deve resolver seu problema !

Caso não resolva, nesse mesmo ponto, tente colocar um dbgrid.refresh ( ou algo do gênero ).
Responder

Gostei + 0

01/06/2015

Thiago Santos

isso no evento do salvar no form de cadastros isso?
Responder

Gostei + 0

01/06/2015

Marcos P

No local que você realiza a gravação / atualização dos registros...

Para testar, você pode até criar um botão para isso !
Responder

Gostei + 0

01/06/2015

Thiago Santos

não deu certo
Responder

Gostei + 0

01/06/2015

Cauê Nishijima

Thiago se cada form tiver seu DataSet não tem jeito você tera que fazer uma nova consulta no Action do form, caso seja o mesmo DataSet que se encontra em um DataModule você pode dar apenas um Refresh no DataSet que deve funcionar.

Caso não funcione descreva melhor seu cenário.

E com relação a sua outra dúvida eu não entendi direito. Você quer fazer a pesquisa no banco de dados e o resultado popular no form? Só isso?
Responder

Gostei + 0

01/06/2015

Thiago Santos

não possuo o data module. possuo os componentes: o ib table, transaction, data base e o datasource é dentro da tela de cadastros.

na de gerenciamento tem o ibtable, ibdatabase, ibtransaction.

quero realizar um refresh que inserindo nos campos e cadastrando no banco ele aparecerá no grid sem precisar fechar.

quanto a outra duvida gostaria de fazer o seguinte o usuário está com a tela de gerenciamento aberta onde se encontram os cadastros como que faço para ao dar dois cliques no cadastro e os dados carregar do banco de dados e preencher os campos na tela de cadastro para alterar.

Como que eu faço isso em delphi pois em c# tem que criar um public void carregadados e no delphi como eu faço

obrigado a todos
Responder

Gostei + 0

02/06/2015

Thiago Santos

consegui aparecer os dados após a inserção usei este codigo:

//confirma a inserção dos dados e abre e fecha a conexão e tabela na tela de gerenciamento de Cadastros
tblCategProcedimento.Transaction.Commit;
tblCategProcedimento.Close;
tblCategProcedimento.Open;
frmGCategProced.IBDatabase1.Connected := False;
frmGCategProced.IBDatabase1.Connected := True;
frmGCategProced.IBTable1.close;
frmGCategProced.IBTable1.open;

//mensagem de confirmação
ShowMessage('Categoria de Procedimento Cadastrada com Sucesso!!!');

//limpa os campos
edtIDCategProced.Clear;
edtNomeCategProced.Clear;

agora resta a segunda duvida como que eu carrego os dados do grid que estão no banco de dados para a tela de cadastro preenchendo os campos para eu começar a alterar

aguardo e obrigado
Responder

Gostei + 0

03/06/2015

Valsistemasdelphi

Se eu entendi os Dados que estão No Grid e repassalos para Os Edits do Form Cadastro?
Tu Clicas No DbGrid No evento.... DBGrid1DrawColumnCel..Coloca este Código...

Exemplo: edit3.text := datasource1.dataset.fieldbyname('Cod_Produto').asstring;

Aqui e o Edit que vc quer que receba o valor do dbgrid que está armazenado no Banco. Entre aspas Simples e A referência que vc colocou no Banco.. Tem que ser exatamente o nome que vc Colocou no banco senão vai dar erro.. Ai e só colocar este Código para todos os Edits que vc tem no Form Cadastro...

Se for isso vai dar certo....
Responder

Gostei + 0

03/06/2015

Thiago Santos

sim mais estou usando o string grid pois está tudo implementado para ele

e como fazer a ligação entre o edit do form cadastro e o grid do form gerenciamento
Responder

Gostei + 0

04/06/2015

Valsistemasdelphi

Tenta fazer Assim Thiago...FormGerenciamento.StringGrid1.Cells[1,0] := FormCadastro.Edit1.text;
Responder

Gostei + 0

08/06/2015

Thiago Santos

mais na tela atual eu tenho dois campos e quando implementar para mais de dois campos é a mesma regra
Responder

Gostei + 0

16/06/2015

Thiago Santos

GALERA ESTOU COM PROBLEMA DA ATUALIZAÇÃO DO GRID NA HORA DE ALTERAR
NÃO QUER ATUALIZAR O GRID ASSIM QUE ALTERA.
COMO EU REALIZADO.
Responder

Gostei + 0

16/06/2015

Thiago Santos

eu troquei o string grid para o db grid e agora não está atualizando em tempo de execução

os comandos inserir e alterar estão funcionando

mas não atualiza o db grid

me ajudem ai galera
Responder

Gostei + 0

16/06/2015

Marcos P

Apenas como teste, depois de cada inserção / edição de registros... feche e reabra o componente que fornece os dados para a grid.
Responder

Gostei + 0

19/06/2015

Thiago Santos

não deu certo ainda amigo
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar