<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                自定義報表函數 ------------------------- `@date20211212` `@version1.4.3+` ### 示例:新增函數->將字母轉成大寫 #### 1.定義函數 ``` 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()); } } ``` #### 2.注冊函數 ~~~ 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); } } ~~~ #### 3.測試效果: - 設計頁面: ![](https://img.kancloud.cn/5d/b2/5db2851c7af46771e9542c8b36b765cf_476x130.png) - 預覽頁面: ![](https://img.kancloud.cn/63/64/6364683b94e6070b4550fcafd5b8f801_488x150.png)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看