gpt4 book ai didi

reporting-services - tablix/matrix 中具有动态列的数据集

转载 作者:行者123 更新时间:2023-12-04 07:52:16 26 4
gpt4 key购买 nike

我有一个包含 5 列的数据集,第 6、7、10、20 甚至 100 列。至少两个是静态的,其余的是动态的(我正在根据数据库中存在的表进行缩放)。

我如何在 Reporting Services 中实现它?

tablix的字段如何指定值是动态的?

最终结果是这样的:

|   TITLE | ENUNCIATION | GOOD | VERY GOOD | BAD | VERY BAD |
-------------------------------------------------------------
| title 1 | question 1 | 5 | 3 | 1 | 0 |
| title 2 | question 2 | 1 | 0 | 3 | 0 |
| title 3 | question 3 | 0 | 0 | 1 | 0 |

| TITLE | ENUNCIATION | 1 | 2 | 3 | 4 |
-------------------------------------------------------------
| title 1 | question 1 | 5 | 3 | 1 | 0 |
| title 2 | question 2 | 1 | 0 | 3 | 0 |
| title 3 | question 3 | 0 | 0 | 1 | 0 |

注意:前两个是静态的,其余是动态的。

编辑:

我有这张表:

|   ID_SCALE  | ID_SCALE_ENTRY   | NAME          |
--------------------------------------------------
| 1 | 1 | GOOD |
| 1 | 2 | VERY GOOD |
| 1 | 3 | BAD |
| 1 | 4 | VERY BAD |
| 2 | 1 | 1 |
| 2 | 2 | 2 |
| 2 | 3 | 3 |
| 2 | 4 | 4 |
| 2 | 5 | 5 |
| 2 | 6 | 6 |
| 2 | 7 | 7 |

编辑+注意:我想完全按照第一个表中所示显示。问题是(好、很好、坏、非常坏、1、2、3、4)字段是动态创建的,不可能在 tablix 中指定它。

一个例子:当我想要数据集的字段值时,我把这个表达式 Fields!Good.value 但是现在想象它不是“Good”而是“1”字段! Good.value 不再存在。结论,是一个具有动态列的数据集。

最佳答案

首先 - 你应该为此使用 Matrix。

其次 - 要完成您想要的,在您返回数据的方法中您必须至少返回三个数据字段。

例如:

ColDescription - Column description
StaticRowDescription - Row description / static column value
Value - The real value for that column/row combination.

明白了吗?

你的矩阵应该是这样的:

| Any Text               | [ColDescription] |
| [StaticRowDescription] | [Value] |

编辑:

忘记提及在此示例中任何文本都是我的静态列。您可以添加更多内容以满足您的需要。

-------------------------------------------- ------------------

根据您的评论举个例子。

这就是您在返回方法中的实现方式:

假设您有一个静态列 Description 和其他列 (n)。

public IEnumerable<YourReturnClass> GetData(int param) 
{
List<YourReturnClass> returnList = new List<YourReturnClass>();
foreach (var row in allYourRows())
{
foreach (var col in row.getColumns())
{
returnList.add(new YourReturnClass(){
StaticRowDescription = row.Description,
ColDescription = col.Description,
Value = myValueAccordingToCurrentColumnXRow()
});
}
}

return returnList;
}

这是你的矩阵:

| Description            | [ColDescription] |
| [StaticRowDescription] | [Value] |

那样的话,如果您在 allYourRows() 中有一行描述为“Expenses”,两列名为“Gas”和“Electricity”,您的矩阵结果将是:

| Description | Gas | Electricity |
-----------------------------------
| Expenses | 25 | 150 |

更好?

这只是为了解释矩阵的工作原理,您获取数据的方式可能与描述的不同。

报告 (RDL) 将是相同的,唯一的变化是您获取数据的方式。如果你有这样的表:(这将是您数据库中的一个表(您存储数据的地方))

| RowDescription | DynamicColumnHeader | Value |
------------------------------------------------
| Year 2013 | January | 500 |
| Year 2013 | February | 850 |
| Year 2013 | March | 265 |
| Year 2014 | February | 965 |

那么您的报告将如下所示:

| Description | January | February | March|
-------------------------------------------
| Year 2013 | 500 | 850 | 265 |
| Year 2014 | | 965 | |

明白了吗?

我附上了您的报告的外观图片:

image

新编辑:

|   TITLE | ENUNCIATION    | [NAME]                          |
-------------------------------------------------------------
| [title] | [enunciation] | [ID_SCALE] OR [ID_SCALE_ENTRY] |

*或乘法、求和等...

根据最后的评论进行编辑:

|   TITLE | ENUNCIATION    | [NAME]                          |
-------------------------------------------------------------
| [title] | [enunciation] | [Count(NAME)] |

是吗?

关于reporting-services - tablix/matrix 中具有动态列的数据集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14261427/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com