report Services 添加按日期进行筛选的参数
2010-03-26 15:42
323 查看
文件来源:http://technet.microsoft.com/zh-cn/library/aa337401(SQL.90).aspx
新建日期: 2006 年 7 月 17 日
通过在报表查询中包含开始日期参数和结束日期参数,可以指定用来限定从数据源检索的数据所处的日期范围。您可以创建其他参数,以便对从数据源检索到的数据进行筛选。
在本课中,您将添加查询参数 @StartDate 和 @EndDate。您将看到系统会为您自动创建区分大小写的报表参数 StartDate 和EndDate(不带查询参数指示器 @)。注意,不同的数据访问接口使用不同的查询参数指示器。例如,Oracle 数据访问接口使用冒号 (:) 而不使用 @ 符号。
您将把这些参数的数据类型设置为 DateTime,并将看到工具栏中会显示一个带有参数文本框的日历控件。您还将设置这些参数的默认值,以便报表可以自动运行。最后,您将创建未绑定到查询参数的报表参数 DayofWeek,并使用该报表参数对从数据源检索到的数据进行筛选。
将日期参数添加至查询
在“数据”视图中,选择 AdventureWorks 数据集。
用以下查询替换现有的查询:
在本教程中,您将使用近似的日期时间值。
在工具栏上单击“运行”(!)。将打开“定义查询参数”对话框。
在“参数值”列中,为 @StartDate 输入值。例如,20010101。
在“参数值”列中,为 @EndDate 输入值。例如,20030101。
单击“确定”。系统会自动创建报表参数 StartDate 和 EndDate,并将数据类型默认设置为 String。在接下来的三个步骤中,将把这些参数设置为数据类型 DateTime。
在“报表”菜单中,单击“报表参数”。将打开“报表参数”对话框。
在“参数”列表框中,确保突出显示 StartDate。在“数据类型”下拉列表中,选择 DateTime。
在“参数”列表框中,选择 EndDate。在“数据类型”下拉列表中,选择 DateTime。
单击“确定”。
单击“预览”。StartDate 和 EndDate 参数将分别随一个日历控件显示在工具栏中。参数的数据类型是 DateTime 并且未定义可用值列表时,日历控件便会自动显示。定义可用值列表将创建一个值下拉列表,而不是日历控件。
在本教程中,您将为参数输入值,而并不使用日历控件。
在 StartDate 参数文本框中,输入日期 2001-01-01。
在 EndDate 参数文本框中,输入日期 2003-01-01。
单击“查看报表”。报表将仅显示位于报表参数值范围中的数据记录。
为报表创建查询参数后,可以为这些参数添加默认值。默认参数可以让报表自动运行;否则,用户必须输入参数值,报表才能运行。
为日期参数设置默认值
在“布局”视图中,单击“报表”菜单中的“报表参数”。将打开“报表参数”对话框。
在“参数”列表框中,确保突出显示 StartDate。
在默认值部分中,选择“无查询”并键入 2001-01-01。按 Tab 键退出该文本框。
在“参数”列表框中,选择 EndDate。
在默认值部分中,选择“无查询”并键入 2003-01-01。按 Tab 键退出该文本框。
单击“确定”。
单击“预览”。由于为所有参数定义了默认值,因此报表会立即运行。
报表用户运行报表时,可以使用位于查询参数作用域范围中的参数值来设置默认值。例如,您可以提供将所呈现数据限定为一个月的报表参数值。
将新字段添加至查询以用于筛选
在“数据”视图中,选择 AdventureWorks 数据集。
在查询中,将以下命令添加至 SELECT 语句,以便为发生销售业务的工作日另外定义一个计算列:DATENAME(weekday, S.OrderDate) as Weekday。
用以下文本替换现有的查询:
单击“运行”(!)。您应该看到一个标有 Weekday 的新列以及每个工作日的名称。
在“数据集”窗口中,确保 Weekday 是字段。
现在已添加另外一个数据集字段 Weekday。手动创建报表参数并将其绑定到该字段时,用户可以按每周工作日筛选报表数据。
添加新的报表参数
单击“布局”选项卡。
从“报表”菜单中,选择“报表参数”。将打开“报表参数”对话框。
单击“添加”。新参数 Report_Parameter_2 会显示默认值。
在“属性”部分的“名称”文本框中,用 DayoftheWeek 替换 Report_Parameter_2。确保数据类型是 String。
在“提示”中,键入“筛选每周工作日:”。
清除“允许空白值”选项。
在“可用值”部分中,单击“无查询”。将这些项保留为空。
在“默认值”部分中,单击“无查询”。在文本框中,键入 Sunday。
单击“确定”。
使用参数表达式设置表筛选器
在“布局”视图中,选择该表。该表会显示一个灰色轮廓。
右键单击表轮廓并选择“属性”。将打开“表属性”对话框。
单击“筛选器”选项卡。
在“表达式”列中,从下拉列表选择 =Fields!Weekday.Value。
确保“运算符”是等号 (=)。
单击“值”文本框,并从下拉列表中选择 <表达式>。将打开“编辑表达式”对话框。
在全局变量窗格中,单击“参数”。当前参数列表将显示在对应的窗格中。
双击 DayoftheWeek。该参数表达式便会添加至表达式文本框中。现在以下表达式显示在表达式文本框中: =Parameters!DayoftheWeek.Value。
单击“确定”。
单击“确定”。
表的筛选器现在被设置为将字段 Weekday 中的值与 DayoftheWeek 的参数值进行比较。例如,在报表工具栏中为DayoftheWeek 输入值“星期日”时,报表处理器将仅处理表中字段 Weekday 的值是 Sunday 的行。
单击“预览”。由于所有参数都有默认值,因此报表会自动运行。该表将仅显示由 StartDate 和 EndDate 定义的日期范围中的值,以及有关 Sunday 的值。
在下一可选步骤中,将格式设置添加至表格表头。
(可选)为表格表头行设置背景色和字体颜色
单击“布局”选项卡。
单击表。将显示表控点。
单击表格表头行。单击布局工具栏中的“背景色”按钮。将打开“选择颜色”对话框。
从 Web 选项卡中,选择“深红色”。
单击“确定”。
接下来,选择字体颜色。
单击布局工具栏中的“前景色”按钮。将打开“选择颜色”对话框。
从 Web 选项卡中,选择“白色”。
单击“确定”。
单击“预览”。该表会呈现为表格表头行选择的颜色。
后续步骤
您已成功地定义了查询参数和报表参数、为这些参数设置了默认值并将报表参数绑定到计算字段。在下一课中,您将学习为参数创建可用值,即有效值(参数列表)。请参阅第 3 课:添加具有可用值列表的单值参数。
请参阅
新建日期: 2006 年 7 月 17 日
通过在报表查询中包含开始日期参数和结束日期参数,可以指定用来限定从数据源检索的数据所处的日期范围。您可以创建其他参数,以便对从数据源检索到的数据进行筛选。
在本课中,您将添加查询参数 @StartDate 和 @EndDate。您将看到系统会为您自动创建区分大小写的报表参数 StartDate 和EndDate(不带查询参数指示器 @)。注意,不同的数据访问接口使用不同的查询参数指示器。例如,Oracle 数据访问接口使用冒号 (:) 而不使用 @ 符号。
您将把这些参数的数据类型设置为 DateTime,并将看到工具栏中会显示一个带有参数文本框的日历控件。您还将设置这些参数的默认值,以便报表可以自动运行。最后,您将创建未绑定到查询参数的报表参数 DayofWeek,并使用该报表参数对从数据源检索到的数据进行筛选。
将日期参数添加至查询
在“数据”视图中,选择 AdventureWorks 数据集。
用以下查询替换现有的查询:
SELECT S.OrderDate, S.SalesOrderNumber, S.TotalDue, C.FirstName, C.LastName FROM HumanResources.Employee E INNER JOIN Person.Contact C ON E.ContactID = C.ContactID INNER JOIN Sales.SalesOrderHeader S ON E.EmployeeID = S.SalesPersonID WHERE (S.OrderDate BETWEEN (@StartDate) AND (@EndDate)) -- Accurate Enddate would be '20020228 23:59:59.997'
注意: |
---|
SQL Server 存储 DATETIME 数据精确到 3% 秒。有关详细信息,请参阅日期和时间 (Transact-SQL)。如果使用 DateTime 变量未得到预期的筛选结果,则可能需要在查询参数中使用更精确的时间。 |
在工具栏上单击“运行”(!)。将打开“定义查询参数”对话框。
在“参数值”列中,为 @StartDate 输入值。例如,20010101。
在“参数值”列中,为 @EndDate 输入值。例如,20030101。
单击“确定”。系统会自动创建报表参数 StartDate 和 EndDate,并将数据类型默认设置为 String。在接下来的三个步骤中,将把这些参数设置为数据类型 DateTime。
在“报表”菜单中,单击“报表参数”。将打开“报表参数”对话框。
在“参数”列表框中,确保突出显示 StartDate。在“数据类型”下拉列表中,选择 DateTime。
在“参数”列表框中,选择 EndDate。在“数据类型”下拉列表中,选择 DateTime。
单击“确定”。
单击“预览”。StartDate 和 EndDate 参数将分别随一个日历控件显示在工具栏中。参数的数据类型是 DateTime 并且未定义可用值列表时,日历控件便会自动显示。定义可用值列表将创建一个值下拉列表,而不是日历控件。
在本教程中,您将为参数输入值,而并不使用日历控件。
在 StartDate 参数文本框中,输入日期 2001-01-01。
在 EndDate 参数文本框中,输入日期 2003-01-01。
单击“查看报表”。报表将仅显示位于报表参数值范围中的数据记录。
为报表创建查询参数后,可以为这些参数添加默认值。默认参数可以让报表自动运行;否则,用户必须输入参数值,报表才能运行。
为日期参数设置默认值
在“布局”视图中,单击“报表”菜单中的“报表参数”。将打开“报表参数”对话框。
在“参数”列表框中,确保突出显示 StartDate。
在默认值部分中,选择“无查询”并键入 2001-01-01。按 Tab 键退出该文本框。
在“参数”列表框中,选择 EndDate。
在默认值部分中,选择“无查询”并键入 2003-01-01。按 Tab 键退出该文本框。
单击“确定”。
单击“预览”。由于为所有参数定义了默认值,因此报表会立即运行。
报表用户运行报表时,可以使用位于查询参数作用域范围中的参数值来设置默认值。例如,您可以提供将所呈现数据限定为一个月的报表参数值。
将新字段添加至查询以用于筛选
在“数据”视图中,选择 AdventureWorks 数据集。
在查询中,将以下命令添加至 SELECT 语句,以便为发生销售业务的工作日另外定义一个计算列:DATENAME(weekday, S.OrderDate) as Weekday。
用以下文本替换现有的查询:
SELECT S.OrderDate, DATENAME(weekday, S.OrderDate) as Weekday, S.SalesOrderNumber, S.TotalDue, C.FirstName, C.LastName FROM HumanResources.Employee E INNER JOIN Person.Contact C ON E.ContactID = C.ContactID INNER JOIN Sales.SalesOrderHeader S ON E.EmployeeID = S.SalesPersonID WHERE (S.OrderDate BETWEEN (@StartDate) AND (@EndDate))
单击“运行”(!)。您应该看到一个标有 Weekday 的新列以及每个工作日的名称。
在“数据集”窗口中,确保 Weekday 是字段。
注意: |
---|
如果“数据集”窗口不可见,则在“视图”菜单中,选择“数据集”。 |
添加新的报表参数
单击“布局”选项卡。
从“报表”菜单中,选择“报表参数”。将打开“报表参数”对话框。
单击“添加”。新参数 Report_Parameter_2 会显示默认值。
在“属性”部分的“名称”文本框中,用 DayoftheWeek 替换 Report_Parameter_2。确保数据类型是 String。
在“提示”中,键入“筛选每周工作日:”。
清除“允许空白值”选项。
在“可用值”部分中,单击“无查询”。将这些项保留为空。
在“默认值”部分中,单击“无查询”。在文本框中,键入 Sunday。
单击“确定”。
使用参数表达式设置表筛选器
在“布局”视图中,选择该表。该表会显示一个灰色轮廓。
右键单击表轮廓并选择“属性”。将打开“表属性”对话框。
单击“筛选器”选项卡。
在“表达式”列中,从下拉列表选择 =Fields!Weekday.Value。
确保“运算符”是等号 (=)。
单击“值”文本框,并从下拉列表中选择 <表达式>。将打开“编辑表达式”对话框。
在全局变量窗格中,单击“参数”。当前参数列表将显示在对应的窗格中。
双击 DayoftheWeek。该参数表达式便会添加至表达式文本框中。现在以下表达式显示在表达式文本框中: =Parameters!DayoftheWeek.Value。
单击“确定”。
单击“确定”。
表的筛选器现在被设置为将字段 Weekday 中的值与 DayoftheWeek 的参数值进行比较。例如,在报表工具栏中为DayoftheWeek 输入值“星期日”时,报表处理器将仅处理表中字段 Weekday 的值是 Sunday 的行。
单击“预览”。由于所有参数都有默认值,因此报表会自动运行。该表将仅显示由 StartDate 和 EndDate 定义的日期范围中的值,以及有关 Sunday 的值。
在下一可选步骤中,将格式设置添加至表格表头。
(可选)为表格表头行设置背景色和字体颜色
单击“布局”选项卡。
单击表。将显示表控点。
单击表格表头行。单击布局工具栏中的“背景色”按钮。将打开“选择颜色”对话框。
从 Web 选项卡中,选择“深红色”。
单击“确定”。
接下来,选择字体颜色。
单击布局工具栏中的“前景色”按钮。将打开“选择颜色”对话框。
从 Web 选项卡中,选择“白色”。
单击“确定”。
单击“预览”。该表会呈现为表格表头行选择的颜色。
后续步骤
您已成功地定义了查询参数和报表参数、为这些参数设置了默认值并将报表参数绑定到计算字段。在下一课中,您将学习为参数创建可用值,即有效值(参数列表)。请参阅第 3 课:添加具有可用值列表的单值参数。
请参阅
任务
第 1 课:创建参数教程的报表服务器项目其他资源
相关文章推荐
- mvn打包时添加日期参数
- XML文件用XMLSchema进行验证和添加命名空间后节点的筛选
- SpringMVC自定义日期格式进行参数绑定
- CURL 如何同时进行POST请求并添加请求字符串 进行发送数据并且添加参数
- .NET 平台下对 SQL SERVER 进行模糊查询的参数的添加方法
- NSPredicate里面如何添加NSDate进行筛选?
- Android用OKHttp进行数据请求时,统一给所有接口添加某个请求参数
- 功能节点通过添加参数对相应功能进行控制
- EasyUI下combobox中添加checkbox,并输入全拼简拼进行筛选显示
- DevExpress 给GridView添加Edit Filter 进行自定义筛选
- [原] XAF 添加日期筛选下拉选择
- EF日期筛选异常:SqlServer.DATEDIFF”函数的 DATEPART 参数必须是文字字符串。
- 网页中对某一资源进行添加或修改,且传过去和接收的参数不出现编码问题,但是却出现乱码
- ROS中利用opencv3完成四个视频流拼接成一副图像显示,并添加track条进行参数调节
- 22.按筛选参数对session粒度聚合数据进行过滤
- NSPredicate里面如何添加NSDate进行筛选?
- 驱动中添加参数进行调试和控制设备驱动
- 在sql的条件里进行日期添加或减去一个值(年月日的一个值)
- 黑马程序员_ADO.Net(ExecuteReader,Sql注入与参数添加,DataSet,总结DataSet与SqlDataReader )
- 手写的日期排序 数组作为参数传入排序函数,输出时需要override String类中的 toString