Ir para conteúdo
  • Cadastre-se

dev botao

AutoSize do campo Observações (xObs) na impressão utilizando FortesReport


wmrodrigo
Ver Solução Respondido por Juliomar Marchetti,
  • Este tópico foi criado há 1814 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Boa Tarde,

Após relato de cliente sobre problemas na impressão das informações do campo Observações, identificou-se que, dependendo da formatação da String setada no campo "ACBrCTe1.Conhecimentos.Add.CTe.Compl.xObs" a impressão do CT-e com o componente FortesReport apresentou alguns comportamentos inconsistentes.

Ao setar o campo "xObs" com String no formato "1000_caracteres_aleatórios" + #13 + "500_caracteres_aleatórios" resulta na impressão dos primeiros 1000 caracteres e os demais não são exibidos.

Ao setar o campo "xObs" com String no formato "1000_caracteres_aleatórios" + "1000_caracteres_formatados_com_diversos_parágrafos" resulta na impressão de parte da informação e parte da informação extrapola o limite do campo Observações (imagem em anexo).

Para solucionar o descrito, realizei algumas modificações no arquivo acbr/code/trunk2/Fontes/ACBrDFe/ACBrCTe/DACTE/Fortes/ACBrCTeDACTeRLRetrato.pas e no arquivo acbr/code/trunk2/Fontes/ACBrDFe/ACBrCTe/DACTE/Fortes/ACBrCTeDACTeRLRetrato.dfm (ambos em anexo).

ACBrCTeDACTeRLRetrato.dfm

object rlmObs: TRLMemo
	Left = 5
	Top = 19
	Width = 730
	Height = 45
	AutoSize = True
	Behavior = [beSiteExpander]
	Color = clWhite
	Font.Charset = DEFAULT_CHARSET
	Font.Color = clWindowText
	Font.Height = -8
	Font.Name = 'Times New Roman'
	Font.Style = []
	IntegralHeight = True
	Lines.Strings = (
	  'OBS LINHA 1'
	  'OBS LINHA 2'
	  'OBS LINHA 3'
	  'OBS LINHA 4')
	ParentColor = False
	ParentFont = False
  end

ACBrCTeDACTeRLRetrato.pas (linha 2113)

// Ajusta o tamanho do quadro conforme a OBS
rlsQuadro08.Height := rlmObs.Height + 20;

 

 

inconsistência_observações.jpg

ACBrCTeDACTeRLRetrato.dfm

ACBrCTeDACTeRLRetrato.pas

  • Curtir 2
Link para o comentário
Compartilhar em outros sites

  • 3 meses depois ...

Bom dia,

Após a atualização do componente, a impressão em modo de homologação começou a "Não" aparecer a mensagem de "AMBIENTE DE HOMOLOGAÇÃO - SEM VALOR FISCAL" na parte da observação, mas somente quando não havia observação informada, devido ao componente "rlmObs" ter sido alterado a propriedade "AutoSize=True".

Portanto ao emitir um cte em homologação e não contem observação, deve-se adicionar linhas em branco no componente "rlmObs" para ele ficar do tamanho onde a mensagem de homologação caiba.

// ACBrCTeDACTeRLRetrato

Var i : integer;

begin
   ....
Linha 1746
// Mensagem para modo Homologacao.
  rllMsgTeste.Visible := False;
  rllMsgTeste.Enabled := False;

  if fpCTe.Ide.tpAmb = taHomologacao then
  begin
    if rlmObs.Lines.Count < 5  then
    begin
       rlmObs.Lines.BeginUpdate;
       for i:=rlmObs.Lines.Count to 5 do
          rlmObs.Lines.Add('');
       rlmObs.Lines.EndUpdate;
    end;
    rllMsgTeste.Caption := ACBrStr('AMBIENTE DE HOMOLOGAÇÃO - SEM VALOR FISCAL');
    rllMsgTeste.Visible := True;
    rllMsgTeste.Enabled := True;
  end
  else ...

 

Por favor  ,se puderem efetuar o teste @wmrodrigo e @Juliomar Marchetti caso haja outro modo de fazer ou corrigir;

 

Editado por elrond
Link para o comentário
Compartilhar em outros sites

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