The Power Of The Placeholder

Once upon a time in a Business Intelligence Development Studio 2005 Reporting Services solution there liveth a Textbox object which developers could use to put text on a report.  It was a fairly simple object, allowing only two ways of programming the text.

The first and most simple way of the two was to type plain and simple text directly into the box:

SSRS Textbox with simple constant text

And the second, more advanced way, alloweth developers to use an expression to create the text dynamically.  With this they could combine data from several sources into the same Textbox:

SSRS Edit Expression window

Then developers realized that something was still missing.  Text could be created dynamically but they also wanted to optimize the way the text looketh.  So they selected part of the expression and tried to change some font properties.  But alas, they couldn’t.  It was all or nothing:

Text rendered using some font styles in SSRS 2005

Then arriveth the day of the birth of the successor to BIDS 2005.  As the family’s tradition went, it was called the same as its parent.  The only difference was its birth year: BIDS 2008.

And developers started exploring BIDS 2008 and discovereth that the Textbox object had gotten an upgrade.  When editing the content of the textbox, the right-click menu has gotten a new item:

SSRS 2008 Create Placeholder menu item

That’s right, Create Placeholder.  And this was the moment in time when developers started to have fun again.  The placeholder can be given a value through an expression, just like the olden days:

Placeholder Properties - General tab

The Placeholder’s value can be given a format through the Number tab:

Placeholder Properties - Number tab

And a Placeholder’s font can be customized:

Placeholder Properties - Font tab

Now you may ask yourselves, wherein lies the difference with the olden days?

Well, it lies in the fact that several Placeholders and regular constant text can all be combined in the same Textbox!

This is what it looks like in Design time:

SSRS 2008 textbox with placeholders

And rendered in Preview:

SSRS 2008 Preview of textbox content

Powertip: to easily open up the properties of an existing Placeholder, single-click the Textbox to select it, again single-click to edit the content, then double-click a Placeholder to get its properties window.

When reports developed using BIDS 2005 are attached to a 2008 SSRS solution, any expressions in textboxes are acting as a placeholder as well:

Textbox with expression converted to BIDS 2008

And developers liveth happily ever after.

Although not entirely.  Try entering a chemical formula in the textbox.  Indeed, there’s no subscript option in the font settings.  And it doesn’t work through HTML either, as explained in this Microsoft Connect bug report.  It’s probably not as easy as it sounds, but if Word can do it I think so should SSRS.

Small update: a colleague recently had an interesting idea related to the subscript issue.  If subscript is not possible, try putting the numbers in a smaller font than the other characters.  So instead of H2O, it would become H2O.  The subscript version looks like this: H2O.  The workaround doesn’t look as good as with subscript but better than just in regular font size.  (Thanks Bart :-) )

Share

Tags: , , , , ,

  1. jonrgrover’s avatar

    The problem still is that you still have to use a GUI to develop the system rather than being allowed to write code. The new placeholder system makes the SSRS GUI more complex, and since I have trouble using GUI’s for development, I have even less fun than before. Hopefully, someday we will have a reporting system that lets us code reports.

    Reply

  2. Valentino Vranken’s avatar

    Hi Jon,

    After having seen your blog, I understand that you really don’t like GUIs. So why not code your report then, just like you stated in your comment? After all, an SSRS report is pure XML, well, RDL (Report Definition Language) to be exact, which can be coded using any method of your preference.

    Have a look here to get you started:
    http://msdn.microsoft.com/en-us/library/ms155062.aspx
    http://msdn.microsoft.com/en-us/library/ms170667.aspx

    Thanks for your comment!
    Valentino.

    Reply

  3. Bart Hayes’s avatar

    Have you tried the Alignment though? You can’t give different placeholders a different alignment property in the text box, like set one to left and the other to right, they are both take on the last setting. You can put in spaces, but then the alignment doesn’t seem to behave the same in the designer as it does when deployed to a web pabe either.

    I’d be interested to see if anybody has been able to deal with this. I’ve had to make text boxes the full width of the page to avoid merged cells when exporting to Excel and then I find you can’t control the layout of the placeholders in the text boxes very easily.

    Reply

    1. Valentino Vranken’s avatar

      Hi Bart,

      What version are you using? I was able to get different alignments working inside one textbox. The only “requirement” is that the placeholders are located on different lines. A quick test can be done by adding an empty textbox, insert placeholder one and give it a value, add a carriage return to the textbox and insert placeholder two on that next line, give that a value too and align it differently (for instance right).

      I got this working, but my version is currently 2008 R2, so I’m not sure about 2008.

      Regards,
      Valentino.

      Reply

  4. Bart Hayes’s avatar

    Yes, I’m using 2008 R2, but hadn’t tried placeholders on different lines. I wanted a placeholder at either end of a text box on the same line, as a header row. I ended up placing another textbox over the first textbox at the right end and set the alignment on that, unfortunately the second text box actually does drop to the next line, so it can’t be fooled.

    I tried putting in another placeholder with 30 odd spaces in it between the other two, tried space(n) concatenated to the placeholder value,but again in Report Manager the spaces seem to be ignored. Not a big deal, possibly a missed detail, as the placeholders are a good idea and I imagine they are intended to be self-contained objects.

    Reply

  5. ganesh dixit’s avatar

    In Fact, a nice article about placeholder.
    Thanks Buddy…

    Reply

  6. newuser’s avatar

    Thanks a lot. your inputs are really very very helpfull.

    Reply

  7. Kim’s avatar

    Is there a way to dynamically add a place holder?
    what I’m trying to do is, the number of place holder in my report depends on the amount of data i have. for example, if i have 20 data in a certain field then i should have 20 place holders.

    Reply

  8. Shweta’s avatar

    Hey Nice Article! It helped me!
    I had requirement of one field should display as plain text as well as HTML in case the type of the record differs!
    The Place holders did wonders here.
    I created two placeholders with expressions with types
    and each had different format to display!
    It works.
    Thanks!

    Reply

© 2008-2017 BI: Beer Intelligence? All Rights Reserved