TL/DR バージョン: Reporting Services が正しい RDL を提供していません。
あなたの質問により、SSRS についてかなり前から抱いていた疑いをさらに調査するようになりました。レポート定義を展開 (またはダウンロード) するときに、レポート パラメーターがレポート開発者にとって予期しない方法で動作する可能性があります。以前に指摘した関連するシナリオの 1 つ:
- パラメータを使用してレポートを作成します。
- レポートを初めて展開します。
- レポート パラメータを何らかの方法で更新します。
- 同じレポートをもう一度展開します。
- 結果:パラメータ設定はサーバー上で正常に更新されません。
- レポート マネージャーからレポートを削除します。
- レポートをもう一度展開します (事実上、手順 2 と同じです)。
- 結果:レポート パラメータが正しく更新されます。
つまり、展開されたレポートのパラメーター設定を更新する場合は、最初にそれを削除してから展開するか、レポート マネージャーを介して直接設定を更新する必要があります。
質問に戻ります。あなたは何も見逃していません。これは、SSRSが(意図されているかどうかにかかわらず)動作しているようです。RDL スキーマには、次の(省略された) 部分があります。
<xsd:complexType name="ReportParameterType">
<xsd:choice minOccurs="1" maxOccurs="unbounded">
<xsd:element name="DataType">
<!-- abbreviated -->
</xsd:element>
<xsd:element name="Nullable" type="xsd:boolean" minOccurs="0"/>
<xsd:element name="DefaultValue" type="DefaultValueType" minOccurs="0"/>
<xsd:element name="AllowBlank" type="xsd:boolean" minOccurs="0"/>
<xsd:element name="Prompt" type="xsd:string" minOccurs="0"/>
<xsd:element name="ValidValues" type="ValidValuesType" minOccurs="0"/>
<xsd:element name="Hidden" type="xsd:boolean" minOccurs="0"/>
<xsd:element name="MultiValue" type="xsd:boolean" minOccurs="0"/>
<xsd:element name="UsedInQuery" minOccurs="0">
</xsd:choice>
<xsd:attribute name="Name" type="xsd:normalizedString" use="required"/>
</xsd:complexType>
したがって、ReportParameter には「非表示」要素が必要です。
(SSRS 2008 で) 調査結果を確認したところ、2 番目の質問に対する答えがあると思います: SSRS は実際に RDL の正しいバージョンを吐き出していません。非表示かどうかの要素を含む、パラメーターに関するさまざまなビットが欠落しています。
面白いことに、BIDS でレポートを変更してパラメーターを非表示に設定すると、RDLが変更され、<Hidden>true</Hidden>
要素が含まれます。