Ir para conteúdo
  • Cadastre-se

dev botao

Erro(s) encontrado(s): Memo9: Erro na expressão 'Identificacao."NumeroNFSe": Identifier expected ou o erro Memo2: Erro na expressão: 'Parametros."Nome_Prefeitura": Identifier expected


Ver Solução Respondido por BigWings,
  • Este tópico foi criado há 2282 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Postado

Bom dia pessoal, é uma satisfação muito grande estar aqui com vocês e poder contribuir. Estou testando o ACBr para poder imprimir notas de serviço NFSe e ao imprimir estava dando um erro que é: ( Erro(s) encontrado(s): Memo9: Erro na expressão 'Identificacao."NumeroNFSe": Identifier expected ) ou o erro ( Memo2: Erro na expressão: 'Parametros."Nome_Prefeitura": Identifier expected ). Procurei em vários lugares a solução e não achei. E ao verificar as fontes do ACBr identifiquei um erro de lógica e gostaria de contribuir para efetuar a alteração e outras pessoas possam resolver rapidamente o problema.

Vamos lá: O erro ocorre pois as variáveis do Relatório está sendo criada/alimentada antes de efetuar o LoadFromFile, ou seja, antes de carregar o relatório. Na verdade nem estavam sendo criadas a rotina "CriarDataSetsFrx" estava faltando no código e eu inclui. Quando carregamos o relatório ele entra zerado. Neste caso basta abrir a fonte "ACBrNFSeDANFSeFR" e alterar a linha da Procedure "SetDataSetsToFrxReport" para depois do "frxReport.LoadFromStream(wProjectStream)" bem como acrescentar a rotina que cria os data sets "CriarDataSetsFrx". isto fará com que o relatório seja carregado e tão somente depois o mesmo será alimentado com parâmetros e valores.

Espero ter ajudado.

Forte abraço a esta bela comunidade.

ANTES
function TACBrNFSeDANFSeFR.PrepareReport(NFSe: TNFSe): Boolean;
var
  I: Integer;
    wProjectStream: TStringStream;
begin
  Result := False;

    SetDataSetsToFrxReport;
    if Trim(FastFile) <> '' then
  begin
    if not (uppercase(copy(FastFile,length(FastFile)-3,4))='.FR3') then
    begin
      wProjectStream:=TStringStream.Create(FastFile);
      frxReport.FileName := '';
            wProjectStream.Position := 0;
      frxReport.LoadFromStream(wProjectStream);
      wProjectStream.Free;
    end
    else
    begin
      if FileExists(FastFile) then
        frxReport.LoadFromFile(FastFile)
      else
        raise EACBrNFSeDANFSeFR.CreateFmt('Caminho do arquivo de impressão do DANFSe "%s" inválido.', [FastFile]);
    end;
  end
  else
    raise EACBrNFSeDANFSeFR.Create('Caminho do arquivo de impressão do DANFSe não assinalado.');
        
  frxReport.PrintOptions.Copies     := NumCopias;
  frxReport.PreviewOptions.AllowEdit := False;
  frxReport.PrintOptions.ShowDialog := MostrarPreview;
  frxReport.ShowProgress            := Self.MostrarStatus;

  if Impressora > '' then
  begin
    frxReport.PrintOptions.ShowDialog := False;
    frxReport.PrintOptions.Printer    := Impressora;
  end;

  if Assigned(NFSe) then
  begin
    CarregaDados(NFSe);
    Result := frxReport.PrepareReport;
  end
  else
  begin
    if Assigned(ACBrNFSe) then
    begin
      for I := 0 to TACBrNFSe(ACBrNFSe).NotasFiscais.Count - 1 do
      begin
        
        CarregaDados(TACBrNFSe(ACBrNFSe).NotasFiscais.Items.NFSe);

        if (I > 0) then
          Result := frxReport.PrepareReport(False)
        else
          Result := frxReport.PrepareReport;
      end;
    end
    else
      raise EACBrNFSeDANFSeFR.Create('Propriedade ACBrNFSe não assinalada.');
  end;
