powered by simpleCommunicator - 2.0.34     © 2025 Programmizd 02
Форумы / Отчетные системы [игнор отключен] [закрыт для гостей] / SSRS: параметр с набором
9 сообщений из 9, страница 1 из 1
SSRS: параметр с набором
    #39974176
vadim245
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть лог рассылки уведомлений пользователям некоей системы.
Пользователь идентифицируется по E-mail.
Пользователей несколько тысяч.

Сделан отчет SSRS
В нем 3 параметра для интерактивности - @addressee @FromDate @ToDate
Пользователь отчета выбирает из выпадающего списка получателя по которому нужно увидеть лог рассылок
Пользователь выбирает период.

Поскольку пользователь может точно не знать E-mail, то реализована возможность выбора
Дополнительный датасет получает уникальный список всех E-mail из запроса через Select Distinct
Параметр @addressee получает значения из данного датасета.

Все здорово только не удобно скроллить 3000 адресов (хотя они и order by)
Хочется дать возможность пользователю начать набирать первые несколько букв, чтобы выдача в фильтре сокращалась.
...
Рейтинг: 0 / 0
SSRS: параметр с набором
    #39974186
Фотография komrad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
SSRS: параметр с набором
    #39974384
vadim245
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо за ссылку. Я видел Ваш пример. Надеялся - может все же есть какие-то встроенные механизмы у современного SSRS для реализации быстрого поиска по выпадающему для выбора списку.
...
Рейтинг: 0 / 0
SSRS: параметр с набором
    #39974554
vadim245
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость

Пробую Вашим способом. Пока имею ошибку:

The report parameter ‘addressee’ has a DefaultValue or a ValidValue that depends on the report parameter “Letters”. Forward dependencies are not valid.

Собственно не понятно, как дальше быть.

Вот что делал:


1. Создаю параметр @Letters В нем ничего не настраиваю - все по умолчанию.

2. Есть DataSet1 с запросом

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
SELECT TOP (1000) m.[ID_MESSAGE]
,[TO_OUTER]
,[SEND_DATE_MSG]
,[STATUS_MSG]
,[SUBJECT_MAIL]
FROM [base_01.messaging].[dbo].[MG_MESSAGE] AS m
join [base_01.messaging].[dbo].[MG_OUTER_ACCEPTOR] AS a on m.ID_MESSAGE=a.ID_MESSAGE
where [TO_OUTER]=@addressee
and [SEND_DATE_MSG] between @FromDate and @ToDate
order by 1 desc



[TO_OUTER] как раз содержит e-mail пользователей и мы используем тут параметр @addressee для отбора записей по указанному пользователем отчета в интерактивном режиме e-mail.


3. Есть DataSet2 для получения списка уникальных e-mail

Код: sql
1.
2.
3.
4.
5.
SELECT distinct[TO_OUTER]
FROM [base_01.messaging].[dbo].[MG_MESSAGE] AS m
join [base_01.messaging].[dbo].[MG_OUTER_ACCEPTOR] AS a on m.ID_MESSAGE=a.ID_MESSAGE
Where [TO_OUTER] like @nn+'%'
order by [TO_OUTER] asc



Тут как я понял в запросе возникает некий локальный параметр @nn, которому нужно отдать значение из @Letters
Собственно это я и делаю - В свойствах этого датасета в закладке Parameters прописываю Parameter Name = @nn и в Parameter Value = @Letters

И этот момент работает исправно - достаточно тут же пойти в QueryDesigner и нажать на "!" - появляется окно для ввода текста и отфильтровываются именно нужные e-mail по первым введенным буквам

4. В параметре @addressee прописано
- доступные значения брать из DataSet2 из единственного поля

Больше ничего для настроек нигде не увидел. Но при запуске или попытке сохранения имеем ошибку.
Не понимаю, что сделано не так.
...
Рейтинг: 0 / 0
SSRS: параметр с набором
    #39974721
Фотография komrad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не совсем понятно, зачем 2 датасета

разве одного не достаточно?

типа такого
Код: sql
1.
2.
3.
4.
5.
SELECT distinct[TO_OUTER]
FROM [base_01.messaging].[dbo].[MG_MESSAGE] AS m
join [base_01.messaging].[dbo].[MG_OUTER_ACCEPTOR] AS a on m.ID_MESSAGE=a.ID_MESSAGE
Where [TO_OUTER] like '%'+@nn+'%'
and [SEND_DATE_MSG] between @FromDate and @ToDate

...
Рейтинг: 0 / 0
SSRS: параметр с набором
    #39975261
vadim245
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
для работы фильтра по Вашему методу для указания e-mail мне нужн список уникальных адресов из всех имеющихся, поэтому датасет с дистинктом. ну а когда мы указали конкретный e-mail то по нему уже делается выборка из базы с логом почтовых нотификаций за определенный период времени с нужными полями для анализа ситуации, и для этого второй датасет
...
Рейтинг: 0 / 0
SSRS: параметр с набором
    #39975573
vadim245
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо, все в порядке: оказывается Параметры в перечне параметров можно двигать друг относительно друга вверх-вниз. В этом и было дело.
...
Рейтинг: 0 / 0
SSRS: параметр с набором
    #39975589
Фотография komrad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vadim245,

вот что получилось навскидку :

создание объектов и заполнение данных
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
create table tbl_emails (eml_id int identity, eml_name varchar(50))
go

insert into tbl_emails (eml_name)
select 'abv@gmail.com' union all 
select 'abc@gmail.com' union all 
select 'acc@gmail.com' union all 
select 'dfg@gmail.com' union all 
select 'mkr@gmail.com' union all 
select 'ptb@gmail.com' union all 
select 'all@gmail.com' union all 
select 'mnr@gmail.com' union all 
select 'ppt@gmail.com' union all 
select 'ddy@gmail.com' union all 
select 'diy@gmail.com' 

create table tbl_sendlog (send_id int identity, eml_id int, snt smalldatetime, status_msg varchar(20),subj_mail varchar(20)) 
go
insert into tbl_sendlog (eml_id,snt,status_msg,subj_mail)
select 1,'20200104 12:00','sent','win a prise!' union all
select 1,'20200104 13:00','sent','win a car' union all
select 1,'20200104 14:00','sent','win a trip!' union all
select 2,'20200104 11:00','sent','find a link!' union all
select 2,'20200105 10:15','sent','empty subj' union all
select 2,'20200106 13:10','sent','reset password' union all
select 3,'20200104 12:01','sent','buy new car' union all
select 4,'20200105 11:05','sent','buy new house!' union all
select 5,'20200107 17:30','sent','you''re fired' union all
select 6,'20200103 12:00','sent','win a prise!' union all
select 7,'20200104 11:44','sent','low price!' union all
select 8,'20200106 15:10','sent','win a win!' union all
select 9,'20200107 11:03','sent','win a phone!' union all
select 10,'20200102 10:50','sent','make a prise!' union all
select 6,'20200102 12:01','sent','make love!' union all
select 7,'20200107 12:15','sent','win a prise1!' union all
select 8,'20200108 13:00','sent','win a prise2!' union all
select 9,'20200109 12:30','sent','win a prise3!' union all
select 10,'20200104 16:00','sent','win a prise4!' union all
select 11,'20200105 15:00','sent','win a prise5!' union all
select 6,'20200106 11:00','sent','win a prise6!'
go

...
Рейтинг: 0 / 0
SSRS: параметр с набором
    #39975591
Фотография komrad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну и сам отчет
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Отчетные системы [игнор отключен] [закрыт для гостей] / SSRS: параметр с набором
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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