André Alves de Lima

Talking about Software Development and more…

Report Viewer: formatações diferentes dentro do mesmo TextBox

Uma das coisas mais legais de manter uma newsletter é receber os e-mails com as dúvidas dos inscritos. É impressionante como cada pessoa passa pelos problemas mais inusitados a cada dia. Se você já mandou um e-mail com alguma dúvida para mim, você sabe que eu sempre respondo (nem sempre eu consigo solucionar a questão, mas, garanto que ao menos eu vou responder o seu e-mail tentando solucioná-la).

Enfim, esses dias atrás eu recebi uma dúvida muito interessante de um dos inscritos. Ele tem um relatório no Report Viewer com uma expressão onde ele quer formatar parte dessa expressão em negrito (adaptei o texto da questão para bater com o exemplo que vou dar aqui neste artigo):

Seguinte. Tenho a expressão:
=”Id: ” & Fields!ID.Value & ” / Descrição: ” & Fields!Descricao.Value
Queria deixar a string “Id:” e “Descrição:” em negrito, saberia me dizer como posso fazer isso?

Quer aprender como resolver esse problema junto com a gente? Vamos lá!

Opção 1: não utilize expressões!

A primeira opção é a mais simples de todas. O designer do Report Viewer suporta nativamente a formatação mista de TextBoxes. Ou seja, se você tem um texto em um TextBox e quer formatar somente uma parte dele em negrito (ou até mesmo com cores diferentes), basta selecionar a parte do texto que você quer formatar e aplicar a formatação desejada.

Por exemplo, imagine que tenhamos um TextBox com o texto “Formatações diferentes no mesmo TextBox!!!“. Como fazemos para deixar a palavra “diferentes” em vermelho e a palavra “mesmo” em negrito? Simples! Basta selecionar a palavra “diferentes” e aplicar a cor vermelha; depois selecione a palavra “mesmo” e aplicar o negrito!

Legal, André. Mas, na pergunta do inscrito ele estava usando valores de campos no TextBox. Como é que consigo colocar valores de campos junto com outros textos no mesmo TextBox sem usar expressões? Fácil, fácil! É só arrastar os campos do DataSet para dentro do TextBox, veja só:

Olha só o resultado em tempo de execução:

Opção 2: expressões + placeholder HTML

Se você realmente tiver uma paixão por expressões no Report Viewer e não quiser abrir mão de que o conteúdo desse TextBox seja uma expressão, não tem problema. Você sabia que conseguimos transformar qualquer TextBox do Report Viewer em um placeholder (espaço reservado) para HTML? Ou seja, com um simples ajuste em qualquer TextBox do Report Viewer, podemos colocar código HTML que será interpretado pelo mecanismo de renderização!

O grande problema é que a Microsoft conseguiu esconder muito bem essa funcionalidade. Mas, não se preocupe. Eu vou mostrar para você como fazer para criar um placeholder de forma que consigamos colocar código HTML dentro de qualquer TextBox do Report Viewer!

Para criar um placeholder no Report Viewer, clique uma vez no TextBox (de forma que ele fique selecionado) e então, clique novamente no TextBox (de forma que o modo de edição seja ativado e o cursor fique piscando, esperando que você digite algo). Agora clique com o botão direito no TextBox e escolha a opção “Create Placeholder“:

Na janela de propriedades do placeholder, escolha a opção “HTML – Interpret HTML tags as styles” e clique no botão de expressão para o valor:

Ao ativarmos a opção de interpretação de HTML, nós podemos utilizar livremente as tags de estilo HTML dentro da nossa expressão (por exemplo, a tag “<b>” para texto em negrito). Dessa forma, para que o nosso texto fique exatamente como demonstrado na primeira opção, poderíamos utilizar a seguinte expressão:

="<b>Id:</b> " & Fields!ID.Value & " / <b>Descrição:</b> " & Fields!Descricao.Value

Lembre-se que, como estamos trabalhando com um placeholder HTML, você poderia muito bem utilizar outras tags de formatação (como “<i>” para itálico). Nem todas as tags são suportadas, aliás, se você conferir a documentação do Report Viewer, verá que, na realidade, poucas tags são suportadas.

Concluindo

É possível, sim, utilizar formatações diferentes dentro de um TextBox no Report Viewer. Inclusive, como você conferiu nesse artigo, você pode fazer isso de duas formas. O designer do Report Viewer suporta nativamente formatações mistas no mesmo TextBox, portanto, sugiro que você tente fazer a formatação diretamente no designer do relatório. Porém, caso você precise de um controle maior (ou se a formatação que você estiver querendo fazer não seja suportada pelo designer), você pode criar um placeholder HTML e utilizar as tags compatíveis para fazer formatações mistas no mesmo TextBox.

Você gostou desse conteúdo? Ficou com alguma dúvida? Tem sugestões de melhorias ou até mesmo outros temas? Por favor, adicione um comentário e fale o que você achou!

Por fim, convido você a inscrever-se na minha newsletter. Ao fazer isso, você receberá um e-mail toda semana sobre o artigo publicado e ficará sabendo também em primeira mão sobre o artigo da próxima semana, além de receber dicas “bônus” que eu só compartilho por e-mail. Inscreva-se aqui ou utilizando o formulário logo abaixo.

Até a próxima!

André Lima

Image by FontFont used under Creative Commons
https://www.flickr.com/photos/fontfont/5415037523/

Newsletter do André Lima

* indicates required



Powered by MailChimp

4 thoughts on “Report Viewer: formatações diferentes dentro do mesmo TextBox

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *