当前位置: 首页 > 知识库问答 >
问题:

是否可以为单个jrxml报表使用多个资源包?

戚令秋
2023-03-14

我正在使用Jasper生成PDF报告。在jrxml文件中,我可以读取单个属性文件作为一个资源包,但这里我需要读取2个属性文件来生成报告作为一个双语(两种语言标签,一种是英语标签,另一种是本地语言标签)报告。是否可以在JasperReport中使用多个属性文件。还是有其他办法可以做到这一点?

共有1个答案

龙欣德
2023-03-14

使用单一资源包的主要原因是它封装了一种语言的所有文本。运行报表时,将提供报表的区域设置(国家/地区和语言)。这将导致报表选择特定语言的资源包。由于报表模板引用的是包键,而不是包键的值,因此生成的报表是以特定语言输出的。

如果报告是双语的(这是一个不寻常的要求,因为将Locale对象传递到报告中以生成一种语言是很简单的,这会增加可用的页面空间),那么就像正常的一样创建一个资源包,但是更新标签以包括两种语言。这可能类似于:

header.label.greeting = Hello / Bonjour
footer.label.page = Page / Page
body.label.name = Name / Nom

如果英文标签总是第一,那么只需默认使用英文区域设置并相应地命名资源包文件。

header.label.greeting = Hello
footer.label.page = Page
body.label.name = Name
header.label.greeting = Bonjour
footer.label.page = Page
body.label.name = Nom

要使这种方法起作用,您必须有一个约定,允许合并代码区分双语标签和非双语标签(如果存在的话)。

 类似资料:
  • 现在我已经添加了一个新的jasper模板,它必须在同一个文件夹中使用基于year参数的不同数据源。 我所能做的就是为该文件夹中的每个模板向jasper发送的参数列表中添加今年,在这种情况下,它将为所有现有模板使用id,为这个新模板使用year。 但是,为了添加jasper模板,我宁愿不部署这个应用程序的新版本,所以我想做以下事情: 在datasource 1中使用参数id查询所需年份 使用this

  • 问题内容: 想法是在片中具有可变数量的通道,将通过通道接收的每个值推入单个通道,并在最后一个输入通道关闭后关闭该输出通道。这样的事情,但对于多个渠道来说,要超过两个: 上面的代码避免了繁忙的循环,因为没有任何情况,这是很好的(编辑:看起来,“,ok”的存在使select语句成为非阻塞状态,并且循环毕竟是繁忙的。但是出于示例的目的,就好像将代码阻止一样)。是否可以通过任意数量的输入通道来实现相同的功

  • 我有几份产品数据表。每个文件都是一个单独的文件。我想做的是使用iText根据Web表单的答案生成一组摘要/建议的操作,然后将所有相关的数据表附加到这些操作中。这样,我只需要在浏览器中打开一个新选项卡来打印所有信息,而不是为摘要打开一个选项卡,为所需的每个数据表打开一个选项卡。 那么,使用iText可以做到这一点吗?

  • 一些代码: 这里,我从kinesis流中获取数据,并将其序列化到我的数据类中。一切正常,但现在需要增加以另一种格式接收数据的能力(例如,DataClassSecond) 其中一个选项是,添加一个额外的数据源并在您自己的流中处理它们。 但是这需要一个额外的运动队列。我不确定这是否是一个好方法有没有什么方法可以从运动接收不同的数据,然后根据类型分割流?

  • 我想只发送图像作为多部分和其余的作为。有任何可能的方法吗?甚至我试图在我的交易模型中添加TypedFile,但无法用@part进行注释

  • 假设AWS堆栈是使用CloudFormation创建的。现在,其中一种资源在云层形成之外进行了修改。 1) 有没有可能让CloudFormation专门创建这些资源?根据我的理解,我们不能这样做,因为CloudFormation不能识别差异,因此不能创建修改后的资源。我的观察正确吗? 2) 此外,如果在CloudFormation之外进行了修改,我需要哪些选项才能将堆栈恢复到其原始状态?