I am building an SSRS 2005 report using BIDS. My report filters on date. When the selected date returns no data rows the report is blank, just the title is displayed, no table or column heading.

How can I change this to display a message like No data available. or Report is empty.?

Avoid NoRowsMessage and build your own conditional empty row

One problem (or feature if that's what you want) with NoRowsMessage is that it'll literally replace the entire table with just a plain old message string.

Which provides a relatively counter-intuitive end user experience in my opinion. Normally when no data is found by a system, we'd like to know something about what data was being looked for and what it would have looked like.

Instead, based off how to keep the structure of the Tablix when there is no data to show, you can do the following:

  1. Insert New Header Row, outside the group and above the details record. Insert New Header Row

  2. Right click on the side of the new row and Set Row Visibility Set Row Visibility

  3. Set Visibility to the following expression which will count the rows inside the current Tablix and only set Visibility to True if there is no data.

    <!-- language: lang-none -->
     =CountRows() > 0
    

Visibility Expression

  1. Optionally, merge the cells and add your own message or just display an empty row Merge Cells Custom Message

Here's a comparison of how the various options will render: <br/><sup><i>(pick whichever look you think best fits your data and use case)</i></sup>

Output Examples