获取 Jasper Reports 表中第一行和最后一行的第一个字母

2024-01-02

I am using JasperSoft Studio in Eclipse to generate a signup sheet for a church. The page header has the label of what last names will be on the page. So page 1 will have A-D, if the page starts with an A, and ends with a D.enter image description here

对于如此简单的任务来说,事实证明这是非常复杂的。我只想读取每页第一行和最后一行中的last_name字段是什么,取出它的第一个字母,然后将其粘贴到标题中。

欢迎任何想法,我很困惑。


获取您使用的页面中字段的第一个和最后一个值变量 with 重置类型并设置正确的评估时间 on the textField(您将需要使用 2 个文本字段将它们彼此正确对齐)

这个例子将展示如何获取first and last字段值$F{Last_Name} on 每一页

页面中字段的第一个值

The 重置类型你的变量将是resetType="None"

<variable name="firstValueOnPage" class="java.lang.String" resetType="None">
    <variableExpression><![CDATA[$F{Last_Name}]]></variableExpression>
</variable>

并在textField,使用变量evalution="Now"(这是默认的,所以不需要标签)

<textField>
   <reportElement x="30" y="19" width="100" height="20" uuid="e6421031-6db7-4fd9-995f-94cef2eb3621"/>
    <textFieldExpression><![CDATA[$V{firstValueOnPage}]]></textFieldExpression>
</textField>

页面中字段的最后一个值

The 重置类型你的变量是resetType="Page"

<variable name="lastValueOnPage" class="java.lang.String" resetType="Page">
    <variableExpression><![CDATA[$F{Last_Name}]]></variableExpression>
</variable>

并在文本字段中使用变量evaluationTime="Page"

<textField evaluationTime="Page">
    <reportElement x="170" y="19" width="100" height="20" uuid="9100baa5-0095-4dc3-ac79-2cd87562a92d"/>
    <textFieldExpression><![CDATA[$V{lastValueOnPage}]]></textFieldExpression>
</textField>

为了仅获取第一个和最后一个值的第一个字符,我发现您已经弄清楚了,但是为了完成答案,textFieldExpression 将是

<textFieldExpression><![CDATA[($V{firstValueOnPage}!=null&&$V{firstValueOnPage}.length()>0)?String.valueOf($V{firstValueOnPage}.charAt(0)).toUpperCase():""]]></textFieldExpression>

现在只需将两个文本字段放在一起(正确对齐它们),您就会得到所需的结果。

