将多个相同值字段分组到一个单元格中

2024-01-02

首先,记录按表组件显示在表中,而不是在报表中显示。

结果如下:

 YEARS MONTHS SUMMONTH SUMQUARTER   
 ----- ------ -------- ----------  
  2009 Jan      130984     432041
       Feb      146503
       Mar      154554     
       Apr      147917     435150 
       May      131822     
       Jun      155411     
       Jul      144000     424806 
       Aug      130369     
       Sep      150437     
       Oct      112137     400114 
       Nov      152057     
       Dec      135920     
 =====================================
       Jan-Dec  1692111
 =====================================
  2010 Jan      139927     417564 
       Feb      154940     
       Mar      122697     
       Apr      163257     413305 
       May      124999     
       Jun      125049     
       Jul      145127     427612 
       Aug      138804     
       Sep      143681     
       Oct      143398     406381 
       Nov      125351     
       Dec      137632     
 =====================================
       Jan-Dec  1664862
 =====================================

sumquarter 列显示一年中每个季度的总和。

当重复字段的值时,不会打印它们。

问题是如何对 sumquarter 的列进行分组,使得每行中第一个打印的重复值加入下一个重复值成为单个单元格,直到遇到非重复值?

您可以简单地在图像中看到它。 下面是表格显示的图像,我更喜欢的解决方案是将这 3 个月的总和分组到一个单元格中。

这是图像:


您可以使用此示例:

