使用查找RS

时间:2015-09-21 16:20:28

标签: vba reporting-services ssrs-2008

我需要将CR报告迁移到RS。

我有两个方法,基本上是两个查询,一个叫做“Products”,另一个叫做“Volume”。

这两个数据集都有一个名为ID的字段。 想法是计算ProductsID = VolumeID。我可以使用查找作为RS中的表达式,当查找不等于Nothing时计数吗?或者我必须做一个代码才能做到这一点?

编辑: 让我添加更多信息。 Crystal Report正在Web应用程序的数据层中管理这些内容,如下所示:

                DataRow drVol = vols.Rows.Find(new Object[] { id, idEzd });
                if (drVol != null)
                {
                    if (drVol["Volume"] != System.DBNull.Value)
                        cRow.Volume = (isNormalReport ? Convert.ToDecimal(drVol["Volume"]) : Convert.ToDecimal(drVol["Volume"]));
                    else
                        cRow.Volume = 0;

                    dset.Compradores.Rows.Add(cRow);
                }

所以在这种情况下,我确认RS给了我X行数,而CR给了我另外的行数。

想法是在RS内的表达式或VB代码上复制它。 如您所见,我们必须过滤drVol != null,RS将带来所有行。

我知道在这种情况下可以使用Lookup函数:

Lookup(Fields!id.Value & Fields!idEzd.Value, Fields!id.Value & Fields!idEzd.Value,Fields!Givemethisfield.Value,"Dataset")

但我可以在代码中使用此Lookup表达式来计算吗? 计数器应该是这样的(然后我应该添加查找或if等于vlookup,代码可以看到两个数据集吗?):

Dim count=0 as integer
Public Function Counter() as Integer

count = count + 1
return count

End Function

Public Function GetCounter () as integer

return count

End Function

然后使用表达式

创建一个计算字段,例如“Counter”
=Code.Counter()

然后计算该计算字段的总和:

=Sum(Fields!Counter.Value)

但是没有工作,甚至连柜台都没有给我0。

很抱歉,如果我在Visual Basic代码中出错,我不会在Visual中编程。

EDIT2: 我在MSDN上看到了一些解决方法,例如:

Lookup(Fields!id.Value & Fields!idEzd.Value, Fields!id.Value & Fields!idEzd.Value,Fields!Givemethisfield.Value,"Dataset").Lenght

因为查找是一个数组而有意义。

问题是,如果我选择一个范围或另一个范围,我仍然会遇到一些问题,例如,如果字段ididezd位于数据集1上,则无法看到某些字段Givemethisfield在数据集2上,它将看不到id,idEzd或Givemethisfield。

0 个答案:

没有答案