Ir para conteúdo
  • Cadastre-se

dev botao

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

Recommended Posts

Postado

Boa tarde senhores!

 

Estou montando um relatório gerencial usando as tags de formatação como <ce> e <di>. A tag de centralização funciona perfeitamente, mas a de alinhamento a direita acaba jogando o item formatado para a linha de baixo do cupom. Utilizo um ECF Bematech MP-2100 th FI

 

Alguém pode me dizer o que estou fazendo errado?

 

 

Grato

 

Edson

  • Moderadores
Postado

veja está linha:

-- 15:40:53:579 LinhaRelatorioGerencial( "(+) Cheque R$: <ad>0,00</di>[CR][LF](+) Conta Corrente R$: <ad>34,00</di>[CR][LF][ESC]E(=) Subtotal Entradas R$[ESC]F: <ad>684,00</di>[CR][LF]", 0 )

você abre com <ad> e fecha com </di>, o correto é fechar com </ad> funciona como html.

Inclusive </di> não existe.

 

Uma outra coisa é que a tag funciona para a linha toda não para parte dela.

Equipe ACBr

Régys Borges da Silveira

http://www.regys.com.br

certificacao delphicertificacao delphi
Postado

Perfeito Régis

 

Na verdade  </di> foi uma tag que eu criei para tentar sanar o problema do alinhamento e acho que na hora de converter de volta para <ad> me esqueci dessa TAG. Criei uma função para varrer o StringList e preencher com espaços a esquerda do texto marcado com a tag <di>, mas também não funcionou.

Existe uma forma de alinhar o texto a esquerda e o valor a direita?

  • Moderadores
  • Solution
Postado

Você teria que fazer manualmente, veja nos relatórios do Paf-ECF (métodos começados por PafMF_) que você poderá ver exemplos de como fazer, veja por exemplo o PafMF_RelDAVEmitidos, nele existe alinhamento.

 

Basicamente que você faz é pegar o tamanho da linha que pode ser obtido lendo a propriedade ACBrECF.Colunas e diminuindo do texto já impresso, então com esse valor você usa PadR para preencher o valor que deverá ficar alinhado.

 

Acho que olhando na implementação do método fica mais simples de entender.

  • Curtir 1

Equipe ACBr

Régys Borges da Silveira

http://www.regys.com.br

certificacao delphicertificacao delphi
Postado

Obrigado Régys!

 

Dei uma olhada no código que você me passou e adaptei ao que eu precisava. Ficou perfeito.

 

Estou colocando o código do método que eu criei para alinhar meu relatório para quem estiver com um problema semelhante.

procedure TfrmPDV.formataRelGerencial(rel: TStringList; qtdColunas: Integer;
  CharAjuste: Char);
var i:Integer;
    linha,inicioLinha,fimLinha:string;
    inicioTag,fimTag, qtdChar:Integer;
begin
  for I := 0 to rel.Count - 1 do begin
    linha := rel.Strings[i];
    inicioTag := Pos('<AD>',UpperCase(linha));
    if inicioTag > 0 then begin
      inicioLinha := Copy(linha,1,inicioTag-1);
      fimTag := Pos('</AD>',UpperCase(linha));
      if fimTag = 0 then
        fimTag := Length(linha);

      fimLinha := Copy(linha,inicioTag+4,fimTag);

      fimLinha := StringReplace(fimLinha,'<AD>','',[rfReplaceAll,rfIgnoreCase]);
      fimLinha := StringReplace(fimLinha,'</AD>','',[rfReplaceAll,rfIgnoreCase]);
      linha := inicioLinha+acbrUtil.padR(fimLinha,qtdColunas-length(inicioLinha));
      rel.Strings[i] := linha;
    end;
  end;
end;

Novamente agradeço a todos vocês da ACBR, principalmente o Régys que sempre responde as questões com a maior presteza possível! 

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

The popup will be closed in 10 segundos...