2014-11-27 3 views
1

у меня есть отчет RDLC В этом отчете у меня есть поле, которое принимает значения этого выраженияПеребор полей в отчете RDLC

(Round(((First(Fields!Occurs.Value)/First(Fields!TotalDistance.Value))* 10000),2) 

, но в некоторых случаях (TotalDistance.Value) = 0, так что предыдущий выражение возвращает бесконечность, Так что мне нужно, чтобы получить следующую запись в случае этого поля равно 0, Если же следующее поле равно 0, я хочу, чтобы получить следующий один

Я искал способ получить следующую запись, но Бесполезный не найдено Я только нашел (первый, последний) метод, Как я могу это сделать?

ответ

2

вместо использования First или Last, если вам не нужна запись, если она не 0, тогда вы не могли бы использовать функцию агрегата. ex:

(Round(((First(Fields!Occurs.Value)/MAX(Fields!TotalDistance.Value))* 10000),2) 

Вы можете использовать Max, Min или Avg, чтобы получить значение. Я не знаю, каким образом в rdlc прокручивать записи, как вы просите.

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

+0

Я сделал, как вы предлагали, I Вычисляемые значения перед передачей их в отчет, Спасибо – AhdDbn