Модифицированный отчет Reporting Services - RDL не изменяется?

У меня есть отчет Reporting Services 2005 с ошибкой: «Параметр UserID доступен только для чтения». Проведя некоторые исследования, я нашел решение, которое сработало. Я открыл отчет из веб-интерфейса диспетчера отчетов и изменил это:

..к этому:

После этого изменения отчет работает! Большой!

Итак, я полагаю, что я скачаю измененный RDL, чтобы я мог увидеть это изменение и получить исправленный RDL в мой репозиторий исходного кода. Итак, я загружаю RDL:

Но мои инструменты сравнения говорят мне, что версия RDL «до» идентична версии «после» RDL. Убедившись в том, что мой инструмент сравнения ошибался, я попробовал другой. Конечно же, в RDL нет никакой разницы.

Что мне не хватает? Отражено ли изменение где-то, кроме RDL, или службы Reporting Services не выкашивают правильную версию RDL? В любом случае, как я могу получить правильную версию RDL?

Спасибо.

 Jeroen15 окт. 2012 г., 19:44
В вашем вопросе упоминается ssrs-2005, но вы отметили его ssrs-2008? В любом случае, я видел такое поведение в обеих версиях, я думаю (но в 2008 году точно).
 Jamie F15 окт. 2012 г., 21:07
SSRS, сервер, очень хорош в том, чтобы не изменять .rdl. Файлы RDL изменяются с помощью BIDS, а не сервером. Даже при обновлении с 2005 до 2008 года файлы .rdl не изменяются, и вы все равно можете получить исходный (2005) .rdl из SSRS.

Ответы на вопрос(1)

Решение Вопроса

Версия TL / DR: Службы отчетностине давая вам правильный RDL.

Ваш вопрос побудил меня продолжить расследование подозрения, которое у меня уже было в SSRS в течение довольно долгого времени:Параметры отчета могут вести себя непредсказуемым образом для разработчиков отчетов при развертывании (или загрузке) определений отчетов., Один связанный сценарий, который я отметил ранее:

Создать отчет с параметрами.Разверните отчет в первый раз.Обновите параметры отчета каким-либо образом.Разверните тот же отчет еще раз.Результат: настройки параметровне успешно обновлен на сервере.Удалить отчет из диспетчера отчетов.Разверните отчет еще раз (фактически так же, как в шаге 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) и думаю, что у меня может быть ответ на ваш второй вопрос:SSRS действительноне выкашливая правильную версию RDL, В нем отсутствуют различные сведения о параметрах, в том числе элемент скрытия или нет.

Самое смешное: если вы измените отчет в BIDS и установите параметр скрытый, RDLбудем быть изменены и иметь<Hidden>true</Hidden> элемент.

 Jeroen15 окт. 2012 г., 21:07
@JamieF Хмм, хорошая мысль. Тем не менее это было неожиданное ("вонючее") поведение для меня; Я ожидаю (ed) ReportParameter, чтобы быть частью определения отчета, не в последнюю очередь потому, что онявляется фактически в файле RDL при создании / редактировании отчета в BIDS. Я обновлю свой ответ и заменю слово "wonky" на что-то более семантическое :-)
 Jamie F15 окт. 2012 г., 20:52
Я, соответственно, не согласен с этим «вонючим». RDL - это определение отчета. Значения параметров не обязательно являются частью определения отчета. .Rdl дает начальные значения по умолчанию, но после этого они сохраняются до SSRS. Это имеет большой смысл, когда вы думаете о пользователе, который настраивает несколько подписок для отчета с различными параметрами. Если RDL будет обновлен, он продолжит использовать параметры пользователя для этих подписок.

Ваш ответ на вопрос