Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/rust/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reporting services 报表生成器-在列组下的单行中显示值_Reporting Services - Fatal编程技术网

Reporting services 报表生成器-在列组下的单行中显示值

Reporting services 报表生成器-在列组下的单行中显示值,reporting-services,Reporting Services,我想在课程代码下的一行显示学生是否完成了课程。但是我得到了多余的数据。如何避免获取冗余数据 谢谢您是否已确定使用数据集中的“已完成”和“正在进行”值 如果改为使用数字,例如1表示已完成,0表示正在进行,则可以采用以下方法 使用此数据集 Name TSW_Num INF_Num PWD_Num A 1 0 0 A 0 1 0 A 0 0

我想在课程代码下的一行显示学生是否完成了课程。但是我得到了多余的数据。如何避免获取冗余数据


谢谢

您是否已确定使用数据集中的“已完成”和“正在进行”值

如果改为使用数字,例如1表示已完成,0表示正在进行,则可以采用以下方法

使用此数据集

Name    TSW_Num    INF_Num    PWD_Num
A       1          0          0
A       0          1          0
A       0          0          1
B       1          0          0
B       0          1          0
将给出以下数据集,类似于问题中显示的

如果要创建一个新表,并将行设置为group on FirstName,并将每个数据单元设置为TSW/INF/PWD_Nums的最大值,例如

=MAX(Fields!TSW_Num.Value)
=SWITCH(
    MAX(Fields!TSW_Num.Value) = 1, "Completed",
    MAX(Fields!TSW_Num.Value) = 0, "In Progress")
这将导致这样的设计

哪个会变成这样

现在,通过将这些Max(value)表达式中的每一个包装到一个新表达式中,将值转换为文本,例如

=MAX(Fields!TSW_Num.Value)
=SWITCH(
    MAX(Fields!TSW_Num.Value) = 1, "Completed",
    MAX(Fields!TSW_Num.Value) = 0, "In Progress")
然后,在渲染时,将导致以下结果

希望这是一种可以应用于解决现有问题的方法


您还可以使用IIF语句将原始文本值转换为整数值,以便对其执行最大值计算,但这将变得非常混乱。

假设课程进度只能有两种状态已完成且正在进行,如屏幕截图所示,您可以使用此方法:

我已使用此数据集测试我的解决方案:

我使用以下数据排列和行组设置创建了一个tablix:

Status
列中,我设置了以下表达式:

=IIF(CountDistinct(Fields!Status.Value,"Student")>1,"Completed","In-Progress")
它将预览:


让我知道这是否可以帮助您。

如果行中显示“已完成”,无论顺序如何,是否表示学生已完成课程?或者逻辑是什么?是的。学生完成课程后,在课程代码下应显示为“已完成”,否则为“正在进行”。发行日期应重命名为状态。谢谢Jonnus,我试过了。但问题是,他们只有一个字段,即“状态”,它对学生是否完成学业都有价值。每个课程都没有单独的状态。因此,如果学生学习了3门课程,则状态为3行。有什么解决办法我可以把它们一字排开吗?谢谢,当然必须至少是e字段、学生姓名、课程名称和状态,否则其他数据来自哪里?