Versões comparadas

Chave

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

...

Produto:

TOTVS Reports

Versões:

12.1.x

Ocorrência:

 

Ambiente:

 

Passo a passo:

Conteúdo


Índice
excludeTO_DATE (Oracle)|Conteúdo|...

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.

 


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('myDivYouKnow2').style.display = "none";
}
</script>

Drawing - Rewrite the printing engine with GDI methods instead of GDI plus methods
Measurement - Improve the accuracy of storing values that are measured in report units (e.g. sizes and locations) to achieve more exact positioning of report controls when printing or exporting

Nos desculpe pela possível inconveniência.

[...]


TÓPICO 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 painéis, em vez de um painel maior, onde se pode editar todo o paragrafo.

 


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

 



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.

 

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 te 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.

[...]

 

2.2 - Texto em Pequenos Blocos

 

 

 

 

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


 

O terceiro caso


Observações: