SQL Server 2005 ReportingService 入门笔记 (二)

来源:互联网 发布:yunos电视直播软件 编辑:程序博客网 时间:2024/05/16 15:11

现在稍微搞复杂点,根据日期段查询。

在上一段的步骤6中,SQL语句修改为 select * from KiAccountBook where FeeTime >= @d1 and FeeTime < @d2
预览时发现自动多了2个输入框。我们切换到布局或数据Tab页,选 报表 - 报表参数。可以看到左边d1和d2,也就是我们在SQL里指定的参数。
选中d1,在右边的数据类型选DateTime,提示改成“起始日期”。d2也照此办理。再去看预览,发现有个日期选择控件可以用了。
当然也可以指定默认的初始值。比如,我们默认就查询当年的一月一号到下一年一月一号。很简单,选中d1,在“默认值”选项下选择“无查询”,并且在文本框内输入 =CDate((CStr(Year(Now)) + "-01-01"))。会VB的是不是已经在偷着乐了?
同样,d2的默认值设置为 =CDate((CStr(Year(Now) + 1) + "-01-01"))。现在再预览,两个参数齐全就自动生成报表了。

==============

再稍微搞复杂点。我们还要求能根据每笔记账的类型查询。

有了刚才的经验,不难想到先改SQL语句,select * from KiAccountBook where FeeTime >= @d1 and FeeTime < @d2 and FeeType = @FeeType
同样的,为FeeType参数设定显示的名称和类型。这里有个问题,类型其实很固定的,假设目前暂时只有收入和支出。是不是可以做个下拉框呢,省得每次都得打中文。
当然可以。选中FeeType参数,在“可用值”栏目下选中“无查询”,在标签-值列表中第一行都填“收入”,第二行都填“支出”。事实上标签是给人看的,可以任意填写,但值是给计算机看的,对应到SQL中就是给FeeType的值,所以不能乱填。

现在的功能是在指定时间范围内,要么查收入,要么查支出。那如果要求两者同时查呢?

注意到报表参数属性有个“多值”选项。勾上它,然后再去预览。现在可以多选了,不过一运行就报错。报错就对了,因为我们还要修改SQL。
select * from KiAccountBook where FeeTime >= @d1 and FeeTime < @d2 and FeeType IN (@FeeType)

==============

现在再提高要求。现在“收入”和“支出”是静态的,如果将来再来一种“记账”,难道还要打开BI设计器修改rdl吗?当然可以不必这么麻烦。

我们知道,选出所有可能的类型的SQL语句是 SELECT DISTINCT FeeType FROM KiAccountBook。我们先来做出这个数据集。
切换到“数据”Tab页,在数据集下拉列表中选择新建数据集。名称改为GetFeeType。同样可以按感叹号按钮测试运行。然后打开报表参数。
选中FeeType,在“可用值”栏目下选择“来自查询”。数据集选“GetFeeType”,值字段和标签字段都选“FeeType”。确定后预览,什么都有了。

==============

现在再给报表简单化点淡妆。

先制造这么个效果,背景色交替显示一行白一行灰。
切换到布局Tab页,整行选中详细信息,在属性中找到BackgroundColor,选择表达式,填入 =iif(RowNumber(Nothing) Mod 2, "White", "Beige")

 

 

原创粉丝点击