积木报表1.4.4版本在1.4.0稳固版本的根底上解决一系列bug,做了一些重要降级工作,重点稳固强壮性能。例如解决安全漏洞、解决动态资源抵触及增加了一些新性能。

1.解决动态资源加载抵触

应用其余框架的敌人常常会遇到动态资源抵触的问题,此版本重点解决了这个问题。

2.重大安全漏洞修复

当有SQL注入时,提醒会有SQL注入危险,如:insert、update、delete、alter、drop等表构造及数据操作均不容许操作。

  • 成果展现

3.反对pdf导出换行

很多敌人反馈亟需pdf导出换行性能,此版本实现了该性能。

4.反对自定义表达式

当现有表达式不满足需要时,咱们能够应用自定义表达式来实现。

  • 首选定义表达式

    import com.googlecode.aviator.runtime.function.AbstractFunction;import com.googlecode.aviator.runtime.type.AviatorObject;import com.googlecode.aviator.runtime.type.AviatorRuntimeJavaType;import org.jeecg.modules.jmreport.desreport.express.ExpressUtil;import java.util.Map;/** * 定义函数: * 1.定义getName办法,返回一个字符串 * 2.如果函数参数个数已知,继承AbstractFunction,重写call办法,call是一个多态办法,参数AviatorObject arg能够传多个 * 3.如果函数参数个数未知,继承AbstractVariadicFunction,重写variadicCall办法 **/public class UpcaseFun extends AbstractFunction {  @Override  public String getName() {      return "upCase";  }    @Override  public AviatorObject call(Map<String, Object> env, AviatorObject arg1) {      // 参数用此办法获取 数字也这么获取 而后本人转      String str = ExpressUtil.getArgString(arg1, env);      return AviatorRuntimeJavaType.valueOf(str.toUpperCase());  }}
  • 注册表达式

    import com.googlecode.aviator.AviatorEvaluatorInstance;import org.jeecg.modules.jmreport.desreport.express.IJmExpressCustom;import org.springframework.stereotype.Component;/** * 注册函数: * 1.增加类注解@Component * 2.实现接口 IJmExpressCustom,重写办法 addFunction * 3.instance.addFunction(fun.getName(), fun); * 4.如果是运算函数(如:加减乘除),调用instance.addOpFunction */@Componentpublic class JmExpressCustomImpl implements IJmExpressCustom {  @Override  public void addFunction(AviatorEvaluatorInstance instance) {      UpcaseFun fun = new UpcaseFun();      instance.addFunction(fun.getName(), fun);      //OtherFun fun1 = new OtherFun ();      //instance.addFunction(fun1.getName(), fun1);  }}
  • 应用表达式

5.同一报表反对多个循环块

  • 5.1 实现成果

6.反对saas配置

此版本反对saas配置;在yaml文件中配置saas为true即可,如下图:

7.预览工具条显示数据总条数

为了更不便的显示数据,在预览工具条中显示数据的总条数。

  • 实现成果

附录 更多体验

  • 体验地址:http://jimureport.com/
  • 文档地址:http://report.jeecg.com/