【问题标题】:How to use Sub-reports with SSRS Charts?如何使用带有 SSRS 图表的子报表?
【发布时间】:2014-06-10 01:22:03
【问题描述】:

我有一个以条形图显示逾期发票信息的报告。

每个条形显示一系列逾期发票总数。例如:逾期 45 天以上的发票数量、逾期 31-44 天的发票数量、逾期 21-30 天等的发票数量。

我希望能够单击图表中的条形以打开子报告,其中显示所单击条形范围内所有发票的所有发票详细信息。

例如,如果点击 45+ 栏,它将显示逾期 45 天或更长时间的发票的所有发票详细信息。

我创建了一个子报告,其中包含我需要的所有字段,但是,此报告显示表格中的所有发票,而不仅仅是点击栏范围内的发票。

我的父报告使用以下图表查询:

    WITH Temp ([Description], [Amount], [OverdueBy])
AS 
(select Description, SUM(Amount) as Amount, (DATEDIFF(day,DueDate,GETDATE())) as OverdueBy  from brvAPAllInvoices 
Where PaidDate is null and APCo = 1
Group By Description, DueDate

)


SELECT CASE WHEN OverdueBy >= 46 THEN 'Overdue by 46+ days' 
            WHEN OverdueBy >= 31 and OverdueBy <= 45 THEN 'Overdue by 31-45 days'
            WHEN OverdueBy >= 15 and OverdueBy <= 30 THEN 'Overdue by 15-30 days'
            WHEN OverdueBy >= 8 and OverdueBy <= 14 THEN 'Overdue by 8-14 days'
            WHEN OverdueBy >= 1 and OverdueBy <= 7 THEN 'Overdue by 1-7 days'
            WHEN OverdueBy <= 0 and OverdueBy >= -7 THEN 'Due in 0-7 days'
            WHEN OverdueBy <= -8 and OverdueBy >= -14 THEN 'Due in 8-14 days'
            WHEN OverdueBy <= -15 and OverdueBy >= -30 THEN 'Due in 15-30 days'
            WHEN OverdueBy <= -31 and OverdueBy >= -45 THEN 'Due in 31-45 days'
            WHEN OverdueBy <= -46 THEN 'Due in 46+ days'
ELSE 'Less than that' END AS OverdueRange,
Count(*) as OverdueCount,
Sum(Temp.Amount) as [Total Amount]
From Temp


group by CASE WHEN OverdueBy >= 46 THEN 'Overdue by 46+ days' 
            WHEN OverdueBy >= 31 and OverdueBy <= 45 THEN 'Overdue by 31-45 days'
            WHEN OverdueBy >= 15 and OverdueBy <= 30 THEN 'Overdue by 15-30 days'
            WHEN OverdueBy >= 8 and OverdueBy <= 14 THEN 'Overdue by 8-14 days'
            WHEN OverdueBy >= 1 and OverdueBy <= 7 THEN 'Overdue by 1-7 days'
            WHEN OverdueBy <= 0 and OverdueBy >= -7 THEN 'Due in 0-7 days'
            WHEN OverdueBy <= -8 and OverdueBy >= -14 THEN 'Due in 8-14 days'
            WHEN OverdueBy <= -15 and OverdueBy >= -30 THEN 'Due in 15-30 days'
            WHEN OverdueBy <= -31 and OverdueBy >= -45 THEN 'Due in 31-45 days'
            WHEN OverdueBy <= -46 THEN 'Due in 46+ days'

ELSE 'Less than that' END


ORDER BY MAX(Temp.[OverdueBy]) DESC;

生成下表:

+-----------------------+--------------+
|     OverdueRange      | OverdueCount |
+-----------------------+--------------+
| Overdue by 46+ days   |           50 |
| Overdue by 31-45 days |           15 |
| Overdue by 15-30 days |           24 |
| Overdue by 8-14 days  |          121 |
| Overdue by 1-7 days   |           17 |
| Due in 0-7 days       |           17 |
| Due in 8-14 days      |            4 |
| Due in 15-30 days     |          368 |
| Due in 31-45 days     |            1 |
| Due in 46+ days       |           14 |
+-----------------------+--------------+

子报告使用以下查询:

select APRef as 'Invoice #', Vendor, VendorName,  InvDate, Description, (DATEDIFF(day,DueDate,GETDATE())) as OverdueBy, SUM(Amount) as Amount from brvAPAllInvoices
Where APCo = 1 and  PaidDate is null
Group By APRef, Vendor, VendorName, InvDate, Description, DueDate

子报告表如下所示:

+--------------+--------+-----------------------------------------------------------+---------------------+--------------------------------+-----------+-----------+
|  Invoice #   | Vendor |                        VendorName                         |       InvDate       |          Description           | OverdueBy |  Amount   |
+--------------+--------+-----------------------------------------------------------+---------------------+--------------------------------+-----------+-----------+
|     00000418 |   3293 | Seaforth Civil Pty Ltd                                    | 2014-04-24 00:00:00 | Plant Hire, Materials, Repairs |        10 | 236602.94 |
|     00001113 |   3377 | 3D Engineering Services Pty Ltd                           | 2014-05-31 00:00:00 | Manufacture Handrails          |       -20 | 10236.60  |
|     00001701 |   3273 | ADE Electrical Pty Ltd                                    | 2014-05-21 00:00:00 | Test & Tag 15m, 3 phase lead   |         6 | 22.00     |
|     00001921 |   2155 | Electrical Refrigeration Enterprises                      | 2014-05-09 00:00:00 | Repair sensors and Lights      |        18 | 444.40    |
|     00001932 |   2155 | Electrical Refrigeration Enterprises                      | 2014-05-09 00:00:00 | Relocated button Security Door |        18 | 104.50    |
|     00021458 |   1946 | VacUDigga Pty Ltd                                         | 2014-04-15 00:00:00 | Vac Excavation 11/4/14         |        10 | 1729.75   |
|     00021869 |   1946 | VacUDigga Pty Ltd                                         | 2014-05-12 00:00:00 | Vacuum Excavation 12/5/14      |       -20 | 1694.00   |
|      0003091 |   2677 | Parker's Liquid Waste Pty Ltd T/As Parker's Liquid Waste  | 2014-05-06 00:00:00 | Pump out holding tank          |       -20 | 267.30    |
| 003000775835 |    685 | ADT WSale Tools P/L T/As Glenfords Tool Centre Gladstone  | 2014-05-13 00:00:00 | 9" End Nippers                 |       -20 | 116.00    |
| 003000776496 |    685 | ADT WSale Tools P/L T/As Glenfords Tool Centre Gladstone  | 2014-05-28 00:00:00 | Air Tool                       |       -20 | 19.00     |
|     00980812 |    590 | Followmont Transport                                      | 2014-05-27 00:00:00 | Transportation                 |       -16 | 441.54    |
|       104760 |   2816 | Tank Services P/L T/As The Tasman Tank Co                 | 2013-02-13 00:00:00 | Fit Ext Nut Caps to Tank 2     |       475 | 2141.93   |
|       107776 |   3385 | GoTurf                                                    | 2014-05-08 00:00:00 | TURF                           |       -20 | 25942.40  |
|       119023 |    808 | The Hose Shed                                             | 2014-05-05 00:00:00 | Flange and Plugs               |       -20 | 522.80    |
+--------------+--------+-----------------------------------------------------------+---------------------+--------------------------------+-----------+-----------+

我如何链接数据以完成这项工作?

【问题讨论】:

    标签: sql reporting-services parameters charts subreport


    【解决方案1】:

    您需要在子报表中添加一个参数并从父级传递它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多