powered by simpleCommunicator - 2.0.39     © 2025 Programmizd 02
Форумы / Отчетные системы [игнор отключен] [закрыт для гостей] / использование двух датасетов в матрице, Reporting Services
9 сообщений из 9, страница 1 из 1
использование двух датасетов в матрице, Reporting Services
    #38381396
westsiderlviv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Прошу помощи, второй день сижу в Гугле

Есть таблица:
Счет, Отделение, Менеджер, СтатусКредита, Месяц
Нужно создать отчет, где показывается доля кредитов со статусом 1 в каждом месяце в разрезе отделение-менеджер. Плюс показать темп прироста в сравнении с предыдущим месяцем.
То есть
Отделение, Менеджер, Всего кредитов, КредитовСтатус1, КредитовСтатус1/Всего кредитов, (КредитовСтатус1/Всего кредитов(в августе)- КредитовСтатус1/Всего кредитов(в июле))/ КредитовСтатус1/Всего кредитов(в июле)
На каждый месяц отдельный рапорт.
Проблема в темпе прироста - нужны данные предыдущего месяца. Пробовал реализовать через два датасета с параметрами по месяцу, но выражение

=count(lookup(Fields!BranchName.Value+ Fields!Manager.Value, Fields!BranchName.Value+ Fields!Manager.Value, Fields!Moniker.Value, "DataSet2"))

не работает – выдает одинаковое количество.

Вопроса два – каким способом лучше решить задачу, и как правильно соединить два датасета, чтобы формула выше работала
...
Рейтинг: 0 / 0
использование двух датасетов в матрице, Reporting Services
    #38381817
Andrews25
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
westsiderlviv,

время позднее и я могу где-то ошибаться, но скорее всего не ошибаюсь :)

IMHO -два dataset-а ни к чему
достаточно одного


применяете тот же подход, что и в Вашей предыдущей теме - аккумулят с IF внутри
в dataset должны быть данные по обоим месяцам

очевидно, раз данные в разрезе ОТДЕЛЕНИЕ, МЕНЕДЖЕР - у вас группировка по этим полям
следовательно в Итогах по этой группе
COUNT(FIelds!Month.Value) - кол-во кредитов всего

=Count(IIF(Fields!Month.Value=7, Fields!Month.Value, 0)) - кол-во кредитов за июль

=Count(IIF(Fields!Month.Value=8, Fields!Month.Value, 0)) - кол-во кредитов за август


westsiderlviv=count(lookup(Fields!BranchName.Value+ Fields!Manager.Value, Fields!BranchName.Value+ Fields!Manager.Value, Fields!Moniker.Value, "DataSet2"))

не работает – выдает одинаковое количество.

выражение написано неправильно -
lookup(Fields!BranchName.Value+ Fields!Manager.Value, Fields!BranchName.Value+ Fields!Manager.Value, Fields!Moniker.Value, "DataSet2")
находит значение Fields!Moniker.Value bp dataset 2 - обозначим его через P
подставим в Ваше выражение ( все это делаем, чтобы визуально упростить выражение)
получим
COUNT(P)
Но поскольку (очевидно) это выражение стоит в таблице, которая связана с dataset1 - ТО COUNT идет по dataset1!
ну допустим Вы напишете так - COUNT(P, "Dataset2") тогда вы получите TOTAL count ( по всем отделениям и менеджерам) в dataset2

Ну и последнее - я бы не стала писать так lookup
потому что вообще-то для пар значений "AA" (отделение) + "BB"(менеджер)
и "A" (отделение) + "ABB" (менеджер) мы получим НЕИЗВЕСТНО ЧТО
потому что lookup работает так
Lookup does the following:
Evaluates the source expression in the current scope.
Evaluates the destination expression for each row of the specified dataset after filters have been applied, based on the collation of the specified dataset.
On the first match of source expression and destination expression , evaluates the result expression for that row in the dataset.
Returns the result expression value. ( http://technet.microsoft.com/en-us/library/ee210531.aspx)
и преназначена, конечно, для работы по ID
...
Рейтинг: 0 / 0
использование двух датасетов в матрице, Reporting Services
    #38382029
westsiderlviv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо за ответ!

По lookup - насколько понял, это всего лишь аналог ВПР в Excel`е?

По задаче - мне нужно делать такой рапорт по каждому месяцу с начала года ежемесячно. То есть нужно или 8 рапортов, или 8 раз менять Expression в матрице, или 8 матриц в одном рапорте.
Хотя, если возможно использовать параметры в выражениях, будет проще.
...
Рейтинг: 0 / 0
использование двух датасетов в матрице, Reporting Services
    #38382068
Andrews25
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
westsiderlviv,

авторПо lookup - насколько понял, это всего лишь аналог ВПР в Excel`е?
Похоже

авторХотя, если возможно использовать параметры в выражениях, будет проще.

Нет никакого сомнения - надо использовать параметры

И еще
если есть возможность - надо все делать в серверной процедуре - если есть доступ к серверу и возможность создавать и редактировать ХП
Если Вам не нужно показывать детали по каждому кредиту - и группировка по отделу/менеджеру является статической,
почему бы все данные не посчитать в ХП???
Гораздо быстрее будет
...
Рейтинг: 0 / 0
использование двух датасетов в матрице, Reporting Services
    #38382116
westsiderlviv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторпочему бы все данные не посчитать в ХП???

то есть без Reporting Services? можно, но зачем тогда SS RS?
...
Рейтинг: 0 / 0
использование двух датасетов в матрице, Reporting Services
    #38382137
Andrews25
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
westsiderlviv,

чтобы показать/экспортировать, что там посчиталось :)

А еще есть случаи, когда группировка динамическая - т.е. Вы не знаете по какому полю пользователь будет группировать (через парамаетр задается)
...
Рейтинг: 0 / 0
использование двух датасетов в матрице, Reporting Services
    #38382158
westsiderlviv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Andrews25, понятно.
скорость у меня сейчас не на первом месте, хочу освоить функционал SS RS :)
...
Рейтинг: 0 / 0
использование двух датасетов в матрице, Reporting Services
    #38384516
westsiderlviv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
изменил запрос, теперь все коєффициенты рассчитываются до попадания в SSRS
но, матрица не видит значения, следующее выражение возвращает нули
=IIF(Fields!firstschedulemonth.Value=Parameters!month.value and Fields!SUMQUAN.Value="Quantity" and Fields!Indicator.Value="All", Fields!Value.Value,0)



Приходится использовать агрегатор

=Sum(IIF(Fields!firstschedulemonth.Value=Parameters!month.value and Fields!SUMQUAN.Value="Quantity" and Fields!Indicator.Value="All", CInt(Fields!Value.Value),0))

Так все нормально, но, понятное дело, используется больше ресурсов.


Кто-нибудь знает, в чем дело?
...
Рейтинг: 0 / 0
использование двух датасетов в матрице, Reporting Services
    #38384938
Klick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
westsiderlviv,

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


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