diff --git a/src/main/java/com/fr/function/CellSum.java b/src/main/java/com/fr/function/CellSum.java
deleted file mode 100644
index e0b860d..0000000
--- a/src/main/java/com/fr/function/CellSum.java
+++ /dev/null
@@ -1,14 +0,0 @@
-package com.fr.function;
-
-import com.fr.base.Utils;
-import com.fr.script.AbstractFunction;
-
-public class CellSum extends AbstractFunction {
- public Object run(Object[] args) {
- String sum = Utils.objectToNumber(new SUM().run(args), false)
- .toString(); // 直接调用FR内部的SUM方法
- String result = "所在单元格为:" + this.getCalculator().getCurrentColumnRow()
- + ";总和为:" + sum; // 获取当前单元格拼出最终结果
- return result;
- }
-}
\ No newline at end of file
diff --git a/src/main/java/com/fr/function/DateDiff.java b/src/main/java/com/fr/function/DateDiff.java
deleted file mode 100644
index 3066667..0000000
--- a/src/main/java/com/fr/function/DateDiff.java
+++ /dev/null
@@ -1,67 +0,0 @@
-package com.fr.function;
-
-import com.fr.script.AbstractFunction;
-import com.fr.stable.Primitive;
-import java.util.Date;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-public class DateDiff extends AbstractFunction
-{
- private static final long serialVersionUID = -2863679010825725885L;
- public String format = null;
- private Long dif = Long.valueOf(0L);
-
- public Object run(Object[] paramArrayOfObject)
- {
- try
- {
- Long localLong1 = Long.valueOf(((Date)paramArrayOfObject[0]).getTime());
- Long localLong2 = Long.valueOf(((Date)paramArrayOfObject[1]).getTime());
- this.dif = Long.valueOf(localLong2.longValue() - localLong1.longValue());
- this.format = ((String)paramArrayOfObject[2]);
- replace("((?i)y)", Long.valueOf(31536000000L));
- replace("((?i)q)", Long.valueOf(7776000000L));
- replace("M", Long.valueOf(2592000000L));
- replace("((?i)w)", Long.valueOf(604800000L));
- replace("((?i)d)", Long.valueOf(86400000L));
- replace("((?i)h)", Long.valueOf(3600000L));
- replace("m", Long.valueOf(60000L));
- replace("((?i)s)", Long.valueOf(1000L));
- try
- {
- return Long.valueOf(Long.parseLong(this.format));
- }
- catch (Exception localException2)
- {
- return this.format;
- }
- }
- catch (Exception localException1)
- {
- }
- return Primitive.ERROR_VALUE;
- }
-
- public void replace(String paramString, Long paramLong)
- {
- Pattern localPattern = Pattern.compile(paramString + "\\{\\d*?\\}");
- Matcher localMatcher = localPattern.matcher(this.format);
- int i = (int)(this.dif.longValue() / paramLong.longValue());
- int j = 1;
- while (localMatcher.find())
- {
- String str1 = localMatcher.group();
- str1 = str1.replaceAll(paramString + "\\{", "");
- str1 = str1.replaceAll("\\}", "");
- int k = Integer.parseInt(str1);
- String str2 = String.format("%0" + k + "d", new Object[] { Integer.valueOf(i) });
- if (j != 0)
- {
- j = 0;
- this.dif = Long.valueOf(this.dif.longValue() - i * paramLong.longValue());
- }
- this.format = this.format.replaceFirst(paramString + "\\{\\d*?\\}", str2);
- }
- }
-}
\ No newline at end of file
diff --git a/src/main/java/com/fr/function/FlagHtmlColor.java b/src/main/java/com/fr/function/FlagHtmlColor.java
deleted file mode 100644
index 76da40b..0000000
--- a/src/main/java/com/fr/function/FlagHtmlColor.java
+++ /dev/null
@@ -1,67 +0,0 @@
-package com.fr.function;
-import com.fr.script.AbstractFunction;
-import com.fr.stable.Primitive;
-public class FlagHtmlColor extends AbstractFunction {
- public Object run(Object[] args) {
- String txt="";
- String color="";
- String flag="";
- if(null==args||args.length==0){
- return Primitive.ERROR_NAME;
- }else if(args.length==1){
- txt=args[0].toString();
- color="red";
- flag="N";
- }else if(args.length==2){
- txt=args[0].toString();
- color=args[1].toString();
- flag="N";
- }else{
- txt=args[0].toString();
- color=args[1].toString();
- flag=args[2].toString();
- }
- String result=getHtmlStr(txt, color, flag);
- return result;
- }
- public String getHtmlStr(String txt,String color,String flag){
- String starthtml="";
- String endhtml="";
- StringBuffer sb=new StringBuffer();
- int len=txt.length();
- if("N".equalsIgnoreCase(flag)){//数字
- for(int i=0;i='0'&&c<='9'){
- String str=starthtml+c+endhtml;
- sb.append(str);
- }else{
- sb.append(c);
- }
- }
- }else if("C".equalsIgnoreCase(flag)){//字母
- for(int i=0;i='a'&&c<='z')||(c>='A'&&c<='Z')){
- String str=starthtml+c+endhtml;
- sb.append(str);
- }else{
- sb.append(c);
- }
- }
- } else if("Z".equalsIgnoreCase(flag)){//中文
- for(int i=0;i= 0x4E00 && c <= 0x9FA5){
- String str=starthtml+c+endhtml;
- sb.append(str);
- }else{
- sb.append(c);
- }
- }
- }else{
- return txt;
- }
- return sb.toString();
- }
-}
\ No newline at end of file
diff --git a/src/main/java/com/fr/function/IRR.java b/src/main/java/com/fr/function/IRR.java
deleted file mode 100644
index 46bdb96..0000000
--- a/src/main/java/com/fr/function/IRR.java
+++ /dev/null
@@ -1,152 +0,0 @@
-package com.fr.function;
-
-import java.math.BigDecimal;
-
-import com.fr.general.FArray;
-import com.fr.general.GeneralUtils;
-import com.fr.script.AbstractFunction;
-
-public class IRR extends AbstractFunction {
-
- private static final long serialVersionUID = 7634415917398642321L;
- private static final String ERROR_VALUE = "#NUM!";
-
-
- @Override
- public Object run(Object[] args) {
- try{
- if(1 == args.length){
- return run( transArr( (FArray) args[0] ) );
- }else if(2 == args.length){
- return run( transArr( (FArray) args[0] ), trans( args[1] ) );
- }
- }catch(Exception e){
- System.out.println(e);
- }
- return ERROR_VALUE;
- }
-
- /**
- * 将其他类型的数字转换为大数(保证精度)
- * @param ele
- * @return
- */
- private static BigDecimal trans(Object ele){
- try{
- String val = GeneralUtils.objectToString(ele);
- return new BigDecimal(val);
- }catch(Exception e){
-
- }
- return (BigDecimal) ele;
- }
-
- /**
- * 将数组转换为大数数组
- * @param in
- * @return
- */
- private static FArray transArr(FArray in){
- FArray rt = new FArray();
- for(int i=0;i cashflow){
- return run( cashflow, new BigDecimal(0.1d) );
- }
-
- private static BigDecimal run(FArray cashflow,BigDecimal guess){
- BigDecimal maxrate = initRateMax(cashflow,guess);
- BigDecimal minrate = initRateMin(cashflow,guess);
- for( int i=0; i cashflow,BigDecimal guess){
- for( int i=0; i cashflow,BigDecimal guess){
- for( int i=0; i cashflow,BigDecimal rate){
- BigDecimal npv = ZERO;
- BigDecimal rpowj = ONE;//(1+r)^0
- BigDecimal radd1 = rate.add(ONE);//1+r
- for( int j=0; j 0) {
- for (int i = 0; i < parasArray.length(); i++) {
- jo = parasArray.getJSONObject(i);
- parameterMap.put(jo.get("name"), jo.get("value"));
- }
- }
- // 执行报表
- rworkbook = workbook.execute(parameterMap, new WriteActor());
- // 保存下来
- wMap.put(cptname + parasArray.toString(), new TpObj(rworkbook,
- System.currentTimeMillis()));
- }
- // 获取报表结果中对应Cell的值
- ResultReport report = rworkbook.getResultReport(0);
- CellElement cellElement = ((WB) report).getCellElement(colnumber, rownumber);
- returnValue = cellElement.getValue().toString();
- if(cellElement.getValue() instanceof ResultFormula) {
- returnValue = ((ResultFormula)cellElement.getValue()).getResult().toString();
- }
- } catch (Exception e) {
- e.printStackTrace();
- }
- return returnValue;
- }
-
- class TpObj {
- private ResultWorkBook rworkbook = null;
- private long exeTime = System.currentTimeMillis();
-
- public TpObj(ResultWorkBook rworkbook, long exeTime) {
- this.setRworkbook(rworkbook);
- this.setExeTime(exeTime);
- }
-
- public ResultWorkBook getRworkbook() {
- return rworkbook;
- }
-
- public void setRworkbook(ResultWorkBook rworkbook) {
- this.rworkbook = rworkbook;
- }
-
- public long getExeTime() {
- return exeTime;
- }
-
- public void setExeTime(long exeTime) {
- this.exeTime = exeTime;
- }
- }
-
-}
\ No newline at end of file
diff --git a/src/main/java/com/fr/function/StringCat.java b/src/main/java/com/fr/function/StringCat.java
deleted file mode 100644
index 00cbf16..0000000
--- a/src/main/java/com/fr/function/StringCat.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package com.fr.function;
-
-import com.fr.script.AbstractFunction;
-
-public class StringCat extends AbstractFunction {
- public Object run(Object[] args) {
- String result = "";
- Object para;
- for (int i = 0; i < args.length; i++) {
- para = args[i];
- result += para.toString();
- }
- return result;
- }
-}
\ No newline at end of file
diff --git a/src/main/java/com/fr/function/StringImage.java b/src/main/java/com/fr/function/StringImage.java
deleted file mode 100644
index 1345f16..0000000
--- a/src/main/java/com/fr/function/StringImage.java
+++ /dev/null
@@ -1,59 +0,0 @@
-//图片在下文字在上
-package com.fr.function;
-
-import com.fr.base.GraphHelper;
-import com.fr.data.core.db.BinaryObject;
-import com.fr.log.FineLoggerFactory;
-import com.fr.script.AbstractFunction;
-import com.fr.stable.CoreGraphHelper;
-import javax.imageio.ImageIO;
-import java.awt.Graphics2D;
-import java.awt.Image;
-import java.awt.image.BufferedImage;
-import java.io.IOException;
-
-
-/**
- * 图片在下文字在上
- */
-public class StringImage extends AbstractFunction {
- @Override
- public Object run(Object[] args) {
- Image result = null;
- int p = 0;
- Object[] ob = new Object[2];
- for (int i = 0; (i < args.length && p <= 1); i++) {
- if (args[i] == null) {
- continue;
- }
- ob[p] = args[i];
- p++;
-
- }
-
- if (ob[1] instanceof BinaryObject) {
- BinaryObject binaryObject = (BinaryObject) ob[1];
- try {
- result = initStringImage((String) ob[0], ImageIO.read(binaryObject.getInputStream()));
- } catch (IOException e) {
- e.printStackTrace();
- }
- } else if (ob[1] instanceof Image) {
- result = initStringImage((String) ob[0], (Image) ob[1]);
- } else {
- FineLoggerFactory.getLogger().warn("Unsupported type of " + ob[1].getClass());
- }
-
- return result;
- }
-
- private Image initStringImage(String name, Image image) {
- BufferedImage splashBuffedImage = CoreGraphHelper.toBufferedImage(image);
- Graphics2D splashG2d = splashBuffedImage.createGraphics();
- double centerX = 25;
- double centerY = 25;
- GraphHelper.drawString(splashG2d, name, centerX, centerY);
- return splashBuffedImage;
- }
-
-}
\ No newline at end of file
diff --git a/src/main/java/com/fr/function/SubSection.java b/src/main/java/com/fr/function/SubSection.java
deleted file mode 100644
index a502c9c..0000000
--- a/src/main/java/com/fr/function/SubSection.java
+++ /dev/null
@@ -1,45 +0,0 @@
-//SubSection函数-Oracle查询参数个数限制
-package com.fr.function;
-
-import com.fr.general.FArray;
-import com.fr.script.AbstractFunction;
-
-public class SubSection extends AbstractFunction {
- public Object run(Object[] args) {
- // 获取第一个对象,即取得传入的参数
- Object para = args[0];
- String parastr = para.toString();
- // 由于是复选参数,因此要去掉前后的"("和")"
- if (parastr.startsWith("(") && parastr.endsWith(")")) {
- parastr = parastr.substring(1, parastr.length() - 1);
- }
- // 将字符串转为","分割的数组
- String test[] = parastr.split(",");
- int len = test.length;
- int loopnum = len / 500;
- if (len % 500 != 0) {
- loopnum += 1;
- }
- ;
- // 返回的值是数组,需要定义成我们内部的类型FArray
- FArray result = new FArray();
- String str = "";
- int k = 1;
- for (int i = 0; i < loopnum; i++) {
- for (int j = 500 * i; j < 500 * (i + 1) && j < len; j++) {
- if (k != 500 && j != (len - 1)) {
- str += test[j] + ",";
- } else {
- str += test[j];
- }
- k++;
- }
- // 每500个形成一组并在每组外部加上"("和")"
- str = "(" + str + ")";
- result.add(str);
- str = "";
- k = 1;
- }
- return result;
- }
-}
\ No newline at end of file
diff --git a/src/main/java/com/fr/function/Ubm.java b/src/main/java/com/fr/function/Ubm.java
deleted file mode 100644
index 12d7aaf..0000000
--- a/src/main/java/com/fr/function/Ubm.java
+++ /dev/null
@@ -1,25 +0,0 @@
-// 自定义函数Unicode编码转化为中文
-package com.fr.function;
-
-import com.fr.script.AbstractFunction;
-
-public class Ubm extends AbstractFunction {
- public Object run(Object[] args) {
- String str = args[0].toString();
- String st = "";
- StringBuffer buffer = new StringBuffer();
- while (str.length() > 0) {
- if (str.startsWith("%u")) {
- st = str.substring(2, 6);
- char ch = (char) Integer.parseInt(String.valueOf(st), 16);
- buffer.append(new Character(ch).toString());
- str = str.substring(6);
- } else {
- st = str.substring(0, str.indexOf("%u"));
- buffer.append(st);
- str = str.substring(st.length());
- }
- }
- return buffer.toString();
- }
-}
\ No newline at end of file
diff --git a/src/main/java/com/fr/function/Widget2Image.java b/src/main/java/com/fr/function/Widget2Image.java
deleted file mode 100644
index b809ce6..0000000
--- a/src/main/java/com/fr/function/Widget2Image.java
+++ /dev/null
@@ -1,105 +0,0 @@
-// 导出打印单选按钮及复选框
-package com.fr.function;
-
-import com.fr.base.AbstractPainter;
-import com.fr.base.BaseUtils;
-import com.fr.base.GraphHelper;
-import com.fr.base.Style;
-import com.fr.general.FArray;
-import com.fr.general.FRFont;
-import com.fr.script.AbstractFunction;
-import com.fr.stable.Primitive;
-import com.fr.stable.StringUtils;
-
-import java.awt.Color;
-import java.awt.FontMetrics;
-import java.awt.Graphics;
-import java.awt.Graphics2D;
-import java.awt.Image;
-
-public class Widget2Image extends AbstractFunction {
- public Object run(Object[] args) {
- if (args.length < 3)
- return Primitive.NULL;
- // 第一个参数:控件类型,不区分大小写
- String type = args[0].toString().toLowerCase();
- if (!("checkbox".equals(type) || "radiobutton".equals(type)))
- return Primitive.ERROR_VALUE;
- // 第二个参数:控件按钮个数
- int num = Integer.parseInt(args[1].toString());
- // 第三个参数:按钮组的值,哪些被选中
- String selection = args[2].toString();
- // 第四个参数:可选参数,按钮组对应的显示值数组
- FArray textArray = new FArray();
- if (args.length == 4 && args[3] instanceof FArray) {
- textArray = (FArray) args[3];
- }
- return new WidgetPaint(type, num, selection, textArray);
- }
-
- public static class WidgetPaint extends AbstractPainter {
- public static String CHECK_ON = "/com/fr/web/images/checkon.gif";
- public static String CHECK_OFF = "/com/fr/web/images/checkoff.gif";
- public static String RADIO_ON = "/com/fr/web/images/radioon.gif";
- public static String RADIO_OFF = "/com/fr/web/images/radiooff.gif";
- public static FRFont DEFUALT_FONT = FRFont.getInstance();
- public static FontMetrics FontMetrics = GraphHelper
- .getFontMetrics(DEFUALT_FONT);
- private String type;
- private int num;
- private String selection;
- private FArray textArray;
-
- {
- DEFUALT_FONT = DEFUALT_FONT.applyForeground(Color.BLACK);
- }
-
- public WidgetPaint(String type, int num, String selection,
- FArray textArray) {
- this.type = type;
- this.num = num;
- this.selection = selection;
- this.textArray = textArray;
- }
-
- private String resolveText(int i) {
- if (i < this.textArray.length()) {
- return this.textArray.elementAt(i).toString();
- }
- return StringUtils.EMPTY;
- }
-
- public void paint(Graphics g, int width, int height, int resolution,
- Style style) {
- String OFF = CHECK_OFF;
- String ON = CHECK_ON;
- if ("radiobutton".equals(type)) {
- OFF = RADIO_OFF;
- ON = RADIO_ON;
- }
- Image[] checkOFFON = {BaseUtils.readImage(OFF),
- BaseUtils.readImage(ON)};
- int[] imgWidths = {checkOFFON[0].getWidth(null),
- checkOFFON[1].getWidth(null)};
- int[] imgHeights = {checkOFFON[0].getHeight(null),
- checkOFFON[1].getHeight(null)};
- Graphics2D g2d = (Graphics2D) g;
- g2d.setFont(FRFont.getInstance());
- g2d.setPaint(Color.BLACK);
- int x = 2;
- int y = (height - imgHeights[0]) / 2;
- String select = selection;
- for (int i = 0; i < num; i++) {
- int bit = Integer.parseInt(select.substring(i, i + 1));
- g2d.drawImage(checkOFFON[bit], x, y, imgWidths[bit],
- imgHeights[bit], null);
- x += imgWidths[bit] + 2;
- String text = resolveText(i);
- g2d.setBackground(Color.BLACK);
- g2d.drawString(text, (float) x, (float) (y + FontMetrics
- .getAscent()));
- x += FontMetrics.stringWidth(text) + 2;
- }
- }
- }
-}
\ No newline at end of file
diff --git a/src/main/java/com/fr/test/gauthority.java b/src/main/java/com/fr/test/gauthority.java
deleted file mode 100644
index 19dd38d..0000000
--- a/src/main/java/com/fr/test/gauthority.java
+++ /dev/null
@@ -1,77 +0,0 @@
-package com.fr.test;
-
-import com.fr.base.FRContext;
-import com.fr.base.Formula;
-import com.fr.general.FArray;
-import com.fr.json.JSONObject;
-import com.fr.script.AbstractFunction;
-import com.fr.script.Calculator;
-import com.fr.stable.Primitive;
-
-public class gauthority extends AbstractFunction {
- public gauthority() {
- }
-
- public Object run(Object[] args) {
- int[] newArgs = new int[args.length];
-
- for (int i = 0; i < args.length; ++i) {
- if (!(args[i] instanceof Integer) || (Integer) args[i] <= 0) {
- return Primitive.ERROR_NAME;
- }
-
- newArgs[i] = (Integer) args[i];
- }
-
- FArray res = new FArray();
- Calculator ca = this.getCalculator();
- Formula f = new Formula("$fr_userposition");
-
- try {
- Object dp = ca.eval(f);
- if (dp instanceof FArray) {
- FArray fa = (FArray) dp;
-
- for (int i = 0; i < fa.length(); ++i) {
- JSONObject jo = (JSONObject) fa.elementAt(i);
- String dName = jo.getString("jobTitle");
- if (newArgs.length == 0) {
- res.add(dName);
- } else {
- String[] dNames = dName.split(",");
- res.add(this.buildRes(dNames, newArgs));
- }
- }
- }
- } catch (Exception var12) {
- FRContext.getLogger().error(var12.getMessage(), var12);
- }
-
- return res;
- }
-
- private String buildRes(String[] dNames, int[] args) {
- StringBuffer sb = new StringBuffer();
-
- for (int i = 0; i < args.length; ++i) {
- int index = args[i];
- if (dNames.length >= index) {
- sb.append(dNames[index - 1]).append(",");
- }
- }
-
- return sb.substring(0, sb.length() > 0 ? sb.length() - 1 : 0);
- }
-
- public Type getType() {
- return OTHER;
- }
-
- public String getCN() {
- return "GETUSERDEPARTMENTS():返回角色部门\n示例:\nGETUSERDEPARTMENTS():返回角色所有部门,若多个部门则数组\nGETUSERDEPARTMENTS(3,2):返回角色该部门的第三层和第二层名字,\n若多个部门则返回数组,若没有第三层则只显示第二层";
- }
-
- public String getEN() {
- return "";
- }
-}