end;


DEPOIS
function TACBrNFSeDANFSeFR.PrepareReport(NFSe: TNFSe): Boolean;
var
  I: Integer;
    wProjectStream: TStringStream;
begin
  Result := False;

    if Trim(FastFile) <> '' then
  begin
    if not (uppercase(copy(FastFile,length(FastFile)-3,4))='.FR3') then
    begin
      wProjectStream:=TStringStream.Create(FastFile);
      frxReport.FileName := '';
            wProjectStream.Position := 0;
      frxReport.LoadFromStream(wProjectStream);
      wProjectStream.Free;
    end
    else
    begin
      if FileExists(FastFile) then
        frxReport.LoadFromFile(FastFile)
      else
        raise EACBrNFSeDANFSeFR.CreateFmt('Caminho do arquivo de impressão do DANFSe "%s" inválido.', [FastFile]);
    end;
  end
  else
    raise EACBrNFSeDANFSeFR.Create('Caminho do arquivo de impressão do DANFSe não assinalado.');

  //Alterada por Paulo Vale em 21/08/2018
  CriarDataSetsFrx;         // <- Cria os datasets
    SetDataSetsToFrxReport;   // <- Preenche as informações

  frxReport.PrintOptions.Copies     := NumCopias;
  frxReport.PreviewOptions.AllowEdit := False;
  frxReport.PrintOptions.ShowDialog := MostrarPreview;
  frxReport.ShowProgress            := Self.MostrarStatus;

  if Impressora > '' then
  begin
    frxReport.PrintOptions.ShowDialog := False;
    frxReport.PrintOptions.Printer    := Impressora;
  end;

  if Assigned(NFSe) then
  begin
    CarregaDados(NFSe);
    Result := frxReport.PrepareReport;
  end
  else
  begin
    if Assigned(ACBrNFSe) then
    begin
      for I := 0 to TACBrNFSe(ACBrNFSe).NotasFiscais.Count - 1 do
      begin

        CarregaDados(TACBrNFSe(ACBrNFSe).NotasFiscais.Items.NFSe);

        if (I > 0) then
          Result := frxReport.PrepareReport(False)
        else
          Result := frxReport.PrepareReport;
      end;
    end
    else
      raise EACBrNFSeDANFSeFR.Create('Propriedade ACBrNFSe não assinalada.');
  end;
end;
 

Paulo Vale
Diretor Técnico LVsoft
WWW.LVSOFT.COM.BR

  • Moderadores
Postado
27 minutos atrás, Paulo Vale disse:

Bom dia pessoal, é uma satisfação muito grande estar aqui com vocês e poder contribuir. Estou testando o ACBr para poder imprimir notas de serviço NFSe e ao imprimir estava dando um erro que é: ( Erro(s) encontrado(s): Memo9: Erro na expressão 'Identificacao."NumeroNFSe": Identifier expected ) ou o erro ( Memo2: Erro na expressão: 'Parametros."Nome_Prefeitura": Identifier expected ). Procurei em vários lugares a solução e não achei. E ao verificar as fontes do ACBr identifiquei um erro de lógica e gostaria de contribuir para efetuar a alteração e outras pessoas possam resolver rapidamente o problema.

Qual a versão do FastReport?

Equipe ACBr BigWings
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

 

 

Postado

Caro BigWings, agradeço a sua preocupação mas provavelmente você não leu todo o texto. Eu resolvi o pro lema. Eu apenas postei para que alguém que esteja passando por tal problema consiga resolver. Sou novo aqui e provavelmente precisa colocar como resolvido ok? Vou ver aqui e finalizar o tópico. Obrigado.

Paulo Vale
Diretor Técnico LVsoft
WWW.LVSOFT.COM.BR

  • Consultores
Postado

Bom dia Paulo,

Pelo que entendi você encontrou um erro no fonte do componente e conseguiu resolver, correto?

