在子报表中创建和使用 CSV 数据
Create and use CSV data in a subreport
背景
Jaspersoft 社区论坛 riddled 有关于如何将 CSV 数据源用于报表的问题未得到解答。
问题
使用Jaspersoft Studio时,使用本地文件作为数据源比较方便。完成此任务的说明充其量是零碎的,最坏的情况是不完整的。
问题
将 CSV 文件(数据源)用于主报表并让子报表使用该数据需要哪些步骤?
注意:此解决方案会从子报表中的列表中删除第一个结果,这需要一个解决方法来解决,此答案中没有描述。
概述
主要步骤包括:
- 创建 CSV 文件
- 创建数据适配器
- 创建主报表和子报表
- 连接数据集
- 创建报告字段
- 连接子报表
创建 CSV 文件
按如下方式创建 CSV 文件:
- 打开文本编辑器。
- 粘贴以下内容:
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"
- 将文件另存为
data.csv
到已知位置。
CSV 文件已创建。
创建数据适配器
按如下方式创建数据适配器:
- 启动 Jaspersoft Studio。
- 打开 Project Explorer。
- Right-click 项目。
- 单击新建 → 数据适配器。
- 将文件名设置为:
csv.xml
.
- 单击下一步。
- 单击 CSV 文件。
- 单击下一步。
- 将名称设置为:
CSV
- 单击文件。
- 浏览并 select
data.csv
在上一节中创建。
- 单击从文件的第一行获取列名称。
- 单击完成。
数据适配器已创建。
创建主报表和子报表
本节介绍如何创建报告。
创建主报告
创建主报表如下:
- 单击 文件 → 新建 → Jasper 报告。
- Select 空白A4.
- 单击下一步。
- 将文件名设置为:
main.jrxml
- 单击下一步。
- 将数据适配器设置为:
csv.xml
。
- 单击完成。
主报表已创建。
请注意,数据源尚未连接到主报表。这就是人们 运行 陷入困境的地方。分配 CSV 数据源并不意味着报表可以“查询”数据。需要一个额外的步骤,如本答案后面所述。
创建子报表
按如下方式创建子报表:
- 单击 文件 → 新建 → Jasper 报告。
- Select 空白A4.
- 单击下一步。
- 将文件名设置为:
subreport.jrxml
- 单击完成。
子报表已创建。
创建数据集
按如下方式从 CSV 文件创建数据集:
- 切换到 Jaspersoft Studio 中的主报告选项卡 (
main.jrxml
)。
- 单击设计 选项卡。
- 在 大纲 选项卡中,right-click main.
- 单击创建数据集。
- 将数据集名称设置为:
csv
- 单击下一步。
- 将数据适配器设置为:
csv.xml
。
- 单击下一步。
- 单击>>将字段向右移动。
- 单击完成。
CSV 数据集已创建。
连接数据集
- 在大纲中,展开main。
- Right-click csv.
- 单击连接到主数据集。
- 将数据适配器语言设置为:
csv
- 单击完成。
数据集已连接。
创建报告字段
按如下方式在主报表中创建字段:
- 在大纲, right-click main.
- 单击数据集和查询。
- 将语言设置为:
csv
。
- 单击读取字段。
- 单击确定。
报告字段已创建。
连接子报表
按如下方式将子报表连接到主报表:
- 将子报表基本元素拖到主报表的标题区域。
- 点击Select一个报告文件。
- 选择工作区资源。
- 点击浏览
- Selectsubreport.jrxml.
- 单击确定。
- 再次单击确定。
- 单击完成。
- Right-click 子报表元素。
- 单击尺寸到容器 → 适合两者。
- 在属性 选项卡中,单击子报表。
- 切换到
main.jrxml
报告。
- 在 大纲 选项卡中,展开 main →字段
- Select 字段(不要使用 CSV 字段)
- Right-click selected 字段。
- 单击复制。
- 切换到
subreport.jrxml
报告。
- Right-click 字段.
- 单击粘贴。
- Select 字段。
- 将字段拖放到 详细信息 区域。
- Return 到
main.jrxml
报告。
- 将子报表上的 数据源表达式 设置为:
$P{REPORT_DATA_SOURCE}
.
- 单击全部保存。
- 单击构建。
- 运行主报告。
输出类似于:
背景
Jaspersoft 社区论坛 riddled 有关于如何将 CSV 数据源用于报表的问题未得到解答。
问题
使用Jaspersoft Studio时,使用本地文件作为数据源比较方便。完成此任务的说明充其量是零碎的,最坏的情况是不完整的。
问题
将 CSV 文件(数据源)用于主报表并让子报表使用该数据需要哪些步骤?
注意:此解决方案会从子报表中的列表中删除第一个结果,这需要一个解决方法来解决,此答案中没有描述。
概述
主要步骤包括:
- 创建 CSV 文件
- 创建数据适配器
- 创建主报表和子报表
- 连接数据集
- 创建报告字段
- 连接子报表
创建 CSV 文件
按如下方式创建 CSV 文件:
- 打开文本编辑器。
- 粘贴以下内容:
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"
- 将文件另存为
data.csv
到已知位置。
CSV 文件已创建。
创建数据适配器
按如下方式创建数据适配器:
- 启动 Jaspersoft Studio。
- 打开 Project Explorer。
- Right-click 项目。
- 单击新建 → 数据适配器。
- 将文件名设置为:
csv.xml
. - 单击下一步。
- 单击 CSV 文件。
- 单击下一步。
- 将名称设置为:
CSV
- 单击文件。
- 浏览并 select
data.csv
在上一节中创建。 - 单击从文件的第一行获取列名称。
- 单击完成。
数据适配器已创建。
创建主报表和子报表
本节介绍如何创建报告。
创建主报告
创建主报表如下:
- 单击 文件 → 新建 → Jasper 报告。
- Select 空白A4.
- 单击下一步。
- 将文件名设置为:
main.jrxml
- 单击下一步。
- 将数据适配器设置为:
csv.xml
。 - 单击完成。
主报表已创建。
请注意,数据源尚未连接到主报表。这就是人们 运行 陷入困境的地方。分配 CSV 数据源并不意味着报表可以“查询”数据。需要一个额外的步骤,如本答案后面所述。
创建子报表
按如下方式创建子报表:
- 单击 文件 → 新建 → Jasper 报告。
- Select 空白A4.
- 单击下一步。
- 将文件名设置为:
subreport.jrxml
- 单击完成。
子报表已创建。
创建数据集
按如下方式从 CSV 文件创建数据集:
- 切换到 Jaspersoft Studio 中的主报告选项卡 (
main.jrxml
)。 - 单击设计 选项卡。
- 在 大纲 选项卡中,right-click main.
- 单击创建数据集。
- 将数据集名称设置为:
csv
- 单击下一步。
- 将数据适配器设置为:
csv.xml
。 - 单击下一步。
- 单击>>将字段向右移动。
- 单击完成。
CSV 数据集已创建。
连接数据集
- 在大纲中,展开main。
- Right-click csv.
- 单击连接到主数据集。
- 将数据适配器语言设置为:
csv
- 单击完成。
数据集已连接。
创建报告字段
按如下方式在主报表中创建字段:
- 在大纲, right-click main.
- 单击数据集和查询。
- 将语言设置为:
csv
。 - 单击读取字段。
- 单击确定。
报告字段已创建。
连接子报表
按如下方式将子报表连接到主报表:
- 将子报表基本元素拖到主报表的标题区域。
- 点击Select一个报告文件。
- 选择工作区资源。
- 点击浏览
- Selectsubreport.jrxml.
- 单击确定。
- 再次单击确定。
- 单击完成。
- Right-click 子报表元素。
- 单击尺寸到容器 → 适合两者。
- 在属性 选项卡中,单击子报表。
- 切换到
main.jrxml
报告。 - 在 大纲 选项卡中,展开 main →字段
- Select 字段(不要使用 CSV 字段)
- Right-click selected 字段。
- 单击复制。
- 切换到
subreport.jrxml
报告。 - Right-click 字段.
- 单击粘贴。
- Select 字段。
- 将字段拖放到 详细信息 区域。
- Return 到
main.jrxml
报告。 - 将子报表上的 数据源表达式 设置为:
$P{REPORT_DATA_SOURCE}
. - 单击全部保存。
- 单击构建。
- 运行主报告。
输出类似于: