子报表参数和Reporting Services分组

时间:2011-09-25 16:00:44

标签: sql-server visual-studio-2010 reporting-services

首先,我将列出结构:

主报告是来自sql server的表变量,给出表单类型,表单 数字,上一个日期(隐藏),当前日期(隐藏,虽然父分组正在使用此),时间差异,人物ID(隐藏)和人的全名。主报告仅针对意外结果,并非某一天的所有数据。

subrepoort是基于整个项目(在给定日期)的各种表单类型的总计数,如果没有选择或按天过滤特定人员,则排除人员ID,如果有人,则为人员ID。子报表应该是给定日期的总计行(预期的父组),因为主报表是异常,总计是针对所有表单完成的。

我遇到了一些问题:

1)日期分组事物根据日期和时间分开。有没有办法为了分组而删除字段的时间组件?我现在正在看http://thavash.wordpress.com/category/reporting-services/page/3/,如果它不仅仅是一个视觉上的变化,那么FormatDateTime的东西可能会有用(即我不会有一堆9/25/11组)。

2)子报告接受人和日期的两个参数来生成列表。我想知道是否存在将参数传递到子报表的混合方式,因为日期参数基于父组(因此不确定它是否可以以编程方式设置)。可以通过获取表单上的下拉列表的键来实现人员值。唯一的问题是我不确定如何以编程方式告诉它采取personid,但只拉出父组的日期组件。

1 个答案:

答案 0 :(得分:2)

1) 使用类似=Format(Fields!MyDateField.Value,"dd/MM/yyyy")的内容将日期格式化为字符串。根据需要更改格式表达式。

要对群组进行正确排序,请使用=Format(Fields!MyDateField.Value,"yyyyMMdd")

2)  您可以将任何表达式作为参数传递给子报表,这意味着它们可以是组值,主报表参数等。

例如:如果您的日期参数位于名为“table1_Group1”的组上,并且您希望将其用于子报表,则可以使用引用该组的表达式,如=First(Fields!MyDateField.Value,"table1_Group1")