我正在使用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个小时就把它交给了我。我宁愿让这个工作更快!感谢
答案 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"
)
)
如果你想要不同的东西,请告诉我。报告服务有时会让事情变得简单,但是大多数事情最终都可以通过正确(冗长)的表达来表现。