我在报告中有3个数据集,需要在其中运行查找,以连接公共数据。当所有者的in保存在两个数据集中时,我可以使用:
=Lookup(Fields!DatabaseName.Value, Fields!Name.Value, Fields!OwnerID.Value, "DataSet2")到目前为止,在连接第三个数据集并返回所有者名称方面,我尝试了以下几点,但没有成功:
=Lookup(Fields!DatabaseName.Value & Fields!Source_Worker_ID.Value, Fields!Name.Value & Fields!OwnerID.Value, Fields!Full_Name.Value, "DataSet3")Dataset 1包含DatabaseName (它是我需要修补的所有DB)。
Dataset 2包含名称(与DatabaseName相同)和OwnerID (调度时需要与所有者联系)。
数据集3包含Source_Worker_ID (与OwnerID相同)和Full_Name (员工姓名)。
我的最终目标是通过查找(或其他函数)从DS2返回与DS 1中所有DBs相关的所有者ID,然后为第一次查找过程中找到的ID返回DS3中的所有名称。
有谁想过让这个查找工作吗?
谢谢
发布于 2017-05-23 20:46:03
编辑回答:
我很抱歉。你是对的。我不知道嵌套查找是不可能的。但是,你还有另一种方法可以做到。
LOOKUP(Fields!DatabaseName.Value, Fields!DatabaseName.Value, Fields!OwnerID.Value, "Dataset2")
LOOKUP(ReportItems!Textbox1.Value, Fields!Source_Worker_ID.Value, Fields!Full_Name.Value, "Dataset3")
告诉我这是否有效。
Explanation:
一个LOOKUP函数只接受4个参数。
DatabaseName。Dataset2与Dataset1 (DatabaseName)具有相同的列名,因此它将再次成为DatabaseName。OwnerID使用DatabaseName,所以需要将OwnerID作为第三个参数。Dataset2 (或dataset3)。你只能玩这四个论点。
解释2
重要的是要记住,您只能从主数据集连接到其他数据集。如果您的报表是从Dataset1生成的,则可以使用Dataset1在所有其他数据集中查找值。不能使用来自Dataset3的值在Dataset2中查找值。这就是为什么您需要一个lookup来从Dataset2中找到值,并使用它在Dataset3中找到一个值。
演示:
在这张图片中:

具有5位数的第一列来自DataSet1。具有2位数的第二列是来自DataSet2的字段DataSet2。具有名称的第三列是来自DataSet3的字段DataSet3。
以下是这三个数据集如何相互连接:

下面是我使用的查找查询:
=LOOKUP(Fields!SORD.Value, Fields!ShopOrder.Value, Fields!Location.Value, "DataSet2")
=LOOKUP(ReportItems!Textbox4.Value, Fields!Location_ID.Value, Fields!Location_Name.Value, "DataSet3")这对我来说似乎很好。这张表是这样的:

下面是我的报告数据源和共享数据源的屏幕截图:

你在做这样的事吗?我知道这是一份非常简单的报告,您的情况可能要复杂得多,但是您的报告需要类似这样的内容。
如果这些都没有帮助的话,我道歉。这是我唯一知道该怎么做的方法。
https://stackoverflow.com/questions/44137414
复制相似问题