【问题标题】:Complex algorithm for generating a BIRT table生成 BIRT 表的复杂算法
【发布时间】:2011-03-01 08:43:13
【问题描述】:

我有一个包含以下列的 birt 数据集,按“时间”排序:

devicename   String
operatorname String
time         Date Time
action       String
info         String

'action' 可以有四个可能的值之一:

MAINTENANCE_START
DEVICE_DEFECT
DEVICE_REPAIRED
MAINTENANCE_STOP

我想使用这些数据在我的报告中生成一个表格。我应该为数据集的每一行都有一个表条目,其中 action 的值为“MAINTENANCE_STOP”。我的表应该有以下条目:

Time
Operator
Status
Duration
Maintenance_Info
  • “时间”的值应取自当前“维护停止”之前最后一个“维护启动”的“时间”列

  • 'Operator'应该是执行'MAINTENANCE_START'的操作员

  • 'Status' - 如果在最后一个'MAINTENANCE_START' 和当前'MAINTENANCE_STOP' 之间有一个'DEVICE_DEFECT' 或'DEVICE_REPAIRED' 事件,这应该有值'设备不可用'否则它应该是'设备可用'。

  • “持续时间” - 应该是“MAINTENANCE_STOP”和最后一个“MAINTENANCE_START”之间的差异(间隔)

  • 'Maintenance_Info' - 应该是最后一个 'MAINTENANCE_START' 和当前 'MAINTENANCE_STOP' 之间的所有 'info' 字符串的串联。

    这最初是在一个用于 Web 应用程序的 Java bean 中完成的。在 java 中它并不难做到,但是,在 BIRT 中我不确定它是否可能。你能给我一些关于如何做这样的事情的建议吗?

【问题讨论】:

    标签: sql birt


    【解决方案1】:

    如果您已经在 J​​ava 中完成了它,您可以使用脚本数据源在 BIRT 中利用它。脚本数据源依赖于 Java 对象来构建对象数组,每个对象将代表数据集上的一个“行”。在运行时,BIRT 引擎触发 java 对象来构建数组,当完成时,数组被读入报告上的数据集,然后您就可以开始运行了。

    更多关于脚本数据源的信息在这里:Scripted Data Source Examples

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-24
      • 1970-01-01
      • 1970-01-01
      • 2010-11-24
      • 1970-01-01
      相关资源
      最近更新 更多