I'm having an Inventory cube with a dimension of "DimForecast". Related report is created by SSRS report builder and published to sharepoint.
End user wants to have what-if analysis so that they could edit Forecast Value directly from user interface (currently, ssrs report) and see how it will influence inventory stock.
Also, once their browser's session is expired (e.g. refresh webpage), all data will be converted back to original ones, which are pulled from Data Warehouse to cube.
Is there any possible work around for this functionality? "Power view" can do similar job but it's only available in Excel. However, for this case we have to use report builder, which is designed neither to user-interaction nor to session-based processing.
The only possible input in the scenario you describe is a parameter e.g. "Forecast Value". You would need to code SSRS expressions to accept the "Forecast Value" parameter and use it in SSRS Expressions to derive the returned data on the report.
A default value of 0 for the "Forecast Value" parameter could be used to effectively "reset" the data back to the original values.
It seems to be stating the obvious, but SSRS in SharePoint seems a really poor choice for a "what if analysis" requirement.
Related
I am interested in learning how to optimize my Action Property of an object in my SSRS Report.
All of the linked reports use the same Data Source. So, should I put the Data Source in the Shared folder and have all the report projects in the same solution?
The Action properties for the object have the options under "Enable as an action":
Go to report
Go to bookmark
Go to URL
The option for "Go to URL" works for the main report that is sent as an email alert subscription, but, as for the other reports that launch in a browser, I wonder if the option "go to report" will be a better choice? Would it be, and how would that be set?
Well, this answers part of my question:
The Go to report action is mostly used to go to a subreport, where you hand over a parameter or a value. If you dont pass any of these Go to URL would be the better choice.
How you handle your datasets depends on your setup. If your reports load fast and the datasets also, dont bother with shared datasets. Just load the same dataset again.
You can also insert a sever between your database and the report server which caches all the datasets. So you just load your dataset once in the morning and the reports use the cached one.
Good day,
I am new to dynamics AX and I need to modify a report which is ReturnAcknowledgmentAndDocumentReport. I found the report design under AOT > Visual Studio Projects > Dynamics AX Model Projects.
I opened this in visual studio and I saw that the report data set used is ReturnAcknowledgmentAndDocumentDS. Now I am unable to find this data set under AOT > Data Sets.
Currently I am under the usr layer. I haven't configured my environment to use the cus layer yet and I don't know if this affects the objects visible in the AOT.
My main goal is to add the item batch number and expiration date on the return order print out. Since the data set doesn't seem to contain the fields I need, I plan to modify this.
Please let me know how to modify this data set. TIA.
If you are new to Dynamics AX, you should take a look at some training, e.g. the development I - IV series. Part IV includes an introduction to reporting. To start with the modification of a standard report without this training is ... challenging.
Although identical in name, the data sets in SSRS reports and the data sets in the AOT are used for different purposes and have nothing in common.
The layer does not affect visibility of objects in the AOT.
The ReturnAcknowledgmentAndDocumentReport uses a data provider class for its data set, so to reach your goal you would have to modify class ReturnAcknowledgmentAndDocumentDP and the corresponding ReturnAcknowledgmentAndDocumentTmp table.
Further reading:
Walkthrough: Customizing Existing Microsoft Dynamics AX Reports
How to: Define a Report Dataset
How to: Use a Report Data Provider Class in a Report
Assuming a fairly conventional SSRS 2012 report (in Visual Studio 2012) with a main report, a set of sub-reports, a shared dataset that is populated at the start of the report, and a shared datasource.
Is there any simple way within a sub-report's custom code (this is VBA, right?) to access the shared dataset, either to read or update records locally? (No updates back to the database itself.) I'm seeing hints out there that this is possible but no clear examples yet.
And if the above is possible, assuming that a call in the sub-report changed a record in the shared dataset, could that record change be displayed in the main report body?
Yes and No.
I think the overall concept would work but a few points won't.
I don't think you'd be able to use the report dataset with VBA. The code won't have access to the report's datasource directly. You'd probably need to use ADO to access the db from VB.
The only way to see the updated data would be to refresh the report - either manually or automatically on the timer.
I don't see how the subreport is going to figure out what to update the value to. You might have some idea that I'm not seeing right now.
The easier way I see this working would be to use parameters that default to NULL. Then select the row to update with one parameter and the value with another. Then have an UPDATE in your main query that only runs if your parameters are populated.
I have a main report and 30 subreports under that report. I don't want to see all of the subs every time I call the main report, I only want to see the subreports that were selected in the application.
How do I only show selected subreports?
The comment from Martin K. is correct if you're only concerned about the display of the sub-reports. You can set the visibility property via an expression meaning it can also be controlled by the result set or a parameter.
However, the real issue is that even though the sub-reports are hidden they are still run. This is because SSRS retrieves all of the data for the report before it finalizes the rendering. There are a number of good options discussed in this TechNet posting. But basically it boils down to two options:
Parameters & WHERE clause filtering
You can set a hidden parameter on the sub-reports and modify the WHERE clause so that the SQL will not actually return any rows when the parameter isn't set to true. This won't stop the report rendering actions but it will stop the SQL commands from having much of an effect on the server.
Just setup a parameter on your sub-report named #ShowSubreport and use filtering similar to the following
WHERE #ShowSubReport=1
Report Definition Customization Extensions (RDCE)
I haven't actually used these but it sounds quite handy, but it isn't exactly simple or easy. Report definition customization extensions allow you to programatically alter a report definition file on the fly. It takes an RDL as input and outputs an altered RDL stream. You can read more about it in the MSDN article : What's New in Report Server Programmability
Local Mode Reporting Services has limitations compared to remote Report Server version but it is needed for many scenarios with hosted SMBs since SQL Server 2012 Web Edition is much more cost effective for small companies and it only permits local mode reports.
However, if I want to use dynamic values from the web page (such as parameter values) I cannot reference them from the RDLC and therefore cannot access them. I can update the dataset that the Report returns by passing values to "ReportViewer1.LocalReport.SetParameters..." but these values aren't available in the report (they shape the data returned but are not in themselves available).
For example, if parameters included the date bounds of a query I could not get the "StartDate" parameter expressed as a heading via an expression. Of course, I can get the Date of the first record returned and show that via an expression, but I might have queried from June 1 and the first item might be dated June 3. My report would be better if I could label the query range "June 1" in my header. I could also nest the report in a web page and handle the labeling that way but then my PDF/Excel output would still be displeasing.
The only other thing that I can think of (that seems quite inelegant) is to add metadata tables to the project database to query for the express purpose of returning values to garnish the report.
Am I missing something?