Элемент управления ReportViewer не разрешает экспорт

1) У меня есть элемент управления ReportViewer на странице, связанной с ServerReport (я использую ASP.NET 2.0). Отчет отображается нормально, но ссылка «Экспорт» присутствует, но отключена, а раскрывающийся список «Выберите формат» (который обычно отображается при просмотре отчета в службах Reporting Services) отсутствует. Любые идеи? Свойство ShowExportControls имеет значение true.

2) Кроме того, когда я щелкаю значок печати в элементе управления ReportViewer, IE спрашивает меня, хочу ли я установить «Microsoft SQL Server». Я нажимаю «Установить», после чего появляется сообщение «Не удалось загрузить клиентское управление печатью». Я использую IE7 и Vista.


person Anthony    schedule 16.10.2008    source источник


Ответы (2)


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

Если этот элемент управления еще не установлен на клиентском компьютере, он загружается и устанавливается, если у вас достаточно прав. Итак, это управление правами.

Попробуйте войти в систему как администратор и попробуйте распечатать. Если все пойдет хорошо, вы можете выйти из системы, войти в систему как обычный пользователь и снова распечатать. У нас это сработало на XP + IE6 и XP + IE7. Наконец, мы использовали SCCM для установки элемента управления на все машины.

person Biri    schedule 16.10.2008

Спасибо, Бири. Я считаю, что часть 2, вероятно, связана с проблемой UAC / Admin в Vista.

Я нашел решение для части 1 - оно не идеально, но работает. Я обнаружил, что раскрывающийся список «Выберите формат» был виден в Firefox, но не в IE7. Я просмотрел исходный код и увидел, что DDL присутствует в HTML, но ширина была установлена ​​на 96% во встроенном стиле, и по какой-то причине это приводит к тому, что DDL не отображается!

Мне пришлось использовать немного Javascript на моей странице .aspx (после элемента управления ReportViewer):

<script type="text/javascript" language="javascript" >
    var elem = document.getElementById("ctl00_cphContentPlaceHolder_ReportViewer1_ctl01_ctl05_ctl00")

    if (elem) {
        elem.style.width = 160;
    }
</script>

N.B. Я использую главные страницы, а DDL находится глубоко внутри элемента управления ASP.NET, отсюда неприятная строка - вам придется самостоятельно найти идентификатор DDL в своем коде.

Надеюсь, это может кому-нибудь помочь!

person Anthony    schedule 16.10.2008