一些额外的信息,以了解更多信息重置类型 and 评估时间 (from 碧玉报告 API 6.2.0 http://jasperreports.sourceforge.net/api/)

重置类型

None- 在数据源迭代期间,变量随着每条记录而递增Report- 在报告填充过程中,变量永远不会增加。
Page- 该变量随着每个新页面而递增。
Column- 变量随着每个新列而递增。
Group- 每次由incrementGroup属性指定的组中断时,变量都会递增

评估时间

Auto评估时间表明每个变量参与 表达式应该在引擎决定的时间进行计算。
Band该元素将在频段结束时进行评估。
Column一个常量,指定在填充每列后应计算表达式。Group一个常量,指定应在每个组中断后计算表达式。
Master用于在主报告结束时评估的元素。
Now一个常量,指定应在填充过程中遇到表达式时立即对其求值。
Page一个常量,指定在填充每个页面后应计算表达式。
Report一个常量,指定应在填充过程结束时计算表达式。

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

获取 Jasper Reports 表中第一行和最后一行的第一个字母 的相关文章

随机推荐

  • #shadow-root 是什么,为什么它在我的 font Awesome 类上不显示任何内容? [复制]

    这个问题在这里已经有答案了 为什么 Shadow root 样式在我的上不显示任何内容 fa xxx课程 影子根的东西将我使用的类添加到显示无堆中 但仅添加我添加的特定类 我使用 PHP 来包含导航 页脚等 但这些不受它的影响 例如 它在我
  • 具有自签名证书的 https iOS

    我有一台带有自签名证书的服务器 我想以 https 形式将我的设备与服务器连接 我听说我必须接受这种联系 但我不知道怎么办 我有一个自签名证书 因为它是测试服务器 但我想用https形式访问 当我尝试使用 https 访问时出现错误 SUR
  • 装箱暴力法

    我需要制作解决装箱问题的程序 但我已经制作了首次拟合和贪婪算法 但我的讲师说在某些情况下它不会找到问题的最小解决方案 所以我决定尝试暴力破解 但我不知道它应该如何检查所有可能的解决方案 所以是的 有人可以向我解释一下或者给出伪代码什么的 我
  • 如何找到二进制文件的长度

    我有一个大小 2 的二进制文件 但我想将所有数据读入一个向量 但我不知道如何找到该二进制数据的总长度 f lt file a bin rb readBin f integer size 2 n Just use file info a bi
  • Rails 3/ Git/ Bundler Fatal 无法解析对象

    尝试捆绑安装时 我收到以下错误 Fatal could not parse object 8c11dd Git error command git reset hard 8c11dd If this error persists you c
  • 如何在 C++11 中创建线程对象数组?

    我想学习如何使用新的 C 标准库创建多个线程并将它们的句柄存储到数组中 我怎样才能启动一个线程 我看到的示例使用构造函数启动线程 但如果我使用数组 则无法调用构造函数 include
  • Python 正则表达式:异或运算符

    假设我有这样的字符串 DT NN IN NN DT RB JJ NN DT JJ JJ NN DT RB RB NN NN DT RB RB 所以 我有一个字符串列表 list DT NN IN NN DT RB JJ NN DT JJ J
  • std::map 的变量模板 + 通用 lambda

    An C 14 变量模板的答案 目的是什么 有使用示例吗 https stackoverflow com a 21162680 1508519提出了一个变量模板 泛型 lambda 的使用示例 如下所示 void some func tem
  • 当快速加载选项打开且最大插入提交大小设置为零时,SSIS 如何重定向 OLEDB 目标中的行

    我正在使用启用快速加载的 OLEDB 目标 在错误输出中 有 3 个选项 失败组件 忽略失败 和 重定向 如果我选 择 重定向 它会显示启用 快速加载 选项的 OLEDB 无法重定向 是否有其他方法来处理该错误这些类型的 Oledb 目标
  • 我的第一个表值函数和游标

    我有这样的疑问 SELECT name lastname FROM contestant WHERE name John AND lastname Smith 我从上面的查询中得到了几个结果 我需要将它们用于以下查询 SELECT name
  • 未找到快速命令

    由于某种原因 在我的机器上全局安装 Express 后npm install g express if I cd进入目录并尝试运行express 我收到以下错误 express command not found 即使我运行它sudo我仍然
  • AssertionError:将使用不支持的标签('cp310','cp310','linux_x86_64')构建轮子

    当我尝试使用 Python 3 10 安装 numpy 时 我收到此消息 如何解决这个问题 Copying numpy egg info to build bdist linux x86 64 wheel numpy 1 19 3 py3
  • 使用 Node.js、流和 Promise 下载文件

    这是我的代码片段 var processListing function directoryItems console log foreach var itemsToDownload directoryItems forEach funct
  • 骨干.js https

    整个早上都在谷歌上搜索 但找不到答案 官方文档中甚至没有 https 或 ssl 字样 目前我有类似的东西 var A backbone Collection extend url a 有没有办法让 url https 而不使用绝对路径 我
  • 如何避免 uitextfield 旁边的点

    当文本大于 uitextfield 的宽度时 是否可以删除 uitextfield 旁边显示的点 如果您调用以下代码使键盘可见 这是可能的 self yourTextField 成为FirstResponder 然后较大的文本从左侧被剪切
  • Airflow - 获取 dag run 的开始时间

    是否有可能获得气流中 dag 的实际开始时间 我所说的开始时间是指 dag 的第一个任务开始运行的确切时间 我知道我可以使用宏来获取执行日期 如果使用trigger dag运行作业 这就是我所说的开始时间 但如果作业按每日计划运行 那么 e
  • 无法在中心显示材质 ui 小吃栏

    我有一个材料 ui 小吃栏 我需要将其显示在屏幕中间 下面是我试图传递的属性 使其显示在屏幕中心 但显示在屏幕顶部 anchorOrigin vertical center horizontal center https codesandb
  • 出现错误:/bin/sh scriptcs:找不到命令

    我正在使用 Visual Studio Code for Mac 运行扩展 CodeRunner 我有一个简单的程序 using System namespace HelloWorldApplication class HelloWorld
  • “X-UA-兼容”内容=“IE = 9; IE = 8; IE = 7; IE = EDGE”

    这句话究竟是什么意思呢 一些例子使用 分离 IE 的版本 而有些则使用 哪个是对的 命令IE 9 IE 8 IE 7 IE EDGE有一定的重要性 我想知道这一点 Edit 我在用 如果您支持 IE 对于 Internet Explorer
  • 获取 Jasper Reports 表中第一行和最后一行的第一个字母

    I am using JasperSoft Studio in Eclipse to generate a signup sheet for a church The page header has the label of what la