使用具有多个参数的SSRS从SQL Server生成和下载报告

时间:2019-06-28 00:39:38

标签: sql-server reporting-services

我在Report Builder中设计了一个模板,我的报告有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]

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

1 个答案:

答案 0 :(得分:0)

对此的查询非常简单,因为它们全部来自单个表。

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

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

    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

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

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

I.E。 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,然后从主数据集中选择分组/详细信息等。我认为这不是解释如何执行此操作的地方。