<?xml version="1.0" encoding="UTF-8"?>
<jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="year_sum_quarter" language="groovy" pageWidth="595" pageHeight="842" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20">
    <property name="ireport.zoom" value="1.0"/>
    <property name="ireport.x" value="0"/>
    <property name="ireport.y" value="0"/>
    <queryString>
        <![CDATA[]]>
    </queryString>
    <field name="year" class="java.lang.Integer"/>
    <field name="month" class="java.lang.String"/>
    <field name="sum" class="java.lang.Integer"/>
    <field name="q" class="java.lang.Integer"/>
    <variable name="yearSum" class="java.lang.Integer" resetType="Group" resetGroup="yearGroup" calculation="Sum">
        <variableExpression><![CDATA[$F{sum}]]></variableExpression>
    </variable>
    <variable name="qSum" class="java.lang.Integer" resetType="Group" resetGroup="quaterGroup" calculation="Sum">
        <variableExpression><![CDATA[$F{sum}]]></variableExpression>
    </variable>
    <group name="yearGroup">
        <groupExpression><![CDATA[$F{year}]]></groupExpression>
        <groupFooter>
            <band height="20">
                <textField>
                    <reportElement x="100" y="0" width="100" height="20"/>
                    <box leftPadding="10">
                        <topPen lineWidth="1.0"/>
                        <leftPen lineWidth="0.0"/>
                        <bottomPen lineWidth="1.0"/>
                        <rightPen lineWidth="0.0"/>
                    </box>
                    <textElement/>
                    <textFieldExpression><![CDATA["Jan-Dec, " + $F{year}]]></textFieldExpression>
                </textField>
                <textField>
                    <reportElement x="200" y="0" width="100" height="20"/>
                    <box leftPadding="0">
                        <topPen lineWidth="1.0"/>
                        <leftPen lineWidth="0.0"/>
                        <bottomPen lineWidth="1.0"/>
                        <rightPen lineWidth="0.0"/>
                    </box>
                    <textElement/>
                    <textFieldExpression><![CDATA[$V{yearSum}]]></textFieldExpression>
                </textField>
                <staticText>
                    <reportElement x="0" y="0" width="100" height="20"/>
                    <box>
                        <topPen lineWidth="1.0"/>
                        <leftPen lineWidth="1.0"/>
                        <bottomPen lineWidth="1.0"/>
                        <rightPen lineWidth="0.0"/>
                    </box>
                    <textElement textAlignment="Center" verticalAlignment="Middle">
                        <font isBold="true" isItalic="true"/>
                    </textElement>
                    <text><![CDATA[]]></text>
                </staticText>
                <staticText>
                    <reportElement x="300" y="0" width="100" height="20"/>
                    <box>
                        <topPen lineWidth="1.0"/>
                        <leftPen lineWidth="0.0"/>
                        <bottomPen lineWidth="1.0"/>
                        <rightPen lineWidth="1.0"/>
                    </box>
                    <textElement textAlignment="Center" verticalAlignment="Middle">
                        <font isBold="true" isItalic="true"/>
                    </textElement>
                    <text><![CDATA[]]></text>
                </staticText>
            </band>
        </groupFooter>
    </group>
    <group name="quaterGroup">
        <groupExpression><![CDATA[$F{year} + $F{q}]]></groupExpression>
    </group>
    <columnHeader>
        <band height="50">
            <staticText>
                <reportElement x="100" y="30" width="100" height="20"/>
                <box>
                    <topPen lineWidth="1.0"/>
                    <leftPen lineWidth="1.0"/>
                    <bottomPen lineWidth="1.0"/>
                    <rightPen lineWidth="1.0"/>
                </box>
                <textElement textAlignment="Center" verticalAlignment="Middle">
                    <font isBold="true" isItalic="true"/>
                </textElement>
                <text><![CDATA[Month]]></text>
            </staticText>
            <staticText>
                <reportElement x="0" y="30" width="100" height="20"/>
                <box>
                    <topPen lineWidth="1.0"/>
                    <leftPen lineWidth="1.0"/>
                    <bottomPen lineWidth="1.0"/>
                    <rightPen lineWidth="1.0"/>
                </box>
                <textElement textAlignment="Center" verticalAlignment="Middle">
                    <font isBold="true" isItalic="true"/>
                </textElement>
                <text><![CDATA[Year]]></text>
            </staticText>
            <staticText>
                <reportElement x="200" y="30" width="100" height="20"/>
                <box>
                    <topPen lineWidth="1.0"/>
                    <leftPen lineWidth="1.0"/>
                    <bottomPen lineWidth="1.0"/>
                    <rightPen lineWidth="1.0"/>
                </box>
                <textElement textAlignment="Center" verticalAlignment="Middle">
                    <font isBold="true" isItalic="true"/>
                </textElement>
                <text><![CDATA[Month Sum]]></text>
            </staticText>
            <staticText>
                <reportElement x="300" y="30" width="100" height="20"/>
                <box>
                    <topPen lineWidth="1.0"/>
                    <leftPen lineWidth="1.0"/>
                    <bottomPen lineWidth="1.0"/>
                    <rightPen lineWidth="1.0"/>
                </box>
                <textElement textAlignment="Center" verticalAlignment="Middle">
                    <font isBold="true" isItalic="true"/>
                </textElement>
                <text><![CDATA[Quarter Sum]]></text>
            </staticText>
        </band>
    </columnHeader>
    <detail>
        <band height="20" splitType="Stretch">
            <staticText>
                <reportElement x="300" y="0" width="100" height="20"/>
                <box>
                    <topPen lineWidth="0.0"/>
                    <leftPen lineWidth="1.0"/>
                    <bottomPen lineWidth="0.0"/>
                    <rightPen lineWidth="1.0"/>
                </box>
                <textElement textAlignment="Center" verticalAlignment="Middle">
                    <font isBold="true" isItalic="true"/>
                </textElement>
                <text><![CDATA[]]></text>
            </staticText>
            <staticText>
                <reportElement x="0" y="0" width="100" height="20"/>
                <box>
                    <topPen lineWidth="0.0"/>
                    <leftPen lineWidth="1.0"/>
                    <bottomPen lineWidth="0.0"/>
                    <rightPen lineWidth="1.0"/>
                </box>
                <textElement textAlignment="Center" verticalAlignment="Middle">
                    <font isBold="true" isItalic="true"/>
                </textElement>
                <text><![CDATA[]]></text>
            </staticText>
            <textField>
                <reportElement x="0" y="0" width="100" height="20">
                    <printWhenExpression><![CDATA[$V{yearGroup_COUNT} == 1]]></printWhenExpression>
                </reportElement>
                <box leftPadding="10">
                    <topPen lineWidth="0.0"/>
                    <leftPen lineWidth="1.0"/>
                    <bottomPen lineWidth="0.0"/>
                    <rightPen lineWidth="1.0"/>
                </box>
                <textElement/>
                <textFieldExpression><![CDATA[$F{year}]]></textFieldExpression>
            </textField>
            <textField>
                <reportElement x="200" y="0" width="100" height="20"/>
                <box leftPadding="10">
                    <topPen lineWidth="1.0"/>
                    <leftPen lineWidth="1.0"/>
                    <bottomPen lineWidth="1.0"/>
                    <rightPen lineWidth="1.0"/>
                </box>
                <textElement/>
                <textFieldExpression><![CDATA[$F{sum}]]></textFieldExpression>
            </textField>
            <textField>
                <reportElement x="100" y="0" width="100" height="20"/>
                <box leftPadding="10">
                    <topPen lineWidth="1.0"/>
                    <leftPen lineWidth="1.0"/>
                    <bottomPen lineWidth="1.0"/>
                    <rightPen lineWidth="1.0"/>
                </box>
                <textElement/>
                <textFieldExpression><![CDATA[$F{month}]]></textFieldExpression>
            </textField>
            <textField evaluationTime="Group" evaluationGroup="quaterGroup" isBlankWhenNull="false">
                <reportElement stretchType="RelativeToBandHeight" isPrintRepeatedValues="false" x="300" y="0" width="100" height="20" printWhenGroupChanges="quaterGroup">
                    <printWhenExpression><![CDATA[$V{quaterGroup_COUNT} == 1]]></printWhenExpression>
                </reportElement>
                <box leftPadding="10">
                    <topPen lineWidth="0.0"/>
                    <leftPen lineWidth="1.0"/>
                    <bottomPen lineWidth="0.0"/>
                    <rightPen lineWidth="1.0"/>
                </box>
                <textElement/>
                <textFieldExpression><![CDATA[$V{qSum}]]></textFieldExpression>
            </textField>
            <line>
                <reportElement x="300" y="0" width="100" height="1" printWhenGroupChanges="quaterGroup">
                    <printWhenExpression><![CDATA[$V{quaterGroup_COUNT} == 1]]></printWhenExpression>
                </reportElement>
            </line>
        </band>
    </detail>
