Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

marcinhovaladao

rave report imprimi errado apos fechar form

Recommended Posts

Bom amigos, gostaria de uma grande ajuda de vocês,
meu problema é o seguinte, tenho uma consulta que mostra os dados no db grid, quando abro esse formulario de consulta pela primeira vez no projeto o rave imprimi a consulta certinha, mas se eu fecho este form de consulta e abro novamente o rave sempre puxa a ultima consulta que eu fiz, a consulta que eu tinha feito antes de fechar o form. A modo da consulta está certa por que no dbgrid mostra os resultados certinhos é só o rave que não enxerga isso. Alguem ja passou por algo parecido... obrigado amigos

Compartilhar este post


Link para o post
Compartilhar em outros sites

amigo obrigado pela ajuda.... mas usa sim.

Até por que quando eu executo o projeto e abro este form pela primeira vez todas as consultas todos os relatorios vão certinho, basta eu fechar este form e abri-lo novamente ai ele sempre me retorna a ultima consulta que eu fiz antes de fecha-lo.

 

vlw

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como você está chamando seus relatórios? Você destrói o form onde está o relatório e o recria todas as vezes? Posta o código que está usando para gerar o relatório para ver se há algo que possamos ajudar.

 

Achei um post aqui no fórum mesmo sobre o assunto: http://forum.imasters.com.br/topic/300244-rave-reports/

Compartilhar este post


Link para o post
Compartilhar em outros sites

o codigo esta da seguinte forma:

 

with sql_rel_aso_todos do
begin
Close;
SQL.Clear;
SQL.Add('select * from sempremais.view_aso_todos');
SQL.Add('where cad_registro = :cod ');
ParamByName('cod').AsAnsiString := comboCad_registro.KeyValue;
Open;
if RecordCount > 0 then
begin
rv_aso_todos.Execute;
end;
e sempre que fecho o form eu dou um NIL, e depois crio o form novamente...
obrigado pela ajuda


Tentei o link sugerido pelo amigo Chrnos mas o erro continua, o problema acontece quando eu fecho o form e abro novamente. Antes de fechar o form a consulta acontece perfeitamente

Compartilhar este post


Link para o post
Compartilhar em outros sites

Posta o código completo, inclusive na parte onde destrói o form do rave e o recria, pois no código que postou aqui só estou vendo a chamada do rave, não vejo você fechar o rave gerado anteriormente em nenhum momento... você associou aos campos do rave direto ao sql_rel_aso_todos ou usa algum dataset dentro do rave conectado a este componente?

Compartilhar este post


Link para o post
Compartilhar em outros sites

certo,

para chamar o form da consulta do relatorio esta assim:

 

if frmExamesClientes = nil then
begin
frmExamesClientes:=TfrmExamesClientes.Create(Self);
frmExamesClientes.ShowModal;
end;
e no onclose do form esta da seguinte forma:
frmExamesClientes := nil;
Eu uso um TrvDataSetConnection do rave que esta associado ao meu sql_rel_aso_todos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se entendi direito, esse frmExamesClientes é onde está seu dbgrid correto? Onde executa as consultas para depois chamar o rave certo?? Uma coisa que vi no link que lhe passei antes, é que este tipo de problema ocorre quando não é fechado o dataset do rave, que fica carregado com a sua primeira consulta no momento da geração do rave... faz um tempo que não mexo com o rave, então vou sugerir a seguinte mudança no seu código na chamada do rave...

 

 

if RecordCount > 0 then
begin
      rv_aso_todos.Close;
      rv_aso_todos.ProjectFile:= 'C:\SeuRelatorioRave';
      rv_aso_todos.Execute;
     TrvDataSetConnection.Close; //Lembrando de por aqui o caminho de onde este componente está no seu programa
end;

 

Ps.: eu sempre trabalhei com criação dinâmica dos forms em runtime, isso inclusive nos forms onde uso relatórios e nunca tive problemas por causa disso...

Compartilhar este post


Link para o post
Compartilhar em outros sites

galera deu certo aqui, em partes .... segui o conselho do Roberto Fagundes, eu tirei o form de consulta do Available Form e passei ele para o auto create la em : PROJECT->OPTIONS->FORMS ....

 

ai para eu chamar o form ao inves de:

if frmExamesClientes = nil then
begin
frmExamesClientes:=TfrmExamesClientes.Create(Self);
frmExamesClientes.ShowModal;
end;
estou só chamado da seguinte maneira.
frmExamesClientes.showmodal
Acontece que é uma maneira errada de se fazer não é?
O que está pegando é que tenho que entregar esse projeto hoje, acho que dessa forma vai me dar mais um tempo pra mim quebrar a cabeça e tentar achar o erro.
Dessa forma que está não influencia nada se o sistema for em rede não neh?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não infuencia não, porque o sistema roda no cliente e não no servidor.

 

Mas isso dará erro se você continuar utilizando o onclose daquela forma,

você pode continuar com isso:

 

frmExamesClientes:=TfrmExamesClientes.Create(Self);
frmExamesClientes.ShowModal;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Beleza pura então, vou deixar desta forma que está.

Roberto Fagundes e Chrnos, obrigadão pela força ...

Ta indo certinho agora ....

 

Vou ver se consigo descobrir o motivo de acontecer aquele erro, se eu conseguir descobrir posto aqui blza...

 

abraço

Vlw, tudo de bom.



[RESOLVIDO]

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.