Tamanho do campo ultrapassa a margem direita

(Rogério) #1

Alguém já percebeu que um campo configurado como TEXTO COM MÚLTIPLAS LINHAS, onde o conteúdo vem de um LOOKUP DE CONSULTA, método automático, não funciona? O texto ultrapassa a margem. Já procurei alguma solução aqui no fórum mas não achei.
Alguém sabe se é algum bug do SC? Estou usando a versão 5.02.0029. Alguém teria uma solução “tabajara”?

Ainda sem solução. Já coloquei na área de BUGS mas, até agora, nenhuma resposta por parte da Netmake. Deveriam pelo menos dizer se já estão cientes, se é bug mesmo, que estarão providenciando a solução… dar uma satisfação né não? Mostrar a nós, clientes, que eles se preocupam com o que a gente coloca neste fórum, com as nossas demandas.

(possidonio) #2

Estou com uma dificuldade parecida.

No meu relatório, mesmo que eu defina a largura dos campos, o scriptcase não considera essa largura… Se o valor do campo for grande, sempre estoura a margem direita…

(jcesarml) #3

Aqui ocorre o mesmo caso, os nomes constantes na tabela que ultrapassam um determinado tamanho sobrescrevem as outras colunas, tornando o relatório ilegível.
Parece que isso ocorre nos campos subselect.

(Haroldo) #4

Não eh um bug do sc.
Isso é da classe fpdf, eu uso o código abaixo para prever isso.

Segue link da app em funcionamento (obs: não tem imagem de fundo, todo o layout é feito com código php, e muda conforme a quantidade de itens):

Digite 1 para pedido_id.
http://www.infinitusweb.net.br/sc/5.2.028/app/ERP/vendasPedido_pdf/vendasPedido_pdf_teste.php

sc_format_num($QUANTIDADE,".",",",CasasDecimais($QUANTIDADE,0),“N”);
sc_format_num($VALOR_UNIT,".",",",CasasDecimais($VALOR_UNIT,2),“S”);
sc_format_num($DESCONTO,".",",",CasasDecimais($DESCONTO,0),“S”);
sc_format_num($VALOR_TOTAL,".",",",2,“S”);
IF ($DESCONTO==‘0’) $DESCONTO="";

$DESCRICAO=wordwrap($DESCRICAO,50,"^|");
$DESCRICAO=explode("^|",$DESCRICAO);

$this->Pdf->SetDrawColor(128);
$this->Pdf->SetLineWidth(0.1);

$y=$this->Pdf->GetY();
IF (ISSET($DESCRICAO[1])){
PrintCell(25, $y,$DESCRICAO[0],0,0,0,“Arial,9,0”);
PrintCell(25,$y+3,$DESCRICAO[1]);
$y=$y+1;$ln=6;
IF ($LINHA<[maxlines]) $this->Pdf->Line(5,$y+4,205,$y+4);
$RETURN=1;
}ELSE{
PrintCell(25, $y,$DESCRICAO[0],0,0,0,“Arial,9,0”);
IF ($LINHA<[maxlines]) $this->Pdf->Line(5,$y+3,205,$y+3);
$ln=5;
$RETURN=0;
}
IF (STRLEN($PRODUTO)>9) {
PrintCell(5,$y,$PRODUTO,20,0,0,“Arial,7”);
}ELSE{ PrintCell(5,$y,$PRODUTO,20,0,0,“Arial,9”); }

PrintCell(125,$y,$QUANTIDADE,17,0,“R”,“Arial,9”);
PrintCell( 0,$y,$UNIDADE,11,0,“C”);
PrintCell( 0,$y,$VALOR_UNIT,17,0,“R”);
PrintCell( 0,$y,$DESCONTO,13,0,“R”);
PrintCell( 0,$y,$VALOR_TOTAL,22,0,“R”);

$this->Pdf->Ln($ln);

RETURN $RETURN;

(jcesarml) #5

Haroldo, onde você insere esse código? Agradeço.

(Haroldo) #6

Em um método php, e chamo esse método no código, não uso interface pois não me agrada o código fonte gerado.

(jcesarml) #7

Obrigado!