-
Notifications
You must be signed in to change notification settings - Fork 6
ExtraConfig
CrissCross is designed to work with minimal configuration, but if you want to give specific behaviour to specific reports, the ExtraConfig file is used to do that.
ExtraConfig.xml lives in the App_Data folder. The example file looks like this:
<?xml version="1.0" encoding="utf-8"?>
<CrcExtraConfiguration xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Version>2</Version>
<DefaultEmptyEquivalentValues>
<DefaultEmptyEquivalentValue></DefaultEmptyEquivalentValue>
<DefaultEmptyEquivalentValue>%%</DefaultEmptyEquivalentValue>
<DefaultEmptyEquivalentValue xsi:nil="true" />
</DefaultEmptyEquivalentValues>
<IgnoreSsrsParameterDependencies>true</IgnoreSsrsParameterDependencies>
<CrcReportConfigs>
<CrcReportConfig>
<Path>/Example Folder/Example Report</Path>
<ReportHint>Notes about the report</ReportHint>
<IsFeatured>true</IsFeatured>
<CrcParamConfigs>
<CrcParamConfig>
<ParamName>ExampleParam1</ParamName>
<ShowByDefault>true</ShowByDefault>
<DependantParams>
<DependantParam>ExampleParam2</DependantParam>
</DependantParams>
</CrcParamConfig>
<CrcParamConfig>
<ParamName>ExampleParam2</ParamName>
<ShowByDefault>true</ShowByDefault>
</CrcParamConfig>
</CrcParamConfigs>
</CrcReportConfig>
</CrcReportConfigs>
</CrcExtraConfiguration>
ExtraConfig contains some general settings, and some report-specific settings in the <CrcReportConfigs> section.
This contains one or more <DefaultEmptyEquivalentValue> tags that set up the default Empty Equivalent Values that CrissCross will use for all parameters accross all reports.
See Empty Equivalent Values for more details. Note also that Empty Equivalent Values can be defined per-parameter (see below)
In the example above, 'empty string', '%%' and NULL are defined as the default Empty Equivalent Values.
SSRS is unreliable when it comes to describing dependencies between report parameters. When <IgnoreSsrsParameterDependencies> is true. CrissCross will ignore what SSRS says about dependencies between parameters, and read it from ExtraConfig instead (see below)
The <CrcReportConfigs> section can contain one or many <CrcReportConfig> tags that define settings for a specific report. Reports are uniquely identified via the <Path> tag in <CrcReportConfig>.
So in the example above, there is just one <CrcReportConfig> tag, for the report with path '/Example Folder/Example Report'
As mentioned above, the Path tag is used to uniquely identify a <CrcReportConfig> entry and match it to an SSRS report, so make sure the Path is correct.
A report hint or report description that will be displayed at the top of the report page. If the report also has a description defined in the SSRS catalog then the ReportHint will be added to the end of it.
If this is true, then the report will be listed in the 'Featured Reports' section on the CrissCross homepage.
Within a <CrcReportConfig> there can be a <CrcParamConfigs> tag with one or more <CrcParamConfig> tags within it.
<CrcParamConfig> tags have a <ParamName> tag that maps the settings to the report parameter of the same name
<CrcParamConfig> can have the following:
As mentioned above, the ParamName maps the <CrcParamConfig> to the report parameter of the same name.
If this is set to true, then the parameter will always be shown to the user initially on the CrissCross report page (rather than them having to choose it from the 'choose a filter' drop-down)
This contains one or more <EmptyEquivalentValue> tags that set up the Empty Equivalent Values for the specific Report Parameter. See Empty Equivalent Values for more details.
As mentioned above, SSRS is not very reliable at describing the dependent parameters for a report, so that information can specifically be given to CrissCross here.
Note the direction of dependency: If changing Param A makes a difference to Param B, then we say Param B is a dependant of Param A, and we would list Param B as a 'DependantParam' for Param A.
So, the <DependantParams> tag can contain one or more <DependantParam> tags that give the names of the parameters that are dependent on the current parameter. In other words, they are the parameters that need to be refreshed when the current parameter changes.