Ir para conteúdo
  • Cadastre-se

dev botao

Danfe no Fortes, código do Produto sobrepõe a Descrição quando o código é grande e não tem espaços - Função para ajuste


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

Recommended Posts

Esta função faz o ajuste automático da largura da coluna em até 100px, quando chega a 100 é inserido espaço em branco a cada 19 caractres para que o fortes faça a quebra com o WordWrap.

Antes de chamar a função imprimir do ACBRNFe, chame esta procedure DanfeFortesAjustaQuebraLinha.

Atenção, depois que chamar esta procedure não exporte xml, pois a Tag cProd foi modificada.

Att

Jaisson

procedure DanfeFortesAjustaQuebraLinha;
var i, iNota: Integer;
begin
   if ACBrNFe1.DANFE=DanfeFortes1 then
      if DanfeFortes1.TipoDANFE = tiRetrato then
      begin
         DanfeFortes1.LarguraCodProd := 61;
         if ACBrNFe1.NotasFiscais.Count>0 then
            for iNota := 0 to ACBrNFe1.NotasFiscais.Count-1 do
               for i := 0 to ACBrNFe1.NotasFiscais.Items[iNota].NFe.Det.Count-1 do
               begin
                  if Length(ACBrNFe1.NotasFiscais.Items[iNota].NFe.Det.Items[i].Prod.cProd) > 11 then
                     if (DanfeFortes1.LarguraCodProd < (Length(ACBrNFe1.NotasFiscais.Items[iNota].NFe.Det.Items[i].Prod.cProd)-11) * 5.3 + 61) then
                     begin
                        DanfeFortes1.LarguraCodProd := Trunc((Length(ACBrNFe1.NotasFiscais.Items[iNota].NFe.Det.Items[i].Prod.cProd)-11) * 5.3 + 61);
                        if DanfeFortes1.LarguraCodProd > 100 then
                        begin
                           DanfeFortes1.LarguraCodProd := 100;
                           ACBrNFe1.NotasFiscais.Items[iNota].NFe.Det.Items[i].Prod.cProd :=
                              Copy(ACBrNFe1.NotasFiscais.Items[iNota].NFe.Det.Items[i].Prod.cProd,1,19) + ' '+
                              Copy(ACBrNFe1.NotasFiscais.Items[iNota].NFe.Det.Items[i].Prod.cProd,20,19) + ' '+
                              Copy(ACBrNFe1.NotasFiscais.Items[iNota].NFe.Det.Items[i].Prod.cProd,39,19) + ' '+
                              Copy(ACBrNFe1.NotasFiscais.Items[iNota].NFe.Det.Items[i].Prod.cProd,58,19); //tem no max 60 carac o codigo
                        end;
                     end;
               end;
      end;
end;

 

Link para o comentário
Compartilhar em outros sites

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