SSRS in AX7–Defining a Report Title/Caption

The user interface for reporting in Dynamics 365 for Operations (AX7) has changed dramatically, one of the main features being the lovely parameter screen and the standard report header, as shown below:

image

image

It did however take me a while to figure out where the parameter/report title derives from and how to change it.

The parameter/report title is based on the Menu Item label which opens the report.  This makes perfect sense, although whenever I changed it, it didn’t seem to change when I ran the report.  It turns out, after looking into the code, that the report title/caption is stored in the usage data, and this must be cleared for the changes to take effect.

This also means when a change is made to the label on the menu item, all users will have to clear the usage data for this menu item.  Not sure how this will work in practice but I guess time will tell. 🙂

Adding a Dataset to an SSRS Report in AX7

Whilst playing with SSRS in Dynamics 365 for operations, I often came across the following “The query is not valid” error.

image

This often happened when I created a new query and then tried adding it as a dataset on my report.  A simple rebuild of your should fix this error.  If not, it may be worth looking in the event viewer for a more detailed error, as this one is not particularly useful. 🙂

SSRS Report Parameters in AX7

When writing SSRS reports in Dynamics 365 for Operations, there are 3 different ways of passing parameters to SSRS.

Dynamic Filter

If the Dynamics filters property is set to true on the report data set, the report includes a “Records to include” tab where the user can create their own query.

Transactions report paramet Transaction list

The default filters are taken from the ranges/group by/order by values on the query used for the data set in the report.

The user can also add their own ranges/group by/order by filters here.

Date Effective

The date effective filter is automatically added if

a)  the table is a date effective table

b)  one of the fields in the dataset list has a table relation which  is a date effective table

Report Parameters

When the query is dropped on to the dataset of the report, the parameters automatically appear in the dataset parameters and the report parameters.

If these filters appear on your report and you’re not sure why, you can look at the XML of the report and find the parameter.  This will tell you the related table and field which is triggering the date effective filters.

<AxReportDataSetField>
<Name>DeliveryPostalAddress_ValidFrom</Name>
<Alias>LogisticsPostalAddress.1.ValidFrom</Alias>
<Caption>@SYS190392</Caption>
<DataType>System.DateTime</DataType>
<DisplayWidth>Auto</DisplayWidth>
<UserDefined>false</UserDefined>
</AxReportDataSetField>

 Report Parameters

The parameters are based upon the ranges set in the query which is used to populate the data set.  Any ranges on the query will automatically be added to the data set parameters and the report parameters.  From the report parameters, you can set the parameter visibly, whether it can allow nulls and blanks and whether or not it can contain a multi-value parameter.

image

If you are using a Report Data Provider(RDP) as a data source, the parameters you define in Data Contract class will  bind to the data set.  This will de done automatically when you specify the RDP data source on the data set of the report.