1

我有一个基于ListSQL Server Reporting Services 中的控件的自由格式报告,基本上显示公司的地址:

Company Name
Address 1
Address 2
ZipCode City

但是,我的一些公司记录没有该Address2字段的值——在这种情况下,我想完全删除Textbox包含不存在Address2数据的行(即)——所以它应该看起来像:

Company Name
Address 1
ZipCode City

我可以很好地设置报告上的Hidden属性Textbox- 但是这只导致文本框被隐藏 - 并且一个空白行显示在Address2过去的位置......我想禁止那个空白行。如何?!?!

我不在 Tablix 或类似的东西中 - 它只是报告上的自由格式文本框。有没有机会让这个做我想做的事情而不需要付出巨大的努力?

4

3 回答 3

7

将所有字段放在一行中,并在每个字段之前检查是否需要换行。

例如:

[Name1]«Expr»[Name2]«Expr»[Name3]
[Street]
[City]

用表达式:

=Iif(Fields!Name2.Value="",Nothing,vbCRLF)
=Iif(Fields!Name3.Value="",Nothing,vbCRLF) 
于 2013-11-08T04:58:37.980 回答
3

嗯,它可以完成,有点,取决于你需要什么。这是一个巨大的努力吗?由您决定:

首先,我创建了一个数据集。

select company = 'A'
, add1 = 'Add 1 A'
, add2 = 'Add 2 A'
, zip = '90210'
union all
select company = 'B'
, add1 = 'Add 1 B'
, add2 = null
, add3 = '12345'

接下来,创建一个List并按Company对其进行分组。

在此处输入图像描述

在此列表中添加一个,其中包含每个字段的行。在每一行中添加一个Rectangle,然后添加一个带有字段详细信息的文本框。由于我们有一个Table我们可以根据表达式隐藏行,并且因为每行中有一个Rectangle我们可以根据需要移动Texbox

在此处输入图像描述

在第二个地址行中,根据表达式设置行可见性:

=IIf(IsNothing(Fields!add2.Value), true, false)

最后结果:

在此处输入图像描述

您可以根据需要移动字段。它并不完美而且有点繁琐,但至少这会给您带来更多的灵活性,并且可能会在它不是 100% 合适的情况下让您了解如何进行操作。

于 2013-02-05T13:25:31.177 回答
0

只需将此表达式放在我的文本框中。(允许您在同一文本框中包含之前和之后的所有其他地址字段。)超级简单!

=iif(Fields!Street2.Value 什么都不是,Fields!Street1.Value, Fields!Street1.Value + vbCRLF + Fields!Street2.Value)

于 2013-09-30T23:13:39.250 回答