【问题标题】:Dynamic Column width for a RDLC reportRDLC 报告的动态列宽
【发布时间】:2013-04-22 03:31:40
【问题描述】:

假设我有 10 列要查看报告,我想根据用户选择的参数值在运行时隐藏其中的 3 列。这可以通过根据上述参数的值设置这 3 列中的每一列的列可见性来轻松完成。到这里为止都很好。

问题是当报表显示时(隐藏 3 列),其余 7 列占据了隐藏列的位置,因此表格的整体宽度相应减小。我不希望这种情况发生。即我希望表格宽度保持不变。

也就是说剩余的列宽度应该能够以某种方式扩展,以使表格的原始整体宽度保持不变。

这有可能实现吗?

【问题讨论】:

    标签: reporting-services rdlc


    【解决方案1】:

    列宽本身不是基于表达式的,但您可以实现类似的效果。我认为它是否适合您将取决于您的特定报告布局以及解决方法如何影响任何其他元素。

    无论如何,一个简单的例子。我针对包含三个字段的 DataSet 创建了一个报告:

    我已将val2 设置为使其可见性由布尔参数HideColumn 控制。这很好用。

    请注意,表格中实际上有 列。对于val1val3,实际上有两列,我将列中的字段合并在一起。

    这里的关键是当HideColumn设置为true时,我们显示val1val3的额外列,当它为false时我们隐藏列 - 基本上与 val2 的可见性相反。

    SSRS 将根据可见的列相应地调整合并字段的宽度:

    所以在这种情况下,它按要求工作。对于您的示例,您需要考虑这些额外列的大小和所需宽度,但原理是相同的。

    这仅适用于设置列,即不是矩阵,但希望对您来说就足够了。

    【讨论】:

    • 嗨,伊恩·普雷斯顿,我正在尝试这样做很长时间。你有这方面的代码/报告样本吗?
    • 很抱歉,但我不知道您所说的“很长时间”是什么意思。您能否提供更多信息?
    • 很久了,已经过去很多次了,请给我代码或其他方式,你的例子不起作用。
    • 你是什么意思不起作用?你需要更具体。您可以在上面看到它对我有用 - 我什至展示了我用来创建示例报告的确切步骤。是不是您认为这对您的报告不起作用?你试图让它工作但不能吗?您需要提供更多关于您尝试过的内容以及遇到的具体问题的详细信息——我无法为您编写报告。我建议尝试像上面那样创建一个简单的报告来熟悉这个过程。
    • 我有 25 列,15 列可能隐藏或显示很难管理 15 列隐藏或显示以及列宽按比例变化,请给我另一种方式,以便我可以轻松解决这个问题。谢谢和问候。
    【解决方案2】:

    我找不到 Reports 原生支持的解决方案,也没有找到令人满意的在线解决方案。所以我写了一些代码来操作XML,然后在reportview中使用它。它重新分配隐藏列的宽度:

    https://github.com/DaveyvanTilburg/RDLCDynamicColumns

    被更改的 xml 示例(可以在 github 中找到完整示例)

    之前:

    <TablixColumn>
        <Width>4.20cm</Width>
    </TablixColumn>
    <TablixColumn>
        <Width>12.4567cm</Width>
    </TablixColumn>
    <TablixColumn>
        <Width>10.50cm</Width>
    </TablixColumn>
    

    之后,第二列将被隐藏,其宽度重新分布在可见列上:

    <TablixColumn>
        <Width>10.428350cm</Width>
    </TablixColumn>
    <TablixColumn>
        <Width>0cm</Width>
    </TablixColumn>
    <TablixColumn>
        <Width>16.728350cm</Width>
    </TablixColumn>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-13
      • 1970-01-01
      相关资源
      最近更新 更多