</jasperReport>

The result will be (in pdf format): Resulting report in PDF format

在此示例中,我使用了两个元素Detail乐队为Year柱子: 一textField仅具有垂直边框并且具有printWhenExpression: "$V{yearGroup_COUNT} == 1"财产(我只展示一次整个年组)和一个staticText没有任何文本,只有垂直边框。

我在其中使用了三个元素Detail乐队为Quarter Sum column:
one textField仅具有垂直边框并且具有printWhenExpression: "$V{quaterGroup_COUNT} == 1"财产(我只展示一次整个四分之一集团), one staticText没有任何文本,只有垂直边框和line用于绘制水平边框的元素printWhenExpression: "$V{quaterGroup_COUNT} == 1"财产。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将多个相同值字段分组到一个单元格中 的相关文章

  • Java 的 PDF 生成库 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我知道以前有人问过这个问题 但我仍然不确定在我当前的项目中使用哪个 PDF 生成框架 我的要求 即时生
  • 如何从java层使用html5 jasper报告而不将报告发布到jasper服务器

    我是 jasper 和 highcharts 的新手 我使用 jaspersoft 许可证版本设计了 html5 报告 我想使用我的 java 应用程序中的 html5 jasper 报告 而不将其发布到 jasper 服务器 我需要包含哪
  • 在 Python 中打印表格

    我有一个任务要在 Python 中创建一个 10 x 10 表 并且我在打印函数中使用结尾 t 来防止它创建新行 但是 我需要它在 10 个字符之后开始一个新行 我怎样才能让它做到这一点 这是我的代码 product 0 for x in
  • 数据类型 date 的日期函数 dateadd 不支持日期部分小时

    当我在 jasper 报告中运行以下查询时 出现异常 net sf jasperreports engine JRException 执行 SQL 语句时出错 Activity Summary Activity Summery Report
  • 如何从数据库插入图像?

    我想在我的报告的详细信息区域中插入数据库中的图像贾斯帕软件工作室 JPG 图像保存在 MySQL 中imgdata类型的longblob 我尝试将此表达式放入 Image 元素中 F imgdata MyUtil getInputStrea
  • 使用 Java(或不使用 Java)将 .xls 转换为 .pdf

    有没有办法转换xls文件到一个pdf 我想直接做一个动态报告pdf文件 但没有找到在 iReport 上创建动态列的方法 所以我在 Java 上创建了一个方法 导出到xls动态地 所以我想知道是否有办法将此文件转换为pdf 但它需要位于我的
  • 空“key”参数错误

    我正在使用 IReport 3 5 0 我的 java GWT 应用程序使用编译的 jasper 文件来创建报告 我正在 java 应用程序中创建数据源并使用fillReport 报告填写方法 它工作正常 它填充了我在 jrxml 和 Ja
  • Jasper Reports 中的 isPDFEmbedded 标签

    Jasper Reports 中 isPDFEmbedded 标签的用途是什么 您可以指定是否需要在报告的 pdf 导出中嵌入字体 将字体嵌入到 pdf 中会增加 pdf 的大小 但即使客户端计算机上未安装该字体 pdf 查看器也会显示正确
  • 如何在报告中插入两页

    我面临一个问题 还有两个问题jrmxl文件 我想加入其中pdf文件 但每个都在一页中 我看到了下面的一些提示 但我不知道它们是否是最好的 因为我的第一个文件有 3 个频段 title detail and summary 第二个有detai
  • 使用 JasperReports API 生成报告时无法从 JavaBean 检索值

    我正在尝试生成一个简单的JR从列表中报告 我不断得到从 bean 检索字段值时出错 名称 此错误是由于错误的 getter 方法名称造成的 因为 jasper 使用反射从 bean 中获取字段 然而 即使在更正 getter 方法名称之后
  • HTML 标签表到文本字段 - JasperReport

    我有一个使用 html 标记语言或样式的参数输入到文本字段 但是当我放置标签时 它根本不显示 Jaspersoft 支持的 thid 标签 b b u u i i font font
  • Pdfplumber 无法识别表 python [重复]

    这个问题在这里已经有答案了 我使用 Pdfplumber 提取第 2 页第 3 部分的表格 通常 但它只适用于某些 pdf 其他则不起作用 对于失败的 pdf 文件 似乎 Pdfplumber 读取的是按钮表而不是我想要的表 我怎样才能拿到
  • JasperReports 中的印地语字体 [重复]

    这个问题在这里已经有答案了 在印地语字体的内部预览中正确显示 但在 PDF 中情况有所不同 例如 在 Pdf 中显示 怎么解决这个问题 一些字体类型 例如 Arial Unicode MS 将支持特殊字符 例如印地语符号 要解决此问题 请打
  • 如何将数据源发送到子报表?

    我正在处理需要子报表的报表 因此我想将数据源从 Java 方法传递到子报表 但我没有找到正确的方法 通常我使用以下代码来创建我的报告 将数据源发送到子报表的正确方法是什么 Map
  • 为什么我的关系表会抛出 OutOfMemoryError?

    我正在使用 iReport 构建 jaspersoft 报告 并使用 Fishbowl 作为我的 DBMS 我构建了我的表 在 iReport 中显示我的表是相关的 但由于某种原因它会抛出错误并且不会运行 应该很简单 我正在输入邮政编码 日
  • 创建自定义表格表示的函数

    我使用下面的代码来概述我的部分数据 从以下代码中创建函数的最佳方法是什么 它将采用 dataList 以及一些图形选项 例如颜色 作为参数 并返回自定义的表格表示形式 如下所示 overviewtheData Text Grid Map R
  • 使用 iReport 将日期参数转换为 simpledate 格式

    我有一个startDate and an endDate作为输入参数 该参数在查询中使用 SELECT FROM patientRecords WHERE patientRecords dateOfdischarge BETWEEN P s
  • iReport 中的新页面

    这是我的情况 我有一份详细区域包含 10 个 或更多 项目的报告 我有一个大文本字段 我想跨越多个页面 此文本与项目无关 我无法创建另一个页面 因为我的所有项目都非常适合第一页 如何在页脚上创建 强制 仅包含一些可变 静态 文本的新页面 换
  • 在 JasperReports 中打印何时(到达最后一个元素)表达式

    是否可以生成一个 Print When Expression 来检测 XML 数据源文件中的最后一个元素 基本上 我有一个报告 在详细信息区域的子报告之后插入了分栏符 这样我就可以清楚地定义新记录的开头的新页面 但它总是让我最后一页空白 因
  • 使用服务器 java api 从 jasperserver 存储库检索资源

    我正在尝试使用其 java API 从 Jasperserver 存储库检索资源 根据jasper 报表服务器终极指南 https community jaspersoft com documentation jasperreports s

