提示:在有些板块,文中的图片看不到,建议到我的blog浏览文章:http://blog.csdn.net/jemlee2002/
文章将会涉及3个方面的内容:
第一部分:使用iReport制作报表的详细过程(Windows环境下)
第二部分:使用Jasperreport作为报表控件开发胖客户端报表应用
第三部分:使用Jasperreport作为报表控件开发Web报表应用
<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
1、前言
在网络上可以搜索到很多使用iReport和Jasperreport配合实现各种报表任务的文章,但是我觉得很少有一篇(几乎没有)做一个比较详细的介绍如何使用iReport制作报表的全过程,我所看过的文章的基本思想是覆盖面广,很多内容都是提及即过,并不是开发人员都有时间为每个实践花费时间自己实现,如果能有更详细的资料,那岂不是一件乐事。出于这个念头促使我写这篇文章,希望能对那些使用iReport和Jasperreport朋友有所帮助,特别是需要亲身去实现报表的朋友,希望能给你们带来一点帮助。本文不是对iReport的每个细节进行介绍,关于iReport的每个细节可以参考iReport网站的资料,但是可能得花费一些费用。一般用户没有必要付出这些费用,因为我们关心的是如何制作我们需要的报表,而不是去扩展iReport,比如制作iReport的插件。
2、准备
2.1、下载JDK
地址:http://www.sun.com,选择1.3以上版本(建议1.4.2以上版本),安装JDK,默认安装即可;如果你的系统已经有安装过JDK或是有JRE即可省略这一步骤,验证JDK或是JRE是否可以默认运行,在命令行(CMD)打入X:>java 如果出现:Usage:java………………………..开头的一堆信息既是通过验证。否则必须进行配置,配置信息如下,在windows的环境变量设置:
path:在最后面加入“;java的安装目录”
JAVA_HOME :“java的安装目录”
CLASSPATH:“java的安装目录/bin”
重新验证JDK或是JRE是否可以在CMD任何位置运行
2.2、下载iReport
地址:http://ireport.sourceforge.net/,选择0.3.2版本(发稿之前为止建议使用的版本)解压iReport在任意目录,解压后的文件里面有一个iReport.bat,通过双击,过大约30秒钟如果可以弹出iReport的主窗体即表明你的系统已经可以运行iReport了,如果不能弹出主窗体,一般是第一步骤错误,或是没有完成。
2.3、准备数据库
iReport支持绝大部分数据库,只要该数据库能提供JDBC驱动器。本文提供MySql数据库作为例子,但是文章最后会提到如何配置Oracle的支持。关于数据库的安装和建立表不属于本文的范围,请参考其他资料。本文假设已经安装了MySql和在MySql已经有一些表,并且确定表中已经有数据了。
*【特别提示】MySql的版本要求与iReport文件夹下的Lib目录的使用MySql驱动程序兼容,笔者建议到 http://dev.mysql.com/downloads/ 下载最新版本mysql的驱动器,这样就不会应为JDBC驱动器的问题而当心数据库的支持问题。
2.4、启动MySql服务
确定Mysql使用的的字符集是重要的问题,特别是对需要中文报表的朋友,应该特别注意这个问题。
2.5、确定商务逻辑
也就是希望完成什么样的报表任务。需要实现的报表的详细描述,这是实现报表的业务条件,否则所有的任务绝大部分没有意义。本文使用一个Bug记录表为例,本文的例子是制作一个根据项目和项目中的模块分组的Bug量统计。
3、开始配置基本信息
3.1、配置界面使用的语言和报表输出路径
第一次进入系统是英文环境,可以通过【Tools】-【Options】开启配置iReport系统的基本信息对话框。在“Language”选项里面选择你需要的界面语言,比如“中文-中国”。点击【Apply】按钮,系统既把整个界面中文化。
在配置iReport系统的基本信息对话框中选择【编译】Label,之后决定你的报表输出路径,可以把“编译在报表数据文件夹”选择打勾,这样报表的jrxml文件和jasper文件就放置同一文件夹。(在新建报表时会要求你把jrxml文件保存到指定的文件夹)
【Options】选项中的一部分参数修改不能通过【Apply】按钮直接起作用,比如“Look&Feel”,必须重新启动iReport才能起作用。不知道是不是iReport的Bug?!最后【存档】。
3.2、配置MySql的数据库连接
这就是报表与数据库的接口。可以通过【资料来源】-【连接/资料来源】开启配置列表对话框,iReport会记录以前使用的所有连接,除非你手工删除这些连接,否则所有的连接都会存在连接/资料来源配置列表对话框中,不管是否确实可用。
点击【New】进入配置新连接界面,如图:

