【问题标题】:Formatting based on last digit基于最后一个数字的格式
【发布时间】:2015-08-20 12:17:10
【问题描述】:

我正在使用 Microsoft SQL Server Report Builder 在表格中列出一些生产数据,主要是零件编号。我希望它根据单元格中的数字更改部件号单元格的填充颜色。

之前我们一直在使用一种解决方案,使用mod10 对其进行着色,基于最后一位数字。这将导致每十个零件号重复一次,但这很好。然而我们现在已经开始了一个新的系列,这意味着我需要处理数字 1-9。显然,mod10 技巧在这里不起作用。有没有更聪明的方法来获取最后一位数字,它也适用于 1-9 的数字,还是我必须做出某种 IIF 声明?

她是我使用的代码示例,虽然使用的是mod5,而不是mod10

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

【问题讨论】:

  • 您能举例说明您当前使用的表达式吗?另外,为什么num % 10 不能在 1 - 9 上工作?它只会返回原始数字(例如,5 % 100r5,所以你会得到 5)。
  • 添加了一个例子。虽然是 mod5,但想法是一样的。
  • 我同意@Cory,目前还不清楚您面临什么问题(如上所述,% 10 似乎完全按照您的要求进行操作。)给出一些示例值,以及 % 5% 10 给你的结果,以及你想要的结果。
  • 你们说的都对,让我失望的不是模数函数。这是一个相当简单的错字,我在其中添加了两次 .Values(正如您在代码中看到的那样)。我只是不确定模数函数是如何起作用的,所以我责怪它。我的错,谢谢你的帮助:-)

标签: sql-server reporting-services rdlc modulus reportbuilder


【解决方案1】:

这里有几个选项,如果Mod 足够你可以使用ChooseSwitch,甚至IIF。在我看来,最好的解决方案是使用Custom Code 对零件编号进行散列(甚至从详细信息行中获取多个输入)并直接返回颜色。然后可以轻松地在报告的多个部分(图表颜色、其他单元格背景颜色,甚至单元格文本颜色)中重复使用它。

【讨论】:

  • 我认为这对我来说可能是 2 级 :-)。首先,我设法使模数起作用。
猜你喜欢
  • 1970-01-01
  • 2017-12-28
  • 2021-09-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-03-31
  • 2010-11-23
  • 2017-08-13
相关资源
最近更新 更多