Selecao DevMedia QUERO SER PRIME

Fórum Erro no QuickRep1.preview #351036

25/12/2007

0

Galera tô com esse código para fazer impressão
procedure TF_RELATORIO_LANCAMENTO_FORM.imprimirClick(Sender: TObject);
begin

   dm.sdsLancamento.Close;
   dm.sdsLancamento.CommandText:=´select lancamento_projeto.*, material.descricao, material.un, ´ +
                                 ´projeto.nome_projeto ´ +
                                 ´from lancamento_projeto, projeto ´ +
                                 ´inner join material on  ´ +
                                 ´lancamento_projeto.cod_ordenado_m = material.cod_ordenado ´ +
                                 ´where cod_projeto_lancamento=:cod_projeto_lancamento´;
   dm.sdsLancamento.ParamByName(´cod_projeto_lancamento´).AsString:=projeto.Text;
   dm.sdsLancamento.Open;

   dm.cdsLancamento.Close;
   dm.cdsLancamento.Open;
   dm.cdsLancamento.Refresh;

   R_LANCAMENTO.QuickRep1.Preview;

end;


Ta dando erro na linha
R_LANCAMENTO.QuickRep1.Preview

Erro:
---------------------------
Debugger Exception Notification
---------------------------
Project MATERIAIS.exe raised exception class EAccessViolation with message ´Access violation at address 0062CD2F in module ´MATERIAIS.exe´. Read of address 000002F8´. Process stopped. Use Step or Run to continue.
---------------------------
OK   Help   
---------------------------

O que pode ser?


Jpauloss

Jpauloss

Responder

Posts

25/12/2007

Rpatricia

Olá jpauloss

Primeiro verifica se você deu um CreateForm no seu form onde você tem seu quickreport, pois você tá tentando acessar um objeto que ainda não foi criado na memória

e antes do seu

 R_LANCAMENTO.QuickRep1.Preview; 


também tente usar assim
 R_LANCAMENTO.QuickRep1.Prepare; 



Espero que ajude! :wink:

abs
Patrícia


Responder

Gostei + 0

25/12/2007

Jpauloss

Olá jpauloss Primeiro verifica se você deu um CreateForm no seu form onde você tem seu quickreport, pois você tá tentando acessar um objeto que ainda não foi criado na memória e antes do seu
 R_LANCAMENTO.QuickRep1.Preview; 
também tente usar assim
 R_LANCAMENTO.QuickRep1.Prepare; 
Espero que ajude! :wink: abs Patrícia

O problema é que estou usando em MDI.
Coloquei assim
 R_LANCAMENTO.QuickRep1.Preview; 
R_LANCAMENTO:=TR_LANCAMENTO.CREATE(SELF);



Responder

Gostei + 0

25/12/2007

Jpauloss

Ao contrário.

R_LANCAMENTO:=TR_LANCAMENTO.CREATE(SELF);
R_LANCAMENTO.QuickRep1.Preview;



Responder

Gostei + 0

14/01/2008

Jpauloss

Coloquei o formstyle=fsNormal e meu código ta assim
procedure TF_RELATORIO_LANCAMENTO_FORM.btnSemValorClick(Sender: TObject);
begin
  if (projeto.Text=´´) then begin
   ShowMessage(´Selecione projeto!´);
   exit
   end
   else
   R_LANCAMENTO_SEM_VALORES2.sdsRelLancamentoProjeto.Close;
   R_LANCAMENTO_SEM_VALORES2.sdsRelLancamentoProjeto.CommandText:=´select lancamento_projeto.*, ´ +
                                 ´cast(total as float) as total_flt, ´ +
                                 ´grupo.descricao_grupo, grupo.cod_grupo, ´ +
                                 ´material.descricao, ´ +
                                 ´material.un, material.preco_unitario, ´ +
                                 ´projeto.nome_projeto ´ +
                                 ´from lancamento_projeto, projeto, grupo ´ +
                                 ´inner join material on  ´ +
                                 ´lancamento_projeto.cod_ordenado_m = material.cod_ordenado ´ +
                                 ´and grupo.id_grupo = lancamento_projeto.cod_grupo_fk ´ +
                                 ´where cod_projeto_lancamento=:cod_projeto_lancamento´;
   R_LANCAMENTO_SEM_VALORES2.sdsRelLancamentoProjeto.ParamByName(´cod_projeto_lancamento´).AsString:=projeto.Text;
   R_LANCAMENTO_SEM_VALORES2.sdsRelLancamentoProjeto.Open;

   R_LANCAMENTO_SEM_VALORES2.cdsRelLancamentoProjeto.Close;
   R_LANCAMENTO_SEM_VALORES2.cdsRelLancamentoProjeto.Open;
   R_LANCAMENTO_SEM_VALORES2.cdsRelLancamentoProjeto.Refresh;

   R_LANCAMENTO_SEM_VALORES2.ShowModal;
   R_LANCAMENTO_SEM_VALORES2.QuickRep1.PreviewModal; 

