创建批处理报告

时间:2013-08-28 18:20:05

标签: sql-server ssrs-2008

我正在尝试使用SSRS 2008 R2创建多个发票的批量报告。

我创建了初始发票报告,并使用参数进行设置;该参数使用InvoiceID填充发票报表中的数据。

我使用列表创建了另一个报表,列表中包含原始发票报表中的信息,但使用的是其他参数(BatchID)。我遇到的问题是,不是为每个invoiceID创建单个发票,而是为每个发票中的每个订单项创建发票。 ie~而不是根据InvoiceID合并多个项目(如原始报告所做的那样),而是为每个项目创建一个报告。

运行一批这些发票的最佳方法是什么?我是以错误的方式解决这个问题,还是我在正确的轨道上却错过了什么?

提前致谢!

SELECT i.InvoiceId, i.InvoiceNumber, i.BillTo_Line1, i.BillTo_Line2, i.BillTo_City, i.BillTo_StateOrProvince, i.BillTo_PostalCode, i.CustomerIdName, 
                     i.ce_OutstandingBalance, i.ce_BillToDate, i.ce_BillFromDate, i.TotalAmount, id.ProductIdName, id.ce_customeridName, id.ce_CustomerProductName, 
                     id.InvoiceDetailId, id.BaseAmount, id.PricePerUnit, id.ce_rate
FROM 
                         Invoice AS i RIGHT OUTER JOIN
                         InvoiceDetail AS id ON i.InvoiceId = id.InvoiceId

enter image description here 输入invoiceID后,我会收到报告 enter image description here

我的目的是能够针对多个发票号码运行报告,而无需选择发票号码本身。我有另一个表根据运行它们的批处理来收集invoiceid。

到目前为止,我尝试使用原始报表创建子报表,并创建一个单独的报表,该报表使用列表并尝试按InvoiceID对每个batchid进行分组。虽然我到目前为止每一个都没有成功。

我是SSRS的新手,并且一直在向MSDN提供有关SSRS和不同能力的文档。

1 个答案:

答案 0 :(得分:6)

对于这种重复列表,这是理解列表/分组如何工作的问题。

列表,表格和矩阵都是相同的底层对象 - Tablix。

List是具有一个详细信息行的Tablix(即数据集中每行的一个Tablix行),该行中的一个文本框以及该文本框中的Rectangle。 Rectangle可以有更多的文本框等各种嵌入元素,因此为数据集中的每一行提供了一个重复的自由格式项。

在设计器中创建List时可以看到这一点:

enter image description here

我认为您的报告查询需要BatchID并返回一些发票及其发票详细信息。我对您的数据采取了一些自由,并创建了一个简化的数据集示例:

enter image description here

您希望每个InvoiceNo重复一次矩形。目前,Row Group没有分组项 - 在Group属性下将其更改为InvoiceNo,并根据需要展开Rectangle。

您可以开始为“发票”级别项添加文本框等元素,例如:

enter image description here

请注意,Tablix的左侧已从行更改为括号 - 这是因为分组项已添加到行组。

这将为每个InvoiceNo重复一次。现在我们要添加行项目 - 您可以通过将新表格拖动到矩形中来完成此操作。由于我们有一个Row Group,因此该表只显示该组中的项目:

enter image description here

当运行样本数据时,这会给出一个丑陋但功能重复的发票报告:

enter image description here

可以根据需要对其进行整理,并根据需要在“组”属性中的“组”项之间插入页组。

希望这至少可以让您大致了解如何完成任务。