You design a Business Intelligence (BI) solution by using SQL Server 2008. The solution will contain a total of 100 different reports created by using Report Definition Language (RDL).
Each report must meet the following requirements:
-Display a common set of calculations based on a parameter value.
-Provide a method for setting values on a report URL or in a subscription definition that are not exposed to a user.
-The business rules for all reports that determine the calculations change frequently.
You need to design a solution that meets the requirements. You need to perform this action by using the minimum amount of development and maintenance effort.
What should you do?
A.
Create hidden parameters in each report.
B.
Create internal parameters in each report.
C.
Implement the function in the <Code> element of each report.
D.
Implement the function in a custom assembly. Reference the assembly in each report.
Explanation:
Tip: "Report Definition Language … maintenance effort" = "custom assembly"http://msdn.microsoft.com/en-us/library/ms159238.aspx
Including References to Code from Custom Assemblies
To use custom assemblies in a report, you must first create the assembly, make it available to Report Designer, add a reference to the assembly in the report, and then use an expression in the report to refer to the methods contained in that assembly. When the report is deployed to the report server, you must also deploy the custom assembly to the report server.
To refer to custom code in an expression, you must call the member of a class within the assembly. How you do this depends on whether the method is static or instance-based. Static methods within a custom assembly are available globally within the report. You can access static methods in expressions by specifying the namespace, class, and method name. The following example calls the method ToGBP, which converts the value of the StandardCost value from dollar to pounds sterling:
Copy
=CurrencyConversion.DollarCurrencyConversion.ToGBP(Fields!StandardCost.Value)
Instance-based methods are available through a globally defined Code member. You access these by referring to the Code member, followed by the instance and method name. The following example calls the instance method ToEUR, which converts the value of StandardCost from dollar to euro:
Copy
=Code.m_myDollarCoversion.ToEUR(Fields!StandardCost.Value)
Note
In Report Designer, a custom assembly is loaded once and is not unloaded until you close Visual Studio. If you preview a report, make changes to a custom assembly used in the report, and then preview the report again, the changes will not appear in the second preview. To reload the assembly, close and reopen Visual Studio and then preview the report.