Добавить дополнительный параметр userId в ASP.Net ReportViewer - PullRequest
3 голосов
/ 05 апреля 2011

При использовании средства просмотра отчетов Asp.net в VS2010 в удаленном режиме нам нужно разрешить пользователю использовать элементы управления по умолчанию для средства просмотра отчетов для ввода параметров перед запуском отчета.

Поскольку необходимо установить разрешения для данных, у нас есть скрытый параметр UserId во всех отчетах, и планировалось разрешить пользователю вводить параметры как обычно, а затем мы добавили бы [программно] параметр userId перед отчет запущен.

Данные в отчете будут затем возвращать данные, которые пользователь имел разрешение на просмотр.

[Мы используем веб-сервис SSRS, чтобы заполнить древовидную структуру списком доступных отчетов для выбора пользователем.]

Полагаю, у меня проблемы с лучшим подходом для этого. Мне нужно передать значение параметра userId в ReportViewer, а не в отчет сервера.

Я знаю, что вы можете использовать веб-сервис для управления параметрами полностью за пределами элемента управления, но в данный момент это не вариант для нас.

Итак, в итоге:

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

Буду признателен за любую помощь, которую вы можете оказать.

Ли

1 Ответ

2 голосов
/ 06 апреля 2011

Нашел ответ, и он был достаточно прост после, и, возможно, не оправдал вопрос, но здесь, в случае, если кто-то работает на низкой скорости передачи данных, как я был вчера.

Добавить следующее событие в программу просмотра отчетов

onsubmittingparametervalues="Viewer_SubmittingParameters"

и в обработчике

    protected void Viewer_SubmittingParameters(object sender, ReportParametersEventArgs e)
    {
        Microsoft.Reporting.WebForms.ReportParameter userIdParameter =
            new Microsoft.Reporting.WebForms.ReportParameter();

        userIdParameter.Name = "UserId";
        userIdParameter.Values.Add(this.Username etc);

        // Add to existing parameters
        e.Parameters.Add(userIdParameter);
    }

Ли

...