none
Запрос ввода БД в Reporting Server RRS feed

  • Вопрос

  • Здравствуйте, возможно ли силами Reporting Server реализовать следущее:

    Пользователь запускает репорт, он его спрашивает имя БД или имя сервера, и после этого уже формирует отчет используя указанные данные.

    28 июня 2011 г. 12:37

Ответы

  • Skazimax, по посту с ответом, который Вы обнаружили, есть пример подключения Data Source-а через параметризованный Connection String. И в качестве параметра выступает сервер. Взгляните, это не то, что Вы ищите

    Expression-based Connection Strings


    Мнения, высказанные здесь, являются отражением моих личных взглядов, а не позиции корпорации Microsoft. Вся информация предоставляется "как есть" без каких-либо гарантий.
    • Предложено в качестве ответа Dmitry Davydov 5 июля 2011 г. 14:55
    • Помечено в качестве ответа Roman ZhukovModerator 7 июля 2011 г. 13:12
    • Снята пометка об ответе Skazimax 12 июля 2011 г. 10:08
    • Помечено в качестве ответа Dmitry Davydov 14 июля 2011 г. 7:35
    1 июля 2011 г. 14:23
  • Тут немного особый случай, имя и количество баз меняется, а системные базы мне проще исключить из списка, да и использовать я эти репорты буду для себя.

    В результате решил проблему таким образом:

    1. В Connection String в качестве параметра указывается только имя сервера, база данных указывается Master.

    2. Создал Dataset, который выдает список всех баз на сервере для параметра DB.Value

    3. В Dataset, который непосредственно используется для репорта, указал параметром базу данных, например:


    ="use [" & Parameters!DB.Value & "] select * from dbmember"

    • Помечено в качестве ответа Dmitry Davydov 14 июля 2011 г. 7:35
    13 июля 2011 г. 11:59

Все ответы

  • Нашел, что вроде можно ( http://social.technet.microsoft.com/Forums/en-US/sqlreportingservices/thread/c7952bd7-5b50-4e46-a3ae-ec9bf14d563e ), но только в пределах одного сервера, что странно.

    Может у кого был опыт создания подобных отчетов, поделитесь, спасибо!

    29 июня 2011 г. 12:28
  • Skazimax, по посту с ответом, который Вы обнаружили, есть пример подключения Data Source-а через параметризованный Connection String. И в качестве параметра выступает сервер. Взгляните, это не то, что Вы ищите

    Expression-based Connection Strings


    Мнения, высказанные здесь, являются отражением моих личных взглядов, а не позиции корпорации Microsoft. Вся информация предоставляется "как есть" без каких-либо гарантий.
    • Предложено в качестве ответа Dmitry Davydov 5 июля 2011 г. 14:55
    • Помечено в качестве ответа Roman ZhukovModerator 7 июля 2011 г. 13:12
    • Снята пометка об ответе Skazimax 12 июля 2011 г. 10:08
    • Помечено в качестве ответа Dmitry Davydov 14 июля 2011 г. 7:35
    1 июля 2011 г. 14:23
  • Возможно ли сделать так, чтобы выводился список имеющихся баз данных, перед формированием отчета.

    Т.е, сейчас Connection String выглядит так:

    ="data source=" & Parameters!ServerName.Value & ";initial catalog=" & Parameters!DB.Value & ""

    Параметр ServerName.Value  - задается вручную

    А значение DB.Value берется запросом из Dataset

    Но эти значения он взять не может, т.к. у него на этом этапе еще не задана Connection String.

    Можно ли это как-то обойти?

     

     

     

    12 июля 2011 г. 10:08
  • Skazimax, а Вы хотите видеть каскадные параметры? Т.е. выпадающий список с базами должен соответствовать выбранному ранее серверу? Подход с параметризованным подключением не даст Вам создать такой интерфейс и Вы сами уже объяснили почему.

    Не совсем ясно и желание доставать БД серверов в запросе? Уж системные базы точно не удовлетворяют Вашему отчету, да может быть и некоторые пользовательские, и вместо того, чтобы в запросе писать для них исключения, проще указать доступные базы в отчете статически. По-другому стоит, наверное, смотреть в сторону самописных сборок на .NET.


    Мнения, высказанные здесь, являются отражением моих личных взглядов, а не позиции корпорации Microsoft. Вся информация предоставляется "как есть" без каких-либо гарантий.
    12 июля 2011 г. 14:12
  • Тут немного особый случай, имя и количество баз меняется, а системные базы мне проще исключить из списка, да и использовать я эти репорты буду для себя.

    В результате решил проблему таким образом:

    1. В Connection String в качестве параметра указывается только имя сервера, база данных указывается Master.

    2. Создал Dataset, который выдает список всех баз на сервере для параметра DB.Value

    3. В Dataset, который непосредственно используется для репорта, указал параметром базу данных, например:


    ="use [" & Parameters!DB.Value & "] select * from dbmember"

    • Помечено в качестве ответа Dmitry Davydov 14 июля 2011 г. 7:35
    13 июля 2011 г. 11:59