首页 > 解决方案 > 使用具有多个参数的 SSRS 从 SQL Server 生成和下载报告

问题描述

我在报表生成器中设计了一个模板,我的报表有 6 个参数:

Start Date, End Date, Source, Destination, Transaction, and Consignor

我的 SQL 表有以下列:

[DATE], [SOURCE], [DESTINATION], [REFERENCE#], [ITEMCODE], [DESCRIPTION],
[UM], [PRICE], [QTY], [AMOUNT], [MFGDATE], [EXPDATE], [LOT#], [TRANS], [CONSIGNOR], [DRDATE]

我很难为参数编写表达式,请帮忙。

标签: sql-serverreporting-services

解决方案


对此的查询相当直接,因为它都来自一个表。

您将编写如下查询(假设没有多值参数)

您的主要数据集将如下所示:

    Select 
    [DATE], [SOURCE], [DESTINATION], [REFERENCE#], [ITEMCODE], [DESCRIPTION],
    [UM], [PRICE], [QTY], [AMOUNT], [MFGDATE], [EXPDATE], [LOT#], [TRANS], [CONSIGNOR], [DRDATE]

    from your_table

where 
    your_table.Date between  @start_date and @end_date
    and your_table.Source =  @source
    and your_table.Destination=  @destination
    and your_table.Transaction=  @transaction
    and your_table.consignor=  @consignor

这将在报告中创建所有参数

现在确保为每个参数设置适当的类型。

IE start_date 和 end_date 应该是 datetime 等类型,

您可以在报表中有多个数据集,它们为每个参数派生参数值。

例如..你可以有一个像这样的源数据集

select distinct 
source
from your_table
where your_table.Date between  @start_date and @end_date

现在将源参数数据集设置为指向此值。

这将仅返回所选日期之间可用的状态。

@destination 参数的目标数据集将是

select distinct Destination
from your_table
    where your_table.Date between  @start_date and @end_date
    and your_table.status = @status

现在您必须对其余参数执行相同的操作

现在取决于您想要如何分组和显示..您放置一个 tablix 并从您的主数据集中选择您的分组/详细信息等。我不认为这是解释如何做到这一点的地方。


推荐阅读