【问题标题】:Dynamic sorting of tables on BIRT without javascript在没有 javascript 的情况下对 BIRT 上的表进行动态排序
【发布时间】:2010-04-12 02:03:24
【问题描述】:

我使用 WebViewerExample 作为报告。

我正在使用报表设计器在 Eclipse 中设计报表。

我有一张有几列的表格。从数据库中检索数据。

是否有一种简单的方法可以通过单击列标题名称对表格进行动态排序?

我尝试将字符串作为排序条件传递,但没有帮助。

有什么想法吗?

【问题讨论】:

    标签: report birt


    【解决方案1】:

    您是否尝试过在查询中添加一个 ORDER BY 并对其进行十个参数化?您可能需要编写一些真正轻量级的脚本,以便在运行时处理底层查询。我们所说的只是对查询中的排序条件进行字符串替换。

    原始查询:

    SELECT Col1, Col2, Col3, Col4
    FROM Table1
    WHERE Something = Something
    ORDER Col1 ASC
    

    数据集上的 beforeOpen 事件:

    this.queryText = this.queryText.replace("Col1", "Your new Sort Spec");
    

    这样就可以了。祝你好运!

    【讨论】:

    • 这不会仅在加载报告时对单击标题的数据进行排序。
    • 您只需刷新标题单击上的控件,从而刷新查询和基础排序。这确实涉及到每种排序的数据库往返,但它完成了工作。当然,最好的方法(以及更多方法)是使用 BIRT 查看器,但这不是问题的一部分。
    【解决方案2】:

    在报告中做排序或过滤参数不可能是一个解决方案

    • 带有交互式 Web 查看器的 birt iserver 进行排序
    • 我尽量少做但最简单(刚打开)

    所以改变查看器来完成工作而不是报告

    http://dev.sonid.fr/BirtViewer/ (将鼠标放在列标题上)

    【讨论】:

      【解决方案3】:

      有一个更简单的方法,如果你有一个默认值。

      首先设置一个参数,作为排序标准,在我的例子中,我称之为“排序”。 然后选择表,转到排序选项卡,并使用以下表达式: 行[参数[“排序”].值]。

      这将按您传入的参数对表格进行排序。您需要确保列名正确。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-07-28
        • 2020-01-25
        • 1970-01-01
        • 2021-04-16
        • 2011-04-12
        • 1970-01-01
        • 2020-01-23
        • 2023-03-20
        相关资源
        最近更新 更多