报表设计器选择适当的值

时间:2010-06-22 16:09:19

标签: visual-studio reporting-services dataset reporting

我正在使用Visual Studio创建报告。我在向文本字段中获取适当的值时遇到问题。和我一起,因为我不熟悉使用报表设计器。

我有一个包含这些值的DataSet:
InfoPathFormsWorkflow
AvgProcessTime_Sum
AvgProcessTime_Count

此DataSet中只有1或2个值。它由InfoPath表单填充(DataSet中的值都是准确且有效的。)

InfoPathFormsWorkflow是“关闭”或“打开”。我目前有2个带有这些表达式的文本字段:

=IIF(Fields!InfoPathFormsWorkflow.Value = "Closed",Fields!AvgProcessTime_Sum.Value / Fields!AvgProcessTime_Count.Value,"No Value")

=IIF(Fields!InfoPathFormsWorkflow.Value = "Open",Fields!AvgProcessTime_Sum.Value / Fields!AvgProcessTime_Count.Value,"No Value")

当DataSet只有1个值(“打开”或“关闭”)时,文本字段将正确显示,但当DataSet有2个值(“关闭”和“打开”条目)时,只有第一个一个将正确显示,第二个将显示“无值”。因此,如果第一行具有InfoPathFormsWorkflow.value =“Close”,则它将起作用,但“Open”将不起作用。反之亦然。

选择正确的行条目有诀窍吗?我已经阅读了一些关于使用参数的内容,但我似乎无法理解它是如何工作的。任何帮助都会很棒!在此之后,另一位工人花了80个小时就把它交给了我。我宁愿让这个工作更快!感谢

1 个答案:

答案 0 :(得分:1)

这些是Tablix内部或外部的TextField?

如果他们在外面,我认为似乎就是这种情况(虽然我觉得那种表达方式根本不应该起作用,所以也许我错了......),这有点笨拙,但仍完全有可能(假设你只有这两行):

对于Closed TextField:

=IIF(First(Fields!InfoPathFormsWorkflow.Value, "YourDataSetName") = "Closed", 
     First(Fields!AvgProcessTime_Sum.Value, "YourDataSetName") / 
       First(Fields!AvgProcessTime_Count.Value, "YourDataSetName"),
     IIF(Last(Fields!InfoPathFormsWorkflow.Value, "YourDataSetName") = "Closed",
         Last(Fields!AvgProcessTime_Sum.Value, "YourDataSetName") /
           Last(Fields!AvgProcessTime_Count.Value, "YourDataSetName")
         "No Value"
     )
)

同样适用于Open TextField:

=IIF(First(Fields!InfoPathFormsWorkflow.Value, "YourDataSetName") = "Open", 
     First(Fields!AvgProcessTime_Sum.Value, "YourDataSetName") / 
       First(Fields!AvgProcessTime_Count.Value, "YourDataSetName"),
     IIF(Last(Fields!InfoPathFormsWorkflow.Value, "YourDataSetName") = "Open",
         Last(Fields!AvgProcessTime_Sum.Value, "YourDataSetName") /
           Last(Fields!AvgProcessTime_Count.Value, "YourDataSetName")
         "No Value"
     )
)

如果你想要不同的东西,请告诉我。报告服务有时会让事情变得简单,但是大多数事情最终都可以通过正确(冗长)的表达来表现。