Ir para conteúdo
  • Cadastre-se

dev botao

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

Recommended Posts

Postado

Galera, bom dia! Hoje pra meus clientes enviarem os arquivos XML's de NFC-e para o escritório de contabilidade, eu gero tudo numa pasta, compacto e envio por e-mail através do ACBr Mail. Porem, eu compacto pelo Winrar, através de ShellExecute e isso tem gerado problemas quando o cliente tem muitas notas emitidas no mês por que enquanto o WinRar está compactando, o ACBrMail já ta tentando enviar o email. Gostaria de saber se tem uma maneira de compactar no formato .rar ou .zip e aguardar o termino da compactação para depois enviar o email. Eu tentei montar uma compactação própria, só que dai o escritorio não consegue descompactar.

Sistemas para toda área Goumert, pequeno varejo e baladas.

www.controleautomacao.com.br

  • Fundadores
Postado

Use o "Wait" no comando... na ACBrUtil tem isso pronto...

{-----------------------------------------------------------------------------
 - Executa programa Externo descrito em "Command", adcionando os Parametros
   "Params" na linha de comando
 - Se "Wait" for true para a execução da aplicação para esperar a conclusao do
   programa externo executado por "Command"
 - WindowState apenas é utilizado na plataforma Windows
 ---------------------------------------------------------------------------- }
procedure RunCommand(const Command: String; const Params: String;
   Wait : Boolean; WindowState : Word); 

Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

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

  • 7 meses depois ...
Postado (editado)

Olá, estou tendo o mesmo problema.

Resolvi colocando um timer de 1 minuto, pois a compactação e feita pelo winexec.

Mas meu problema maior não consigo resolver a dias, que também e na hora de enviar email.

Preciso que quando o acbrmail estiver anexando um arquivo tenha uma progressbar monitorando só para o cliente não fechar a aplicação antes disso!.

Preciso que a progress bar monitore!

Alguem sabe como fazer?

Preciso disso urgente.

Editado por VagnerCiec
Postado
17 horas atrás, VagnerCiec disse:

Olá, estou tendo o mesmo problema.

Resolvi colocando um timer de 1 minuto, pois a compactação e feita pelo winexec.

Mas meu problema maior não consigo resolver a dias, que também e na hora de enviar email.

Preciso que quando o acbrmail estiver anexando um arquivo tenha uma progressbar monitorando só para o cliente não fechar a aplicação antes disso!.

Preciso que a progress bar monitore!

Alguem sabe como fazer?

Preciso disso urgente.

Posso fazer isso pra você, trabalho como free lance. Skype: Solivan Noleto Milhomem

Sistema de Automação Comercial para diversos segmentos
NF-e, NFC-e, SPED Fiscal - www.arenasoft.com.br

  • Consultores
Postado
Em 21/01/2017 at 17:45, Solivan disse:

Posso fazer isso pra você, trabalho como free lance.

Cuidado. Requisição e oferecimento de serviços e produtos são permitidos apenas na área de classificados.

[]'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.
Postado

Eu já resolvi os dois problemas, tanto o de anexar o arquivo, quanto o de enviar o e-mail. Segue trecho de código:

****Codigo que compacta os arquivos XML***

  Path := GetEnvironmentVariable('ProgramFiles');


  if (Path<>'') then
  begin
     vDestino := 'c:\nfe\Arquivos\'+'XML_NFCe_'+TDesktop.DadosEmpresa.RazaoSocial+'_'+edMesAno.asString+'.rar';
     Path := Path + '\WinRar\WinRAR.exe';

     vPasta := 'C:\NFE\Arquivos\'+edMesAno.asString;

     vLinha := '"'+Path+'" a "'+vDestino+'" "'+vPasta+'"';

     ExecutarComand(vLinha);
  end;

***Codigo da procedure ExecutarCommand(vLinha)
procedure TFrmRotGerarArquivoNFCe.ExecutarComand(aCommando: String);
var
  tmpStartupInfo: TStartupInfo;
  tmpProcessInformation: TProcessInformation;
  tmpProgram: String;
begin
  tmpProgram := trim(aCommando);
  FillChar(tmpStartupInfo, SizeOf(tmpStartupInfo), 0);
  with tmpStartupInfo do
  begin
    cb := SizeOf(TStartupInfo);
    wShowWindow := SW_HIDE;
  end;

  if CreateProcess(nil, pchar(tmpProgram), nil, nil, true, CREATE_NO_WINDOW,
    nil, nil, tmpStartupInfo, tmpProcessInformation) then
  begin
    // loop every 10 ms
    while WaitForSingleObject(tmpProcessInformation.hProcess, 10) > 0 do
    begin
      Application.ProcessMessages;
    end;
    CloseHandle(tmpProcessInformation.hProcess);
    CloseHandle(tmpProcessInformation.hThread);
  end
  else
  begin
    RaiseLastOSError;
  end;
end;

 

Sistemas para toda área Goumert, pequeno varejo e baladas.

www.controleautomacao.com.br

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