s-s-rS 中 Tablix 中列的动态宽度调整
Posted
技术标签:
【中文标题】s-s-rS 中 Tablix 中列的动态宽度调整【英文标题】:Dynamic Width Adjustment of a Column in Tablix in s-s-rS 【发布时间】:2016-02-29 11:10:34 【问题描述】:大家好, 我想动态调整 tablix 列的宽度。有人可以让我知道如何做到这一点吗?当我搜索一些论坛时,有人建议我尝试在报告属性的代码中创建报告实例并使用该实例访问 tablix 列,但我无法做到这一点。如果我确实可以尝试创建报告实例并访问 tablix 并动态调整宽度,有人可以帮忙吗?
谢谢, 阿杰
【问题讨论】:
动态是什么意思,您是否希望能够像在 excel 中一样在渲染后手动拖动列边框,或者您是否希望该列根据数据集的大小自动更改或执行您希望在报告呈现之前由用户设置列。提到的第一个解决方案是不可能的,其他两个是可能的 感谢您的回复。所以我有一个 tablix,有 4 列占据报告的长度。现在在特定条件下,第三列将被隐藏。所以现在我有 3 列。第 4 列将在第 2 列旁边。现在正因为如此,我在右侧有额外的空间,因此要删除这个额外的空间,我希望第一列的宽度增加,这样我的 3 列 tablix 仍将占据页面的整个长度,报告中的第一列加宽. 您可以做的一件事是只为 2 和 3 保留一列,各有一个占位符,并通过表达式控制占位符的内容 【参考方案1】:选择第一列,在属性中,找到width属性(小于大小)添加一个表达式,使用相同的条件隐藏第3列并增加第一列的宽度,例如
=iif(parameters!par.value=true,"1,5cm","2,5cm")
--已编辑--
非常抱歉我之前的解决方案是错误的,我没有检查它,很抱歉浪费了您的时间,但我有一个可行的解决方案。 创建两列第一列,即显示相同信息的两列,一列是当第 3 列可见时您喜欢的宽度(我们称之为 col1a),另一列是适合隐藏第 3 列时的宽度( col1b) 然后让这两个交替。然后当你隐藏第 3 列时,你也会隐藏 col1a 并使 col1b 可见,然后反过来
【讨论】:
在 2008 R2 中,我尝试在文本框和列上使用宽度表达式,但都以错误消息拒绝它。其他版本的 s-s-rS 允许吗? 我创建了一个带有名为“par”的参数的报告,因此我可以粘贴您的确切表达式。Property value is not valid. =iif(parameters!par.value=true,"1,5cm","2,5cm") cannot be parsed as a unit because it does not contain numeric values. Examples of valid unit strings are "1pt" and ".5in".
大多数允许表达式的属性都有一个可供选择的 没有自动调整列宽的属性。长度我们可以动态地做到这一点。这就是微软工具的限制。
目前,一种解决方案是设置合理的固定列宽(例如 30)并将文本框 CanGrow 设置为 True,以便在需要时换行到下一行。另一种解决方案是有两列并有条件地隐藏其中一个。
【讨论】:
以上是关于s-s-rS 中 Tablix 中列的动态宽度调整的主要内容,如果未能解决你的问题,请参考以下文章