|
ActiveDelphi .: O site do programador Delphi! :.
|
Exibir mensagem anterior :: Exibir próxima mensagem |
Autor |
Mensagem |
Lippi Membro Junior
Registrado: Terça-Feira, 25 de Novembro de 2008 Mensagens: 378
|
Enviada: Dom Ago 11, 2019 10:46 am Assunto: Chamar QReport direto |
|
|
Senhores, bom dia.
Tenho uma rotina (código) em que eu posso reprocessar uma movimentação de dados e, já sem seguida, abrir o relatório (QuickReport) e a outra opção é não reprocessar e chamar o QuickReport.
Se eu não reprocessar o movimento, o relatório funciona normalmente. Entretanto, se eu reprocessar dá o seguinte erro:
Project P_Escritorio.exe raised exception class EConvertError with messsage ''' is nota a valid integer value'. Process Stoped ...
Eis o código:
Código: | If Fm_Dados.CDS_Pgtos.RecordCount>0 then
begin
If Opc02<>'GERAL3' then
begin
Application.CreateForm(TFm_QRcontaspagar,Fm_QRcontaspagar);
Fm_QRcontaspagar.QR_contaspagar.Preview;
end
else
begin
Fm_Dados.CDS_CusTot.Active:=False;
Fm_Dados.CDS_CusTot.CommandText:=('Select * from CUSTODESPMES where CUSTOCPT='+Comp2+' order by CUSTOCPT, CUSTOMES');
Fm_Dados.CDS_CusTot.Active:=True;
If Fm_Dados.CDS_CusTot.RecordCount>0 then
begin
If Application.MessageBox('Competência já gravada, deseja reprocessar?', 'CONFIRMAÇÃO', MB_YesNo + MB_IconQuestion)=idYes then
begin
Fm_Dados.CDS_CusTot.First;
begin
While not Fm_Dados.CDS_CusTot.Eof do
begin
If Fm_Dados.CDS_CusTotCUSTOCPT.AsString=Comp2 then
Fm_Dados.CDS_CusTot.Delete;
end;
Fm_Dados.CDS_CusTot.Next;
end;
Fm_Dados.CDS_Pgtos.Active:=False;
Fm_Dados.CDS_Pgtos.CommandText:=('Select * from PAGAMTOS where COMPET='+#39+Comp2+#39+' order by COD_CDT');
Fm_Dados.CDS_CustoDesp.Active:=True;
//
Fm_Dados.CDS_CustoDesp.Active:=False;
Fm_Dados.CDS_CustoDesp.CommandText:=('Select * from CUSTODESP order by CODIGO');
Fm_Dados.CDS_CustoDesp.Active:=True;
Cod01:=Fm_Dados.CDS_CustoDespCODIGO.AsString;
Tot1:=0;
//
While not Fm_Dados.CDS_CustoDesp.Eof do
begin
Cod01:=Fm_Dados.CDS_CustoDespCODIGO.AsString;
Fm_Dados.CDS_Pgto05.Active:=False;
Fm_Dados.CDS_Pgto05.CommandText:=('Select SUM(VALPAGO) as TTGER from PAGAMTOS where COD_CDT='+Cod01+' and COMPET='+Comp2);
Fm_Dados.CDS_Pgto05.Active:=True;
//
Fm_Dados.CDS_CusTot.Append;
Fm_Dados.CDS_CusTotCUSTOMES.AsString:=Comp2+Cod01;
Fm_Dados.CDS_CusTotCUSTOCPT.AsString:=Comp2;
Fm_Dados.CDS_CusTotCUSTOCDT.AsString:=Cod01;
Fm_Dados.CDS_CusTotCUSTOTOT.AsFloat:=Fm_Dados.CDS_Pgto05.FieldByName('TTGER').AsFloat;
Fm_Dados.CDS_CusTot.Post;
Fm_Dados.CDS_CusTot.ApplyUpdates(-1);
Fm_Dados.CDS_CustoDesp.Next;
end;
end;
end;
Fm_QRcustomes:=TFm_QRcustomes.Create(Self);
Fm_QRcustomes.QR_customes.Prepare;
Fm_QRcustomes.QRLab_TtFl.Caption:=' / '+IntToStr(Fm_QRcustomes.QR_customes.QRPrinter.PageCount);
Fm_QRcustomes.QR_customes.Preview;
end;
end
else
begin
ShowMessage('Nenhum registro nessa referência!');
Edit_Busca.Clear;
Edit_Busca.SetFocus;
end;
Fm_Dados.CDS_Pgtos.Active:=False;
end; |
O quê fazer para dar certo também após o reprocessamento?
Desde já, muito obrigado.
Lippi. _________________ Longo e difícil é o caminho que, das trevas, nos leva à luz. |
|
Voltar ao Topo |
|
|
imex Moderador
Registrado: Sexta-Feira, 7 de Janeiro de 2011 Mensagens: 11666
|
Enviada: Seg Ago 12, 2019 9:34 am Assunto: |
|
|
Bom dia,
Comp2 é uma variável? Em que parte do código é atribuído algum valor para essa variável e que valor é atribuído?
Qual é o tipo de dados do campo CUSTOCPT da tabela CUSTODESPMES e do campo COMPET da tabela PAGAMTOS?
Notei que em uma query você está deixando o valor da variável Comp2 entre aspas e na outra não, o que me parece estranho.
Editado pela última vez por imex em Ter Mar 07, 2023 5:52 pm, num total de 1 vez |
|
Voltar ao Topo |
|
|
Lippi Membro Junior
Registrado: Terça-Feira, 25 de Novembro de 2008 Mensagens: 378
|
Enviada: Seg Ago 12, 2019 8:21 pm Assunto: Vamos lá! |
|
|
Imex, boa noite.
Comp2 é uma variavel que recebe (via MaskEdit) uma competência, como JULHO/2019 --> no código postado já recebeu 201907
CUSTOCPT [CUSTODESPMES] é do tipo CHAR [6] - Código de despesa ou Custo.
COMPET [PAGAMTOS] é a competência: no caso 201907
Quanto "em uma query você está deixando o valor da variável Comp2 entre aspas e na outra não, o que me parece estranho." --> já deixei as duas sem aspas.
O fato é que se eu deprezo o reprocessamento, ou seja, se opto pelo relatório direto, fica tudo correto. Se eu reprocesso, da pau.
Imex, fiz alguns teste e o erro acontece nessa linha:
Fm_QRcustomes.QR_customes.Prepare;
Abraço.
Lippi _________________ Longo e difícil é o caminho que, das trevas, nos leva à luz. |
|
Voltar ao Topo |
|
|
imex Moderador
Registrado: Sexta-Feira, 7 de Janeiro de 2011 Mensagens: 11666
|
Enviada: Ter Ago 13, 2019 11:53 am Assunto: |
|
|
Bom dia,
Acredito que o erro está nas linhas de código que estão nos eventos do QuickReport já que o erro está ocorrendo ao executar o Prepare. |
|
Voltar ao Topo |
|
|
|
|
Enviar Mensagens Novas: Proibido. Responder Tópicos Proibido Editar Mensagens: Proibido. Excluir Mensagens: Proibido. Votar em Enquetes: Proibido.
|
|