Quando insiro um novo registro no Delphi, não está atualizando no QuickReport
10/08/2020
0
todos bem?
Estou tentando desenvolver um sistema com o Delphi e Banco de Dados Firebird. Estou utilizando também o IBExpert para criar as tabelas, triggers, generators e as procedures.
O sistema trata-se de um sistema de Garagem de Automóveis e no momento que Insiro um novo registro na aplicação, quando peço para imprimir, o QuickReport é retornado em branco.
Estou utilizando no Form de Cadastro de Veículo o IBDataSet (Paleta Interbase) para a Tabela do Cadastro dos Automóveis.
No Form da Impressão estou utilizando o IBQuery (Paleta Interbase) para a Tabela de Automóveis.
Ainda no IBQuery, no Object Inspector, Properties SQL, informei o Select abaixo:
select * from cad_veiculo a
where a.codveiculo = :COD
Estou utilizando o QuickReport para criar o Formulário, com os devidos QRLabels e QRDBText. Liguei a propriedade DataSet do QuickReport com o IBQuery.
O cabeçalho da Impressão estou deixando como Page Header, o Título do Formulário estou deixando Group Header e os QRLabels e QRDBText estou deixando dentro do Detail trazendo as informações do Cadastro do Veículo.
No momento da Impressão, no Evento Onclick de um Button, coloquei o código abaixo:
frmrelcadveiculo.IBQuery1.Close;
frmrelcadveiculo.IBQuery1.ParamByName('COD').AsString := dtsveiculo.FieldValues['CODVEICULO'];
frmrelcadveiculo.IBQuery1.Open;
frmrelcadveiculo.QuickRep1.Preview;
Daí, quando compilo o projeto e vou inserir um novo registro, aperto no botão imprimir e ele me traz o QuickReport sem as informações do novo cadastro.
Poderiam tentar me ajudar para eu ver onde é que estou errando?
Vinicius David
Posts
11/08/2020
Emerson Nascimento
se não me engano os componentes IB abrem uma transação automaticamente. Nesse caso os dados são efetivados no banco quando a transação é confirmada ou quando a conexão é encerrada.
logo após a confirmação do registro, confirme também a transação.
IBDataSet.Post; // grava o registro IBDataSet.ApplyUpdates; // grava as atualizações que estão em cache fisicamente no banco de dados
11/08/2020
Vinicius David
se não me engano os componentes IB abrem uma transação automaticamente. Nesse caso os dados são efetivados no banco quando a transação é confirmada ou quando a conexão é encerrada.
logo após a confirmação do registro, confirme também a transação.
IBDataSet.Post; // grava o registro IBDataSet.ApplyUpdates; // grava as atualizações que estão em cache fisicamente no banco de dados
Não deu certo Emerson...
Coloquei a instrução de acordo com o que me passou no Button que tenho para salvar o registro, mas mesmo assim quando coloco para imprimir ele me retorna em branco sem as informações que acabei de inserir.
Coloquei até um DBGrid do lado para ter certeza que está gravando na tabela as informações e realmente está gravando, porém não consigo fechar essa transação para que no QuickReport venha as informações que acabei de inserir no banco.
Consegue me ajudar com outro método?
11/08/2020
Emerson Nascimento
faça um teste:
conecte um datasource ao frmrelcadveiculo.IBQuery1, e uma grade a esse datasource.
assim que abrir (no button que abre o relatório), o registro deve aparecer na grade. se aparecer, está tudo certo.
11/08/2020
Vinicius David
faça um teste:
conecte um datasource ao frmrelcadveiculo.IBQuery1, e uma grade a esse datasource.
assim que abrir (no button que abre o relatório), o registro deve aparecer na grade. se aparecer, está tudo certo.
Emerson, boa noite.
Consegui realizar do seguinte modo:
IBDataSet1.Post;
IBDataSet1.ApplyUpdates;
IBTransaction1.CommitRetaining;
Com essas três linhas de comando no Button, o QuickReport traz o novo cadastro em tela.
Entretanto agora me surgiu outra dúvida, caso se puder me responder, seria sequência disso...
Cadastrei um novo veículo, certo? Porém informei a placa errada e quero fazer a edição dessa placa. Quando eu realizo a edição e aperto para Salvar, o sistema não grava a Edição.
Saberia me informar o que estou fazendo de errado?
Desde já agradeço muito sua ajuda e de quem também conseguir me ajudar.
12/08/2020
Emerson Nascimento
Clique aqui para fazer login e interagir na Comunidade :)