关注JEECG发展历程 关注最新动态和版本, 记录JEECG成长点滴 更新日志 - 技术支持 - 招聘英才

JEECG最新版本下载 JEECG智能开发平台 - 显著提高开发效率 常见问题 - 入门视频 - 参与开源团队

商务QQ: 69893005、418799587 商务热线(5*8小时): 010-64808099 官方邮箱: jeecgos@163.com

查看: 5306|回复: 0

比excel更好用的免费拖拽报表—JimuReport 1.4.4新特性

[复制链接]
发表于 2022-4-16 22:39:38 | 显示全部楼层 |阅读模式
积木报表1.4.4版本在1.4.0稳定版本的基础上解决一系列bug,做了一些重要升级工作,重点稳定健壮功能。例如解决安全漏洞、解决静态资源冲突及添加了一些新功能。

1.解决静态资源加载冲突

使用其他框架的朋友经常会遇到静态资源冲突的问题,此版本重点解决了这个问题。


2.严重安全漏洞修复

当有SQL注入时,提示会有SQL注入风险,如:insert、update、delete、alter、drop等表结构及数据操作均不允许操作。

  • 效果展示


3.支持pdf导出换行

很多朋友反馈亟需pdf导出换行功能,此版本实现了该功能。


4.支持自定义表达式

当现有表达式不满足需求时,我们可以使用自定义表达式来实现。

  • 首选定义表达式
  1. import com.googlecode.aviator.runtime.function.AbstractFunction;
  2. import com.googlecode.aviator.runtime.type.AviatorObject;
  3. import com.googlecode.aviator.runtime.type.AviatorRuntimeJavaType;
  4. import org.jeecg.modules.jmreport.desreport.express.ExpressUtil;
  5. import java.util.Map;

  6. /**
  7. * 定义函数:
  8. * 1.定义getName方法,返回一个字符串
  9. * 2.如果函数参数个数已知,继承AbstractFunction,重写call方法,call是一个多态方法,参数AviatorObject arg可以传多个
  10. * 3.如果函数参数个数未知,继承AbstractVariadicFunction,重写variadicCall方法
  11. **/
  12. public class UpcaseFun extends AbstractFunction {

  13.     @Override
  14.     public String getName() {
  15.         return "upCase";
  16.     }

  17.     @Override
  18.     public AviatorObject call(Map<String, Object> env, AviatorObject arg1) {
  19.         // 参数用此方法获取 数字也这么获取 然后自己转
  20.         String str = ExpressUtil.getArgString(arg1, env);
  21.         return AviatorRuntimeJavaType.valueOf(str.toUpperCase());
  22.     }
  23. }
复制代码

  • 注册表达式
  1. import com.googlecode.aviator.AviatorEvaluatorInstance;
  2. import org.jeecg.modules.jmreport.desreport.express.IJmExpressCustom;
  3. import org.springframework.stereotype.Component;

  4. /**
  5. * 注册函数:
  6. * 1.添加类注解@Component
  7. * 2.实现接口 IJmExpressCustom,重写方法 addFunction
  8. * 3.instance.addFunction(fun.getName(), fun);
  9. * 4.如果是运算函数(如:加减乘除),调用instance.addOpFunction
  10. */
  11. @Component
  12. public class JmExpressCustomImpl implements IJmExpressCustom {

  13.     @Override
  14.     public void addFunction(AviatorEvaluatorInstance instance) {
  15.         UpcaseFun fun = new UpcaseFun();
  16.         instance.addFunction(fun.getName(), fun);
  17.         //OtherFun fun1 = new OtherFun ();
  18.         //instance.addFunction(fun1.getName(), fun1);
  19.     }
  20. }
复制代码

  • 使用表达式


5.同一报表支持多个循环块
  • 5.1 实现效果


6.支持saas配置

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



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

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

  • 实现效果

附录 更多体验



您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表