2011-10-02 70 views
1

让我声明......我是临时填补现场空缺的新手。使用SSRS的动态报告

问题:使用SSRS 2008年(已完成的产品应该是一个RDL文件,它可以被部署到SSRS服务器)由申请人完成网上申请开发一个应用总结报告。

一点点背景:申请人使用我们的网络应用程序填写在线申请,他填写必填和可选字段。应用程序总结报告作为其应用程序摘要提供给填写申请的申请人,并仅显示申请人填写的字段。

例子:

免得我们说约翰·史密斯住在
添加行1:123的任何街道
添加第2行:空
城市:广州市部分城区
状态:一些国家

和他的配偶珍史密斯住在
加1行:321任何其他街道
加行2 :公寓一
城市:广州市部分城区
状态:一些国家

所以在报告中,空场(添加2号线)不应该显示为约翰,但简显示。当我说不显示时,意思是应该隐藏字段标签,并且报告应该调整间距以在报告中不显示空白行。

我们有大约1000个这样的领域,可以或不能由申请人回答。所以报告应该是通用的,尽可能多地使用内置功能。


如果需要,包含键值对的字段和响应的Xml。这个Xml可以被创建,以便它可以包含所有字段和未答复的响应,为空或仅回答响应。我不确定这将如何帮助,但如果需要的话将它放在那里。

我已经做了简单的报告,但我不知道如何处理这种情况。任何帮助将是很大的帮助。

谢谢。

回答

0

这是非常简单的...

假设我们有一个报告,该报告是在使用矩形和文本框以表格的形式,

-------------------- 
|FIRST NAME : AAAA | 
|LAST NAME : BBBB | 
|PHONE: XXX-XXX-XXXX| 
-------------------- 

使用下面的表达式来控制控件的可见性你想隐藏

=IsNothing(First(Fields!WorkPhoneNumber.Value, "DataSet1")) 

确保所有的控件具有相同的高度和宽度。我只用2个控件(标签文本框和值文本框)创建了一行,并使用上面表达式中所述的值文本框的值设置了它们的可见性。

由于该行只有两个控件隐藏将自动调整布局,因为我希望。

2

我有类似的情况,并最终在文本框中使用这种方法。以你上面的例子,你有这样的设置为文本中的领域,从数据集[]是字段:

Name: [first_name] [m_name] [last_name] 
Add Line 1: [address_1] 
[expression]City: [city_name] 
State: [state_name] 
Zip: [zip_code] 

注意,表达和城市之间有没有空间。什么情况是,该市将成为其当前行的时候[address_2]为空并移动到下一行,当有2行地址,使用这个表达式:

=IIF(IsNothing(Fields!address_2.Value), "", 
“Add Line 2: “ & Fields!address_2.Value & VbCrLF) 

当IFF是真实的,[address_2 ]为空表达式将写入“”(Nothing)并且[city_name]将保持在同一行上。当IFF为假并且存在[address_2]时,标签“Add Line 2”将与[address_2]的值一起写入,[city_name]将通过“VbCrLf”移至下一行。一个处理,如果[地址-2]长度为0或几个空格的字符串更鲁棒的方法是这样的表达式:

=IIF(IsNothing(Fields!address_2.Value) OR Len(Trim(Fields!address_2.Value)) < 1, "", 
“Add Line 2: “ & Fields!address_2.Value & VbCrLF) 

这将停止奇怪双空间时的字段是空的,但不为空;一些类似的炒锅很适合中等名字。希望这对你或其他读这篇文章的人有帮助。