随机推荐

  • html5画布描边样式?

    我正在尝试将图像映射到使用描边样式和画布模拟布料的 3d 网格 我包含该图像 但它当前充当背景图像 实际上并不像波纹那样与 布料 一起流动 即随着网格的流动 图像是静态的 这是jsfiddle http jsfiddle net S7nBq
  • 在 DIV 中换行时缩进文本的最佳方法是什么?

    所以我有一个包含一些动态文本的 DIV 假设我知道文本和字体大小 但不知道 DIV 的大小 我希望 DIV 中文本的显示足够智能 以便在文本换行时显示缩进 假设我的原始文本看起来像这样 Lorem ipsum dolor sit amet
  • JavaScript 回调函数中的变量总是获取循环中的最后一个值? [复制]

    这个问题在这里已经有答案了 我正在尝试执行以下操作 我有一组图像并选择 下拉 HTML 元素 每个元素 30 个 我尝试在从 1 到 30 的循环中使用 AddEventListener 以便当我更改选择的值时 图像 src 会更新 并且图
  • 如何从日期时间中删除时间

    数据库中DATE字段的格式如下 2012 11 12 00 00 00 我想从日期中删除时间并返回日期 如下所示 11 12 2012 首先 如果您的日期采用 varchar 格式 请更改它 将日期存储为日期 https sqlblog o
  • 如何使用户从唯一一台机器(通过获取CPU Serial)登录到ASP.NET-MVC Web应用程序

    设想 我已经使用个人用户帐户部署了 Web ASP NET MVC 5 应用程序 Identity 2 x 每个用户都有一个电子邮件和密码来通过浏览器登录网络应用程序 这意味着用户可以通过任何具有互联网浏览器的设备登录 我想启用用户登录 条
  • 为什么 Java 比其他解释语言具有更好的性能? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 使用 Delphi 查找目录中最旧文件的最快方法

    HI 我们有大量的远程计算机将视频捕获到磁盘驱动器上 每台摄像机都有自己独特的目录 任何一个磁盘上最多可以有 16 个目录 我试图找到磁盘上最旧的视频文件 但使用FindFirst FindNext比较文件创建日期时间需要很长时间 有谁知道
  • iOS7 自动布局、视图调整大小和 iAds

    我在 iOS 7 项目中使用自动布局 具有以下视图层次结构 主视图 容器视图 按钮 按钮 图像视图 横幅视图 iAd 横幅视图 主视图和容器视图是屏幕的全宽和全高 我在容器视图上有水平和垂直空间约束 坚持主视图 屏幕的高度和宽度 而且 Co
  • 删除 EnumDropDownListFor 框顶部的空白/空条目

    我正在使用枚举渲染一个下拉列表框 我只有 3 个选项 但由于某种原因它显示了 4 个 顶部和默认选项只是空白 空 我希望将其删除 我希望顶部 默认值为 Option1 Enums public enum EventType Display
  • php 中俄语的 mb_convert_encoding

    如何使用 mb convert encoding 或任何其他方法在 PHP 中将俄语字符转换为 utf 8 您尝试过以下操作吗 但不确定它是否有效 mb convert encoding str UTF 8 auto
  • 如何成功地将图像嵌入 HTML 中以在网络邮件客户端中显示?

    我正在尝试使用以 Base 64 数据 URL 编码的图像在 HTML 中进行签名 这是一个例子 img src 它与 Mac 上的 Mail 或 Thunderbird 等邮件软件配合良好 但不适用于 gmail outlook roun
  • includeHTML 用于shiny、shinyApps.IO 和 Dropbox

    晚上好 快速问题 与 R shiny 应用程序相关 托管在shinyApps IO 上 我希望在我的 Dropbox 帐户上驻留一个 HTML 文件 并使用 includeHTML 将其包含到一个闪亮的应用程序中 这样做的主要原因是我的本地
  • 从 iframe 访问父 URL

    好的 我有一个页面 在这个页面上有一个 iframe 我需要做的是在 iframe 页面上 找出主页的 URL 是什么 我已经搜索过 我知道如果我的 iframe 页面位于不同的域上 这是不可能的 因为这是跨站点脚本 但我读过的所有地方都说
  • 根据列的组合在数据框中创建唯一标识符

    我有以下数据框 id Lat Lon Year Area State 50319 36 0629 62 3423 2019 90 Iowa 18873 36 0629 62 3423 2017 90 Iowa 18876 36 0754 6
  • 从 jwilder/nginx-proxy 提供静态文件

    我有一个 Web 应用程序 由 uwsgi 提供的 django 我使用 nginx 将请求代理到特定容器 这是我的 default conf 中的相关片段 upstream web ubuntu com server 172 18 0 9
  • 限制 has_many 关系中关联数量的最佳实践?

    假设我有两个模型 用户和帐户 每个账号最多可以关联n个用户 一个用户只能关联一个账号 说 User 似乎很自然 belongs to account 和账户 has many users 但是 我不清楚通过 has many 声明限制关联数
  • C# 禁用/启用 USB 端口

    我想立即禁用 启用所有 USB 端口 我尝试了以下方法 更改注册表 具有管理员权限 disable USB storage Microsoft Win32 Registry SetValue HKEY LOCAL MACHINE SYSTE
  • 正则表达式匹配双引号外的左单引号

    Note 左双引号 ldquo 右双引号 rdquo 左单引号 lsquo 我当前的正则表达式是这样的
  • Angular 2:将视图/DOM 注入组件构造函数

    我不知道如何为组件提供对其视图的引用 以执行诸如在显示表单时关注输入元素之类的操作 我似乎无法注入Element or ng core ViewRef or ng core View进入构造函数 我怎样才能访问该视图 在 Angular 1
  • 将多个相同值字段分组到一个单元格中

    首先 记录按表组件显示在表中 而不是在报表中显示 结果如下 YEARS MONTHS SUMMONTH SUMQUARTER 2009 Jan 130984 432041 Feb 146503 Mar 154554 Apr 147917 4