全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

解析如何开发FineReport的自定义控件

FineReport作为插件化开发的报表软件,有些特殊需求的功能需要自己开发,开发的插件包帆软官方有提提供,可以去帆软论坛上找,本文将主要介绍如何开发一个自定义控件,这里讲讲方法论。

第一步:实例化一个注册控件的接口

给四个信息 我们的控件类,界面类,图标路径,控件类型名字

package com.hg.free.plugin.customcombo.param;
import com.fr.design.designer.creator.XComboBox;
import com.fr.design.fun.impl.AbstractParameterWidgetOptionProvider;
import com.fr.form.ui.Widget;
public class WidgetRegister extends AbstractParameterWidgetOptionProvider {
  @Override
  public Class<? extends Widget> classForWidget() {
    return CustomComboBox.class;
  }
  @Override
  public Class<?> appearanceForWidget() {
    return XComboBox.class;
  }
  @Override
  public String iconPathForWidget() {
    return "/com/fr/web/images/combobox.png";
  }
  @Override
  public String nameForWidget() {
    return "自定义下拉框";
  }
} 

第二步,重写控件类

package com.hg.free.plugin.customcombo.param;
import com.fr.form.ui.ComboBox;
import com.fr.ui.DataFilter;
public class CustomComboBox extends ComboBox {
  private static final long serialVersionUID = 7169771062153345236L;
  @Override
  public String getXType() {
  return "customcombo";
 }
  @Override
  protected DataFilter createDataFilter() {
  return new CustomComboBoxDataFilter();
 }
}

因为要改变过滤方式,就要重写一个过滤器

package com.hg.free.plugin.customcombo.param;
import com.fr.form.ui.ComboBoxDataFilter;
public class CustomComboBoxDataFilter extends ComboBoxDataFilter {
  @Override
  public boolean isMatch(String txt, String filter) {
    if(null==txt && null!=filter)return false;
    if(null==txt && null==filter)return true;
    return txt.indexOf(filter)!=-1;
  }
} 

第三步,继承前端控件JS

(function($){
  FR.CustomComboBoxEditor = FR.extend(FR.ComboBoxEditor, {
   _init: function () {
   FR.CustomComboBoxEditor.superclass._init.apply(this, arguments);
   }
  });
  $.shortcut("customcombo", FR.CustomComboBoxEditor);
})(jQuery);

好了~以上就是全部的代码开发~然后写个xml用ant打包成插件就可以了。

代码解释:

首先来看这段代码是什么意思呢?

就是我定义了一个控件类型为CustomComboBoxEditor的控件,他继承了ComboBoxEditor的全部方法和属性,并且我把新定义的控件类型的标记声明为customcombo,这个标记有啥用勒,其他用途就不说了,单单说在这里的用途,就是JAVA 本身是不能让前端取生成什么控件的~而是通过告诉前端一个配置,前端的JS引擎(姑且这么称呼他吧)~根据这个配置去执行对应的脚本生成对应的dom样式之类的~shortcut你就这么理解~后台返回一个配置是要生成customcombo这个控件~那么它就像一个map一样找到了对应的键值FR.CustomComboBoxEditor~然后把该控件的配置丢到这个方法里面去执行。就生成我们的控件了。

因为这个例子中并没有对前端有任何修改的要求~所以就没做任何改动~下面看后台。

我们这个例子是要修改模糊匹配的方式。

那么原来控件匹配的机制是怎么搞的,是这样的:假设我是一个老板(妈蛋也只能假设一下了),现在我想了解一份纸质合同的细节,但是公司有一大坨纸质合同我怎么找呢~当然是请个秘书了(|美女|最好),我告诉她我要的合同大概是有些什么信息~然后她去找出来把最后找到的合同给我就可以了。

我们这里控件ComboBox就是老板,ComboBoxDataFilter就是秘书,就是这么个意思,这里每个秘书肯定都有自己找合同的一套方法,以前那个秘书是只要有点相关的就都找出来了,新来的这个秘书是只找老板提示的信息匹配到的合同~查找匹配的方法就是isMatch,这个代码就是这样的,代码的开发其实只要仔细分析就能够映射到现实生活中的很多事务处理上面~因为代码也是人设计的,逻辑总逃脱不了人处理事务的思维。

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持!


