2015-08-20 3 views
0

Я использую построитель отчетов Microsoft SQL Server для перечисления некоторых производственных данных i table, в основном номеров деталей. Я хотел бы, чтобы он менял цвет заливки ячеек номеров деталей, основываясь на количестве в ячейке.Форматирование на основе последней цифры

Раньше мы использовали решение, используя mod10, чтобы покрасить его, основываясь на последней цифре. Это приведет к повторению для каждого десятого номера детали, но это нормально. Однако теперь мы начали новую серию, а это значит, что мне нужно иметь дело с номером 1-9. Очевидно, трюк mod10 здесь не работает. Есть ли более умный способ получить последнюю цифру, которая также работает с номерами от 1 до 9, или мне нужно сделать какой-то оператор IIF?

Ее пример кода я использую, хотя и с mod5, а не mod10:

=Choose(1+ Fields!cPri_runnr.Value.Value Mod 5,"DarkOliveGreen","Olive","LimeGreen","Yellow","Khaki") 
+2

Не могли бы вы показать пример выражения, которое вы используете в настоящее время? Кроме того, почему 'num% 10' не работает с 1 - 9? Он просто вернет исходный номер (например, '5% 10' -' 0r5', поэтому вы получите '5'). –

+0

Добавлен пример. Однако с mod5, но идея такая же. – Noceo

+1

Я согласен с @Cory, неясно, к какой проблеме вы столкнулись * (как описано, '% 10', похоже, делает именно то, что вы просили.) * Пожалуйста, не могли бы вы дать некоторые примерные значения, с результатами, которые'% 5' и '% 10' дают вам, а также результаты, которые вы хотите. – MatBailie

ответ

0

Есть несколько вариантов здесь, если Mod достаточно вы можете использовать Choose, Switch или даже IIF. На мой взгляд, наилучшим решением было бы использовать Custom Code для хэш-номера детали (или даже взять несколько входов из строки деталей) и сразу вернуть цвет. Затем это можно было бы легко повторно использовать в нескольких разделах отчета (цвета диаграмм, дополнительные цвета ячейки, даже цвет текста ячейки).

+0

Я думаю, что для меня может быть уровень 2 :-). Для начала мне удалось сделать работу модуля. – Noceo