Quando insiro um novo registro no Delphi, não está atualizando no QuickReport

10/08/2020

0

Olá,
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

Vinicius David

Responder

Posts

11/08/2020

Emerson Nascimento

precisa ver se você está confirmando a transação.
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



Responder

11/08/2020

Vinicius David

precisa ver se você está confirmando a transação.
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?
Responder

11/08/2020

Emerson Nascimento

precisa ver se as ligações com o dataset estão corretas no relatório e nos seus qrlabels e etc

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.
Responder

11/08/2020

Vinicius David

precisa ver se as ligações com o dataset estão corretas no relatório e nos seus qrlabels e etc

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.
Responder

12/08/2020

Emerson Nascimento

você está usando os mesmos comandos para confirmar a edição do registro?
Responder

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

Aceitar