Exibir mensagem anterior :: Exibir próxima mensagem |
Autor |
Mensagem |
Gustavo_Arndt Novato

Registrado: Segunda-Feira, 9 de Mai de 2011 Mensagens: 17
|
Enviada: Seg Mai 16, 2011 10:27 am Assunto: NFe problemas na impressão de mais de uma nota. |
|
|
Olá galera, estou tendo em um programa de emissão de nf-e, especificamente na impressão das Danfes.
Digamos que eu selecionei 3 notas para a impressão, o programa vai imprimir 3 vezes a primeira nota.
Segue abaixo o código utilizado.
Função que verifica as danfes selecionadas pelo usuário e as carrega em no dm.acbrnfe.notasfiscais
function TFrameDANFE.carregarImpressao: boolean;
var
vCDSTemp : TClientDataSet;
vStream : TStringStream;
vStrTMP : string;
begin
vCDSTemp := TClientDataSet.Create(self);
vStream := TStringStream.Create;
try
vCDSTemp.CloneCursor(CDSNFE,false);
dm.ACBrNFe.NotasFiscais.Clear;
vCDSTemp.First;
while not vCDSTemp.Eof do
begin
if vCDSTemp.FieldByName('CHECK_DANFE').AsInteger = 1 then
begin
vStrTMP := DM.getXMLByID(vCDSTemp.FieldByName('ID').AsInteger);
vStream.WriteString(vStrTMP);
dm.ACBrNFe.NotasFiscais.LoadFromStream(vStream);
setaCheckDanfe(vCDSTemp);
setaImpressoDanfe(vCDSTemp);
end;
vCDSTemp.Next;
end;
finally
vCDSTemp.Free;
vStream.Free;
end;
end;
após isso vem a seguinte procedure:
procedure TDM.imprimir_notas;
var
x : Integer;
begin
configurarDANFE;
for x := 0 to ACBrNFe.NotasFiscais.Count -1 do
begin
ACBrNFe.DANFE.TipoDANFE := ACBrNFe.NotasFiscais.Items[x].NFe.Ide.tpImp;
ACBrNFe.DANFE.ImprimirDANFE(ACBrNFe.NotasFiscais.Items[x].NFe);
end;
end;
Como podem ver, ela pega as notas que estão no acbrnfe.notasfiscais, setando o tipo de impressão e depois as imprime.
mas ali está o problema, mesmo setando no items qual nota imprimir ele seleciona sempre a primeira e não muda para a próxima na sequência, ou seja ali na linha do ACBrNFe.DANFE.ImprimirDANFE(ACBrNFe.NotasFiscais.Items[x].NFe) a nota continua a mesma....
Até pensei no fato de ser o componente da acbr mas mesmo atualizando-o não resolveu =\
Alguma sugestão?
Desde já agradeço a vocês.
Att Gustavo |
|
Voltar ao Topo |
|
 |
CENTURYINF Membro Junior

Registrado: Sexta-Feira, 19 de Fevereiro de 2010 Mensagens: 364
|
Enviada: Seg Mai 16, 2011 1:43 pm Assunto: Re: NFe problemas na impressão de mais de uma nota. |
|
|
ola,
apos imprimir a primeira nota, tente descarregar o componete
e depois carregar a proxima nota.
dm.ACBrNFe.NotasFiscais.Clear; |
|
Voltar ao Topo |
|
 |
Gustavo_Arndt Novato

Registrado: Segunda-Feira, 9 de Mai de 2011 Mensagens: 17
|
Enviada: Seg Mai 16, 2011 2:12 pm Assunto: Re: NFe problemas na impressão de mais de uma nota. |
|
|
CENTURYINF escreveu: | ola,
apos imprimir a primeira nota, tente descarregar o componete
e depois carregar a proxima nota.
dm.ACBrNFe.NotasFiscais.Clear; |
Mas se eu fizer isso vai limpar as outras notas contidas no componente não tendo como carregar a próxima nota...  |
|
Voltar ao Topo |
|
 |
rafmattos Colaborador

Registrado: Quinta-Feira, 11 de Fevereiro de 2010 Mensagens: 3416 Localização: Campo Grande/MS
|
Enviada: Seg Mai 16, 2011 4:26 pm Assunto: |
|
|
se vc ja carregou todas as notas dentro do ACBR, não seria só vc dar o
Código: |
ACBrNFe1.NotasFiscais.Imprimir;
|
ele imprime todas as notas dentro dele... |
|
Voltar ao Topo |
|
 |
Gustavo_Arndt Novato

