【问题标题】:How to compare two data rows in one data set in BIRT如何在BIRT中比较一个数据集中的两个数据行
【发布时间】:2011-11-11 15:55:11
【问题描述】:

我是 BIRT 新手,需要回答以下问题: 如何在BIRT中比较一个数据集中的两个数据行,然后打印到文档中?

【问题讨论】:

  • 你能给我们一些关于你为什么/以什么方式比较两个数据行的信息吗?

标签: eclipse report birt


【解决方案1】:

我假设您有理由不使用自联接查询来引入数据。您可以做的一件简单的事情是拥有 2 个相同的数据集,然后使用 2 创建一个新的联合数据集。

【讨论】:

    【解决方案2】:

    使用 Oracle 数据库,您可以使用“分析函数”LAG 使用纯 SQL 轻松实现此目的(有关详细信息,请参阅 Oracle 文档)。

    独立于数据库,使用 BIRT,您可以使用变量 last_row:

    创建一些计算列来保存比较结果。例如“FIRST_COLUMN_CHANGED”为布尔值。

    afterOpen 事件:

    last_row = null;
    

    onFetch 事件(请注意我不确定实际数据列是从 0 还是 1 开始):

    if (last_row != null) {
        if (last_row[0] == row[0]) {
            row["FIRST_COLUMN_CHANGED"] = false;
        } else {
            row["FIRST_COLUMN_CHANGED"] = true;
        }
    } else {
        // do computations for the first record.
        row["FIRST_COLUMN_CHANGED"] = true;
    }
    
    // Copy the current row to last_row
    last_row = {};
    // modify depending on the number of columns
    for (var i=0; i<10; i++) {
        last_row[i] = row[i];
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-10
      • 2014-08-30
      相关资源
      最近更新 更多