【问题标题】:Report doesn't show data in VS2008 on Server 2008 R2?报告在 Server 2008 R2 上的 VS2008 中不显示数据?
【发布时间】:2012-09-26 09:35:33
【问题描述】:

我必须构建一个自定义报告,其中包含每个订单的订单行以及报告上的客户姓名、地址和用户名。

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

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

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

所以对于我的 OrderReport,我需要每个订单的所有 OrderLine。该报告是按订单打印的,而不是同时为多个订单打印的。 它看起来像这样:

我刚刚在订单报告中加入了 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。我知道这个问题意味着什么,但我需要做些什么来解决它。
  • 如何确保在报告中,订单行表根据需要不断增长以包含所有订单行?

【问题讨论】:

  • 你把3个问题合二为一,让人很难有效回答。最好分别询问每个人,并为每个问题提供适当的详细信息。作为一般建议,暂时忘记报告并专注于编写返回正确数据的查询。如果没有有关表结构、它们与数据之间的关系(外键)的信息,没有人可以告诉您您的查询是否正确。并且您应该避免在查询中使用SELECT *,因为如果(何时)更改表中的列会导致问题。

标签: sql sql-server-2008 dynamics-crm-2011 reporting-services


【解决方案1】:
  • 我的 SQL 查询是否正确?

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

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

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-12
    • 2011-11-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多