E o erro é o mesmo
---------------------------
Debugger Exception Notification
---------------------------
Project MATERIAIS.exe raised exception class EAccessViolation with message ´Access violation at address 00631517 in module ´MATERIAIS.exe´. Read of address 0000035C´. Process stopped. Use Step or Run to continue.
---------------------------
OK   Help   
--------------------------- 

Que faço?


Responder

Gostei + 0

15/01/2008

Jpauloss

up


Responder

Gostei + 0

15/01/2008

Djjunior

que me lembre voce não dá um showmodal no form que o quick está seria somente um create e um preview.

vc detectou em que [u:56ee62402b]linha[/u:56ee62402b] está o erro ?

se você deu um close/OPen na query não vejo sentido em dar um refresh logo em seguinda.


Responder

Gostei + 0

15/01/2008

Jpauloss

que me lembre voce não dá um showmodal no form que o quick está seria somente um create e um preview. vc detectou em que [u:108ca7955c]linha[/u:108ca7955c] está o erro ? se você deu um close/OPen na query não vejo sentido em dar um refresh logo em seguinda.

O erro esta dando na linha
 R_LANCAMENTO_SEM_VALORES2.sdsRelLancamentoProjeto.CommandText:=´select 

Que faço?


Responder

Gostei + 0

16/01/2008

Djjunior

Tipo kde o Create do R_LANCAMENTO_SEM_VALORES2 ?

Pelo que pude ver no seu código ele não está criado ainda por isso o erro. tente quando parar neste item dar um ctrl+f7 para ver o conteúdo dele ... deve estar null dê o create antes de começar a mexer nele


Responder

Gostei + 0

16/01/2008

Jpauloss

Tipo kde o Create do R_LANCAMENTO_SEM_VALORES2 ? Pelo que pude ver no seu código ele não está criado ainda por isso o erro. tente quando parar neste item dar um ctrl+f7 para ver o conteúdo dele ... deve estar null dê o create antes de começar a mexer nele

Que código coloco?


Responder

Gostei + 0

17/01/2008

Djjunior

Na sua linha:
R_LANCAMENTO:=TR_LANCAMENTO.CREATE(SELF);

tem um erro grave... o self, o formulário não pode ser ´pai´ dele mesmo, use o Application em vez de self.

e essa linha que vir antes de qualquer referencia que vc for fazer do R_LANCAMENTO e no fim não se esqueça de dar um free nele faça algo do tipo

R_LANCAMENTO:=TR_LANCAMENTO.CREATE(SELF);
try
  ... seus códigos
  R_LANCAMENTO.QuickRep1.Preview;
finally
  R_LANCAMENTO.FREE;
end;



Responder

Gostei + 0

17/01/2008

Jpauloss

Na sua linha: R_LANCAMENTO:=TR_LANCAMENTO.CREATE(SELF); tem um erro grave... o self, o formulário não pode ser ´pai´ dele mesmo, use o Application em vez de self. e essa linha que vir antes de qualquer referencia que vc for fazer do R_LANCAMENTO e no fim não se esqueça de dar um free nele faça algo do tipo
R_LANCAMENTO:=TR_LANCAMENTO.CREATE(SELF);
try
  ... seus códigos
  R_LANCAMENTO.QuickRep1.Preview;
finally
  R_LANCAMENTO.FREE;
end;

Valeu! funcinou.


Responder

Gostei + 0

24/03/2008

Wanderok

:D:D:D


Responder

Gostei + 0

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

Aceitar