填写JDBC连接需要的信息,iReport支持多种数据源连接,如图:

本文只是介绍DataBase JDBC Connection连接方式,这也是最常用的方式,特别是在嵌入式报表应用。所有的信息填写并测试通过之后,最后就是保存信息。回到配置列表对话框,关闭对话框,完成MySql数据库JDBC连接配置。
提示:如果你需要报表提供中文内容显示可以在JDBC URL下工夫,比如输入:
jdbc:mysql://localhost/SUBRDB?user=****&password=****&useUnicode=true&characterEncoding=GB2312
其中的****号替换成数据库的用户合密码。
3.3、新建一个空报表的基本配置
单击工具栏的第一个工具“New Report”,新建一个报表,输入报表名称和定义报表的一些参数,比如名称输入BugsRpt(例子是做一个项目的Bug量统计报表),单击【More….】选择标签,填写或是选择XML编码,这是关系到你的XML支持的字符集的选择,请根据需要选择,比如需要你的XML文件支持中文,那么可以输入GB2312或是GBK,之后点击【OK】按钮,进入报表的设计界面。
*【特别提示】请在开始任何工作之前保存报表,这时iReport提示保存报表的位置,选择合适的位置之后输入BugsRpt作为名称。
3.4、定义报表可能需要的字体类型及其属性
一个报表的内容五花八门,有表头、栏位名、数据、其他变量信息等等,如果这些信息都是一致的字体和属性(比如颜色),那么整个报表就死气沉沉,显得很粗糙了。我们可以在为报表添加每个元素时定义元素的属性,但是那是一个多么费时的工作,如果能预先定义一些属性的组合,之后在创建每个元素时只需选择这些组合的其中一个即可,省事又快速。
单击【预览】-【报表字体】开启自定义组合对话框。单击【New】进入定义详细对话框,如图:按照图中的顺序填写信息和步骤,依次定义“表头”、“组”、“列”、“列内容”、“统计计算”、“其他”等6中字体组合。注意PDF内嵌字体的选择,如果你需要报表时以PDF文件格式提供,那么对此需要作出选择。