Registrado: Segunda-Feira, 9 de Mai de 2011 Mensagens: 17
|
Enviada: Seg Mai 16, 2011 4:54 pm Assunto: |
|
|
fiz o que você falou, mas mesmo assim continua imprimindo a mesma nota mais de uma vez...
Eu estava pensando se talvez o problema não fosse na hora de carregar as notas pra dentro do acbrnfe, mas não tenho certeza, pois pela depuração que fiz ele pega certo as notas e as adiciona para o componente.
Alguém sabe me informar se o uso do stringstream está correto?
Pois nunca havia mexido com esse objeto antes... |
|
Voltar ao Topo |
|
 |
rafmattos Colaborador

Registrado: Quinta-Feira, 11 de Fevereiro de 2010 Mensagens: 3416 Localização: Campo Grande/MS
|
Enviada: Seg Mai 16, 2011 5:06 pm Assunto: |
|
|
Gustavo_Arndt escreveu: | fiz o que você falou, mas mesmo assim continua imprimindo a mesma nota mais de uma vez...
Eu estava pensando se talvez o problema não fosse na hora de carregar as notas pra dentro do acbrnfe, mas não tenho certeza, pois pela depuração que fiz ele pega certo as notas e as adiciona para o componente.
Alguém sabe me informar se o uso do stringstream está correto?
Pois nunca havia mexido com esse objeto antes... |
da um preview e ve se ta certinho |
|
Voltar ao Topo |
|
 |
rafmattos Colaborador

Registrado: Quinta-Feira, 11 de Fevereiro de 2010 Mensagens: 3416 Localização: Campo Grande/MS
|
Enviada: Seg Mai 16, 2011 5:07 pm Assunto: |
|
|
rafmattos escreveu: | Gustavo_Arndt escreveu: | fiz o que você falou, mas mesmo assim continua imprimindo a mesma nota mais de uma vez...
Eu estava pensando se talvez o problema não fosse na hora de carregar as notas pra dentro do acbrnfe, mas não tenho certeza, pois pela depuração que fiz ele pega certo as notas e as adiciona para o componente.
Alguém sabe me informar se o uso do stringstream está correto?
Pois nunca havia mexido com esse objeto antes... |
da um preview e ve se ta certinho |
ACBrNFe1.DANFE.MostrarPreview := TRUE; |
|
Voltar ao Topo |
|
 |
Gustavo_Arndt Novato

Registrado: Segunda-Feira, 9 de Mai de 2011 Mensagens: 17
|
Enviada: Seg Mai 16, 2011 5:23 pm Assunto: |
|
|
também não deu muito certo
vou testar logo após a atribuição da nota ao componente...
qualquer avanço posto os resultados =) |
|
Voltar ao Topo |
|
 |
rafmattos Colaborador

Registrado: Quinta-Feira, 11 de Fevereiro de 2010 Mensagens: 3416 Localização: Campo Grande/MS
|
Enviada: Seg Mai 16, 2011 5:29 pm Assunto: |
|
|
Gustavo_Arndt escreveu: | também não deu muito certo
vou testar logo após a atribuição da nota ao componente...
qualquer avanço posto os resultados =) |
no preview ta errado? eu falei de vc mostrar no preview como uma forma de debugar para saber se ta carregando certo... |
|
Voltar ao Topo |
|
 |
Gustavo_Arndt Novato

Registrado: Segunda-Feira, 9 de Mai de 2011 Mensagens: 17
|
Enviada: Seg Mai 16, 2011 5:49 pm Assunto: |
|
|
rafmattos escreveu: | Gustavo_Arndt escreveu: | também não deu muito certo
vou testar logo após a atribuição da nota ao componente...
qualquer avanço posto os resultados =) |
no preview ta errado? eu falei de vc mostrar no preview como uma forma de debugar para saber se ta carregando certo... |
Cara achei o erro..
vStrTMP := DM.getXMLByID(vCDSTemp.FieldByName('ID').AsInteger);
vStream.Clear; <--- aqui o maldito...
vStream.WriteString(vStrTMP);
fiz o preview logo depois da atribuição e vi que nem dando um clear nas notas não estava funcionando...
ai fiz o clear no vstream e funcionou...
ele estava mantendo o valor das outras notas e adicionando elas novamente...
Valeu pela ajuda galera, idéias são sempre bem vindas nessas ocasiões
Problema Resolvido. |
|
Voltar ao Topo |
|
 |
mrocha2011 Novato

Registrado: Segunda-Feira, 22 de Agosto de 2011 Mensagens: 6
|
Enviada: Qua Ago 24, 2011 9:56 pm Assunto: |
|
|
O Servidor de Impressão do RDI Open NFe é totalmente feito em Delphi 7. Ele fica monitorando uma pasta que você configura e faz a impressão/envio de e-mail com o XML anexado.
E o melhor, o código é aberto.
opennfe.codeplex.com |
|
Voltar ao Topo |
|
 |
|