# FineReport  # 自定义控件  # Java FineReport报表工具导出EXCEL的四种方式  # 数据分析软件之FineReport教程:[5]参数界面JS(全)  # Android自定义控件实现随手指移动的小球  # Android自定义控件仿QQ编辑和选取圆形头像  # Android自定义控件制作显示进度的Button  # Android开发进阶自定义控件之滑动开关实现方法【附demo源码下载】  # Android开发之自定义控件用法详解  # 自定义  # 重写  # 就可以  # 我想  # 我要  # 给我  # 来了  # 在这里  # 好了  # 就像  # 是有  # 你就  # 是这样  # 就不  # 说了  # 下了  # 些什么  # 这段  # 一大  # 能让 


相关文章: 三星网站视频制作教程下载,三星w23网页如何全屏?  免费的流程图制作网站有哪些,2025年教师初级职称申报网上流程?  已有域名和空间,如何快速搭建网站?  制作宣传网站的软件,小红书可以宣传网站吗?  外汇网站制作流程,如何在工商银行网站上做外汇买卖?  建站主机选购指南:核心配置与性价比推荐解析  学校为何禁止电信移动建设网站?  可靠的网站设计制作软件,做网站设计需要什么样的电脑配置?  如何在阿里云虚拟服务器快速搭建网站?  关于BootStrap modal 在IOS9中不能弹出的解决方法(IOS 9 bootstrap modal ios 9 noticework)  香港网站服务器数量如何影响SEO优化效果?  济南网站建设制作公司,室内设计网站一般都有哪些功能?  简单实现Android文件上传  ,想在网上投简历,哪几个网站比较好?  公司网站建设制作费用,想建设一个属于自己的企业网站,该如何去做?  昆明高端网站制作公司,昆明公租房申请网上登录入口?  建站之星导航菜单设置与功能模块配置全攻略  清单制作人网站有哪些,近日“兴风作浪的姑奶奶”引起很多人的关注这是什么事情?  建站之星24小时客服电话如何获取?  如何用景安虚拟主机手机版绑定域名建站?  如何在宝塔面板中创建新站点?  如何在宝塔面板创建新站点?  如何做静态网页,sublimetext3.0制作静态网页?  如何在橙子建站中快速调整背景颜色?  专业企业网站设计制作公司,如何理解商贸企业的统一配送和分销网络建设?  建站168自助建站系统:快速模板定制与SEO优化指南  nginx修改上传文件大小限制的方法  如何打造高效商业网站?建站目的决定转化率  javascript中对象的定义、使用以及对象和原型链操作小结  如何基于云服务器快速搭建个人网站?  成都网站制作报价公司,成都工业用气开户费用?  建站之星客服服务时间及联系方式如何?  香港服务器网站测试全流程:性能评估、SEO加载与移动适配优化  如何用美橙互联一键搭建多站合一网站?  如何通过VPS建站无需域名直接访问?  如何挑选优质建站一级代理提升网站排名?  建站之星微信建站一键生成小程序+多端营销系统  免费ppt制作网站,有没有值得推荐的免费PPT网站?  网站网页制作专业公司,怎样制作自己的网页?  韩国网站服务器搭建指南:VPS选购、域名解析与DNS配置推荐  天津个人网站制作公司,天津网约车驾驶员从业资格证官网?  如何设置并定期更换建站之星安全管理员密码?  如何高效完成独享虚拟主机建站?  网站制作新手教程,新手建设一个网站需要注意些什么?  Bpmn 2.0的XML文件怎么画流程图  如何快速生成专业多端适配建站电话?  巅云智能建站系统:可视化拖拽+多端适配+免费模板一键生成  香港服务器网站推广:SEO优化与外贸独立站搭建策略  小程序网站制作需要准备什么资料,如何制作小程序?  最好的网站制作公司,网购哪个网站口碑最好,推荐几个?谢谢? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。