0

我必须构建一个自定义报告,该报告采用报告上客户的姓名、地址和用户名的每个订单的订单线。

当我进行如下简单查询时:

SELECT FilteredSalesOrder.*, FilteredAccount.* 
FROM FilteredSalesOrder INNER JOIN FilteredAccount 
ON FilteredSalesOrder.customerid = FilteredAccount.accountid

我检索数据,但只检索一行。当有更多时,预览不显示任何内容。这不是什么大问题,因为我一次只需要 1 个订单。

因此,对于我的 OrderReport,我需要每个订单的所有 OrderLines。该报告是按订单打印的,而不是同时为多个订单打印的。它看起来像这样: 在此处输入图像描述

我刚刚在订单报告中加入了 5 个需要数据的表。

SELECT FilteredSalesOrder.*, FilteredAccount.*, FilteredSalesOrderDetail.*, FilteredSystemUser.*, FilteredProduct.*
FROM ((((FilteredSalesOrder INNER JOIN FilteredAccount 
ON FilteredSalesOrder.customerid = FilteredAccount.accountid) INNER JOIN FilteredSalesOrderDetail 
ON FilteredSalesOrderDetail.salesorderid = FilteredSalesOrder.salesorderid) INNER JOIN FilteredProduct
ON FilteredProduct.productid = FilteredSalesOrderDetail.productid) INNER JOIN FilteredSystemUser
ON FilteredSystemUser.systemuserid = FilteredSalesOrder.ownerid)

所以总结一下:

  • 我的 SQL 查询是否正确?
  • 当我上传一个简单的报告时,它给了我错误 rsInvalidDataSourceReference。我知道这个问题意味着什么,但我需要做些什么来解决它。
  • 我如何确保在报告中,订单行表根据需要不断增长以包含所有订单行?
4

1 回答 1

1
  • 我的 SQL 查询是否正确?

它返回了一个错误,因为查询返回了超过 665 列,显然 SQL 无法处理。

  • 当我上传一个简单的报告时,它给了我错误 rsInvalidDataSourceReference。我知道这个问题意味着什么,但我需要做些什么来解决它。

当您在 notepad++ 中打开报告时,可以通过调整连接字符串来解决这个问题,您可以更改它以匹配您的生产环境。

  • 我如何确保在报告中,订单行表根据需要不断增长以包含所有订单行?

当您在 SQL Server 上使用 Visual Studio 2008 的报表向导制作报表时,报表会自行处理这些内容。如果您从数据集中拖放字段。该报告将仅采用它找到的第一条记录。

于 2012-09-26T14:00:55.763 回答