#reporting #rdlc #report
#отчетность #rdlc #Сообщить
Вопрос:
Я использую отчеты rdlc для отображения отчета, в отчете rdlc я установил гиперссылку для другого отчета, такого как:
="http://localhost:8080/ReportForms/RECRptAdvertisement.aspx?
reqid="amp;Fields!RequirementID.Value
Из приведенного выше URL моя гиперссылка отлично работает на localhost, но если я изменю ее на эту:
="~/RECRptAdvertisement.aspx?reqid="amp;Fields!RequirementID.Value
Это не работает. Итак, как мне настроить URL-адрес моей гиперссылки, чтобы он был работоспособен как на локальном хосте, так и на сервере.
Ответ №1:
Вам нужно передать URL сервера в отчет в качестве параметра, тогда ваше выражение для текстового поля должно ссылаться на этот параметр локального отчета.
Добавьте новый параметр в свой отчет и установите его равным =Parameters!ReportParameterUrl.Value
При загрузке ReportViewer задайте правильный URL:
baseUrl = Request.Url.Scheme @"://" Request.Url.Authority Request.ApplicationPath.TrimEnd('/') '/';
ReportParameter rp = new ReportParameter("ReportParameterUrl", baseUrl);
this.rvMyReport.LocalReport.SetParameters(new ReportParameter[] { rp });
Наконец, выражения вашего текстового поля должны быть
=Parameters!ReportParameterUrl.Value "RECRptAdvertisement.aspx?reqid="amp;Fields!RequirementID.Value
Ответ №2:
Вы пытались передать значение URL вручную, чтобы проверить, ведет ли оно себя одинаково для URL локального хоста и именованного экземпляра? как насчет попытки также через IP?
что-то вроде…
="~/RECRptAdvertisement.aspx?reqid=20001298"