ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

[RESOLVIDO] Problema na Impressão - Delphi 5 - Paradox

 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
Marcelosoft
Mestre
Mestre


Registrado: Domingo, 21 de Janeiro de 2007
Mensagens: 862

MensagemEnviada: Ter Mai 28, 2013 1:14 am    Assunto: [RESOLVIDO] Problema na Impressão - Delphi 5 - Paradox Responder com Citação

Agradeço desde já a quem puder me ajudar !

Tenho este código abaixo, o mesmo se encontra correto só que o cliente está reclamando que está muito lento para imprimir e para no meio !
Gostaria de saber o que posso fazer para melhorar a velocidade ao imprimir pois estes codigos abaixo são para Imprimir a 2a. via.

Att,
Marcelo.

Código:
var
  F : TextFile;
begin
  if TerminalSel='01' then   {Micro 01}
    AssignFile(F,'COM1')

  else if TerminalSel='02' then  {Micro 02}
    {AssignFile(F,'\\Balcao1\EpsonBalcao1')}
    AssignFile(F,'\\Servidor\EPSONLXSERVIDOR');

  ReWrite(F);

  With DataModule1 Do
    Begin
      If TabMovBalEntrega.Active Then
         TabMovBalEntrega.Close;
         TabMovBalEntrega.IndexName:='PorNr_Pedido';
         TabMovBalEntrega.Open;
         TabMovBalEntrega.First;

         Begin
             WriteLn(F,#27#15+'MINA DAGUA - DISTRIBUIDORA DE AGUA MINERAL');
             WriteLn(F,#27#15+'Rua:'+ ' '+ 'SILVA JARDIM, 261' + ' ' + 'SANTOS/SP');
             WriteLn(F,#27#15+'Bairro:'+ ' ' + 'ESTUARIO');
             WriteLn(F,#27#15+'Tel.: (013) 3232-5917 / 3222-3348');
             WriteLn(F,#27#15+'Cnpj:' + ' ' + '58.216.201/0001-00');
             WriteLn(F,'-------------------------------------------------');
             WriteLn(F,'Cod. Produto');
             WriteLn(F,'Descr. Produto');
             WriteLn(F,'                  Valor Unit' + ' ' + 'Qtd' + ' ' + 'SubTotal');
             WriteLn(F,'-------------------------------------------------');

           If not TabMovBalEntrega.FindKey([NrVenda_2aVia.Text]) Then
             Begin
               ShowMessage('Nº de Venda Não Encontrada !');
               NrVenda_2aVia.Clear;
               NrVenda_2aVia.SetFocus;
               Abort;
             End
             Else
               If TabMovBalEntrega.FindKey([NrVenda_2aVia.Text]) Then
                 Begin
                   TabMovBalEntrega.Filtered := False;
                   TabMovBalEntrega.Filter   := 'Nr_Pedido ='+QuotedStr(NrVenda_2aVia.Text);
                   TabMovBalEntrega.Filtered := True;

                   While not TabMovBalEntrega.Eof Do
                   Begin

                     WriteLn(F,TabMovBalEntrega.FieldByName('Cod_Prod').AsString);
                     WriteLn(F,TabMovBalEntrega.FieldByName('Descr_Produto1').AsString);
                     WriteLn(F,'                      ' + FormatFloat('###0.00',TabMovBalEntrega.FieldByName('Valor_Produto1').AsFloat) + '    ' + TabMovBalEntrega.FieldByName('Qtd1').AsString + '         ' + FormatFloat('###0.00',TabMovBalEntrega.FieldByName('Sub_Total').AsFloat));

                     Try
                       TabMovBalEntrega.Next;
                     Except
                       ShowMessage('Atenção !!!... Código nº 05 - Favor Entrar em Contato com a Marques e Ferreira !');
                     End;
                   End;

                   WriteLn(F,'--------------------------------------------------');
                   WriteLn(F,#27#15+'   No. Venda:' + ' ' + TabMovBalEntrega.FieldByName('Nr_Pedido').AsString + '  ' + 'Data:' + ' ' + TabMovBalEntrega.FieldByName('Dt_Entr').AsString + ' ' + 'Hora:' + ' ' + TabMovBalEntrega.FieldByName('Hr_Entr').AsString);
                   WriteLn(F,'--------------------------------------------------');
                   WriteLn(F,'Tipo Pagto:' + ' ' + TabMovBalEntrega.FieldByName('Tipo_Pgto').AsString + ' ' + 'Vendedor:' + ' ' + TabMovBalEntrega.FieldByName('Func').AsString);
                   WriteLn(F,'                             Total :' + '     ' + Label2.Caption);
                   WriteLn(F,'--------------------------------------------------');
                   WriteLn(F,'Venc. Gl. P/ Entrega:' + ' ' + TabMovBalEntrega.FieldByName('Venc_Gl2010').AsString + ' ' + TabMovBalEntrega.FieldByName('Venc_Gl2011').AsString + ' ' + TabMovBalEntrega.FieldByName('Venc_Gl2012').AsString + ' ' + TabMovBalEntrega.FieldByName('Venc_Gl2013').AsString + ' ' + TabMovBalEntrega.FieldByName('Venc_Gl2014').AsString);
                   WriteLn(F,'--------------------------------------------------');
                   WriteLn(F,'Nome.......:' + ' ' + TabMovBalEntrega.FieldByName('Nome').AsString);
                   WriteLn(F,'End........:' + ' ' + TabMovBalEntrega.FieldByName('End').AsString);
                   WriteLn(F,'Tel........:' + ' ' + TabMovBalEntrega.FieldByName('Fone').AsString);
                   WriteLn(F,'        Volte Sempre !');
                   WriteLn(F,'   Grato pela Preferencia !');
                   WriteLn(F);
                   WriteLn(F);
                   WriteLn(F,'Obs:' + ' ' + TabMovBalEntrega.FieldByName('Obs_Movto').AsString);
                   WriteLn(F);
                   WriteLn(F);
                   WriteLn(F);
                   WriteLn(F);
                   WriteLn(F);
                   WriteLn(F);
                   WriteLn(F);
                   WriteLn(F);
                   WriteLn(F);
                   CloseFile(F);
             End;
         End;
         TabMovBalEntrega.Filtered := False;
         NrVenda_2aVia.Clear;
         NrVenda_2aVia.SetFocus;
         Label2.Caption:='0,00';
         TabMovBalEntrega.Close;
    End;
end;
[quote][/quote]


Editado pela última vez por Marcelosoft em Sáb Jun 22, 2013 11:25 pm, num total de 1 vez
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Caduzera
Profissional
Profissional


Registrado: Terça-Feira, 29 de Julho de 2008
Mensagens: 656

MensagemEnviada: Ter Mai 28, 2013 9:19 am    Assunto: Responder com Citação

Amigo, aparentemente não tem motivos deste código ficar lento ....

Ele é bem simples e possui apenas um Loop ...

Você já testou a impressão em outras impressoras? Viu se o sistema não está gerando uma exceção durante a impressão? A aplicação trava ou o sistema apenas para de imprimir na metade?

Abs
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
pepis
Membro Junior
Membro Junior


Registrado: Segunda-Feira, 16 de Outubro de 2006
Mensagens: 331
Localização: Ceará

MensagemEnviada: Ter Mai 28, 2013 9:52 am    Assunto: Responder com Citação

Amigo esse TabMovBalEntrega acredito q seja uma Table, se o DataSource dessa tabela tiver ligado algum grid, vc pode fazer o seguinte: TabMovBalEntrega.DisableControls no inicio e TabMovBalEntrega.EnableControls no final, assim evita os registros passando no grid. No meu caso ganhei um pouco mais de desempenho.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
CENTURYINF
Membro Junior
Membro Junior


Registrado: Sexta-Feira, 19 de Fevereiro de 2010
Mensagens: 364

MensagemEnviada: Ter Mai 28, 2013 11:08 am    Assunto: Responder com Citação

Ola amigo

Ja tive este problema de parada na impressao com om Winxp,
para impressoras matriciais...

não me lembro o comando que utilizei para resolver, verifique no manual
da epson, ao final da impressão, eu enviava um reset na impressora
e passou a funcionar...

espero que ajude
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail
Marcelosoft
Mestre
Mestre


Registrado: Domingo, 21 de Janeiro de 2007
Mensagens: 862

MensagemEnviada: Ter Mai 28, 2013 11:48 am    Assunto: Responder com Citação

Pior que uso a DR700 da Daruma e é impressora térmica !
Não uso DBGrida neste caso que tiro a 2a. via !
Será que não é porque o banco de dados está grande ? Eu uso o Paradox !

Att.
Marcelo.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
CENTURYINF
Membro Junior
Membro Junior


Registrado: Sexta-Feira, 19 de Fevereiro de 2010
Mensagens: 364

MensagemEnviada: Ter Mai 28, 2013 11:59 am    Assunto: Responder com Citação

Bom,

vai uma sugestão, depois vc analiza melhor

eu tenho um cliente com + ou - 20.0000 registros em uma tabela
para agilizar dou um findkey com o nr da parcela para localizar rapidamente
apos dar um click no grid, copio o registro para um arquivo temporario,
com a estrutura igual do arquivo principal, e faço a impressão a partir
deste arquivo temporario.

faço isso porque tenho varios PC,s imprimindo o recibo ao mesmo tempo,
em impressoras individuais nos terminais, portanto tenho um arquivo temporario em cada pc.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail
Marcelosoft
Mestre
Mestre


Registrado: Domingo, 21 de Janeiro de 2007
Mensagens: 862

MensagemEnviada: Ter Mai 28, 2013 12:01 pm    Assunto: Responder com Citação

Boa já tinha pensado nisso !
Pois faço isso nas vendas que as vendas imprimem rápido que o cliente fica surpreso !
Obrigado, vou fazer isso então !

Att,
Marcelo.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Leandro_Cardoso
Novato
Novato


Registrado: Segunda-Feira, 27 de Mai de 2013
Mensagens: 38
Localização: Porto Alegre

MensagemEnviada: Ter Mai 28, 2013 12:05 pm    Assunto: Responder com Citação

Ja tive este tipo de problema também, e como um dos amigos comentou, o problema era na impressora mesmo, porém era conexão em porta paralela, e pelo que vi no seu caso é porta COM
_________________
Leandro Cardoso
www.dsinf.com.br
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Visitar a homepage do Usuário
Marcelosoft
Mestre
Mestre


Registrado: Domingo, 21 de Janeiro de 2007
Mensagens: 862

MensagemEnviada: Ter Mai 28, 2013 12:58 pm    Assunto: Responder com Citação

É uso porta COM !

Mas pq a USB é mais rápida ?
Ou depende do micro ou tem q fazer limpeza nele, se for limpeza já foi feita e continua a lentidão !
Sempre que der isso então é pq é porta COM1 ?

Att,
Marcelo.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Marcelosoft
Mestre
Mestre


Registrado: Domingo, 21 de Janeiro de 2007
Mensagens: 862

MensagemEnviada: Ter Mai 28, 2013 1:09 pm    Assunto: Responder com Citação

Começa a imprimir e qdo chega na Descrição do Produto para e qdo fecha o software começa a imprimir o restante !
Pq isso ?

Att,
Marcelo.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Marcelosoft
Mestre
Mestre


Registrado: Domingo, 21 de Janeiro de 2007
Mensagens: 862

MensagemEnviada: Qui Mai 30, 2013 11:03 pm    Assunto: Responder com Citação

Começa a imprimir e qdo chega na Descrição do Produto para e qdo fecha o software começa a imprimir o restante !
Pq isso ?

Att,
Marcelo.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi Todos os horários são GMT - 3 Horas
Página 1 de 1

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB