Ir para conteúdo
  • Cadastre-se

dev botao

Impressão Do Rps Em Lote


asterix
  • Este tópico foi criado há 3662 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Ola pessoal Boa Tarde

 

enviando um lote de 30 RPS assim que o servidor retorna já processados o próprio componente já apresenta um Preview de cada RPS, no entanto notei que ele esta mostrando RPS por RPS, ou seja tenho que mando imprimir 0 1º depois clico no fechar ou pressiona "ESC" e me mostra o 2º RPS a ser impresso e assim por diante ate o ultimo, tem alguma opção que carregaria os 30 RPS no componente para serem impressos e ate utilizar as teclas de navegação do preview  "->"?

 

estou imprimindo com QuickReport. 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • Consultores

Bom dia Asterix,

 

Isso ocorre porque não é gerado um relatório com 30 páginas sendo que cada uma delas é um DANFSE.

 

É gerado 30 relatórios um após o outro.

 

A minha sugestão é inibir a apresentação do Preview, desta forma os DANFSE serão enviados diretamente para impressora, isso torna o processo de impressão muito mais rápido.

 

O componente possui uma propriedade para que você possa habilitar ou não o Preview.

  • Curtir 1
Consultor SAC ACBr

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

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

Ola pessoal Boa Tarde

 

enviando um lote de 30 RPS assim que o servidor retorna já processados o próprio componente já apresenta um Preview de cada RPS, no entanto notei que ele esta mostrando RPS por RPS, ou seja tenho que mando imprimir 0 1º depois clico no fechar ou pressiona "ESC" e me mostra o 2º RPS a ser impresso e assim por diante ate o ultimo, tem alguma opção que carregaria os 30 RPS no componente para serem impressos e ate utilizar as teclas de navegação do preview  "->"?

 

estou imprimindo com QuickReport. 

 

boa tarde , amigo como voce faz para pode enviar varios registro dentro de um lote vc faz um loop em qual momento ???

Link para o comentário
Compartilhar em outros sites

Bom dia Asterix,

 

Isso ocorre porque não é gerado um relatório com 30 páginas sendo que cada uma delas é um DANFSE.

 

É gerado 30 relatórios um após o outro.

 

A minha sugestão é inibir a apresentação do Preview, desta forma os DANFSE serão enviados diretamente para impressora, isso torna o processo de impressão muito mais rápido.

 

O componente possui uma propriedade para que você possa habilitar ou não o Preview.

 

italo entendi fiz o teste aqui é funcionou.. porem tenho clientes que utilizam a NFe (RAVE) e também emitem NFSe (QuickReport) é o cliente esta me enchendo as paciências para  que a NFSe funcione igual a NFe, e possível efetuar a alteração no modulo de impressão do QuickReport para que o mesmo imprima um relatório com 30 paginas?

Link para o comentário
Compartilhar em outros sites

Faz-se um looping na hora que esta Inserindo os dados no componente.

por exemplo abaixo:

 

with ACBrNFSe do
        begin
                NotasFiscais.NumeroLote:=NumNFSe;
                with NotasFiscais.Add.NFSe do
                       begin
                                 loop = aqui ???  e numero do lote permanece o mesmo ate 50 registros apos isso posso mudar para o proximo lote?
 
                                 
                       end;
         end;
Link para o comentário
Compartilhar em outros sites

ola fiz isso quando vou olhar o arquivo gerado dentro xml nao fica varios registro gravado porque ??? dentro de um lote so ?

 

 

Amigo olha um esboço de como eu faço

 
 
i := 0;
  try
    CdsNFSe.First;
 
    while not CdsNFSe.Eof do
    begin
      GerarNFSe(CdsNFSe.Fields);
      CdsNFSe.Next;
    end;
  finally
    CdsNFSe.EnableControls;
  end;
 
 
  with DmNFSe.NFSe do
  begin
      NumLote := DsConfig.DataSet.FieldByName('PAR_NFSE_LOTE').AsInteger + 1;
 
      try
        Enviar(NumLote, False);
 
        CdsNFSe.Refresh;
 
      finally
        DsConfig.DataSet.Edit;
        DsConfig.DataSet.FieldByName('PAR_NFSE_LOTE').Value := NumLote;
        DsConfig.DataSet.Post;
      end;
 
      NotasFiscais.Imprimir;
  end;
 
 
 
 
 
 
 
//Preencher o Compoente
procedure Tfrm_GeraNFSe.GerarNFSe(const AFields: TFields);
const
  SqlItens =
    'select INS_DESCRICAO, INS_QTDE, INS_VLR_UNIT from ITEM_NFSE where NFS_ID = :NFS_ID';
var
  ok: Boolean;
begin
  with DmNFSe.NFSe.NotasFiscais.Add.NFSe do
  begin
    IdentificacaoRps.Numero := FormatFloat('#########0', AFields.FieldByName('NFS_NUM_RPS').AsInteger);
 
    IdentificacaoRps.Serie := AFields.FieldByName('SER_SERIE').AsString;
 
    // TnfseTipoRPS = ( trRPS, trNFConjugada, trCupom );
    IdentificacaoRps.Tipo := StrToTipoRPS(ok, AFields.FieldByName('NFS_TIPO_RPS').AsString);
 
    DataEmissaoRps := AFields.FieldByName('NFS_DT_EMIS_RPS').AsDateTime;
    DataEmissao    := AFields.FieldByName('NFS_DT_EMIS_RPS').AsDateTime;
 
    // TnfseNaturezaOperacao = ( noTributacaoNoMunicipio, noTributacaoForaMunicipio, noIsencao, noImune, noSuspensaDecisaoJudicial, noSuspensaProcedimentoAdministrativo );
    NaturezaOperacao := StrToNaturezaOperacao(ok, AFields.FieldByName('NFS_NAT_OPER').AsString);
 
    // TnfseRegimeEspecialTributacao = ( retNenhum, retMicroempresaMunicipal, retEstimativa, retSociedadeProfissionais, retCooperativa, retMicroempresarioIndividual, retMicroempresarioEmpresaPP );
    RegimeEspecialTributacao := retNenhum;
    .
    . 
    .
    .
Link para o comentário
Compartilhar em outros sites

  • Este tópico foi criado há 3662 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.