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

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

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

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

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

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
30.06.2020, 17:55
    #39974721
komrad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SSRS: параметр с набором
не совсем понятно, зачем 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
02.07.2020, 11:07
    #39975261
vadim245
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SSRS: параметр с набором
для работы фильтра по Вашему методу для указания e-mail мне нужн список уникальных адресов из всех имеющихся, поэтому датасет с дистинктом. ну а когда мы указали конкретный e-mail то по нему уже делается выборка из базы с логом почтовых нотификаций за определенный период времени с нужными полями для анализа ситуации, и для этого второй датасет
...
Рейтинг: 0 / 0
02.07.2020, 17:58
    #39975573
vadim245
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SSRS: параметр с набором
Спасибо, все в порядке: оказывается Параметры в перечне параметров можно двигать друг относительно друга вверх-вниз. В этом и было дело.
...
Рейтинг: 0 / 0
02.07.2020, 18:33
    #39975589
komrad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SSRS: параметр с набором
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
02.07.2020, 18:35
    #39975591
komrad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SSRS: параметр с набором
ну и сам отчет
...
Рейтинг: 0 / 0
Форумы / Отчетные системы [игнор отключен] [закрыт для гостей] / SSRS: параметр с набором / 9 сообщений из 9, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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