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 

Problemas com alinhamento e espaçamento writeln (RESOLVIDO)

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


Registrado: Sexta-Feira, 10 de Agosto de 2012
Mensagens: 299

MensagemEnviada: Qua Fev 27, 2013 7:42 pm    Assunto: Problemas com alinhamento e espaçamento writeln (RESOLVIDO) Responder com Citação

Boa noite amigos!



Preciso enviar um formulário para uma EPSON LX 300 no entanto no que mando, a impressão sai assim:




quant produto Valor Unitáro Total
1 PRODUTO 1 2.30 2,30
1 PRODUTO 1 2.30 2,30
2 PRODUTO DESCcRIÇÃO X 2,30 6,60





Quanto a descrição é maior acaba desalinhando todo os outros campos abaixo o meu código:



Código:
begin
const
cjustif = #27#97#51;
cl12cpi = #27#77;
Esp =  #27+'P';
EscCR = #13;
Tab8 =#27#68#20;

var
 Texto: String;
 Cup2: TextFile;
begin
    AssignFile(Cup2,form26.DBEDIT5.Text);
    Rewrite(Cup2);
    Writeln(Cup2,'              '+Edit9.Text);
    Writeln(Cup2,'');
    Writeln(Cup2,cjustif ,Texto,Esp,'                '+datamodule1.Qregfantasia.Text +' '+datamodule1.QregCNPJ.Text);
    Writeln(Cup2,cjustif ,Texto,Esp,'    '+'Caixa'+' '+datamodule1.QLoginusuario.Text);
    Writeln(Cup2,cjustif ,Texto,Esp,'    '+'Tel:'+'  '+datamodule1.Qregtelefone.Text+' '+'Fax:'+' '+datamodule1.QregTel1.Text);
    Writeln(Cup2,cjustif ,Texto,Esp,'    '+'End:'+'  '+ datamodule1.Qregendereo.Text+'  ' +'N,'+' '+ datamodule1.Qregnumero.Text);
    writeln(cup2,cjustif ,Texto,Esp,'    '+'  '+dbedit8.Text);
    Writeln(Cup2,'    '+'---------------------------------------------------------------------------');
    Writeln(Cup2,cjustif,Texto,'   '+cjustif,Texto,Esp+'Quant'+' '+cjustif,Texto,Esp+'codigo'+'     '+cjustif,Texto,Esp+'Produto'+'                       '+'Preco'+'      '+'Total');
    Writeln(Cup2,'');
    datamodule1.QVenda.First;
While not datamodule1.QVenda.Eof do
begin
    Writeln(Cup2,'      '+datamodule1.QVendaquant.Text+'     '+datamodule1.QVendacodigo_barras.Text+'     '+datamodule1.QVendadescricao.Text+'     '+datamodule1.QVendavalorUnit.Text+'     '+datamodule1.QVendavalorTotal.Text);
    datamodule1.qvenda.Next;
end;
    Writeln(Cup2,'                                                    '+'------------------');
    Writeln(Cup2,'                                                    '+'TOTAL:'+' '+'R$:'+' '+datamodule1.QSumgeralgrid.Text);
    Writeln(Cup2,'                                                    '+'------------------');
    Writeln(Cup2,'');
    Writeln(Cup2,'');
    Writeln(Cup2,'');
    Writeln(Cup2,'');
    Writeln(Cup2,'');
    Writeln(Cup2,'');
    Writeln(Cup2,'');
    Writeln(Cup2,'');
    Writeln(Cup2,'');
    Writeln(Cup2,'');
    Writeln(Cup2,'');
    Writeln(Cup2,'');
    Writeln(Cup2,'');
    Writeln(Cup2,'');
    Writeln(Cup2,'');
    Writeln(Cup2,'');
    Writeln(Cup2,'');
    Writeln(Cup2,'');
    Writeln(Cup2,'');
    Writeln(Cup2,'');
    Writeln(Cup2,'');
    Writeln(Cup2,'');
    Writeln(Cup2,'');
    CloseFile(Cup2);


Editado pela última vez por FABIO_1979 em Ter Mar 05, 2013 12:11 pm, num total de 1 vez
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
imex
Moderador
Moderador


Registrado: Sexta-Feira, 7 de Janeiro de 2011
Mensagens: 11666

MensagemEnviada: Qua Fev 27, 2013 8:47 pm    Assunto: Responder com Citação

Boa noite,

Tente utilizar a função Format para deixar as colunas com a mesma quantidade de caracteres. Ex:

Código:
Writeln(Cup2, ' ' + Format('%10.10s', [datamodule1.QVendaquant.Text]) +
              ' ' + Format('%13.13s', [datamodule1.QVendacodigo_barras.Text]) +
              ' ' + Format('%-30.30s', [datamodule1.QVendadescricao.Text]) +
              ' ' + Format('%10.10s', [datamodule1.QVendavalorUnit.Text]) +
              ' ' + Format('%12.12s', [datamodule1.QVendavalorTotal.Text]));


