Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Отчетные системы [игнор отключен] [закрыт для гостей] / срочно >> Reporting Service: Каждому пользователю свои дынные / 15 сообщений из 15, страница 1 из 1
04.03.2007, 12:23
    #34369535
срочно >> Reporting Service: Каждому пользователю свои дынные
Доброго времени суток всем.

Задача:
Нужно предоставить пользователю возможность просматривать отчеты посредством Reporting Service на основании "индивидуальных данных". Что это значит. В базе имеются таблицы с данными и в некоторых из них существуют данные, которые различны для каждого пользователя (в этих таблицах существует поле userID)

Проблема:
Когда я нахожусь в своем приложении (ASP.NET) то я знаю с каким пользователем я имею дело, но как только я отдаю управления построителю отчетов Reporting Service (через url), то эта информация теряется. Как мне сделать так, чтобы Reoirting Service строил отчеты на основании данных с учетом текущего пользователя?


Зарание спасибо.
...
Рейтинг: 0 / 0
04.03.2007, 13:38
    #34369589
AAron
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
срочно >> Reporting Service: Каждому пользователю свои дынные
вопрос не совсем в этот форум, имхо.
используется Windows-аутентификация? Если да, то надо разобраться, почему теряется пользователь при передаче запроса отчету. Если какая-то собственная, зависит от реализации. Опять же, скорее всего в форум по отчетным системам
...
Рейтинг: 0 / 0
04.03.2007, 13:50
    #34369598
Александр Волок (def1983)
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
срочно >> Reporting Service: Каждому пользователю свои дынные
Создайте Report parameter , например, @userName , установите для него свойство Hidden и в Default values укажите
Код: plaintext
=User!UserID

Затем, формируйте датасет на основании параметра @userName:
Код: plaintext
select field1, field2 from parameters where userID = @userName...
...
Рейтинг: 0 / 0
04.03.2007, 20:12
    #34369855
срочно >> Reporting Service: Каждому пользователю свои дынные
def1983Создайте Report parameter , например, @userName , установите для него свойство Hidden и в Default values укажите
Код: plaintext
=User!UserID

Затем, формируйте датасет на основании параметра @userName:
Код: plaintext
select field1, field2 from parameters where userID = @userName...


Спасибо за открытие для меня свойства User!UserID, а есть ли что нить еще из этого?
Но вот небольшое НО. Это проперти выдает пользователя Windows, а мне этого не надо, у меня внутри системы свои пользователи и мне нужно, чтобы Reporting Service знал именно его. Или как то нужно обойти эту ситуацию, но как?
...
Рейтинг: 0 / 0
04.03.2007, 21:26
    #34369920
Александр Волок (def1983)
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
срочно >> Reporting Service: Каждому пользователю свои дынные
Тогда, как вариант (не совсем безопасный) передавайте @userid как часть URL
Например:

Код: plaintext
http://server/reportserver?/Sales/Northwest/Employee Sales Report&rs:Command=Render& userid=1234 

Подробно описано в BOL2005->Passing a Report Parameter Within a URL.
...
Рейтинг: 0 / 0
04.03.2007, 22:47
    #34369980
срочно >> Reporting Service: Каждому пользователю свои дынные
def1983Тогда, как вариант (не совсем безопасный) передавайте @userid как часть URL
Например:

Код: plaintext
http://server/reportserver?/Sales/Northwest/Employee Sales Report&rs:Command=Render& userid=1234 

Подробно описано в BOL2005->Passing a Report Parameter Within a URL.

Да, по это я раскопал, но это мне (после обдумывания) все же немного не подходит

Причина:
У меня есть хранимые процедуры которые принимают 2 параметра, один из которых это userID, Чтобы заставить Reporting Service работать с результатами выполнения этих хранимых процедур (точнее функций), я не чего не нашел, кроме как написать вьюшку, в которою запихать все возможные варианты, тоесть:
open cursor
fetch next from cursor into @userID;
while
begin ...
select @userID, * from my_function(@p1,@userID)
fetch next from cursor into @userID;
end
close cursor

и соответственно уже в репортинг сервисе накладывать фильтр на userID.

НО ЭТО ОЧЕНЬ ТРУДОЕМКО ПОЛУЧАЕТСЯ, так как мне нужно это сделать для обоих параметров, тоесть m*n селектов.

Подскажите, как это можно поэлегантнее???
...
Рейтинг: 0 / 0
05.03.2007, 10:08
    #34370446
срочно >> Reporting Service: Каждому пользователю свои дынные
Я работаю через Data Model
...
Рейтинг: 0 / 0
05.03.2007, 11:52
    #34370822
Александр Волок (def1983)
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
срочно >> Reporting Service: Каждому пользователю свои дынные
Aleksander V. Kalinin def1983Тогда, как вариант (не совсем безопасный) передавайте @userid как часть URL
Например:

Код: plaintext
http://server/reportserver?/Sales/Northwest/Employee Sales Report&rs:Command=Render& userid=1234 

Подробно описано в BOL2005->Passing a Report Parameter Within a URL.

Да, по это я раскопал, но это мне (после обдумывания) все же немного не подходит

