From 694dddcb81150a7101d5a6575666c1a9b3a06b78 Mon Sep 17 00:00:00 2001 From: XiaXiang Date: Thu, 20 Dec 2018 10:19:26 +0800 Subject: [PATCH] init --- lib/report/.gitkeep | 0 .../plugin/tabledata/modify/DemoDSModify.java | 34 ++++++++++++ .../tabledata/modify/DemoDataModel.java | 54 +++++++++++++++++++ 3 files changed, 88 insertions(+) create mode 100755 lib/report/.gitkeep create mode 100755 src/main/java/com/fr/plugin/tabledata/modify/DemoDSModify.java create mode 100755 src/main/java/com/fr/plugin/tabledata/modify/DemoDataModel.java diff --git a/lib/report/.gitkeep b/lib/report/.gitkeep new file mode 100755 index 0000000..e69de29 diff --git a/src/main/java/com/fr/plugin/tabledata/modify/DemoDSModify.java b/src/main/java/com/fr/plugin/tabledata/modify/DemoDSModify.java new file mode 100755 index 0000000..0658bd6 --- /dev/null +++ b/src/main/java/com/fr/plugin/tabledata/modify/DemoDSModify.java @@ -0,0 +1,34 @@ +package com.fr.plugin.tabledata.modify; + +import com.fr.base.TableData; +import com.fr.general.data.DataModel; +import com.fr.plugin.transform.ExecuteFunctionRecord; +import com.fr.plugin.transform.FunctionRecorder; +import com.fr.script.Calculator; +import com.fr.stable.fun.impl.AbstractDSModifyProvider; + + +@FunctionRecorder +public class DemoDSModify extends AbstractDSModifyProvider { + + @Override + public boolean accept( TableData ds, Calculator cal, DataModel old ) { + try{ + //每个第三方系统的表单结构都不一样~,这个实例处理的是SYS0792这个系统的 + //SYS0792表单内容是以JSON形式存放在 “第三方表单内容”(第5个字段) 这个字段里面的 + //结构为 {user:'',qnumber:'',addr:''} + Object id = cal.eval("=$sysID"); + return "SYS0792".equals(id); + }catch(Exception e){ + + } + return false; + } + + @Override + @ExecuteFunctionRecord + public DataModel modify(TableData ds, Calculator cal, DataModel old ) { + return new DemoDataModel(old); + } + +} diff --git a/src/main/java/com/fr/plugin/tabledata/modify/DemoDataModel.java b/src/main/java/com/fr/plugin/tabledata/modify/DemoDataModel.java new file mode 100755 index 0000000..ab3e3fb --- /dev/null +++ b/src/main/java/com/fr/plugin/tabledata/modify/DemoDataModel.java @@ -0,0 +1,54 @@ +package com.fr.plugin.tabledata.modify; + + +import com.fr.data.AbstractDataModel; +import com.fr.general.data.DataModel; +import com.fr.general.data.TableDataException; +import com.fr.json.JSONObject; + +public class DemoDataModel extends AbstractDataModel { + + private DataModel old = null; + private static String[] exCols = new String[]{"user","qnumber","addr"}; + public DemoDataModel( DataModel old ){ + this.old = old; + } + + @Override + public int getColumnCount() throws TableDataException { + return old.getColumnCount()+2; + } + + @Override + public String getColumnName(int i) throws TableDataException { + if(i<5){ + return old.getColumnName(i); + } + if(i<8){ + return exCols[i-5]; + } + return old.getColumnName(i-2); + } + + @Override + public int getRowCount() throws TableDataException { + return old.getRowCount(); + } + + @Override + public Object getValueAt(int r, int c) throws TableDataException { + if( c<5 ){ + return old.getValueAt(r,c); + } + if( c<8 ){ + try{ + String val = (String) old.getValueAt(r,5); + JSONObject item = new JSONObject(val); + return item.opt(exCols[c-5]); + }catch(Exception e){ + return null; + } + } + return old.getValueAt(r,c-2); + } +}