我需要创建一个基于两个数据集的Delta报告,即DataSet1和DataSet2。 如果DataSet1中的任何字段值有任何变化,我需要将DataSet2作为参考我需要更改文本框的颜色。 任何人都可以帮我这个我写了一些代码,但它抛出错误。
=IIF(Fields!CIF.value, "DataSet1" = Fields!CIF.value, "DataSet2" AND Fields!Account_ID.value,"DataSet1" = Fields!Account_ID.value,"DataSet2",
IIF( Fields!Account_balance.value, "DataSet1" <> Fields!Account_balance.value, "DataSet2","Yellow","Transparent"),"Transparent","Transparent")
答案 0 :(得分:0)
您无法混合数据集。
这仅适用于您的数据集每个只有一行数据的情况。否则,您需要弄清楚如何隔离您需要的值。
=IIF(MAX(Fields!CIF.value, "DataSet1") = MAX(Fields!CIF.value, "DataSet2") AND MAX(Fields!Account_ID.value, "DataSet1") = MAX(Fields!Account_ID.value, "DataSet2"),
IIF(MAX(Fields!Account_balance.value, "DataSet1") <> MAX(Fields!Account_balance.value, "DataSet2"), "Yellow", "Transparent"), "Transparent")
通常,您在表格中有一个数据集,然后在其他数据集中查找相应的值。
如果您的 CIF 和帐户ID 是公共标识符,并且您想要对每个帐户余额进行比较,我会将该表基于数据集1,然后将其引入来自dataset2的值进行比较。将CIF和帐户ID合并为一个文本字符串以进行比较。
您的颜色表达式将类似于:
=Lookup(Fields!CIF.value & "|" & Fields!Account_ID.value, Fields!CIF.value & "|" & Fields!Account_ID.value, Account_balance.value, "DataSet2")
<强> SSRS:强>
使用Lookup从指定数据集中检索值 名称 - 值对,其中存在一对一的关系。例如,对于 在表中的ID字段,您可以使用Lookup来检索 来自未绑定到数据的数据集的相应名称字段 区域。
答案 1 :(得分:0)
另一种方法是在存储过程中执行此操作,并将结果作为一个数据集返回。例如,假设表中有10个字段。我可以为每条记录创建数据的哈希值:
select
CASE WHEN chkHash2 = chkHash1 THEN 0 ELSE 1 END as 'ChgFlag'
,a.*
FROM
(
select
HASHBYTES('md5', t2.Field1 + t2.Field2 + ... + t2.Field10) as 'chkHash2'
,HASHBYTES('md5', t1.Field1 + t1.Field2 + ... + t1.Field10) as 'chkHash1'
,t1.Field1, t1.Field2, ... t1.Field10
From Table2 t2
LEFT JOIN Table1 t1 on t1.ID = t2.ID
) a
大假设......两个表都有一个唯一且相关的ID。 这将为您提供Table1(dataset1)字段的结果集以及一个标志,该标志将告诉您何时从Table2(dataset2)更改任何字段。
根据您的应用程序,这可能更容易,更快捷。我总是尝试在SQL中使用WORK而不是SSRS。