在子报表中创建和使用 CSV 数据

2023-12-09

背景

Jaspersoft 社区论坛是riddled有关如何在报表中使用 CSV 数据源的未解答的问题。

Problem

使用时贾斯帕软件工作室,使用本地文件作为数据源很方便。完成此任务的说明充其量是零碎的,最坏的情况是不完整的。

Question

在主报表中使用 CSV 文件(数据源)并让子报表使用该数据需要执行哪些步骤?


注意:此解决方案会从子报表的列表中删除第一个结果,这需要解决方法,但本答案中未对此进行描述。

Overview

主要步骤包括:

  1. 创建 CSV 文件
  2. 创建数据适配器
  3. 创建主报表和子报表
  4. 连接数据集
  5. 创建报告字段
  6. 连接子报表

创建 CSV 文件

按如下方式创建 CSV 文件:

  1. 打开文本编辑器。
  2. 粘贴以下内容:
    
    
    city,age,name,address,status
    "Dallas",47,"Janet Fuller","445 Upland Pl.","Trial"
    "Lyon",38,"Andrew Heiniger","347 College Av.","Active"
    "Dallas",43,"Susanne Smith","2 Upland Pl.","Active"
    "Berne",22,"Bill Ott","250 - 20th Ave.","Active"
    "Boston",32,"Michael Ott","339 College Av.","Trial"
    "Dallas",4,"Sylvia Ringer","365 College Av.","Active"
    "Boston",23,"Julia Heiniger","358 College Av.","Active"
    "Chicago",39,"Mary Karsen","202 College Av.","Active"
    "Dallas",40,"Susanne Miller","440 - 20th Ave.","Trial"
    "Berne",9,"James Schneider","277 Seventh Av.","Active"
    "Dallas",36,"John Steel","276 Upland Pl.","Suspended"
    "Chicago",35,"George Karsen","412 College Av.","Suspended"
    "Dallas",37,"Michael Clancy","19 Seventh Av.","Deleted"
    "Lyon",2,"Anne Miller","20 Upland Pl.","Active"
    "Dallas",0,"Laura Steel","429 Seventh Av.","Active"
    "Lyon",28,"Susanne White","74 - 20th Ave.","Deleted"
    "Paris",5,"Laura Miller","294 Seventh Av.","Active"
    "Lyon",17,"Laura Ott","443 Seventh Av.","Active"
    "New York",46,"Andrew May","172 Seventh Av.","Active"
    "New York",44,"Sylvia Ott","361 College Av.","Active"
    "Dallas",19,"Susanne Heiniger","86 - 20th Ave.","Active"
    "Chicago",11,"Julia White","412 Upland Pl.","Active"
    "Dallas",10,"Anne Fuller","135 Upland Pl.","Active"
    "New York",41,"Bill King","546 College Av.","Deleted"
    "Oslo",45,"Janet May","396 Seventh Av.","Active"
    "Paris",18,"Sylvia Fuller","158 - 20th Ave.","Trial"
    "San Francisco",48,"Robert White","549 Seventh Av.","Active"
    "Paris",25,"Sylvia Steel","269 College Av.","Suspended"
    "San Francisco",7,"James Peterson","231 Upland Pl.","Active"
    "Oslo",42,"Robert Ott","503 Sixth Av.","Trial"
      
  3. 将文件另存为data.csv到一个已知位置。

CSV 文件已创建。

创建数据适配器

创建数据适配器如下:

  1. 启动 Jaspersoft Studio。
  2. 打开项目浏览器.
  3. 右键单击该项目。
  4. Click 新→数据适配器.
  5. Set 文件名 to: csv.xml.
  6. Click Next.
  7. Click CSV File.
  8. Click Next.
  9. Set Name to: CSV
  10. Click File.
  11. 浏览并选择data.csv在上一节中创建。
  12. Click 从文件的第一行获取列名.
  13. Click Finish.

数据适配器已创建。

创建主报表和子报表

本节介绍如何创建报告。

创建主报告

创建主报告如下:

  1. Click 文件 → 新建 → Jasper 报告.
  2. Select Blank A4.
  3. Click Next.
  4. Set 文件名 to: main.jrxml
  5. Click Next.
  6. Set 数据适配器 to: csv.xml.
  7. Click Finish.

