Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

Limitação de Design

...

Produto:

...

TOTVS Reports

...

Versões:

...

12.1.x

...

Ocorrência:

...

 

...

Ambiente:

...

 

...

Passo a passo:

Conteúdo

Índice:


       

Índice
exclude

...

.*ndice:

1 - Introdução

 


Utilizamos no RM um conjunto de componentes de uma empresa terceira chamada "Devexpress", onde o RM Reports tem como base o Xtrareports, pertencente a esse conjunto de componentes.

Alguns problemas relacionados ao design do texto rico (XtraRichText), já são conhecidos e já foram reportados ao suporte da Devexpress.

Tanto a versão 10.1 dos componentes Devexpress utilizada na versão 11.8x do RM, quanto a versão 14.1 dos componentes da Devexpress utilizada na versão 12.1.x do RM, essas inconsistências existem.

Existem diversas respostas do suporte da Devexpress,

...

que indicam a existência dessas

...

inconsistências, o conhecimento por parte deles, das mesmas, e a busca pela solução, que ainda não foi realizada.

2 - Limitações de Design


Serão apresentadas nesse documento algumas inconsistências que podem ocorrer, ao se utilizar o componente de Texto Rico (XtraRichText).

Informações
titleOBSERVACAO

Todas as inconsistências informadas aqui, podem (ou não) ser solucionadas através de mudanças no relatório.

Na maioria das vezes, ao realizar algumas mudanças, como:

  • Diminuir (ou aumentar) o comprimento do componente;
  • Diminuir (ou aumentar) a largura do componente;
  • Remover e reinserir o componente;
  • Remover e reinserir o conteúdo do componente;
  • Refazer a ligação de dados do componente;
  • Dividir o componente de Texto Rico em dois ou mais Textos Ricos.

O componente passa a ser gerado corretamente.

 

2.1 - Texto Cortado

...

 

 

...


O primeiro caso que vamos tratar é quando o conteúdo do texto rico é cortado.

Informações
titleOBSERVACAO

A inconsistência acontece na exportação para RTF e HTML.


Image Added

Image Added


As imagens acima mostram que os componentes de texto rico foram cortados na geração do Relatório.

Existem diversas respostas do suporte da Devexpress, que indicam a existência dessa inconsistência e a impossibilidade de solução a curto prazo, em vários intervalos de tempo diferentes, porém colocamos as respostas mais recentes que contemplam a versão 14.1 da Devexpress, apresentada abaixo, traduzidas.


TÓPICO 1: Text is truncated when it is exported to RTF (Texto é cortado quando exportado para RTF)

Informações
iconfalse
titleTradução

[...]

 


HTML
Nós agradecemos por sua paciência. Sinto dizer que o comportamento atual é devido ao design. Fizemos alguns testes com base nesse problema e chagamos a conclusão que esse problema é relativo à diferença entre os métodos de medida 
<b><a id="myLinkYouKnow" href="#" onclick="_Show();">GDI e GDI+</a></b>. Por favor, acompanhe o tópico 

...

<b><a href="https://www.devexpress.com/Support/Center/Question/Details/B50289" target="_blank">Grid Export HTML Error - Group Columns not visible</

...

a></b> para mais informações. Nesse cenário, eu posso apenas sugerir que você acompanhe também, as seguintes sugestões:
<div style="width:259px;height:122px;background-color:#fff;color:#fff;display:none;position:absolute;z-index:99;top:0px;left:0px;border:1px solid #000;padding:10px;" id="myDivYouKnow">
<b>Mais Informações sobre GDI e GDI+</b><br /><br/>
&bull;&nbsp;&nbsp;<a href="https://en.wikipedia.org/wiki/Graphics_Device_Interface" target="_blank">Graphics Device Interface</a><br/>
&bull;&nbsp;&nbsp;<a href="https://theartofdev.com/2014/04/21/text-rendering-methods-comparison-or-gdi-vs-gdi-revised/" target="_blank">Rendering Methods Comparison Or GDI Vs GDI+</a><br/>
&bull;&nbsp;&nbsp;<a href="https://support.microsoft.com/en-us/help/311221/info-interoperability-between-gdi-and-gdi" target="_blank">Interoperability Between GDI and GDI+</a><br/>
&bull;&nbsp;&nbsp;<a href="https://blogs.msdn.microsoft.com/cjacks/2006/05/19/gdi-vs-gdi-text-rendering-performance/" target="_blank">GDI Vs GDI+ Text Rendering Performance</a>
</div>
<script>
_Show = function(){
document.getElementById('myDivYouKnow').style.left = document.getElementById('myLinkYouKnow').offsetLeft + "px";
document.getElementById('myDivYouKnow').style.top = (document.getElementById('myLinkYouKnow').offsetTop + document.getElementById('myLinkYouKnow').offsetHeight) + "px";
if(document.getElementById('myDivYouKnow').style.display == "none")
	document.getElementById('myDivYouKnow').style.display = "block";
else
    document.getElementById('myDivYouKnow').style.display = "none";
}
window.onresize = function(){
document.getElementById('myDivYouKnow').style.display = "none";

...


document.getElementById('

...

...

2: XRRichText HTML Export - text gets truncated at the end (Exportação Texto Rico para HTML - Texto Rico é cortado ao final)

Informações
iconfalse
titleTradução

[...]

Esse comportamento é causado por limitações do mecanismo de exportação do Texto Rico. O tamanho do conteúdo do Texto Rico pode se diferenciar da representação HTML. Nós já discutimos sobre essa limitação antes. por exemplo, reveja o seguinte tópico:

Export to Html truncates text at end

Espero que essa informação lhe seja útil.

[...]

2.2 - Texto em Pequenos Blocos



O segundo caso que vamos tratar é quando o conteúdo do texto rico é representado como pequenos blocos, em vez de um bloco único, onde se pode editar todo o paragrafo.


Image Added


Observe na imagem acima que, o texto rico foi exportado como um bloco único, onde todo o conteúdo pode ser editado normalmente.


Image Added


Observe na imagem acima que, em vez de um bloco único, onde todo o conteúdo pode ser editado, o texto foi exportado como pequenos blocos editáveis.

Existem diversas respostas do suporte da Devexpress, que indicam a existência dessa inconsistência e a impossibilidade de solução a curto prazo, em vários intervalos de tempo diferentes, porém colocamos as respostas mais recentes que contemplam a versão 14.1 da Devexpress, apresentada abaixo, traduzidas.


TÓPICO 1: XRRichText - Multiple frames are created when exporting to RTF (Texto Rico - Múltiplos blocos são criados quando se exporta para RTF)

Informações
iconfalse
titleTradução

[...]

Nós agradecemos por sua paciência. Nós examinamos esse problema e chegamos a

...

 conclusão que o comportamento atual é devido ao design.
 
HTML
Nós temos um "bug" quando o conteúdo desenhado no fim da página é repetido no inicio da próxima página. Nós ainda não encontramos uma forma viável de separar um conteúdo <b>RTF</b> entre páginas no modo <b><a id="myLinkYouKnow2" href="#" onclick="_Show2();">WYSIWYG</a></b>. Por isso, a primeira página é desenhada como <b>um bloco único</b> e as próximas páginas com o conteúdo <b>RTF</b> é desenhado como múltiplos blocos na página <b>(um bloco por palavra)</b>.
<div style="width:157px;height:82px;background-color:#fff;color:#fff;display:none;position:absolute;z-index:99;top:0px;left:0px;border:1px solid #000;padding:10px;" id="myDivYouKnow2">
<b>Mais Informações WYSIWYG</b><br /><br/>
&bull;&nbsp;&nbsp;<a href="https://www.tecmundo.com.br/institucional/2057-o-que-e-wysiwyg-.htm" target="_blank">O que é WYSIWYG?</a><br/>
&bull;&nbsp;&nbsp;<a href="https://pt.wikipedia.org/wiki/WYSIWYG" target="_blank">WYSIWYG (Wiki)</a><br/>
</div>
<script>
_Show2 = function(){
document.getElementById('myDivYouKnow2').style.left = document.getElementById('myLinkYouKnow2').offsetLeft + "px";
document.getElementById('myDivYouKnow2').style.top = (document.getElementById('myLinkYouKnow2').offsetTop + document.getElementById('myLinkYouKnow2').offsetHeight) + "px";
if(document.getElementById('myDivYouKnow2').style.display == "none")
	document.getElementById('myDivYouKnow2').style.display = "block";
else
    document.getElementById('myDivYouKnow2').style.display = "none";
}
window.onresize = function(){
document.getElementById('myDivYouKnow').style.display = "none";
document.getElementById('myDivYouKnow2').style.display = "none";
}
</script>

Sinto dizer que nós não podemos consertar esse problema sem refazer por inteiro a estrutura interna atual do nosso componente. Peço que aceite nossas desculpas pela inconveniência.

[...]


TÓPICO 2:
Export a report to RTF (Page by Page) productes weird result (Exportar um Relatório para RTF (Página por Página) produz um resultado estranho)

Informações
iconfalse
titleTradução

[...]
Esse comportamento é do design. Quando o XRRichText (Texto Rico) é impresso/exportado ele gera blocos separados para cada palavra para que o conteúdo RTF seja apresentado corretamente em todos os formatos. Desde que blocos separados são usados, nosso motor de exportação para RTF cria um painel que envolve cada bloco.

Sinto dizer que não há maneira de mudar esse comportamento na versão atual dos nossos controles.
[...]


2.3 - Texto dentro de uma tabela


O terceiro caso é quando se usa uma tabela dentro do Texto Rico, ou algum outro tipo de objeto que agrupa um texto, inserido dentro do Texto Rico.

Veja o exemplo na imagem abaixo:

Image AddedNeste caso o objeto selecionado com linhas vermelhas é o Texto Rico e dentro dele existe outro objeto selecionado com linhas cinzas.

Como relatado acima nos casos anteriores, este objeto pode ser ignorado pela Devexpress nas versões mais novas, devido a limitação de design e pode gerar um comportamento inconsistente.

O texto dentro deste objeto pode ficar cortado e não realizar a quebra de página, ou seja, a limitação de design da Devexpress pode fazer com que o layout não fique de acordo com o esperado.

Solução para este caso específico:

Para este caso pode ser possível contornar o problema de quebra de página fazendo a seguinte alteração no layout.

  1. Copie todo o conteúdo de texto deste objeto.
    1. Isso pode ser feito clicando duas vezes sobre ele e depois pressionando as teclas Ctrl + A
    2. Clique novamente sobre ele com o botão direito e selecione Copiar.

  2. Selecione este objeto e exclua.
    1. Tente clicar na borda e depois pressione a tecla Del.
    2. Ou remova todo o texto e depois apague o objeto.

  3. No Word (versão 2013 ou superior) ou usando o Google Docs
    1. Insira uma tabela e cole o texto(copiado anteriormente) dentro desta tabela.
    2. Selecione toda a tabela e depois selecione copiar.

  4. Volte para o layout do relatório e copie a tabela dentro do Texto Rico.


Este procedimento pode resolver o problema de cortar o texto e fazer a quebra da página.


Informações
iconfalse
Informações
iconfalse

Produto: Framework

Informações
iconfalse

Versão: 12.01.XX

Informações
iconfalse

Processo: Limitação de Design

Informações
iconfalse
Informações
iconfalse

Status: Finalizado

Informações
iconfalse

Data:  

Informações
iconfalse

Autores:

Adriano Diniz Agrizzi

Erlon Cesar Lima De Freitas

Flavio Henrique Pereira Campelo

Gustavo Naves De Castro

Philippe Fernandes Lima Gonçalves

SARAH ROLAND CAMPOS LISBOA

Wesley Avelino De Carvalho

...

Observações:

...