4、理解几个重要的概念
4.1、iReport的输出格式
iReport的预览输出格式可以支持以下几种:
PDF、HTML、CSV、JAVA2D、Excel、纯文字、JRViewer,其中最常用的是PDF、JRViewer。本文以JRViewer为例子。JRViewer是直接以C/S方式作为报表的输出格式,在JFrame框架下输出。Jasperreport提供默认的JRViewer输出类。
4.2、报表的动态对象变量、参数、字段
在使用iReport的过程中会碰到很多与变量(Variables)、参数(Parameters)、字段(Fields)这些有关的内容,我们要介绍这些对象的使用和意义:
·字段(Fields):是数据库抽取出来的,希望在报表中出现的数据库内容。比如一个ID的所有值。$F{ filedsName }
·参数(Parameters):这是你的应用需要提供给报表的入口,比如你希望在报表被解释的时候提供Where语句的条件值,那么就可以使用参数(Parameters)。$P{ parameterName }
·变量(Variables):这是报表中一些逻辑运算的表现,比如统计值。$V{ variablesName }
每种对象的定义格式如每个对象的后面说明,比如定义一个变量(Variables),那么表达式就写成$V{ variablesName },报表中出现的就是这个变量的名称。后文会详细的介绍使用方法。
4.3、编译、静态运行、动态运行
Jasperreport运行时需要的就是一个jasper后缀的文件,编译过程其实就是把jrxml后缀的文件生成jasper后缀的文件。(可以参考Jasperreport的运行原理)
静态运行和动态运行是相对的,后者带数据源运行,比如带数据库运行。前者就是静态文本运行,和数据源无关,如果报表中出现和数据源有关的对象,则以null显示。
4.4、报表结构
一个报表的结构大致是几个部分:title、pageHeader、columnHeader、detial、columnFooter、pageFooter、summary、groupHeader、groupfooter。
·Title:每个报表一般会有一个名字,比如×××销售报表,title就是搁置这个名称的最好地方了,当然你也可以根据需要搁置在合适的地方。
·pageHeader:报表的一些公共要素,比如页码、创建时间、创建人等信息放置在这里是比较好的选择。
·columnHeader:无可非议的这里是放置列的名称,记住不是列数据。
·Detial:放置需要循环的数据,比如销售记录数据。
·columnFooter:放置列级别的统计计算值或是列的说明。
·pageFooter:放置页级别的统计值或是页的说明。
·Summary:可能需要对几页(你的报表可能有几个页组成)的统计值。比如50个销售记录共占用了3页,那么放置这些统计记录的统计值最好的地方就是summary。
·groupHeader:每个表的内容可能需要根据某个属性进行划分显示内容和计算内容,比如希望以月份为单位每组分开显示销售记录,那么就可以定义一个组(组的定义参考后文),groupHeader就是放置组说明或是组标志最好的地方。
·Groupfooter:放置组的统计或是说明
5、向表添加对象
5.1、添加静态对象
可以通过工具栏的工具添加静态对象,比如文本,点击【T】,之后在报表的空白处单击,如此即可把静态对象添加到报表,然后拖动对象的边框,使它的大小合适,双击对象弹出对象的属性配置对话框,切换到【Font】Label,在“Report font”的ComBox选择“表头”字体,(表头字体是前文提供的自定义属性组合),再切换到【Static Text】Label,修改表头的名字,比如“Bug统计报表”或是“销售记录统计表”等等与业务有关的内容。添加图片,请点击【Image Tool】,之后的操作与Text类似。其他静态对象操作步骤类似。
5.2、使用连接
还记得前文提供的(3.2节)配置MySql数据库连接吗?这里我们将要使用前文配置的连接了。选择菜单【建立】-【使用动态连接】开启可选的动态连接,选择任何一个你需要的连接最后【OK】,保存报表,这样你的报表就使用了这个连接了。
*【特别提示】此连接必须与以后应用程序使用的连接一致。
5.3、创建SQL查询语句
SQL语句是对任何RDBMS起作用的语言,外部用户需要使用这些语言管理维护数据库中的数据,同样的,iReport也是需要这么做,我们需要提供查询数据库的语言-SQL语句,这样,iReport即可通过此SQL语句获取数据,之后组织到报表中并显示出来,以满足用户的需要为目的。
通过菜单【资料来源】-【报表查询】开启SQL输入对话框,并在【Report SQL Query】 Label中输入SQL语句如图:图中的“Automatically Retrieve Fields”checkbox和“ReadFields”Button是确认自动获取还是手动获取数据库表的可用Fields。单击【OK】,保存报表。

5.4、创建字段动态对象
报表的动态对象有变量、参数、字段,前文提及了他们的概念,这里将要一一讲解如何使用。
字段也就是数据库中的字段,通过菜单【预览】-【报表字段】开启字段的列表(工具条上可以找到相应的工具),可以拖放任意字段到报表的任何位置,比如拖动一部分Bug的内容字段到detial段(内容无关紧要,只要知道原理)。
5.5、创建组
组是一个很重要的概念,一个报表可以多个组,每个组以一个关键字为标记,比如希望Bug统计是根据项目(或是产品)进行统计的。那么可以设立一个项目标记的组。如图:

组的参数设定可以看界面即可理解部分,其中最主要的是“Group expression”,这是必须输入格式正确的并且存在的字段名称,本文的“proname”是【字段】中的一个元素。依此类推,建立其他的组对象。每建立一个组,在报表的界面上都会出现该组对应的段,如图:至于他们的意义和容纳的内容参考“4.4报表结构”,他们是首尾对应出现的。(Header和Footer)

5.6、添加参数和使用参数
我们重申参数作用,一般是需要外界提供参数给报表的入口,比如SQL语句的where条件的表达式。通过【预览】-【报表参数】开启报表参数列表对话框(工具条上可以找到相应的工具)。如图:输入名称及其他参数。【ok】,保存报表。

那么如何使用呢?打开SQL语句对话框,参考“5.3创建SQL查询语句”,这时候的SQL语句应该是:
SELECT *
FROM bugs where proname=$P{ProjectName} order by proname,modulename
注意其中的红体字部分,就是把刚才定义的变量运用到SQL语句了。这样当应用提供参数时,只要指定提供给这个参数,那么报表解释引擎即可替换这些变量然后再执行SQL语句,在第二部分提到编程时,会提供参数设定代码。
5.7、添加变量和使用变量
变量的定义类似参数,通过【预览】-【报表变量】开启报表变量列表对话框(工具条上可以找到相应的工具),如图,图中定义的变量的作用是:定义一个Bug的计数器,数据类型是java.lang.Integer,使用Count函数进行统计字段tester,作用范围是模块组,也就是统计模块的Bug量。其中的tester可以改成其他非组对象,比如proname是组对象,就不要用作这里的统计参数。以上提供的是自定义变量,其实iReport系统还有提供一些内嵌(Buildin)的变量,比如页码,行记录数等,视需要而使用。

6、最后的报表
6.1、完成后的报表

6.2、预览报表
点击动态运行报表,出现如图内容:

7、总结
第一部分只是介绍了如何制作一个动态数据报表,其实iReport还有提供很多的特性供开发人员使用,比如柱状图、饼图、及各种形状的图形等,满足企业绝大部分应用的需求。希望你能继续研究并充分利用。
关于使用Oracle数据库作为数据源的内容:提供与使用的Oracle版本对应的JDBC驱动,把驱动放置在iReport的lib目录,配置数据库的JDBC连接时如图:其它操作基本没有区别。

8、补充内容
8.1、实现表格
可以在Detial中加入必要线条实现表格,配合columnFooter、columnHeader、Detial这3个位置实现,您可以试试画线的位置!