Se sim, por favor anexe o fonte corrigido para que possamos analisar, se tudo estiver OK vamos enviar para o repositório, desta forma a media que o pessoal vai atualizando os fontes acaba pegando a sua correção.

  • Curtir 1
Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / Araraquara-SP

Araraquara - A era dos Trólebus

Postado
13 minutos atrás, Italo Jurisato Junior disse:

Bom dia Paulo,

Pelo que entendi você encontrou um erro no fonte do componente e conseguiu resolver, correto?

Se sim, por favor anexe o fonte corrigido para que possamos analisar, se tudo estiver OK vamos enviar para o repositório, desta forma a media que o pessoal vai atualizando os fontes acaba pegando a sua correção.

Bom dia Italo,

 

É um prazer enorme falar com você, representante desta comunidade fantástica.

 

Sim, foi isto mesmo, e sim, é claro que que eu posso anexar.

ACBrNFSeDANFSeFR.pas

  • Curtir 1

Paulo Vale
Diretor Técnico LVsoft
WWW.LVSOFT.COM.BR

Postado

Boa tarde Italo,

Eu quem agradece. O serviço que esta comunidade presta aos programadores é fantástico.

Conte sempre com nossa empresa para ajudar. Estamos começando a testar alguns módulos e se der certo iremos contribuir e muito para este projeto maravilhoso.

Parabéns a todos os envolvidos.

Atenciosamente,
Paulo Vale

  • Curtir 2

Paulo Vale
Diretor Técnico LVsoft
WWW.LVSOFT.COM.BR

  • Moderadores
Postado
Em 23/08/2018 at 17:53, Paulo Vale disse:

Caro BigWings, agradeço a sua preocupação mas provavelmente você não leu todo o texto. Eu resolvi o pro lema. Eu apenas postei para que alguém que esteja passando por tal problema consiga resolver. Sou novo aqui e provavelmente precisa colocar como resolvido ok? Vou ver aqui e finalizar o tópico. Obrigado.

Bom dia,

Infelizmente, sua contribuição causou efeitos colaterais conforme os tópicos abaixo:

Suspeito que tenha a haver com a versão do Fast Report utilizada.

Então, por favor, informe qual versão usa onde o problema ocorre.

Equipe ACBr BigWings
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

 

 

  • Moderadores
  • Solution
Postado
1 hora atrás, Paulo Vale disse:

FastReport 4.8.11

Os arquivos .fr3 usados no ACBr são feitos para a versão 5.x do FR.

Provavelmente há uma incompatibilidade entre as versões no que se refere a carga dos datasets.

Minha sugestão é que faça a atualização do Fast Report.

  • Curtir 2
Equipe ACBr BigWings
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

 

 

Postado

Boa tarde, realmente não me atentei a este fato, pois como havia dito estava começando a testar o componente e como eu tinha uma licença antiga do Delphi com o fast resolvi utilizar o mesmo. E para minha surpresa até agora está funcionando perfeitamente. Quando tudo estiver pronto estaremos utilizando o Delphi 10.2 que nossa empresa já adquiriu. 

Quero apenas deixar claro que nossa intenção é legítima. Identificamos o erro (realmente existe, porém por incompatibilidade de versões) e repassamos visto que a filosofia deste trabalho é colaborar, engajado neste pensamentos resolvemos compartilhar.

Atenciosamente,
Paulo Vale

 

Paulo Vale
Diretor Técnico LVsoft
WWW.LVSOFT.COM.BR

  • Consultores
Postado
3 horas atrás, Paulo Vale disse:

Quero apenas deixar claro que nossa intenção é legítima

Não se preocupe Paulo, ninguém quis passar a impressão de que não fosse. Esse tipo de coisa acontece...

[]'s

Consultor SAC ACBr

Elton
Profissionalize o ACBr na sua empresa, conheça o ACBr Pro.

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.
  • Este tópico foi criado há 2282 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.