主报告已创建。

请注意,数据源尚未连接到主报表。这就是人们遇到麻烦的地方。分配 CSV 数据源并不意味着报表可以“查询”数据。需要一个额外的步骤,稍后将在本答案中进行描述。

创建子报表

创建子报表如下:

  1. Click 文件 → 新建 → Jasper 报告.
  2. Select Blank A4.
  3. Click Next.
  4. Set 文件名 to: subreport.jrxml
  5. Click Finish.

子报表已创建。

创建数据集

从 CSV 文件创建数据集,如下所示:

  1. 切换到主报告选项卡(main.jrxml)在 Jaspersoft Studio 中。
  2. 点击Design tab.
  3. In the Outline选项卡,右键单击main.
  4. Click 创建数据集.
  5. Set 数据集名称 to: csv
  6. Click Next.
  7. Set 数据适配器 to: csv.xml.
  8. Click Next.
  9. Click >>将田野穿梭到右侧。
  10. Click Finish.

CSV 数据集已创建。

连接数据集

  1. In the Outline, 扩张main.
  2. 右键点击csv.
  3. Click 连接到主数据集.
  4. Set 数据适配器语言 to: csv
  5. Click Finish.

数据集已连接。

创建报告字段

在主报表中创建字段如下:

  1. In the Outline, 右键点击main.
  2. Click 数据集和查询.
  3. Set Language to: csv.
  4. Click 读取字段.
  5. Click OK.

报告字段已创建。

连接子报表

将子报表连接到主报表,如下所示:

  1. Drag a 子报告基本元素到Title主要报告的范围。
  2. Click 选择报告文件.
  3. Choose 工作空间资源.
  4. Click Browse
  5. Select 子报表.jrxml.
  6. Click OK.
  7. Click OK again.
  8. Click Finish.
  9. 右键单击子报表元素。
  10. Click 尺寸适合容器 → 适合两者.
  11. In the 特性选项卡,单击子报告.
  12. 切换到main.jrxml report.
  13. In the Outline选项卡、展开主 → 字段
  14. 选择字段 (不使用CSV 字段)
  15. 右键单击选定的字段。
  16. Click Copy.
  17. 切换到subreport.jrxml report.
  18. 右键点击Fields.
  19. Click Paste.
  20. 选择字段。
  21. 将字段拖放到Detail band.
  22. 返回到main.jrxml report.
  23. Set 数据源表达将子报告发送至:$P{REPORT_DATA_SOURCE}.
  24. Click Save All.
  25. Click Build.
  26. 运行主报告。

输出类似于:

Main report showing data in subreport

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

在子报表中创建和使用 CSV 数据 的相关文章

