第1部分 起步篇 2
第1章 报表开发之前世今生 2
1.1 报表开发基础 2
1.1.1 报表开发简介 2
1.1.2 报表开发发展历程 3
1.2 报表开发分类——按照实现方法分类 4
1.2.1 C/S架构 4
1.2.2 B/S架构 4
1.3 报表开发分类——按照表现形式分类 5
1.3.1 表格报表 5
1.3.2 图形报表 7
1.3.3 文件报表 8
1.4 报表开发的技术实现 9
1.4.1 Java语言平台的实现 9
1.4.2 .NET语言平台的实现 9
1.4.3 其他语言平台的实现 10
第2章 Swing界面开发基础 11
2.1 Swing概要 12
2.1.1 Swing的特性 12
2.1.2 Swing与AWT之间的关系 13
2.1.3 最简单的Swing示例展示 14
2.2 Swing组件的体系结构 15
2.2.1 标准MVC体系架构 16
2.2.2 Swing中改进的MVC体系架构 16
2.3 事件处理 17
2.3.1 简单动作事件处理示例 17
2.3.2 事件源和事件 19
2.3.3 事件监听器接口和事件监听器 20
2.3.4 注册事件监听器 21
2.3.5 鼠标事件处理 21
2.3.6 键盘事件处理 24
2.3.7 监听器内部类、主类继承、单独实现类 27
2.3.8 提高程序的事件响应速度 28
2.4 Swing中的容器结构 29
2.4.1 Swing容器结构简单示例 29
2.4.2 Swing中的框架结构 31
2.4.3 其他容器组件 32
2.5 版面布局管理器(Layout Managers) 32
2.5.1 版面布局管理器的种类 32
2.5.2 BorderLayout的使用方法 33
2.5.3 FlowLayout的使用方法 34
2.5.4 其他复杂界面管理器的使用方法 36
2.6 Swing核心组件 36
2.6.1 单选按钮和按钮组 36
2.6.2 列表框 38
2.6.3 组合框 40
2.6.4 表格组件 42
2.6.5 其他界面组件 44
第3章 Java 2D图形设计基础 44
3.1 Java 2D概述 44
3.1.1 JFC和Java 2D 46
3.1.2 Graphics类 46
3.1.3 Graphics2D类 47
3.2 Java 2D绘制几何形状 47
3.2.1 绘制线条 47
3.2.2 绘制直线 49
3.2.3 绘制矩形 50
3.2.4 绘制圆形 51
3.2.5 颜色填充 53
3.2.6 设置边框 55
3.3 Java 2D文本字体支持 57
3.3.1 Java 2D中的字体 57
3.3.2 定制文本显示风格 58
3.3.3 如何使用本地字体文件 60
第4章 Java Web开发基础 62
4.1 Java Applet基础 63
4.1.1 Java Applet简介 63
4.1.2 最简单的Java Applet示例展示 63
4.1.3 Java Applet的生命周期 66
4.1.4 在Java Applet中绘制图形 68
4.1.5 在Eclipse中运行Java Applet 69
4.2 JSP基础 69
4.2.1 JSP开发运行基本环境 69
4.2.2 最简单的JSP示例展示 70
4.2.3 JSP动作指令 71
4.2.4 JSP指令 74
4.2.5 JSP内置对象 76
4.2.6 JSP文件下载示例 80
4.3 JavaBean基础 82
4.3.1 JavaBean典型示例 82
4.3.2 JavaBean编码规则 84
4.3.3 JSP+JavaBean综合应用 86
4.4 Servlet基础 88
4.4.1 最简单的Servlet示例展示 89
4.4.2 Servlet的工作原理 91
4.4.3 Servlet的生命周期 92
4.4.4 Servlet过滤器应用 92
4.5 Java Web中文乱码处理 94
4.5.1 JSP页面中文乱码 94
4.5.2 页面之间传递中文参数 95
第5章 文件操作基础 97
5.1 Java IO系统简介 97
5.2 输入/输出类 98
5.2.1 InputStream类 98
5.2.2 OutputStream类 99
5.3 Java文件操作类 100
5.3.1 File类 100
5.3.2 目录操作 101
5.4 Java IO典型应用 103
5.4.1 文件的基本操作 104
5.4.2 从文件中读取数据 106
5.4.3 按行读取文件 108
5.4.4 向文件中输出数据 110
第6章 数据库操作基础 112
6.1 SQL基础 112
6.1.1 创建和删除数据库 113
6.1.2 创建、修改、删除数据表 114
6.1.3 基本查询语句 117
6.1.4 插入、更新、删除数据记录语句 119
6.1.5 简单视图操作 120
6.1.6 简单存储过程操作 121
6.2 JDBC数据库操作基础 123
6.2.1 数据库连接URL 123
6.2.2 数据库驱动类配置 124
6.2.3 JDBC连接数据库 125
6.2.4 JDBC插入操作 126
6.2.5 JDBC删除操作 128
6.2.6 JDBC更新操作 130
6.2.7 JDBC查询操作 131
6.2.8 JDBC视图操作 133
6.2.9 JDBC存储过程操作 134
6.3 数据库访问代码优化 136
6.3.1 最原始的数据库访问代码 136
6.3.2 初步优化——数据库配置信息基础类 137
6.3.3 进一步优化——数据库配置文件 137
6.3.4 避免数据库资源泄露 139
第2部分 Swing报表开发篇 142
第7章 Swing基础表格报表开发 142
7.1 基本Swing表格报表 142
7.1.1 基本场景——搜狐体育NBA版火箭赛程 143
7.1.2 具体实现 143
7.1.3 程序运行效果 144
7.1.4 实现过程具体分析 144
7.1.5 增加时间类型列和数字类型列 145
7.1.6 改变指定列的颜色 146
7.1.7 添加表格事件 147
7.2 Swing表格报表样式 148
7.2.1 基本场景——Foxmail邮件客户端垃圾邮件列表 149
7.2.2 具体实现 149
7.2.3 程序运行效果 150
7.2.4 实现过程具体分析 151
7.2.5 增加表格排序功能 152
7.2.6 增加打印表格选中行功能 153
7.3 Swing复杂表格报表 153
7.3.1 基本场景——Qunar网站机票搜索页面 154
7.3.2 具体实现 154
7.3.3 程序运行效果 155
7.3.4 实现过程具体分析 156
7.3.5 在表格中使用HTML标签 156
7.4 Swing数据库报表 157
7.4.1 基本场景——搜狐NBA版科比数据统计 157
7.4.2 数据库结构 158
7.4.3 具体实现 160
7.4.4 程序运行效果 162
7.4.5 实现过程具体分析 162
7.4.6 在表格中增加条件查询功能 163
7.4.7 程序运行效果 166
第8章 绘制图形报表 167
8.1 绘制柱状图 167
8.1.1 基本场景——CNNIC网民主要上网地点分布图 168
8.1.2 具体实现 168
8.1.3 程序运行效果 170
8.1.4 实现过程具体分析 171
8.1.5 添加坐标轴和坐标刻度 172
8.1.6 标示柱体代表的值 173
8.2 绘制折线图 174
8.2.1 基本场景——CNNIC历次调查网民总数变化图 174
8.2.2 具体实现 175
8.2.3 程序运行效果 177
8.2.4 实现过程具体分析 177
8.2.5 添加坐标点 179
8.2.6 添加坐标点代表的值 179
8.3 绘制饼图 180
8.3.1 基本场景——CNNIC网民的性别分布图 180
8.3.2 具体实现 180
8.3.3 程序运行效果 182
8.3.4 实现过程具体分析 182
8.3.5 标注数据对应的标签和所占比例 183
8.4 增加数据库操作 184
8.4.1 基本场景——CNNIC上网经验分布图 184
8.4.2 数据库结构 185
8.4.3 具体实现 185
8.4.4 程序运行效果 189
8.4.5 实现过程具体分析 189
8.5 3D图表的实现思路 190
第9章 基于JFreeChart的Swing图形报表开发 192
9.1 JFreeChart基础 193
9.1.1 JFreeChart简介 193
9.1.2 JFreeChart核心知识 193
9.1.3 JFreeChart在Swing开发中的简单配置 194
9.2 使用JFreeChart创建柱状图 196
9.2.1 基本场景——全球WCDMA产业联盟成员构成情况 196
9.2.2 具体实现 196
9.2.3 程序运行效果 198
9.2.4 实现过程具体分析 199
9.2.5 怎样增加新的功能 202
9.3 使用JFreeChart创建折线图 210
9.3.1 基本场景——高端用户对3G网络速度的期待 210
9.3.2 具体实现 210
9.3.3 程序运行效果 212
9.3.4 实现过程具体分析 213
9.3.5 怎样增加新的功能 214
9.4 使用JFreeChart创建饼图 215
9.4.1 基本场景——3G潜在用户年龄分布 215
9.4.2 具体实现 215
9.4.3 程序运行效果 217
9.4.4 实现过程具体分析 217
9.4.5 怎样增加新的功能 219
9.5 增加数据库操作 219
9.5.1 基本场景——潜在消费者学历分布 219
9.5.2 数据库结构 220
9.5.3 具体实现 221
9.5.4 程序运行效果 223
9.5.5 实现过程具体分析 223
9.6 使用JFreeChart创建复杂图形报表 224
9.6.1 使用JFreeChart创建复合图表 224
9.6.2 使用JFreeChart动态创建折线图 229
9.6.3 使用JFreeChart创建甘特图 232
9.6.4 使用JFreeChart创建仪表盘图 236
9.7 JFreeChart高级话题 239
9.7.1 使用JFreeChart创建Swing报表中的附加功能 239
9.7.2 JFreeChart和其他报表工具的整合问题 240
第10章 基于JasperReports的报表开发 241
10.1 JasperReports基础 242
10.2 JasperReports开发环境准备 243
10.3 JasperReports报表开发流程 246
10.3.1 创建报表模板 246
10.3.2 加载模板 248
10.3.3 编译模板 248
10.3.4 填充模板 249
10.3.5 报表处理 249
10.4 JasperReports核心类库 251
10.5 JasperReports报表简单示例 252
10.6 JasperReports报表数据源 254
10.6.1 JDBC数据源 255
10.6.2 JavaBeans数据源 260
10.6.3 TableModel数据源 264
10.6.4 XML数据源 268
10.6.5 CSV数据源 272
10.6.6 其他类型数据源 275
10.7 JasperReports报表查询 276
10.7.1 SQL查询 276
10.7.2 存储过程查询 276
10.7.3 XPath查询 277
10.8 JasperReports高级话题 277
10.8.1 动态创建报表 277
10.8.2 导出报表 281
10.8.3 图形报表 281
第11章 使用iReport辅助创建JasperReports报表 287
11.1 iReport简介 287
11.2 iReport开发环境基本配置 288
11.2.1 语言设置 288
11.2.2 路径、编译器设置 289
11.3 iReport常用功能介绍 289
11.3.1 iReport报表属性设置 289
11.3.2 iReport中的表达式脚本 291
11.3.3 在iReport中编译、运行报表模板 291
11.4 iReport报表开发经典应用 292
11.4.1 向iReport创建的报表中传递参数 292
11.4.2 使用iReport创建基本报表 295
11.4.3 使用iReport创建CSV数据源报表 296
11.4.4 使用iReport创建数据库报表 301
11.4.5 使用iReport创建图形报表 302
第3部分 Java Web报表开发篇 308
第12章 最基本的Java Web表格报表开发 308
12.1 静态HTML表格 308
12.1.1 最原始的HTML表格 309
12.1.2 添加CSS样式 311
12.1.3 添加JavaScript事件处理 314
12.2 动态生成HTML表格 316
12.2.1 基本场景——从数据库中取数据动态创建表格 316
12.2.2 具体实现 317
12.2.3 程序运行效果 319
12.2.4 实现过程具体分析 319
12.2.5 怎样增加新的功能 320
12.3 Ajax动态表格 323
12.3.1 Ajax请求页面 323
12.3.2 服务器后台异步处理 327
12.3.3 程序运行效果 330
第13章 基于Applet的Java Web图形报表开发 331
13.1 Applet报表开发简介 331
13.2 使用Applet实现表格报表 332
13.2.1 基本场景——中国10千伏配电网状况 332
13.2.2 具体实现 332
13.2.3 程序运行效果 333
13.2.4 实现过程具体分析 333
13.3 使用Applet绘制柱状图 334
13.3.1 基本场景——世界主要国家煤层气资源储量 334
13.3.2 具体实现 334
13.3.3 程序运行效果 337
13.3.4 实现过程具体分析 337
13.4 使用Applet绘制折线图 338
13.4.1 基本场景——中国天然气产量在世界的排名情况 338
13.4.2 具体实现 339
13.4.3 程序运行效果 341
13.4.4 实现过程具体分析 342
第14章 基于JFreeChart的Java Web图形报表开发 343
14.1 JFreeChart在Java Web中的应用 343
14.1.1 JFreeChart目录结构 344
14.1.2 WEB-INF/lib目录下的类库 344
14.1.3 web.xml文件中Servlet的配置 344
14.2 使用JFreeChart创建柱状图 345
14.2.1 基本场景——历年金融债的发债融资量 345
14.2.2 具体实现 345
14.2.3 程序运行效果 348
14.2.4 实现过程具体分析 349
14.2.5 怎样增加新的功能 351
14.3 使用JFreeChart创建折线图 355
14.3.1 基本场景——居民和非金融类贷款年度同比增长率 355
14.3.2 具体实现 356
14.3.3 程序运行效果 359
14.3.4 实现过程具体分析 359
14.3.5 怎样增加新的功能 361
14.4 使用JFreeChart创建饼图 362
14.4.1 基本场景——短期人民币贷款结构 362
14.4.2 具体实现 363
14.4.3 程序运行效果 365
14.4.4 实现过程具体分析 365
14.5 增加数据库操作 367
14.5.1 基本场景——2007年三季度各商业银行贷存比 367
14.5.2 数据库结构 367
14.5.3 具体实现 368
14.5.4 程序运行效果 372
14.5.5 实现过程具体分析 373
14.6 使用JFreeChart创建复合图形报表 373
14.6.1 基本场景——居民类贷款占比比较 374
14.6.2 具体实现 374
14.6.3 程序运行结果 378
14.6.4 实现过程具体分析 378
第15章 基于JasperReports的Java Web报表开发 380
15.1 Java Web中JasperReports的基本配置 380
15.2 使用iReports工具辅助编译报表模板 381
15.3 在JSP页面中编译报表模板 382
15.4 填充报表模板 383
15.5 导出报表文件 384
15.5.1 导出PDF 384
15.5.2 导出Excel 386
15.5.3 导出HTML 388
15.6 添加HTML报表分页功能 391
15.7 使用JasperReports辅助创建图形报表 394
15.7.1 基本场景——商业银行人均托管基金份额比较 394
15.7.2 数据库结构 394
15.7.3 iReport辅助模板设计 395
15.7.4 JSP网页调用 400
15.7.5 程序运行效果 401
第4部分 报表打印篇 404
第16章 Swing报表打印技术 404
16.1 Java中的打印API 404
16.2 Java打印操作基本流程 405
16.2.1 指定输出格式 405
16.2.2 指定打印属性 405
16.2.3 查找打印服务 406
16.2.4 创建打印作业 406
16.2.5 设置打印内容 406
16.2.6 执行打印操作 407
16.3 Java中基本的打印操作 407
16.3.1 显示打印对话框 407
16.3.2 打印多页的文档 410
16.3.3 打印用户界面组件 414
16.4 使用Java打印Swing表格报表 415
16.4.1 基本场景——给基础Swing表格增加打印功能 415
16.4.2 具体实现 415
16.4.3 程序运行效果 417
16.4.4 实现过程具体分析 418
16.5 打印JasperReports报表 419
16.5.1 基本场景——报表模板HelloWorld.jrxml展示 419
16.5.2 具体实现 419
16.5.3 程序运行效果 420
16.5.4 实现过程具体分析 420
第17章 Java Web报表打印技术 423
17.1 Java Web报表打印概述 423
17.1.1 Web页面进行打印输出方案 423
17.1.2 采用JavaScript处理的方法 424
17.2 通过JavaScript调用打印机 424
17.2.1 JavaScript调用打印机的核心语法 424
17.2.2 打印整个页面 427
17.2.3 添加媒体类型CSS控制打印样式 429
17.2.4 自定义IE打印页面设置 431
17.2.5 打印局部页面 433
17.3 通过第三方控件调用打印机 436
17.3.1 常见第三方打印控件介绍 436
17.3.2 ScriptX打印控件使用示例 436
17.3.3 ScriptX+JasperReports联合打印 438
第5部分 文件报表篇 444
第18章 Excel文件报表操作 444
18.1 Java操作Excel工具汇总 444
18.2 JExcelAPI基础 445
18.2.1 JExcelAPI简介 445
18.2.2 JExcelAPI开发环境简单配置 445
18.3 创建Excel报表 446
18.3.1 生成简单的Excel文件 446
18.3.2 生成各种复杂数据格式的Excel文件 449
18.3.3 生成复杂布局和样式的Excel文件 451
18.3.4 生成带有图片的Excel文件 455
18.4 Excel报表读取 455
18.5 Swing中Excel文件报表的操作 457
18.5.1 基本场景——Foxmail邮件列表界面 457
18.5.2 具体实现 458
18.5.3 程序运行效果 461
18.5.4 实现过程具体分析 461
第19章 PDF文件报表操作 463
19.1 Java操作PDF工具汇总 463
19.2 iText基础 464
19.2.1 iText简介 464
19.2.2 iText开发环境简单配置 465
19.3 PDF文件基本操作 465
19.3.1 简单PDF文档创建 465
19.3.2 PDF文本操作 467
19.4 PDF图片操作 470
19.4.1 普通静态图片 470
19.4.2 GIF动画 472
19.5 PDF表格操作 475
19.5.1 普通表格 475
19.5.2 表格中的图片、样式 477
19.6 Java Web中PDF文件报表的操作 480
19.6.1 基本场景——表格中内容动态生成PDF格式文件 480
19.6.2 具体实现 480
19.6.3 程序运行效果 484
19.6.4 实现过程具体分析 484