【问题标题】:How to dynamically remove crosstab columns如何动态删除交叉表列
【发布时间】:2014-12-17 16:16:42
【问题描述】:

序言:我有一个如下所示的交叉表:

  • 行组:月份,从 1 月到 12 月;
  • 列组:名称;
  • 列总计和行总计。

它实际上显示了数据库中每个人在参数化年份中花费的总金额。 我的数据源是 Postgres 数据库,我正在使用查询检索数据。

在我的数据库中,我使用了一些“空白”记录来进行部分提取:因为我需要显示所有月份,并且我在五月运行这个,所以无论如何我都需要显示从一月到十二月。

我的数据库如下所示:

  ID  |  NAME  |  MONTH     |  YEAR  |  MONEY  
   1  |  Marco |  January   |  2014  |  150.0
   2  |  Marco |  February  |  2014  |   80.0
   3  |  Marco |  March     |  2014  |  135.5
   4  |  Marco |  April     |  2014  |   50.0
   5  |  Marco |  May       |  2014  |  200.0
   6  |        |  June      |  2014  |    0.0
   7  |        |  July      |  2014  |    0.0
   8  |        |  August    |  2014  |    0.0
   9  |        |  September |  2014  |    0.0
  10  |        |  October   |  2014  |    0.0
  11  |        |  November  |  2014  |    0.0
  12  |        |  December  |  2014  |    0.0

前 5 行是“常规”记录的示例,其他行是关于报告中 12 个月交叉表所需的“黑客”记录。

问题:如果我从 1 月到 11 月运行此报告,此解决方案会将我带到一个有一个空列的交叉表。如果填入十二月,则不显示任何空白列。

原样:

            |         |  Marco  |  Mario  |  Luigi  |  Total
  January   |    0.0  |  150.0  |  150.0  |  150.0  |  450.0
  February  |    0.0  |   80.0  |   80.0  |   80.0  |  240.0
  March     |    0.0  |  135.5  |  135.5  |  135.5  |  406.5
  April     |    0.0  |   50.0  |   50.0  |   50.0  |  150.0
  May       |    0.0  |  200.0  |  200.0  |  200.0  |  600.0
  June      |    0.0  |    0.0  |    0.0  |    0.0  |    0.0
  July      |    0.0  |    0.0  |    0.0  |    0.0  |    0.0
  August    |    0.0  |    0.0  |    0.0  |    0.0  |    0.0
  September |    0.0  |    0.0  |    0.0  |    0.0  |    0.0
  October   |    0.0  |    0.0  |    0.0  |    0.0  |    0.0
  November  |    0.0  |    0.0  |    0.0  |    0.0  |    0.0
  December  |    0.0  |    0.0  |    0.0  |    0.0  |    0.0
  TOTAL     |    0.0  |  615.5  |  615.5  |  615.5  | 1846.5

期望:

            |  Marco  |  Mario  |  Luigi  |  Total
  January   |  150.0  |  150.0  |  150.0  |  450.0
  February  |   80.0  |   80.0  |   80.0  |  240.0
  March     |  135.5  |  135.5  |  135.5  |  406.5
  April     |   50.0  |   50.0  |   50.0  |  150.0
  May       |  200.0  |  200.0  |  200.0  |  600.0
  June      |    0.0  |    0.0  |    0.0  |    0.0
  July      |    0.0  |    0.0  |    0.0  |    0.0
  August    |    0.0  |    0.0  |    0.0  |    0.0
  September |    0.0  |    0.0  |    0.0  |    0.0
  October   |    0.0  |    0.0  |    0.0  |    0.0
  November  |    0.0  |    0.0  |    0.0  |    0.0
  December  |    0.0  |    0.0  |    0.0  |    0.0
  TOTAL     |  615.5  |  615.5  |  615.5  | 1846.5

问题:如何隐藏“空白”列?有什么办法让它崩溃吗?

编辑:我试图使“空白”列完全空白,如果列组名称也是“空白”,则编辑将显示“空白”的度量表达式。然后在列、度量和总单元格中,我都检查了“如果为空白则删除”选项,但没有结果。月与交叉表的其余部分之间仍有空间。 这是我现在得到的:

            |         |  Marco  |  Mario  |  Luigi  |  Total
  January   |         |  150.0  |  150.0  |  150.0  |  450.0
  February  |         |   80.0  |   80.0  |   80.0  |  240.0
  March     |         |  135.5  |  135.5  |  135.5  |  406.5
  April     |         |   50.0  |   50.0  |   50.0  |  150.0
  May       |         |  200.0  |  200.0  |  200.0  |  600.0
  June      |         |    0.0  |    0.0  |    0.0  |    0.0
  July      |         |    0.0  |    0.0  |    0.0  |    0.0
  August    |         |    0.0  |    0.0  |    0.0  |    0.0
  September |         |    0.0  |    0.0  |    0.0  |    0.0
  October   |         |    0.0  |    0.0  |    0.0  |    0.0
  November  |         |    0.0  |    0.0  |    0.0  |    0.0
  December  |         |    0.0  |    0.0  |    0.0  |    0.0
  TOTAL     |         |  615.5  |  615.5  |  615.5  | 1846.5

【问题讨论】:

  • 您能显示您当前的查询吗?

标签: postgresql jasper-reports collapse crosstab


【解决方案1】:

无法使用 iReport 删除交叉表上的列。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-02-17
    • 1970-01-01
    • 1970-01-01
    • 2021-05-22
    • 1970-01-01
    • 2012-10-04
    • 2015-03-15
    • 1970-01-01
    相关资源
    最近更新 更多