分享到:
相关推荐
基于QT的车载多媒体系统,这是经过打包之后的,电脑直接下载运行exe就行,不再依赖QT环境
FlowPortal 以流程驱动的应用(2014扬州CIO沙龙).pdf
数据来源: 将该数据集划分成:训练集701张图和测试集176张图。 按照PaddleDetection的VOC数据格式整理,数据解压后文件组织结构: >>tree ├── annotations │ ├── xxx1.xml │ ├── xxx2.xml │ ├── xxx3.xml │ | ... ├── images │ ├── xxx1.png │ ├── xxx2.png │ ├── xxx3.png │ | ... ├── label_list.txt ├── train.txt └── valid.txt # label_list.txt 是类别名称列表 # train.txt 是训练图像列表
内容概要:本文详细介绍了欧姆龙NJ/NX PLC在锂电新能源行业的全ST程序案例。首先,文章阐述了锂电新能源行业发展背景下,对数据传输和控制可靠性的高要求。接着,重点分析了欧姆龙NJ/NX PLC的公司级框架及其无加密程序的特点,强调了其灵活、可扩展、稳定可靠的特性。文中提到该PLC系统支持锂电新能源行业FB库文件,能够高效准确地处理和存储数据。此外,文章还探讨了NJ Socket功能作为服务器和客户端的作用,以及它在设备状态机控制、设备PPM控制、运行时间和报警时间监控等方面的具体应用。最后,总结了该PLC系统的技术特点和应用优势,指出其在未来更多领域的潜在应用和发展前景。 适合人群:从事自动化控制、工业互联网、智能制造等相关领域的工程师和技术人员。 使用场景及目标:适用于需要深入了解PLC在锂电新能源行业具体应用场景的专业人士,旨在帮助他们掌握欧姆龙NJ/NX PLC的技术细节和实际操作方法,提升工作效率和质量。 其他说明:本文不仅展示了欧姆龙NJ/NX PLC的强大功能,还提供了丰富的技术细节和实际案例,有助于读者更好地理解和应用相关技术。
GE Proficy烟草行业解决方案介绍二.pdf
内容概要:本文详细介绍了基于FPGA的永磁同步伺服电机控制系统的实现,涵盖了坐标变换(如Clarke变换)、电流环、速度环、位置环以及SVPWM调制等关键技术。作者通过Verilog代码展示了各个模块的具体实现细节,包括硬件电流环的PI调节器、SVPWM的状态机调制、位置环的正交解码器等。文中特别强调了FPGA相比传统DSP方案在高精度电流环控制方面的优势,如更低的延迟和更高的响应速度。此外,还讨论了一些常见的调试问题及其解决方案,如电机启动时的抖振问题。 适合人群:对嵌入式系统、FPGA开发和电机控制感兴趣的工程师和技术爱好者。 使用场景及目标:适用于需要高性能、低延迟电机控制的应用场景,如工业自动化、机器人等领域。目标是帮助读者理解如何利用FPGA实现高效的伺服电机控制系统。 其他说明:文章不仅提供了理论背景,还给出了具体的Verilog代码实现,便于读者进行实践和调试。
内容概要:本文档详细介绍了Android高级控件的使用方法及其应用场景。首先讲解了下拉列表Spinner,包括其两种表现形式(下拉列表形式和对话框形式),并介绍了适配器Adapter的基础概念及其三种主要类型:数组适配器ArrayAdapter、简单适配器SimpleAdapter和基本适配器BaseAdapter,重点阐述了它们各自的特点和使用步骤。接着,文档对列表视图ListView进行了深入探讨,涉及分隔线样式、按压背景等属性的设置方式。随后,描述了网格视图GridView,详细解释了其拉伸模式的效果及取值。对于翻页视图ViewPager,不仅介绍了基本概念,还展示了翻页标签栏PagerTabStrip的具体应用,特别是用于创建启动引导页。最后,文档介绍了碎片Fragment的概念,强调了其在大屏设备上的优势,以及与ViewPager结合使用的实战案例——记账本应用。 适合人群:有一定Android开发基础,希望深入了解并掌握高级控件使用的开发者。 使用场景及目标:①掌握下拉列表、列表视图、网格视图、翻页视图等高级控件的实现细节;②理解适配器的作用及其不同类型的使用场景;③学会使用Fragment优化应用界面布局,提高用户体验;④通过具体案例(如记账本),将所学控件应用于实际开发中。 阅读建议:本文档内容详实,涵盖多种高级控件的理论知识与实践技巧。建议读者在学习过程中结合官方文档或相关资料进行对比研究,同时动手实践,以便更好地理解和掌握这些控件的应用。
内容概要:本文档是2015年全国大学生电子设计竞赛关于数字频率计(F题)的试题说明。竞赛对参赛队伍有严格规定,包括竞赛时间、队伍人数、身份验证等。数字频率计的任务是设计并制作一台闸门时间为1秒的数字频率计。基本要求包括频率和周期测量、时间间隔测量,以及数据刷新时间和显示单位。发挥部分则扩展了频率测量范围、降低了最小有效值电压,并增加了脉冲信号占空比测量功能。评分标准详细列出,涵盖设计报告、基本要求和发挥部分,总分为120分。; 适合人群:参加全国大学生电子设计竞赛的学生团队,特别是选择本科组题目的参赛者。; 使用场景及目标:①帮助参赛学生明确数字频率计的设计与制作要求;②为参赛者提供详细的评分标准,以便他们有针对性地准备竞赛;③确保参赛者了解竞赛规则,避免违规行为。; 其他说明:文档还强调了竞赛纪律,如不得中途更换队员、不得与他人交流等,并明确了提交设计报告、实物及《登记表》的时间和方式。
内容概要:本文系统解析了四六级准考证号的重要性、组成规则以及找回准考证号的方法。首先介绍了准考证号作为唯一身份标识、查分必备信息及补办证明依据的作用,并解析了15位准考证号的具体构成。接着详细阐述了通过官方客服推算准考证号的流程,包括不同客服渠道的选择、联系前的准备工作及特殊案例处理方法。然后提供了四种自主推算准考证号的技巧:考场规律推算法、报名信息回溯法、文档搜索法和代码组合法。此外,提出了预防准考证丢失的三大策略,包括多重备份、智能提醒设置和学校协作机制。最后强调了安全注意事项,针对常见问题进行了权威解答,并给出了紧急情况处理方案。; 适合人群:即将参加或已经参加四六级考试的考生,尤其是那些可能面临准考证号丢失问题的学生。; 使用场景及目标:①帮助考生在成绩公布时快速有效地找回准考证号;②指导考生如何预防准考证号丢失并养成良好的备份习惯;③提高考生对准考证号重要性的认识,避免因准考证号问题影响成绩查询。; 阅读建议:本文内容详实,建议考生仔细阅读并按照文中提供的方法进行实践操作,同时关注官方渠道和服务,确保在需要时能够顺利找回准考证号。
毕业论文-zero_art_cms_v1.0.1-整站商业源码.zip
毕业论文-深蓝AI智能名片小程序1.7.1-整站商业源码.zip
交换机实验 - ENSP.doc
内容概要:本文介绍了电机控制器谐波电流注入技术在汽车NVH(噪声、振动与声振粗糙度)优化中的应用。谐波电流注入技术通过向电机注入特定谐波电流,抵消转矩谐波,使电机运行更加稳定和平滑,从而显著降低汽车运行时的噪声。文中还提供了一个简化的伪代码示例,解释了谐波电流注入的基本原理和技术细节。最后,文章提到该技术已在吉利的一个项目中成功应用,有效提升了车辆的NVH性能,改善了驾乘体验。 适合人群:汽车工程技术人员、NVH研究专家以及对汽车电气系统感兴趣的读者。 使用场景及目标:适用于希望深入了解电机控制器谐波电流注入技术的工作原理及其在汽车NVH优化中的应用的人群。目标是掌握该技术的具体实施方法,并了解其在实际项目中的效果。 其他说明:随着汽车行业对NVH性能的要求日益提高,谐波电流注入技术将在未来更多的汽车项目中得到广泛应用,为用户提供更安静舒适的驾驶环境。
灭火器识别数据集,识别率99.5%,分别率640x640,127张训练图,支持darknet格式的标注框
# 压缩文件中包含: 中文文档 jar包下载地址 Maven依赖 Gradle依赖 源代码下载地址 # 本文件关键字: jar中文文档.zip,java,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,中文API文档,手册,开发手册,使用手册,参考手册 # 使用方法: 解压最外层zip,再解压其中的zip包,双击 【index.html】 文件,即可用浏览器打开、进行查看。 # 特殊说明: ·本文档为人性化翻译,精心制作,请放心使用。 ·只翻译了该翻译的内容,如:注释、说明、描述、用法讲解 等; ·不该翻译的内容保持原样,如:类名、方法名、包名、类型、关键字、代码 等。 # 温馨提示: (1)为了防止解压后路径太长导致浏览器无法打开,推荐在解压时选择“解压到当前文件夹”(放心,自带文件夹,文件不会散落一地); (2)有时,一套Java组件会有多个jar,所以在下载前,请仔细阅读本篇描述,以确保这就是你需要的文件;
汽车轮胎识别数据集,837张训练图 识别率99.5%,支持yolov7格式的标注
毕业论文-奇鹿一物一码返红包V1.0.5 安装更新一体版-整站商业源码.zip
EasyAi-仅UI.......
基于STM32蓝牙小车的源码+文档说明(毕业设计),个人经导师指导并认可通过的高分设计项目,评审分99分,代码完整确保可以运行,小白也可以亲自搞定,主要针对计算机相关专业的正在做毕业设计的学生和需要项目实战练习的学习者,可作为毕业设计、课程设计、期末大作业,代码资料完整,下载可用。 基于STM32蓝牙小车的源码+文档说明(毕业设计)基于STM32蓝牙小车的源码+文档说明(毕业设计)基于STM32蓝牙小车的源码+文档说明(毕业设计)基于STM32蓝牙小车的源码+文档说明(毕业设计)基于STM32蓝牙小车的源码+文档说明(毕业设计)基于STM32蓝牙小车的源码+文档说明(毕业设计)基于STM32蓝牙小车的源码+文档说明(毕业设计)基于STM32蓝牙小车的源码+文档说明(毕业设计)基于STM32蓝牙小车的源码+文档说明(毕业设计)基于STM32蓝牙小车的源码+文档说明(毕业设计)基于STM32蓝牙小车的源码+文档说明(毕业设计)基于STM32蓝牙小车的源码+文档说明(毕业设计)基于STM32蓝牙小车的源码+文档说明(毕业设计)基于STM32蓝牙小车的源码+文档说明(毕业设计)基于STM32蓝牙小车的源码+文档说明(毕业设计)基于STM32蓝牙小车的源码+文档说明(毕业设计)基于STM32蓝牙小车的源码+文档说明(毕业设计)基于STM32蓝牙小车的源码+文档说明(毕业设计)基于STM32蓝牙小车的源码+文档说明(毕业设计)基于STM32蓝牙小车的源码+文档说明(毕业设计)基于STM32蓝牙小车的源码+文档说明(毕业设计)基于STM32蓝牙小车的源码+文档说明(毕业设计)基于STM32蓝牙小车的源码+文档说明(毕业设计)基于STM32蓝牙小车的源码+文档说明(毕业设计)基于STM32蓝牙小车的源码+文档说明(毕业设计)基于STM32蓝牙小车的源码+文档说明(毕业设计)基于STM32
# 压缩文件中包含: 中文文档 jar包下载地址 Maven依赖 Gradle依赖 源代码下载地址 # 本文件关键字: jar中文文档.zip,java,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,中文API文档,手册,开发手册,使用手册,参考手册 # 使用方法: 解压最外层zip,再解压其中的zip包,双击 【index.html】 文件,即可用浏览器打开、进行查看。 # 特殊说明: ·本文档为人性化翻译,精心制作,请放心使用。 ·只翻译了该翻译的内容,如:注释、说明、描述、用法讲解 等; ·不该翻译的内容保持原样,如:类名、方法名、包名、类型、关键字、代码 等。 # 温馨提示: (1)为了防止解压后路径太长导致浏览器无法打开,推荐在解压时选择“解压到当前文件夹”(放心,自带文件夹,文件不会散落一地); (2)有时,一套Java组件会有多个jar,所以在下载前,请仔细阅读本篇描述,以确保这就是你需要的文件;