Alguns usuários preferem criar tabelas ajustando a largura da guia ou desejam criar uma tabela em um formato que não os suporta.
Nas versões anteriores do FastReport .NET, o RichObject oferecia a função de modificar a largura de uma guia em uma linha, mas todos os tamanhos após a primeira guia eram iguais. Isso foi corrigido na versão atual e agora você pode definir o tamanho de cada caractere de tabulação.
A nova propriedade para TextObject TabPositions permite que você defina a largura de uma guia. É usado ao converter RichObject. Agora você pode controlar a largura dos caracteres de tabulação de duas maneiras:
– definir a partir do código a largura dos caracteres de tabulação individuais para cada linha do TextObject;
– carregando o documento finalizado em RichObject.
A função para editar esta propriedade no designer está temporariamente indisponível. Se houver mais caracteres de tabulação do que larguras, o tamanho da tabulação será normal, e se houver mais valores do que tabulações, os valores excedentes de largura não serão aplicados.
Documento RTF original:
Como era na versão anterior:
Na versão atual:
//criar uma instância de relatório de classes Report report = new Report(); //criar uma página de relatório ReportPage pageBase = new ReportPage(); //criar uma banda de dados DataBand dataBand = new DataBand(); //criar um objecto de texto TextObject textObject = new TextObject(); //mudar o valor do texto textObject.Text = "1\t2\t3\t4"; //definir a largura de cada página de símbolos em centímetros textObject.TabPositions = new FloatCollection() { Units.Centimeters * 2.5f, Units.Centimeters * 3.5f, Units.Centimeters * 5 }; //adicionar o objecto de texto à banda de dados textObject.Parent = dataBand; //definir o nome gerado textObject.CreateUniqueName(); //definir os limites do objecto de texto textObject.Bounds = new RectangleF(0, 0, Units.Centimeters * 15, Units.Centimeters * 0.5F); //criar mais um objecto de texto TextObject textObject2 = new TextObject(); textObject2.Text = "5\t6\t7\t8"; textObject2.TabPositions = new FloatCollection() { Units.Centimeters * 2.5f, Units.Centimeters * 3.5f, Units.Centimeters * 5 }; textObject2.Parent = dataBand; textObject2.CreateUniqueName(); textObject2.Bounds = new RectangleF(0, Units.Centimeters * 1, Units.Centimeters * 15, Units.Centimeters * 0.5F); //criar mais um objecto de texto TextObject textObject3 = new TextObject(); textObject3.Text = "9\t10\t11\t12"; textObject3.TabPositions = new FloatCollection() { Units.Centimeters * 2.5f, Units.Centimeters * 3.5f, Units.Centimeters * 5 }; textObject3.Parent = dataBand; textObject3.CreateUniqueName(); textObject3.Bounds = new RectangleF(0, Units.Centimeters * 2, Units.Centimeters * 15, Units.Centimeters * 0.5F); //adicionar a banda à colecção de bandas pageBase.Bands.Add(dataBand); //adicionar uma página criada para comunicar a colecção de páginas report.Pages.Add(pageBase); //mostrar o relatório report.Show();
Assim, você pode transformar RichObject e TextObject em uma alternativa ao objeto Tabela com a ajuda de novas melhorias.