Skip to content
codeulike edited this page Sep 14, 2017 · 1 revision

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.

General settings

DefaultEmptyEquivalentValues

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.

IgnoreSsrsParameterDependencies

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)

Report specific settings

Defining settings for a report

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'

Path

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.

ReportHint

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.

IsFeatured

If this is true, then the report will be listed in the 'Featured Reports' section on the CrissCross homepage.

Report-Parameters specific settings

Defining settings for a Report-Parameter

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:

ParamName

As mentioned above, the ParamName maps the <CrcParamConfig> to the report parameter of the same name.

ShowByDefault

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)

EmptyEquivalentValues

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.

DependantParams

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.