比excel更好用的免費拖拽報表—JimuReport 1.4.4新特性
阿新 • • 發佈:2022-04-15
積木報表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 */ @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); } }
- 使用表示式
5.同一報表支援多個迴圈塊
- 5.1 實現效果
6.支援saas配置
此版本支援saas配置;在yaml檔案中配置saas為true即可,如下圖:
7.預覽工具條顯示資料總條數
為了更方便的顯示資料,在預覽工具條中顯示資料的總條數。
- 實現效果
附錄 更多體驗