Sql server 创建批处理报告

Sql server 创建批处理报告,sql-server,ssrs-2008,Sql Server,Ssrs 2008,我正在尝试使用SSRS 2008 R2创建多张发票的批处理报告 我已经创建了初始发票报告,并使用参数对其进行了设置;该参数使用InvoiceID填充发票报告中的数据 我使用列表创建了另一个报告,列表中包含原始发票报告中的信息,但使用了不同的参数(BatchID)。我遇到的问题是,它不是为每个invoiceID创建单个发票,而是为每个发票中的每个行项目创建发票。i、 e.~它不是根据InvoiceID合并多个项目(就像原始报告那样),而是为每个项目创建一个报告 运行一批此类发票的最佳方式是什么?我

我正在尝试使用SSRS 2008 R2创建多张发票的批处理报告

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

我使用列表创建了另一个报告,列表中包含原始发票报告中的信息,但使用了不同的参数(BatchID)。我遇到的问题是,它不是为每个invoiceID创建单个发票,而是为每个发票中的每个行项目创建发票。i、 e.~它不是根据InvoiceID合并多个项目(就像原始报告那样),而是为每个项目创建一个报告

运行一批此类发票的最佳方式是什么?我是走错了路,还是走对了路却错过了什么

提前谢谢! 一旦我输入了invoiceID,我就会得到我的报告

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

到目前为止,我已经尝试使用原始报告创建一个子报告,并创建一个单独的报告,该报告使用一个列表,并尝试根据每个batchid的InvoiceID进行分组。尽管到目前为止,我在这些方面都没有成功


我是SSR新手,一直在翻MSDN关于SSR和不同能力的文档

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

列表、表格和矩阵都是相同的底层对象——Tablix

列表是一个Tablix,包含一个详细信息行(即数据集中每行一个Tablix行)、该行一个文本框和该文本框中的一个矩形。矩形可以有各种嵌入元素,如更多文本框,因此为数据集中的每一行提供了一个重复的自由格式项

在设计器中创建列表时可以看到:

我假设您的报表查询采用
BatchID
,并返回大量发票及其发票详细信息。我对您的数据做了一些修改,并创建了一个简化的示例数据集:

您希望矩形对每个
InvoiceNo
重复。当前行组没有分组项-将其更改为组属性下的
InvoiceNo
,并根据需要展开矩形

您可以开始为发票级别的项目添加诸如文本框之类的元素,例如:

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

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

当为样本数据运行时,这将生成一个丑陋但功能正常的重复发票报告:

可以根据需要进行整理,并根据需要在组属性中的组项目之间插入页面组


希望这至少能让您大致了解如何执行任务。

对于这种重复列表,需要了解列表/分组的工作原理

列表、表格和矩阵都是相同的底层对象——Tablix

列表是一个Tablix,包含一个详细信息行(即数据集中每行一个Tablix行)、该行一个文本框和该文本框中的一个矩形。矩形可以有各种嵌入元素,如更多文本框,因此为数据集中的每一行提供了一个重复的自由格式项

在设计器中创建列表时可以看到:

我假设您的报表查询采用
BatchID
,并返回大量发票及其发票详细信息。我对您的数据做了一些修改,并创建了一个简化的示例数据集:

您希望矩形对每个
InvoiceNo
重复。当前行组没有分组项-将其更改为组属性下的
InvoiceNo
,并根据需要展开矩形

您可以开始为发票级别的项目添加诸如文本框之类的元素,例如:

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

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

当为样本数据运行时,这将生成一个丑陋但功能正常的重复发票报告:

可以根据需要进行整理,并根据需要在组属性中的组项目之间插入页面组


希望这至少能让您大致了解如何执行任务。

您能给出数据集的简化版本、几行样本数据以及所需的输出吗?@IanPreston我进行了编辑,以显示更多细节。您能给出数据集的简化版本、几行样本数据,加上你需要的输出?@IanPreston我编辑了一些细节。我有一些类似的东西。我创建了一个列表框,在这个列表框中我创建了几个项目,用一个矩形包围。我已经根据InvoiceID为该列表添加了一个分组。虽然InvoiceID中可能有许多不同的项目,但我只得到第一个项目;我没有数据只选择第一项…=第一项(…);它只是数据集中的整个项目,即[Productname]。有什么我遗漏的吗?谢谢
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