美文网首页
比excel更好用的免费拖拽报表—JimuReport 1.4.

比excel更好用的免费拖拽报表—JimuReport 1.4.

作者: JEECG | 来源:发表于2022-05-10 11:01 被阅读0次

    积木报表1.4.4版本在1.4.0稳定版本的基础上解决一系列bug,做了一些重要升级工作,重点稳定健壮功能。例如解决安全漏洞、解决静态资源冲突及添加了一些新功能。

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

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

    2.严重安全漏洞修复

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

    • 效果展示
    image.png

    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
     */
    @Component
    public 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);
        }
    }
    
    • 使用表达式
    image.png

    5.同一报表支持多个循环块

    • 5.1 实现效果
    image.png

    6.支持saas配置

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

    image.png

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

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

    • 实现效果
    image.png

    附录 更多体验

    相关文章

      网友评论

          本文标题:比excel更好用的免费拖拽报表—JimuReport 1.4.

          本文链接:https://www.haomeiwen.com/subject/dallurtx.html