Espero que ajude.

_________________
Assinatura: http://www.imoveisemexposicao.com.br/imobiliarias-em-suzano
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
FABIO_1979
Aprendiz
Aprendiz


Registrado: Sexta-Feira, 10 de Agosto de 2012
Mensagens: 299

MensagemEnviada: Qua Fev 27, 2013 10:18 pm    Assunto: Responder com Citação

Esta dando erro:


Writeln(Cup2,'');
datamodule1.QVenda.First;
While not datamodule1.QVenda.Eof do
begin
Writeln(Cup2,''+Format('%8.8s',[datamodule1.QVendaquant.Text])+ Format('%14.14s',[datamodule1.QVendacodigo_barras.Text])+Format('%37.37s',[datamodule1.QVendadescricao.Text])+Format('%8.8s',[datamodule1.QVendavalorUnit.Text])+Format('%8.8s',[datamodule1.QVendavalorTotal.Text]);
datamodule1.qvenda.Next;
end;
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
imex
Moderador
Moderador


Registrado: Sexta-Feira, 7 de Janeiro de 2011
Mensagens: 11666

MensagemEnviada: Qua Fev 27, 2013 10:43 pm    Assunto: Responder com Citação

Acho que tá faltando fechar parênteses no Writeln.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
FABIO_1979
Aprendiz
Aprendiz


Registrado: Sexta-Feira, 10 de Agosto de 2012
Mensagens: 299

MensagemEnviada: Qua Fev 27, 2013 10:50 pm    Assunto: Responder com Citação

ôpa era verdade srsrs fechei e deu certo amigo outra coisa esta saindo assim agora:



1 1 ALAVANCA ESQUERDA JOCEC 3,10 3,10
1 ALICATE DE SOLDA ARTOSH 500AP 41,80 41,80
1 1 ALAVANCA ESQUERDA JOCEC 3,10 3,10
1 ALICATE DE SOLDA 600 AMP 58,60 58,60
------------------
TOTAL: R$: 106,60
------------------
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
imex
Moderador
Moderador


Registrado: Sexta-Feira, 7 de Janeiro de 2011
Mensagens: 11666

MensagemEnviada: Qua Fev 27, 2013 11:14 pm    Assunto: Responder com Citação

Não consegui entender direito o problema.
Acho que se você tivesse utilizado a tag Code para postar como ficou o relatório teria ficado mais fácil de entender.
O único detalhe que reparei olhando o seu código é que os valores estão sendo alinhados a direita. Para alinhar a esquerda é necessário colocar um sinal de menos (-) como no exemplo que postei acima no caso do campo descricao.

Espero que ajude.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Yien
Novato
Novato


Registrado: Sexta-Feira, 6 de Abril de 2012
Mensagens: 52

MensagemEnviada: Qua Fev 27, 2013 11:21 pm    Assunto: Responder com Citação

Ele quer algo assim:

1..1...ALAVANCA ESQUERDA JOCEC................3,10........3,10
1.......ALICATE DE SOLDA ARTOSH 500AP........41,80.....41,80
1..1...ALAVANCA ESQUERDA JOCEC.................3,10.......3,10
1.......ALICATE DE SOLDA 600 AMP..................58,60.....58,60
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
FABIO_1979
Aprendiz
Aprendiz


Registrado: Sexta-Feira, 10 de Agosto de 2012
Mensagens: 299

MensagemEnviada: Qui Fev 28, 2013 12:04 am    Assunto: Responder com Citação

Oi amigos tentei colocar o sinal de - mas não dá certo

format '47.47' invalid or incompatible with argument.

Format('%47.47-',[datamodule1.QVendadescricao.Text])+
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
FABIO_1979
Aprendiz
Aprendiz


Registrado: Sexta-Feira, 10 de Agosto de 2012
Mensagens: 299

MensagemEnviada: Qui Fev 28, 2013 12:21 am    Assunto: Responder com Citação

consegui aparentemente alinhar mas esta saindo assim amigos

Código:

    ---------------------------------------------------------------------------
a     Quant     codigo     Produto                Preco      Total

          1             1 ALAVANCA ESQUERDA JOCEC              3,10         3,10
          1               ALICATE DE SOLDA ARTOSH 500AP       41,80        41,80
          1               ALICATE DE SOLDA 600 AMP            58,60        58,60
                                                    ------------------
                                                    TOTAL: R$: 103,50
                                                    ------------------
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
imex
Moderador
Moderador


Registrado: Sexta-Feira, 7 de Janeiro de 2011
Mensagens: 11666

MensagemEnviada: Qui Fev 28, 2013 10:42 am    Assunto: Responder com Citação

Pelo que vi você está utilizando vários comandos especiais da impressora para formatar o texto.
Não sei como eles funcionam, mas acho que eles podem estar provocando o desalinhamento, lembrando que nesse caso é necessário fazer o teste na impressora, pois esses comandos especiais (cjustif, Esp, etc) só funcionam lá.
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