随机推荐

  • 具有构造函数的类的 C++ 向量

    Using g and ubuntu include
  • 在 PHP 中从图像中裁剪空白

    PHP 中是否可以删除图像周围的空白 注意 澄清一下 我指的是 Photoshop 修剪功能之类的东西 Thanks 要修剪图像中有趣部分周围的所有空白 如您所说 首先我们要找出 空白 停止的位置 然后复制这些边界内的所有内容 load t
  • 如何使用 Nokogiri::XML::Builder 将非转义 & 符号添加到 HTML

    我想使用 Nokogiri 中的 XML 生成器向 HTML 添加诸如项目符号 之类的内容 但所有内容都被转义了 我该如何防止它被逃脱 我希望结果是 span 8226 span 而不是 span amp 8226 span 我只是这样做
  • 为什么使用 CryptoStream 而不是 TransformBlock?

    文档从未真正提及原因CryptoStream应该使用而不是TransformBlock and TransformFinalBlock除此之外 它会自动调用所需的任何一个 因此 为什么要使用这个答案中的代码 https stackoverf
  • 如何解码UTF8字节?

    如何在 C 中解码字符串中的 UTF8 字节 示例 解码此输入 Poluci C3 B3n 要输出这个 Poluci n 此编码似乎是 URL 编码 不是 UTF 8 编码 您可以在 NET 中使用多种不同的方法对其进行取消编码 HttpU
  • 如何删除 Android 上所有可能缓存的令牌或会话 ID?

    一个奇怪的问题 但希望有人能回答 我正在开发一个与 Facebook 连接的移动应用程序 一切都很顺利 已经持续了大约一周 我可以授权和删除授权并发布到用户的提要 在周六或周日 我修改了我的请求以添加离线访问 大约在那个时候 不幸的是 我无
  • 透明 Java 窗口上的不透明组件

    我已经成功地使 java 窗口透明 但在这些窗口之上叠加不透明组件时遇到了麻烦 JFrame setOpacity 0 和 AWTUtilities setWindowOpacity 都将透明度传输到组成组件 此外 JFrame setBa
  • Python 中的图像创建和字体

    我利用 PIL 在 python 中创建了一组图像 除此之外 我还实现了 textwrap 以便将文本添加到我创建的图像上 但是它们并不十分完美 首先 下面是我创建的三个图像示例 这三个图像具有不同的宽度 但我希望它们都具有相同的宽度 而高
  • 邮政编码的正则表达式

    可能的重复 最终的邮政编码和邮政编码正则表达式是什么 我需要正则表达式 它可以满足我的邮政编码的所有三个条件 例如 12345 12345 6789 12345 1234 任何指示和建议将不胜感激 谢谢 d 5 s d 4 字符串的开头 d
  • 通过VB6发送电子邮件

    我想知道是否有办法通过VB6发送电子邮件 SMTP 我有一个应用程序 只需要在用户完成后发送一封简单的电子邮件 让一组人知道该应用程序已处理 有没有办法做到这一点 是的 取决于您使用的 Windows 版本 假设更高版本之一 CDO Mes
  • Firebase 云函数初始化不工作

    我想使用 Firebase 云功能 但是当我尝试初始化存在的项目时出现错误 这是错误 错误 HTTP 错误 403 调用者没有权限 我之前创建了项目 然后移动了项目文件夹 当我尝试部署时 它不起作用 我不记得我遇到了哪个错误 然后我尝试初始
  • 是否可以为所需文件获取不同的范围?

    假设我有一个名为 import js 的示例文件 var self function Test a b this a a this b b self this Test prototype run function console log
  • 将 WordPress 会话扩展到主域

    我有一个使用 WordPress 进行社区目的的网站 它安装在子目录 mysite community 下 但是当我尝试将 WordPress 函数调用到 mysite 时 我无法检索已登录的用户 这是我的示例代码 require xcar
  • 输入“type”无法回收到R中的大小

    我有这个数据框 DF V1 V2 P1 03 02 2020 22 04 02 2020 33 05 02 2020 P2 05 02 2020 P1 06 02 2020 我想要这个输出 DF V1 V2 V3 P1 03 02 2020
  • C# CultureInfo.GetCultures 返回一个(几乎)空列表

    Windows 8 1 专业版 Visual Studio 2013 NET Framework 4 5 2 这是代码 var cultures CultureInfo GetCultures CultureTypes AllCulture
  • 这个堆栈跟踪是什么意思?

    Devices tested on Samsung S4 Ipad Browsers Chrome and Safari for mobile Server JBOSS Export type war 在正常使用我的应用程序期间 Chrom
  • 如何在 pandas / python 中查看 Excel 电子表格的公式?

    我想将 Excel 电子表格读入 python pandas 但有公式而不是单元格结果 例如 如果单元格 A1 为 25 单元格 B1 为 A1 我希望我的数据框显示 25 A1 现在它显示 25 25 我怎样才能这样做呢 OpenPyXL
  • 在razor的子视图中调用Jquery函数

    我想使用这样的活动 myModal show 原来的调用插件例程如下 我将我的代码放在下面的部分中 这里 myModal show 不运行 using Html BeginForm Contact Home FormMethod Post
  • 如何在 python-socketio 上发送消息

    API 文档 https python socketio readthedocs io en latest intro html 提供了服务器和客户端的示例 但如果您运行它们 您将不会开始消息传递 而且我不知道如何设置它 如何设置消息传递
  • 在子报表中创建和使用 CSV 数据

    背景 Jaspersoft 社区论坛是riddled有关如何在报表中使用 CSV 数据源的未解答的问题 Problem 使用时贾斯帕软件工作室 使用本地文件作为数据源很方便 完成此任务的说明充其量是零碎的 最坏的情况是不完整的 Questi