请上传宽度大于 1200px,高度大于 164px 的封面图片
    调整图片尺寸与位置
    滚轮可以放大缩小图片尺寸,按住图片拖动可调整位置,多余的会自动被裁剪掉
取消
漩涡(uid:128)
职业资格认证:FCA-九数云
增强公式编辑器插件
概述 该插件支持两个功能:公式支持JavaScript脚本、公式支持实时运算结果查看。 源码地址:https://coding.net/u/fanruan/p/plugin-formula-script 插件下载地址:https://market.fanruan.com/plugin/660 支持版本:V9.0 帮助文档地址:http://help.finereport.com/doc-view-2276.html 主要功能视图 87978 使用教程 1、新建一个模板,在A1中设置一个值为12; 2、在B1中增加一个常规公式,内容为 "A1的值" + if (A1 > 10, "大于10","小于等于10") 3、在B2中增加一个脚本公式,内容为 var a1 = '${A1}'; return "A1的值" + (a1 > 10 ? "大于10" : "小于等于10"); 模板的设置如下图所示:88031预览该模板,可以看到两个格子的计算结果是一样的:88032实时计算在脚本公式中,写入下面的脚本内容: var a1 = ${A1}; var a2 = ${A2}; return "A1 + A2的值" + (a1 + a2 > 10 ? "大于10" : "小于等于10"); 点击实时计算按钮,会弹出来要求输入A1和A2的值,输入后,就可以看到正确的计算结果了:88033结果为如下图所示:88034注意事项 1、常规公式和脚本公式都支持实时计算。 2、目前还无法切换不同的公式,需要在下一个月的发布版本中解决。 编辑于 2017-12-18 15:20 编辑于 2017-12-18 15:20
螺旋数据集和报表内置引擎对比报告(一)
一、 性能对比测试目的目前系统的大数据量运算展示等情况越来越多,报表产品性能是否能够支撑应用系统有着很大的意义。编写此对比测试报告的目的是通过测试对比不同引擎选择适合的引擎满足产品的性能需求,同时发现系统中存在的性能瓶颈,提升产品性能有依可据,起到引导优化产品性能的目的。二、 性能测试主要指标 2.1 典型应用模板展示加载时间 2.2 测试机器的CPU、内存使用情况 三、 测试环境 3.1 硬件环境 CPU 内存操作系统 I5-4210M 2.6GHz 8GWin10 64位 3.2 软件环境 数据库 应用浏览器 MySQL FineReport 8.0Chrome61 64位 四、 测试工具Jprofiler工具主要用于检查和跟踪系统(仅限JAVA开发)的性能。Jprofiler可以通过时时的监控系统的内存使用情况,随时监控垃圾回收,线程运行状态等手段,从而很好的监视JVM运行情况及性能。Jprofiler直觉式的GUI让你可以找到性能瓶颈、抓出内存漏失。五、 数据表详情 表名 数据量 S人员花名册 23个字段 23199条数据 20w_10col 10个字段 20万条数据 100w 11个字段 100万条数据 10w_10col_group10000 17个字段10万条数据 六、测试场景6.1 明细表展示 主要测试功能点 明细表展示 数据表 S人员花名册(2W) 加载时间(s)CPU使用率内存占用(M) 螺旋展示 第一次预览1.95.65%440 第二次预览1.87.03%320 第三次预览1.84.88%320 报表展示 第一次预览3.1 16.99%280 第二次预览2.39.17%310 第三次预览2.113.26%310 平均预览2.513.14%300 数据表 20w_10col 加载时间(s)CPU使用率内存占用(M) 螺旋展示 第一次预览8.916.4%496 第二次预览3.026.34%521 第三次预览2.932.61%382 报表展示 第一次预览16.4 55.56%436 第二次预览9.772.31%423 第三次预览9.544.52%553 平均预览11.857.46%470 数据表 100w 加载时间(s)CPU使用率内存占用(M) 螺旋展示 第一次预览46.146.4%1030 第二次预览12.355.38%1130 第三次预览14.348.20%1110 报表展示 第一次预览62.3 78.53%1350 第二次预览59.872.31%1423 第三次预览66.574.52%1685 平均预览62.875.12%1486 6.2 分组表展示 主要测试功能点 分组表展示 数据表 100w 最终展现100行2列 加载时间(s)CPU使用率内存占用(M) 螺旋展示 第一次预览5.539.8%300 第二次预览2.82.53%370 第三次预览2.31.86%405 报表展示 第一次预览27.3 74.69%940 第二次预览18.575.21%990 第三次预览16.551.37%980 平均预览20.767.09%970 6.3 明细表过滤排序展示 主要测试功能点 明细表过滤排序展示 数据表 100w 最终展现24W行5列 加载时间(s)CPU使用率内存占用(M) 螺旋展示 第一次预览40.252.1%610 第二次预览3.149.53%490 第三次预览3.541.86650 报表展示 第一次预览 50.5 73.55%1136 第二次预览48.478.93%925 第三次预览40.876.56%1126 平均预览46.576.35%1062 数据表 20w_10col 最终展现1008行4列 加载时间(s)CPU使用率内存占用(M) 螺旋展示 第一次预览16.829.63%376 第二次预览1.510.54%412 第三次预览1.27.21% 441 报表展示 第一次预览 15.663.59%398 第二次预览8.215.21%728 第三次预览7.816.97%735 平均预览10.6319.23%620 6.4 明细表计算展示 主要测试功能点 明细表计算展示 数据表 100w 最终展现 100W行5列 加载时间(s)CPU使用率内存占用(M) 螺旋展示 第一次预览51.366.65%1320 第二次预览15.271.49%1380 第三次预览10.277.88%1460 报表展示 第一次预览GC overhead limit exceeded 第二次预览 第三次预览 平均预览 数据表 20w_10col 最终展现 20W行5列 加载时间(s)CPU使用率内存占用(M) 螺旋展示 第一次预览16.241.53%474 第二次预览2.540.09%309 第三次预览2.832.61640 报表展示 第一次预览16.861.44%539 第二次预览10.358.67%379 第三次预览10.263.57375 平均预览12.4612.27%431 6.5 多表关联 主要测试功能点 多表关联 数据表 20w_10col、10w_10col_group10000 最终展现20行5列 加载时间(s)CPU使用率内存占用(M) 螺旋展示 第一次预览21.946.48%505 第二次预览2.824.21%650 第三次预览2.121.28%620 报表展示 第一次预览22.7 50.07%520 第二次预览23.171.33%560 第三次预览23.549.31%610 平均预览23.156.91%563 七、测试结果分析当使用螺旋数据集进行数据的读取时,第一次读取有一个进行缓存的过程,所以第一次读取时间大约等于使用SQL读取的时间。以后进行读取是直接在内存中进行读取的,时间大约就是报表展现的时间,缓存失效时间为5分钟。 在进行明细表展现时,小数据量下数据读取不是系统的瓶颈,报表与螺旋数据集无较大差别,当数据量达到几十万上百万时,报表读取时间显著加长。螺旋数据集在缓存下对比报表有5倍的性能提升。在明细表进行过滤计算排序等操作形成小数据集时,螺旋数据集也能够保持5倍以上的性能。 分组汇总表展现是螺旋数据集的长处,几十万甚至百万数据下分组汇总,螺旋数据集对比报表有5到10倍的性能提升。螺旋数据集具有预先关联数据表的功能,能够预先处理数据表关联逻辑。在数据生成前就能做好关联操作,报表展现的时候直接在缓存中读取多张表的关联后的表直接展现。相对于报表手动关联有10倍的性能提升。
螺旋数据集语法规则
在查询中,填写的是一个json语句,主要包含下面的字段 $select字段 $cal字段 $group字段 $order字段 $filter字段 $limit字段 $formula字段 组合字段 下面就详细的描述每个字段的含义以及其用法。 $select字段key为固定的"$select"。 value为一个数组,表示要筛选的列,数组元素可以是单一列名,也可以是列名和别名的描述信息。 // {"$select":} //暂时还不能重命名 {"$select":"*"}相当于SQL语句: // select 姓名 as 名字,salary from tableA select * from tableA 预览结果 81648 $cal字段key为固定"$cal" value为JSON数组,数组中对象为计算指标与字段名称的键值对和"$as"和别名键值对。 $count汇总 $distinctCount不同值的汇总 $max最大 $min最小 $sum求和 {"$cal":}相当于SQL语句: select count(年龄) as ca from tableName预览结果 81651 $group字段 key为固定"$group" value为JSON数组,为全部分组字段名称数组。 查询语句: {"$group":}相当于SQL语句: select 工龄,年龄 from tableName GROUP BY "工龄","年龄"预览结果 81652 $order字段 key为固定"$order"value为JSON数组,为全部分组字段名称与排序方式的对象数组其中1表示正序,-1表示倒序。 查询语句: { "$order": [ { "年龄": 1 }, { "工龄": -1 } ] }相当于SQl语句: select * from tableName Order BY 年龄 ASC,工龄 DESC预览结果 81653 $filter字段 key为固定"$filter"value为JSON对象,为过滤条件对象过滤条件对象比较复杂,能够使用$and、$or进行逻辑关联下一层的过滤条件对象。最底层过滤条件对象key为下面表格的12中逻辑,value为字段名与真实值。 或者后四个判断为null的逻辑,value为字段名。 $eq等于 $ne不等于 $lt小于 $le小于等于 $gt大于 $ge大于等于 $notContains不包含 $contains包含 $endWith以。。。结尾 $beginWith 以。。。开头 $notEndWith 不以。。。结尾 $notBeginWith 不以。。。开头 $isNotNull 不为空 $isNull 为空 $isStringNotNull 字符串不为空 $isStringNull 字符串为空 { "$filter":{ "$and":[ { "$ge":{ "年龄":30 } }, { "$lt":{ "工龄":10 } }, { "$isNotNull":"id" } ] } } 相当于SQL语句: select * from tableName where 年龄>=30 and 工龄<10 and id is not NULL 预览结果 81654 $limit字段key为固定的"$limit"。 value为一个json对象。 ”$offset"的value值为指定从那一行开始 "$num"的value值为指定的返回行数 { "$limit":{ "$offset":100, "$num":200 } } 相当于SQl语句: select * from tableName limit 200 offset 100 预览结果 81655 $formula字段$formula为一个JSON数组,每一个对象为一个计算指标。key为计算指标新生成的字段名,value为计算公式。计算公式见详情 。 { "$select":"*", "$formula":[ {"$name":"sum","$content":"sum($年龄,$工龄)"}, {"$name":"max","$content":"max($年龄,$工龄)"}, ] } 相当于SQL语句: select *,sum(年龄,工龄)as sum,max(年龄,工龄)as max from tableName 预览结果 81656 组合字段在json中可以同时使用多个字段进行 { "$select":, "$filter":{ "$and":[ {"$gt":{"年龄":20}},{"$lt":{"年龄":40}} ] }, "$order":[ {"年龄":-1 }, {"工龄":1} ], "$formula":[ {"$name":"sum","$content":"sum($年龄,$工龄)"} ] } 相当于SQL语句: select 年龄,工龄,sum(年龄,工龄)as sum from tableName where 年龄>20 and 年龄<40 Order BY 年龄 DESC,工龄 预览结果 81657 编辑于 2017-10-20 11:51 编辑于 2017-10-20 14:50 编辑于 2017-10-20 15:02 编辑于 2017-10-21 09:21
螺旋数据集典型应用(一)
源数据 销售表 81640 薪资表 81641 用户表 81642 分析要求 希望能看到每个人贡献的净利润(销售收入-薪资支出)。 直接在报表中怎么做的我们不在多做描述,下面看一下怎么通过螺旋数据集来实现: 第一步:新建三个数据库数据集,作为源数据集: income select * from `income` paid select * from `company` user select * from `user` 第二步:新建三个螺旋数据集: c_income {"$group":, "$cal":{"$sum":"income"}} //对id进行分组,并对销售日进行汇总 c_paid {"$group":} //根据id进行分组 c_user {} //所有的用户 第三步:新建关联螺旋数据集: 81643 数据集预览结果 81644 通过这个方式,就直接分析出了每个人的利润了。 在报表中展现的结果 81645 编辑于 2017-10-20 12:00 编辑于 2017-10-20 14:48
高性能的报表预计算处理器——螺旋数据集插件
PS1:如果有什么不能满足需求的地方,可以在贴在下面留言。 PS2:和报表内置引擎的性能对比报告可以看这里:http://bbs.fanruan.com/thread-97692-1-1.html。 PS3:我们的目标是尽可能解决报表在遇到较大数据量时,多表关联计算比较吃力的问题。 插件下载地址:https://market.fanruan.com/plugin/642 前言集算数据集引擎是FineBI后台所使用的分析引擎,可以通过该引擎实现快速的运算和分析。但在此之前,只有使用BI才可以使用该引擎,导致用户希望使用报表的,又有大数据的分析需求时,得不到有效的满足。解决方案根据FineReport V8.0后提供的数据集接口,使得在FineReport中可以通过数据集的方式,使用上高效的FineBI的分析引擎。螺旋数据集一些典型的应用,可以参考这里:典型应用。新建集螺旋据集第一步:新建数据库查询数据集螺旋数据集是依赖于原始的数据库查询数据集的81628第二步:新建螺旋数据集81629 配置螺旋数据集螺旋数据集的源数据集,可以是一个数据库查询数据集,也可以是一个螺旋数据集,简单来说,螺旋数据集是可以以一种螺旋的方式往下进行进一步处理的。参考螺旋数据集的语法规则:语法规则。81630 预览结果 81632 关联螺旋数据集新建关联螺旋数据集 81633 配置关联螺旋数据集两个数据集之间,是可以通过特定的字段,建立起关联关系的,这种关联方式放到数据集中处理,就是关联螺旋数据集:81634 预览结果 81636 其他事项当使用直连分析生成新的字段时,在当前分析中新生成字段无法作为数据列进行分析,只能螺旋分次进行。 编辑于 2017-10-20 14:43
国庆有没有想去重庆玩的?
去吃喝几天
数据集插件开发教程
前言 一个自定义的数据集插件,一般需要由一个自定义的数据连接配合完成,我们以XML数据集为例子,来说明如何开发一个数据集插件。 示例源码地址:https://github.com/RichieJi/plugin-tabledata-xml 数据连接 关键接口:ConnectionProvider 数据集 关键接口:TableDataDefineProvider 数据处理逻辑 如果希望更改XML的解析方式,直接更改com.fr.plugin.db.xml.core.XMLTableDataModel的initData方法即可。 效果图 数据连接配置界面:com.fr.plugin.db.xml.ui.XMLConnectionPane 77821 数据集配置界面:com.fr.plugin.db.xml.ui.XMLTableDataPane 77822 预览结果 77823 编辑于 2017-9-12 15:37 编辑于 2017-9-12 15:37
测试一下呢
哈更好好好好好好好好
查询 BUG 进度插件
背景 在使用 FineReport 和 FineBI 的时候,会遇到一些 BUG,由一些影响比较大,会造成很大的困扰,用户也希望能看到 BUG 的处理进度。 插件 为了解决这个问题,我们开发一款可以在设计中使用的插件,能通过手机号码查询到自己提交的 BUG 的处理进度。 效果图 54243 插件地址 待应用商店审核,审核通过后可自行下载
插件中读写XML文件
前言在FineReport中,提供了一套简单的API用于读写XML操作,在这套关键的API中,主要的用到的关键类就是XMLableReader和XMLPrintWriter。从类的名字可以看出,XMLableReader是用于读取XML的,而XMLPrintWriter则是用于写XML的。示例我们以实际的示例来看这两个类的使用,示例代码以自定义的网页框为例子,源码在这里,下面就以这个额自定义控件中设计到读取XML的部分代码为例子进行具体的讲解。先来看一下在表中添加了一个网页框控件后,表单的XML文件(frm文件)中关于这个控件的XML片段:网页框控件XML片段 1 2 3 4 5 6 7 8 9 10 11 12 13 其中第1行到第5行是网页框控件父类提供的一些属性,我们暂时不用管,我们把关注点集中在第5行以后。写XML来对照着网页框控件的源码来看看,由于我们只关注读写XML,所以这里的片段就只贴读写XML相关的部分:writeXML 1 2 3 4 5 6 7 8 9 10 11 12 @Override public void writeXML(XMLPrintWriter writer) { super.writeXML(writer); writer.startTAG("Attr"); writer.attr("scrollX", overflowX); writer.attr("scrollY", overflowY); writer.end(); if (attr != null) { GeneralXMLTools.writeXMLable(writer, attr, RHIframeAttr.XML_TAG); } } } writeXML中第4行到第7行,就写出了上面XML片段中的Attr 而writeXML中第8行到底10行,则写出了上面XML片段中的RHIframeAttr 综合上述示例,可以看到给XML节点写入属性,是用XMLPrintWriter#attr方法,而要把一个对象写入到XML,则推荐使用GeneralXMLTools#writeXMLable方法。读XML对应于写XML,我们在把XML转化为对象的时候,就需要读XML,我们来看一下示例中的网页框控件的读XML方法readXML 1 2 3 4 5 6 7 8 9 10 11 12 13 @Override public void readXML(XMLableReader reader) { super.readXML(reader); if (reader.isChildNode()) { String nodeName = reader.getTagName(); if ("Attr".equals(nodeName)) { this.overflowX = reader.getAttrAsBoolean("scrollX", true); this.overflowY = reader.getAttrAsBoolean("scrollY", true); } else if (RHIframeAttr.XML_TAG.equals(nodeName)) { this.attr = (RHIframeAttr) GeneralXMLTools.readXMLable(reader); } } } 不管是Attr节点也好,还是RHIframeAttr节点也好,它们都属于InnerWidget的子节点,所以执行带网页框控件的readXML方法中时,我们需要判断是否读到了孩子节点(reader.isChildNode),如果是,则根据节点名字读取实际的XML内容。读取属性的方法大致都是这样的格式: XMLableReader#getAttrAsXXX(); 读取对象则可以使用内置的工具方法 GeneralXMLTools#readXMLable(XMLableReader); 如果希望进一步了解和学习嵌套XML的读写,可以进一步参考RHIframe对象的属性RHIframeAttr的XML读写,参考上面的讲解,应该可以更加深刻的了解。其他文本节点读写TextNode 其中的CDATA标记是为了防止XML文本中出现了特殊字符导致XML无法解析上面的XML,写的方式为:写文本节点 writer.startTAG("Text"); writer.textNode("My Text"); writer.end(); 对应的,读取的方式为:读文本节点 if ("Text".equals(nodeName)) { String text = reader.getElementValue(); } 注意事项写XML的时候,XMLPrintWriter#startTAG方法和XMLPrintWriter#end方法一定要成对出现,否则就会写出下面这样的XML损坏的XML 这样会导致整个XML无法解析,模板也就无法正确读取了。源地址:http://www.finedevelop.com/pages/viewpage.action?pageId=1933555
决策平台提醒定期修改密码
前言 在使用FineReport决策平台的时候,如果使用了内置的认证方式,可能需要定期修改密码什么的,以保证系统的安全性。 解决方案 通过FineReport V8.0中提供的插件接口,可以通过修改登录界面来验证密码的有效期,当有效期快过的时候,弹出对话框提醒,当有效期已经过了时候,强制弹出密码修改界面进行密码修改后方能登录。插件下载:37706 示例截图 密码有效期即将到期的时候,会在点击登录认证成功后弹出这么一个警示框 37703 如果密码有效期已经过期,则强制性的弹出一个密码修改界面修改密码后方才能继续登录使用(截图中是手动把修改框上移的) 37704 管理员则可以在系统管理-密码有效期项下进行设置 37705
翻页加载时自定义动画效果
本帖最后由 漩涡 于 2016-4-26 12:36 编辑 前言现在报表的默认加载动画是一个gif图片,如果看厌了,想修改一下怎么办呢?使用FineReport提供的加载动画接口即可实现。 关键接口$.extend(FR.HtmlLoader, { loadingEffect : function (config) { var el = config.el; $.extend({ show : false, overflow : false }, config || {}); } }); 只需要在自己的JavaScript文件中重写这个函数,就可以实现自定义的加载动画了,不管是用全新的gif图片,还是使用Canvas来绘画都是可以的。效果图 36202 更清晰的效果视频可查看:http://www.finedevelop.com/w/plugin/demo/animation/ 源码地址参见这里:http://www.finedevelop.com:2015/ ... =refs%2Fheads%2Fdev
单元格元素支持更多的类型,包括数学公式
现在报表中单元格元素支持文本、公式、图片、富文本等类型,种类比较丰富,但是某些情况下并不能满足我们的所有需求,这个时候就需要去扩展支持的单元格元素类型。 大家都是从学生时代过来的,一张张的试卷代表了一段段的青春,下面的示例,我们就以使用FineReport报表做出来一张数学试卷来。开发出数学公式单元格元素插件并安装后,就能在“插入”菜单下的“单元格元素”或者报表模板设计界面上参数界面上方的工具栏上看到“插入数学公式”了。在模板中按如下的方式插入“数学公式”和其他文本元素,做出来的模板样式大致是这样的: 36194 我们点开其中一个来看一看,比如点开B4看一下设置,可以修改其中的数学公式,公式的语法完全遵守Tex或者LaTex语法,点击预览可以看到当前的公式输出效果 36195 好了,做好模板以后,我们可以在浏览器上预览这个模板了,可以看到一个完整的数学习题解就出来了 36196当然,你要导出PDF进行打印什么的,也是完全可以的。 参考源码:http://www.finedevelop.com:2015/ ... =refs%2Fheads%2Fdev
常用函数集合插件
本帖最后由 漩涡 于 2016-3-22 11:49 编辑 总结了一些报表常用的函数,但是又没有内置在报表中的,现在集合起来作为一个插件发布。 插件下载地址:http://market.fanruan.com/ShopServer?pg=product&pid=512 常用的函数工具集合。StringReverse把给定的参数字符串做倒转StringFind 查找第一个匹配的字符串,支持从头开始查找和从尾部开始查找StringMatch判断字符串是否符合给定的正则表达式StringPinyin将中文转换为拼音GetIP获取当前访问的用户的IP地址ProcessErrorValue处理函数返回错误值,一般函数发生错误时,会输出#ERROR_NAME之类的,这个函数可以在函数返回值为错误值的时候,输出自定义的值,其他值不变JSONPathFinder从JSON文本中查找符合条件的结果,JSON支持文本、文件路径以及URL。查询条件的文档点击这里查看。安装该插件后,可以在单元格中写上公式=JSONPathFinder("http://7xs469.com1.z0.glb.clouddn.com/test.json", "$.store.book.title") 该公式表示从JSON中获取书店中书本的价格小于10的书的标题集合。34911MathFrequency统计单词出现的次数和平率。MathFrequency(, 3)返回1,表示数组中3出现了一次,如果给定了第三个参数,则返回0.2,表示3出现的频率为0.2。MathVariance求数组中元素的方差。MathStandardDeviation求数组中元素的标准差。MathSumOfSquares求数组中元素的平方和。MathGeometricMean求数组中元素的几何平均数。MathMean求数组中元素的算术平均数。
模板内容全文检索插件
在使用FineReport过程中,在做了比较多的模板后,经常需要针对性的查找一些特定特征的模板,比如:用了数据集user的模板、用了公式sum的模板、单元格中文字"中国的"模板等,这时候如果一个个打开模板来查找就变得繁琐务必,本插件就提供文本级别的模板内容查找,当然附带的,也支持仅根据模板名字查询模板。 插件源码:http://www.finedevelop.com:2015/projects/FS/repos/plugin-search-everything 插件下载地址:http://market.fanruan.com/ShopServer?pg=product&pid=502 使用效果截图:双击shift按键即可调出搜索面板 全文检索,可以看到有两个模板中包含了ds1,当然,那是因为这两个模板中都定义了一个叫ds1的数据集,双击搜索结果即可在设计器中打开这个模板 34317 如果我们只想搜索符合条件的模板名字,那么勾掉“模板内容”即可,同理对于报表模板和表单模板也是一样,所有的选择都会替你记住,下一次打开设计器进行搜索的时候仍然会保留你上一次的搜索偏好 34318
从设计器中查找指定组件对应源码教程
本帖最后由 漩涡 于 2016-2-29 19:20 编辑 教程源地址:http://www.finedevelop.com/w/plugin/debug/swingdebug,如果教程有修改,只会修改源地址上的说明,本教程不再修改。 背景 经常的,在开发者建立好开发工程,使用源码启动设计器后,看到设计器上的各种组件无从下手,不知道每个组件对应的源码在什么地方,这对初学者来说是一个很大的难题,大大耗费我们的开发时间。这篇教程就讲述如何使用可视化的方式来找到每个设计器组件对应的源码。 解决方案 1. 使用最新的设计器代码,可以从设计器源码下载和更新 2. 从代码启动设计器的时候,选择Designer4Debug,也就是使用主函数com.fr.start.Designer4Debug,如图所示 34127 3. 使用Designer4Debug启动后可以看到打开的不仅仅有设计器,还有一个Swing Explorer窗口 34128 4. 让Swing Explorer窗口置于前端,选择其中的树节点 34131 5. 点击“Display selected component”按钮 34132 6. 经过了上一步之后,就可以在Swing Explorer的组件显示区域显示设计器的样子了 7. 然后在设计器中选择自己想要查找的组件,下列示例图分别想要查找模板树和数据集tab控件,可以在左侧的代码树上看到选择的组件对应的类 34133 34134 8. 然后在IDE中搜索该类就可以了,如图 34135
表单中的视频播放组件
本帖最后由 漩涡 于 2016-2-29 19:27 编辑 现在越来越多的企业会用到大屏展示,在大屏上展现报表(图表)数据的时候,偶尔也需要同时播放一些视频,默认的FineReport表单并不支持HTML5的视频播放,而通过使用这个插件,则可以在表单中自由的播放自己设置的视频。 插件下载:http://market.fanruan.com/ShopServer?pg=product&pid=497 示例模板:34059 安装了该插件后可以直接打开该表单预览即可看到效果,该示例使用的是远程资源。 源码地址:源码注意:由于该插件使用的是HTML的视频播放技术,所以只支持谷歌浏览器、火狐浏览器、safari浏览器以及IE11+的浏览器 设计和展现效果如下所示: 添加视频控件到表单中 34066 视频控件的属性设置面板,可以看到可以设置视频的地址和播放属性 34067 设置视频源,分为本地视频和远程视频,该示例中采用的是远程资源 3406834069 在浏览器中的展示效果 34070
基于FineReport V8.0开发的ECharts插件教程
本帖最后由 漩涡 于 2016-2-22 14:45 编辑 现在遇到好些用户已经在自己的项目中使用了ECharts,但是同时也想使用FineReport来方便快捷的制作模板,这个时候就需要把ECharts集成到FineReport中,把各种ECharts的图表类型当成是普通的FineReport图表类型。 在V8.0中提供的图表接口可以实现上面的需求,这篇教程只做简单的描述,具体的开发过程,可以通过源码工程下学习。 ECharts饼图插件源码 大体的效果图也可以参见源码工程中的描述。 编辑于 2018-11-16 11:19
应用中心无法记住密码自动登录
每次隔了没多久,就自动登出了,需要重新点登录才行,没这必要
搜索这边应该可以区分免费/收费
类似appstore里面的免费榜和收费榜,可以按照需求搜索出自己需要的插件
1234下一页
个人成就
内容被浏览674,963
加入社区13年31天
返回顶部