1

工作环境是sharepoint2010。我们已经在 vs2008 中将 sharepoint 列表数据源连接到了报表项目。可以使用 tablix 在单个数据集中显示数据。我们有 2 个数据集 1)salesMain 2)Customers

在 salesMain 中,我们有 SalesID、CustomerID、saleDate、TotalAmount、taxAmt、netAmount 等字段

在客户中,我们有客户 ID、客户名称、地址

我需要显示 SalesID、CustomerName、Address、netAmount、TaxAmt、TotalAmount 等数据

我们已将 SalesMain 数据集分配给 Tablix,它按原样显示数据。问题是显示的某些数据是外键值,例如 CustomerID。我们需要使用外键值(CustomerID)获取像“customername”这样的值。我们接下来要做的是使用占位符而不是 customerID 字段,我们使用 Lookup 设置了一个表达式,但该字段显示为空白。查找方法类似于这种查找方法。SalesMain 数据集是 Tablix 表 1 的源(数据集名称)。我们使用的查找函数是 =Lookup(Fields!CustomerID.Value, Fields!customerID.Value, Fields!CustomerName.Value, "Customer")

其中第一个参数是查找的键(foriegnkey),第二个参数是要匹配的键(客户的主键),第三个参数是要检索的值(要显示在 tablix 单元格中),第四个参数是报告(客户)

任何人都可以建议为什么 Lookup dosent wrk。在 sharepointlist 中,我们没有使用任何查找(在没有设置表关系的意义上)。

4

4 回答 4

3

我在使用 Sharepoint 数据集和 lookupset 函数时遇到了同样的问题,我注意到在 Sharepoint 源定义中,外键字段是 Lookup 类型,所以我在 SSRS 中修复了这个转换字段,如下所示:

=Lookup(**CInt(Fields!CustomerID.Value)**, Fields!customerID.Value, Fields!CustomerName.Value, "Customer")
于 2014-05-19T18:26:41.577 回答
1

很抱歉让您失望,但一张表(tablix)只能处理一个数据集。

于 2013-02-01T14:38:18.890 回答
1

Jijeshan009,你是对的,Lookup 应该为你解决问题。

注意:
- 在 Business Intelligence Development Studio 中预览报告时,打开错误列表并检查警告。查找错误可能在该列表中(例如转换失败)。
- 有时所有代码看起来都是正确的,但#error 将显示在使用查找的列中。关闭投标,重新启动机器等将不起作用。但是可以使用不同参数(如果有的话)执行报告。您将获得新数据而不是缓存数据,并且查找可能会起作用。
- dataset1 和 dataset2 的列必须是同一类型。您甚至可以将来自 Oracle 的数据集与来自 SQL Server 的数据集混合在一起:例如,一个 varchar2 列和一个 varchar 列。
- @Gil Peretz,查找将适用于每一行,而不仅仅是第一行。我认为数据被缓存了,因为我没有性能问题(甚至使用多列)。

于 2013-05-06T12:58:21.273 回答
0

稍微偏离主题,但在使用外键(第一个参数)的值为 NULL 的 Lookup 函数时也会出现此错误。至少这是我在尝试使用 Lookup 连接两个数据集(两个 SharePoint 列表)时发现的。

于 2016-06-16T00:00:16.453 回答