Fórum Erro no QuickRep1.preview #351036
25/12/2007
0
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
Curtir tópico
+ 0Posts
25/12/2007
Rpatricia
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
Gostei + 0
25/12/2007
Jpauloss
R_LANCAMENTO.QuickRep1.Preview;
R_LANCAMENTO.QuickRep1.Prepare;
O problema é que estou usando em MDI.
Coloquei assim
R_LANCAMENTO.QuickRep1.Preview; R_LANCAMENTO:=TR_LANCAMENTO.CREATE(SELF);
Gostei + 0
25/12/2007
Jpauloss
R_LANCAMENTO:=TR_LANCAMENTO.CREATE(SELF); R_LANCAMENTO.QuickRep1.Preview;
Gostei + 0
14/01/2008
Jpauloss
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?
Gostei + 0
15/01/2008
Jpauloss
Gostei + 0
15/01/2008
Djjunior
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.
Gostei + 0
15/01/2008
Jpauloss
O erro esta dando na linha
R_LANCAMENTO_SEM_VALORES2.sdsRelLancamentoProjeto.CommandText:=´select
Que faço?
Gostei + 0
16/01/2008
Djjunior
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
Gostei + 0
16/01/2008
Jpauloss
Que código coloco?
Gostei + 0
17/01/2008
Djjunior
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;
Gostei + 0
17/01/2008
Jpauloss
R_LANCAMENTO:=TR_LANCAMENTO.CREATE(SELF); try ... seus códigos R_LANCAMENTO.QuickRep1.Preview; finally R_LANCAMENTO.FREE; end;
Valeu! funcinou.
Gostei + 0
24/03/2008
Wanderok
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)