LookupSet基于两个字段组合而不是一个

时间:2012-11-19 15:32:27

标签: ssrs-2008 reporting-services reportbuilder

我有两个数据集:Dataset1(primary)和Dataset2。我的报告数据集是Dataset1。

我想从数据集2访问总保费金额并将其放入报告中。如果“市场名称”的参数是单值参数,则报告工作正常。

当我将参数属性设置为“允许多个值”时,我的报告显示“生产”字段的错误总计。问题是因为lookupset函数基于Currency_Type。

我应该做的是搜索每个市场名称和每种货币类型,然后在第二个数据集中搜索相应的总保费并返回该值。

数据集1:

Market Name      Currency Type     Receivable

Dataset2:

Company Name2    Currency Type1    Gross Premium Amount

结果应该是这样的:

Market Name      Currency Type     Receivable             Gross Premium Amount

我使用此代码来搜索一个值:

=code.SumLookup(LookupSet(Fields!Currency_Type.Value, Fields!Currency_Type1.Value,Fields!Gross_Premium_Amount.Value, "DataSet2"))

如果我想根据市场名称和货币类型组合查找集,我该怎么办?

1 个答案:

答案 0 :(得分:7)

您可以加入查询中的数据集吗?如果有可能的话,这会容易得多。否则,您需要有一些方法来分解多值参数,例如将其包含在第一个数据集中作为元素。 (如果合适,甚至可以交叉加入。)

但要直接回答你的问题

  

如果我想根据市场名称和货币类型组合查找集,我该怎么办?

[请注意,这与如何查找多值参数没有太大关系。]

我已经通过查询中的两条信息创建了一个密钥来解决这个问题,例如使用字符串连接,但您也可以在LookupSet函数中执行相同操作:

= LookupSet(Fields!Currency_Type.Value +“ - ”+ Fields!MarketName.Value,Fields!Currency_Type1.Value +“ - ”+ Fields!Market_Name.Value,Fields!Gross_Premium_Amount.Value,“DataSet2”))< / p>

只有当MarketName是您的第一个数据集中的值时,这才有效。