Последовательно установить номер строки в матричной таблице в отчете SSRS

У меня есть отчет SSRS, который состоит из матричной таблицы. Эта матрица имеет группу строк с именем ItemId1. Я хочу добавить номер строки к этой матрице. когда я добавляю выражение RowNumber (ничего), результаты будут следующими:

введите описание изображения здесь

когда я добавляю выражение RowNumber ("ItemId1"), отчет отображается следующим образом:

введите описание изображения здесь

Мне нужен только номер строки на основе строки, я имею в виду, что я ожидаю строку номер 2 вместо 7 (или 8)


person Nastaran Hakimi    schedule 09.07.2019    source источник


Ответы (2)


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

На самом деле это намного проще, чем кажется!

Вы можете использовать RunningValue, чтобы сделать именно это.

=RunningValue(Fields!ItemId.Value,CountDistinct, "DataSet1")

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

Вот результат созданного мной образца отчета. Первый столбец показывает результат, аналогичный вашему, когда используется RowNumnber. Во втором столбце используется метод RunningValue.

введите описание изображения здесь

person Alan Schofield    schedule 09.07.2019
comment
Спасибо, ваш ответ мне помог. - person Nastaran Hakimi; 09.07.2019
comment
Следует отметить, что столбец с номером строки должен находиться внутри группы. - person Nastaran Hakimi; 09.07.2019

введите описание изображения здесь

справа я сгруппировал по категориям, и вот как я это решил

=RunningValue(Fields!category.Value,CountDistinct, "DataSet1")

В вашем случае это будет

=RunningValue(Fields!ItemId.Value,CountDistinct, "DataSet1")
person AnkUser    schedule 09.07.2019
comment
Нет itemId1 - это группа строк в матрице, это не поле - person Nastaran Hakimi; 09.07.2019
comment
Да и как это меняет ответ? вы сгруппировали как строку с полем ItemId, и использование того же поля в функции runningValue даст вам желаемый результат. - person AnkUser; 09.07.2019
comment
Хорошо, теперь ваш отредактированный ответ верен, что совпадает с ответом, который @Alan Schofield предоставил до вас. - person Nastaran Hakimi; 09.07.2019
comment
Да, это была опечатка. Конечно, не беспокойтесь, Алан оказался быстрее :) - person AnkUser; 09.07.2019