Как установить гиперссылку в rdlc как для локального хоста, так и для сервера?

#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"