2011-05-25 175 views
0

我正在尝试生成矩阵报告。我有一个SSN行和一个3位数的代码栏。 3位数字代码随机插入报告中的单元格中,每行一个。我想让他们全部显示在一列中。我试过...sql server 2008报告服务

=Iif(IsNothing(Fields!CODE.Value),"The Field Is Null",Fields!CODE.Value) 

但是,这只是显示“字段为空”。我想指出的显示为...

=Iif(IsNothing(Fields!CODE.Value),"",Fields!CODE.Value) 

但有空细胞本身排除。任何人都知道一个把这个关掉的伎俩?

的结果是这样的......

ssn   code 
123456789 123 
123456789 123 
and so on 

我的矩阵结构看起来像这样... enter image description here

,与EXP现在设置为= IIF(IsNothing(领域!ID5 .Value),“Field Is Null”,Fields!ID5.Value) 注意:ID5只是一个快速的命名约定。 ID5对应于代码。 ID2对应于SSN。

+0

您可以在添加报告时添加您的数据,以及关于要显示的内容的更多信息。你似乎说你想显示的代码,但然后说你不? – jimconstable 2011-05-25 23:43:09

+0

So Fields!CODE.Value可以:有一个值;有一个空的字符串值;是NULL?你想NULL和空字符串显示相同? – thomasswilliams 2011-05-26 04:00:22

+0

我其实希望空单元格消失嘿!我只是使用Iif命令作为起点。我确实想显示代码值,但是他们显示出来了。每行一个,大约有20个单元格中的一个。 – 2boolORNOT2bool 2011-05-26 14:45:03

回答

1

基本上,你想压缩几列到一个列,不包括空列?

也许最简单的方法是做它在查询:

SELECT SSN, IsNull(Code1, '') + IsNull(Code2, '') + IsNull(Code3, '') AS Code 
FROM MyTable 

另外,这样做在Reporting Services中的表达式:

=IIF(IsNothing(Fields!Code1.Value), "", Fields!Code1.Value) + IIF(IsNothing(Fields!Code2.Value), "", Fields!Code2.Value) 

等等...

+0

我可以在构建报告的早期部分使用它,但是我在查询数据集后试图找到一个表达式来执行此操作。 – 2boolORNOT2bool 2011-05-26 14:51:14

+0

当然,除非你知道如何将它写成可接受的表达方式。我没有,但是我的技术水平很低! – 2boolORNOT2bool 2011-05-26 15:03:01

+0

只需使用IIF(IsNothing(...)如现在的答案中所述 – 2011-05-27 01:14:30