2016-01-21 1 views
0

Я знаю, что на этот вопрос должен быть простой ответ, но я не могу его найти.Как я могу получить значения в Матрице в моем отчете SSRS, чтобы повторить?

Я добавил несколько текстовых полей в матрицу в отчете BIDS/SSRS. Я дал эти значения текстовых полей, например:

=Fields!WEEK1USAGE.Value 

Работает (после моды); когда я запускаю отчет (либо на вкладке «Предварительный просмотр», либо на сайте «Сервер отчетов»), я вижу первое соответствующее значение данных в отчете, но только одно.

Я бы подумал, что после того, как значение было присвоено выражениями, такими как «= Поля! WEEK1USAGE.Value», каждое значение будет отображаться (строки будут автоматически добавлены).

Должно быть какое-то свойство в Матрице или текстовом поле, которое указало это, но я не вижу, что это может быть.

Вот как мой отчет выглядит (очень минималистичный, до сих пор) в панели Layout:

enter image description here

... и после запуска, на вкладке Предварительный просмотр:

enter image description here

Очевидно, что я хочу, чтобы в отчете отображалось столько строк, сколько необходимо, а не только один. Текстовые поля имеют свойство «RepeatWith», но описание не кажется интересным/полезным/перспективным.

Я не вижу никаких свойств в элементе управления Matrix, который выглядит правильно.

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

Так что мне нужно сделать, чтобы получить все данные предоставленные поля?

+1

Вы удалили группу «Сведения» в группах строк? –

+0

Не специально; Я не знаю, как это сделать, поэтому, если бы я это сделал, это был несчастный случай. –

+0

Это очевидное предложение, но проверьте запрос набора данных, чтобы увидеть, возвращается ли больше одной строки с передаваемыми значениями параметров (если они есть). Также может быть полезно изображение всей вашей матрицы в режиме проектирования. –

ответ

1

Матрицы предназначены для отображения сгруппированных данных и итоговой информации, как правило, в формате горизонтального разворота по горизонтали. Является ли матрица тем, чем вы занимаетесь? Глядя на ваше выражение, у вас есть =Fields!Week1Usage.Value, но в матрице я ожидаю увидеть не менее =Sum(Fields!Week1Usage.Value) или даже лучше всего =Sum(Fields!Usage.Value). Тогда у вас будет ProactDescription в качестве вашей группы строк и недели в качестве вашей группы столбцов, и все это будет просто выстраивать все для вас, группировать и суммировать с помощью Proact по вертикали и расширяя недели по горизонтали.

Что-то похожее на то, что у вас нет группировки по строкам или столбцам и нет агрегации, поэтому она возвращается к дисплею по умолчанию, который фактически является функцией First - он отображает первую строку данных, и насколько это возможно матрица обеспокоена тем, что она выполнила свою работу, потому что нет группировки.

Не зная вашей проблемы или данных, я создам сценарий, который может быть тем, что вы делаете, и обсудите, как матрица делает тяжелый подъем, чтобы решить эту проблему. Допустим, у вас есть данные об использовании для нескольких Proacts. Каждый раз, когда вы используете, вы записываете количество использования и дату и время его использования. Его можно использовать несколько раз в день, но, конечно, несколько раз в неделю.Таким образом, вы можете быть в состоянии получить время используется каждый Proact из таблицы, как так:

SELECT ProactDescription, TimeUsed, Usage 
FROM ProactUsage 
ORDER BY ProactDescription, TimeUsed 

В своем докладе вы хотите, чтобы показать общее еженедельное использование для каждого ProAct над несколькими неделями. Что-то вроде этого:

Proact    Week1 Week2 Week3 ... 
Description   Usage Usage Usage ... 
-------------------------------------------- 
Anise, Fennel 1 CT 20.00 22.50 16.35 ... 
St John's Wort  15.20 33.90 28.25 ... 
... 

и так далее. Используя набор данных, основанный на SQL выше, мы создаем матрицу и в свойствах группы строк группируем по =Fields!ProactDescription.Value, а в свойствах группы столбцов группируем по недельному выражению, например =DateDiff(DateInterval.Week, Fields!TimeUsed.Value, Today), а затем на пересечении строки и столбца ставим =Sum(Fields!Usage.Value). Чтобы отобразить заголовок столбца красиво положить выражение как

="Week " & DateDiff(DateInterval.Week, Fields!TimeUsed.Value, Today) 

Матрица автоматически делает все суммирование по неделям и продукта и расширяющейся недели горизонтально столько, сколько вы сообщаете. Для бонусных очков вы также можете суммировать в конце столбцов и строк, чтобы показать общее использование этого Proact для периода (итоговая строка) и общего использования всех Proacts на этой неделе (общее количество столбцов).

+0

Да, я считаю, что «Матрица» для меня не является «животным»; Мне просто нужна сетка для размещения результирующего набора из хранимой процедуры. Я тоже попробовал элемент управления Table, но он казался еще менее удобным для пользователя. Это не должно быть фантазией - просто данные, возвращенные из SP. Все необходимое суммирование уже сделано в СП. То, что оно возвращает, именно то, что мне нужно отобразить в отчете. –

+1

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

+0

Если бы только таблица была разработана кошками Delphi вместо группы гениальных гениев (не то, что кошки Delphi не были гениями, но они знали, как сделать вещи максимально легкими). –