首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >BIRT报表工具

BIRT报表工具
EN

Stack Overflow用户
提问于 2014-08-08 17:09:01
回答 1查看 421关注 0票数 0

我在Eclipse Java EE IDE(Juno版本)中使用BIRT Report Design创建了一个报告。在报告中,对于单行,对应一列有多个值(我使用LISTAGG() oracle函数来映射)。

(即)结果列在以下数据库表输出中有多个值:

代码语言:javascript
复制
No    Name    Result     Mark 
-----------------------------------
1     John          X                  32
               XX
              XXX
2     Joe            X                   56

              XX
              XX

              XXX
3    Andrew                          34

             XXX
             XX

             XXXX

…它有NULL和NOT NULL两个值。

“如果空值位于中间,则表示其在报告中正确显示结果”

Joe的报告输出中的示例结果(.pdf表单)

代码语言:javascript
复制
No    Name    Result     Mark 
-----------------------------------
2     Joe            X                   56

              XX
              XX

              XXX

这里的问题是,“如果第一条记录有NULL意味着它没有在报告中正确显示,而不是not NULL值将打印在前面,依此类推”。

安德鲁的报告输出中的示例结果(.pdf表单)

代码语言:javascript
复制
No    Name    Result     Mark 
-----------------------------------
3    Andrew      XXX            34
                 XX

                XXXX

但是我们有两个null值出现在Andrew结果列的前面(正如您在上面看到的示例oracle表输出)…

对于birt报告工具中的特定行,是否有在第一行显示空白(如果它是null)的选项?

请帮我解决这个问题…谢谢!

EN

回答 1

Stack Overflow用户

发布于 2014-08-18 20:24:00

当数据中的空值导致BIRT报告出现问题时,我并没有试图确切地了解您的问题是什么。使用这两种解决方案中的一种。

  1. 使用数据库函数将NULL转换为其他值。在SQL语言中,我使用命令ISNULL
  2. Use a computed column In the BIRT 'Data Set‘来创建一个新的列,在JS中编写您需要的任何内容。在下面的示例中,我需要对日期字段做出决策,与输入参数相比,日期字段有时为null。

if (row"START_TIME“== null){ "F”}else if (row"END_TIME“== null){ "T”}else if (row"START_TIME".getTime() >= params"WeekOf".getTime() ){ "T“}else if(row"END_TIME".getTime() <= params"WeekOf".getTime() ){ "F”} else if(row"END_TIME".getTime() >= params"WeekOf“.getTime( ) { "T“}否则{ "F"}

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25199800

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档