Причина:
У меня есть хранимые процедуры которые принимают 2 параметра, один из которых это userID, Чтобы заставить Reporting Service работать с результатами выполнения этих хранимых процедур (точнее функций), я не чего не нашел, кроме как написать вьюшку, в которою запихать все возможные варианты, тоесть:
open cursor
fetch next from cursor into @userID;
while
begin ...
select @userID, * from my_function(@p1,@userID)
fetch next from cursor into @userID;
end
close cursor

и соответственно уже в репортинг сервисе накладывать фильтр на userID.

НО ЭТО ОЧЕНЬ ТРУДОЕМКО ПОЛУЧАЕТСЯ, так как мне нужно это сделать для обоих параметров, тоесть m*n селектов.

Подскажите, как это можно поэлегантнее???

Но Вы же получаете отчет через вебсервис (http://server/reportserver...)?
...
Рейтинг: 0 / 0
05.03.2007, 20:47
    #34372605
срочно >> Reporting Service: Каждому пользователю свои дынные
def1983 Aleksander V. Kalinin def1983Тогда, как вариант (не совсем безопасный) передавайте @userid как часть URL
Например:

Код: plaintext
http://server/reportserver?/Sales/Northwest/Employee Sales Report&rs:Command=Render& userid=1234 

Подробно описано в BOL2005->Passing a Report Parameter Within a URL.

Да, по это я раскопал, но это мне (после обдумывания) все же немного не подходит

Причина:
У меня есть хранимые процедуры которые принимают 2 параметра, один из которых это userID, Чтобы заставить Reporting Service работать с результатами выполнения этих хранимых процедур (точнее функций), я не чего не нашел, кроме как написать вьюшку, в которою запихать все возможные варианты, тоесть:
open cursor
fetch next from cursor into @userID;
while
begin ...
select @userID, * from my_function(@p1,@userID)
fetch next from cursor into @userID;
end
close cursor

и соответственно уже в репортинг сервисе накладывать фильтр на userID.

НО ЭТО ОЧЕНЬ ТРУДОЕМКО ПОЛУЧАЕТСЯ, так как мне нужно это сделать для обоих параметров, тоесть m*n селектов.

Подскажите, как это можно поэлегантнее???

Но Вы же получаете отчет через вебсервис (http://server/reportserver...)?

да, через него.
...
Рейтинг: 0 / 0
06.03.2007, 10:24
    #34373408
Александр Волок (def1983)
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
срочно >> Reporting Service: Каждому пользователю свои дынные
И что Вам мешает добавить в URL параметр @userID
и уже на основании этого параметра формировать dataset?
...
Рейтинг: 0 / 0
06.03.2007, 12:13
    #34373951
срочно >> Reporting Service: Каждому пользователю свои дынные
def1983И что Вам мешает добавить в URL параметр @userID
и уже на основании этого параметра формировать dataset?

то, что я использую Data Model, а как мне в Data Model использовать UDF с параметром @userID?
...
Рейтинг: 0 / 0
06.03.2007, 12:56
    #34374136
Александр Волок (def1983)
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
срочно >> Reporting Service: Каждому пользователю свои дынные
Aleksander V. Kalininто, что я использую Data Model, а как мне в Data Model использовать UDF с параметром @userID?
Все, понял.
Да, с data model так не выкрутится...
...
Рейтинг: 0 / 0
06.03.2007, 13:05
    #34374178
срочно >> Reporting Service: Каждому пользователю свои дынные
def1983 Aleksander V. Kalininто, что я использую Data Model, а как мне в Data Model использовать UDF с параметром @userID?
Все, понял.
Да, с data model так не выкрутится...

а можно что то в данной ситуации посоветовать? Может быть есть пути обхода данной ситуации или отказаться от Data Model, но нужно сохранить возможность "чайникам" накидывать отчеты. В общем как то это обойти?
...
Рейтинг: 0 / 0
06.03.2007, 13:47
    #34374399
Александр Волок (def1983)
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
срочно >> Reporting Service: Каждому пользователю свои дынные
Aleksander V. Kalinin
а можно что то в данной ситуации посоветовать? Может быть есть пути обхода данной ситуации или отказаться от Data Model, но нужно сохранить возможность "чайникам" накидывать отчеты. В общем как то это обойти?

Имхо, как вариант, создать готовый отчет в дизайнере, но максимально параметризировав его, для того чтобы пользователи на основании параметров могли его подгонять под свои нужды.
...
Рейтинг: 0 / 0
07.03.2007, 13:43
    #34377412
срочно >> Reporting Service: Каждому пользователю свои дынные
def1983 Aleksander V. Kalinin
а можно что то в данной ситуации посоветовать? Может быть есть пути обхода данной ситуации или отказаться от Data Model, но нужно сохранить возможность "чайникам" накидывать отчеты. В общем как то это обойти?

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

Это их не устроит. Они хотят сами вершить отчеты. )
...
Рейтинг: 0 / 0
Форумы / Отчетные системы [игнор отключен] [закрыт для гостей] / срочно >> Reporting Service: Каждому пользователю свои дынные / 15 сообщений из 15, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]