|
|
|
|
|
package com.zky.para;
|
|
|
|
|
|
import java.sql.Connection;
|
|
|
import java.sql.ResultSet;
|
|
|
import java.sql.Statement;
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.HashMap;
|
|
|
|
|
|
import com.zky.pub.DbConn;
|
|
|
import com.zky.pub.HashFmlBuf;
|
|
|
|
|
|
/**
|
|
|
* @author dy
|
|
|
*
|
|
|
* 同步参数到各个参数实体Bean中
|
|
|
*
|
|
|
*/
|
|
|
public class SyncPara extends Thread {
|
|
|
|
|
|
private Connection con = null;
|
|
|
|
|
|
private ResultSet rs = null;
|
|
|
|
|
|
private Statement st = null;
|
|
|
|
|
|
private String sql = "select a.table_name,b.sortcolumn,b.sortorder,a.updatetime from td_s_tableinfo a,td_s_tableinfo_web b where upper(a.table_name) = upper(b.table_name)";
|
|
|
|
|
|
private String updateSql = null;
|
|
|
|
|
|
private String table_name;
|
|
|
|
|
|
private String class_name;
|
|
|
|
|
|
private HashMap hm = new HashMap();
|
|
|
|
|
|
private int SleepTime = 60000;
|
|
|
|
|
|
private HashMap table_hm = new HashMap();
|
|
|
|
|
|
/**
|
|
|
* 构造函数 启动线程
|
|
|
*
|
|
|
*/
|
|
|
public SyncPara() {
|
|
|
start();
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 同步方法
|
|
|
*/
|
|
|
private void sync() {
|
|
|
|
|
|
try {
|
|
|
System.gc();
|
|
|
con = (Connection) DbConn.getConn();
|
|
|
st = con.createStatement();
|
|
|
rs = st.executeQuery(sql);
|
|
|
|
|
|
String updatetime;
|
|
|
String sortColumn = "";
|
|
|
String sortOrder = "";
|
|
|
int i = 0;
|
|
|
while (rs.next()) {
|
|
|
table_name = rs.getString("TABLE_NAME").toUpperCase();
|
|
|
sortColumn = rs.getString("sortColumn");
|
|
|
sortOrder = rs.getString("sortOrder");
|
|
|
updatetime = (String) table_hm.get(table_name);
|
|
|
|
|
|
if (updatetime != null
|
|
|
&& updatetime.equals(rs.getString("updatetime"))) {
|
|
|
continue;
|
|
|
}
|
|
|
table_hm.put(table_name, rs.getString("updatetime"));
|
|
|
|
|
|
i++;
|
|
|
|
|
|
try {
|
|
|
ParaTable p = new ParaTable(table_name, sortColumn,
|
|
|
sortOrder);
|
|
|
p.init();
|
|
|
hm.remove(table_name);
|
|
|
hm.put(table_name, p);
|
|
|
} catch (Exception e) {
|
|
|
e.printStackTrace();
|
|
|
}
|
|
|
}
|
|
|
rs.close();
|
|
|
st.close();
|
|
|
} catch (Exception e) {
|
|
|
e.printStackTrace();
|
|
|
} finally {
|
|
|
try {
|
|
|
if (rs != null)
|
|
|
rs.close();
|
|
|
if (st != null)
|
|
|
st.close();
|
|
|
if (con != null) {
|
|
|
con.close();
|
|
|
}
|
|
|
} catch (Exception e) {
|
|
|
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 线程 休眠一段时间后检查参数是否有更新
|
|
|
*/
|
|
|
public void run() {
|
|
|
while (true) {
|
|
|
try {
|
|
|
sync();
|
|
|
Thread.sleep(SleepTime);
|
|
|
} catch (Exception e) {
|
|
|
e.printStackTrace();
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 根据表名取出所对应的参数表
|
|
|
* @param tableName
|
|
|
* @return
|
|
|
*/
|
|
|
public ParaTable getTable(String tableName) {
|
|
|
ParaTable table = (ParaTable) hm.get(tableName.toUpperCase());
|
|
|
try {
|
|
|
if (table == null)
|
|
|
throw new Exception("表名“" + tableName + "”出错或该表不属于参数表!");
|
|
|
} catch (Exception e) {
|
|
|
e.printStackTrace();
|
|
|
}
|
|
|
return table;
|
|
|
}
|
|
|
|
|
|
|
|
|
/**
|
|
|
* 根据表名、数据列、显示列、过滤列、过滤值来生成下拉框的内容
|
|
|
* @param TableName
|
|
|
* @param DataColumn
|
|
|
* @param DisplayColumn
|
|
|
* @param FilterColumn
|
|
|
* @param FilterValue
|
|
|
* @return
|
|
|
*/
|
|
|
|
|
|
public String getSelectParaFilter(String TableName, String DataColumn,
|
|
|
String DisplayColumn, String FilterColumn, String FilterValue) {
|
|
|
HashFmlBuf buf = null;
|
|
|
buf = getBuf(TableName);
|
|
|
|
|
|
//根据显示列和数据列来生成一个HTML的代码
|
|
|
StringBuffer rtn = new StringBuffer("");
|
|
|
String ls_datacolumn = null, ls_displaycolumn = null;
|
|
|
String ls_filtercolumn = "";
|
|
|
int li_count = 0;
|
|
|
|
|
|
li_count = Integer.parseInt(buf.fget("ROWCOUNT", 0));
|
|
|
|
|
|
if (li_count == 0) {
|
|
|
return null;
|
|
|
}
|
|
|
|
|
|
FilterColumn = FilterColumn.toUpperCase();
|
|
|
if (FilterColumn.startsWith("!")) {
|
|
|
FilterColumn = FilterColumn.replaceFirst("!", "");
|
|
|
for (int i = 0; i < li_count; i++) {
|
|
|
ls_filtercolumn = buf.fget(FilterColumn, i);
|
|
|
if (ls_filtercolumn.equals(FilterValue))
|
|
|
continue;
|
|
|
ls_datacolumn = buf.fget(DataColumn.toUpperCase(), i);
|
|
|
ls_displaycolumn = buf.fget(DisplayColumn.toUpperCase(), i);
|
|
|
|
|
|
rtn.append("\n<option value=\"").append(ls_datacolumn).append(
|
|
|
"\">").append(ls_displaycolumn).append("</option>");
|
|
|
}
|
|
|
} else {
|
|
|
for (int i = 0; i < li_count; i++) {
|
|
|
ls_filtercolumn = buf.fget(FilterColumn, i);
|
|
|
if (!ls_filtercolumn.equals(FilterValue))
|
|
|
continue;
|
|
|
ls_datacolumn = buf.fget(DataColumn.toUpperCase(), i);
|
|
|
ls_displaycolumn = buf.fget(DisplayColumn.toUpperCase(), i);
|
|
|
|
|
|
rtn.append("\n<option value=\"").append(ls_datacolumn).append(
|
|
|
"\">").append(ls_displaycolumn).append("</option>");
|
|
|
}
|
|
|
}
|
|
|
|
|
|
return rtn.toString();
|
|
|
}
|
|
|
|
|
|
|
|
|
//==================================================旧系统
|
|
|
/**
|
|
|
* @param TableName
|
|
|
* @param DataCol
|
|
|
* @param DisplayCol
|
|
|
* @return
|
|
|
*/
|
|
|
public ArrayList getParaList(String TableName, String DataCol,
|
|
|
String DisplayCol) {
|
|
|
return getFilterParaList(TableName, DataCol, DisplayCol, "", "");
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* @param TableName
|
|
|
* @param DataCol
|
|
|
* @param DisplayCol
|
|
|
* @param FilterCol
|
|
|
* @param FilterValue
|
|
|
* @return
|
|
|
*/
|
|
|
public ArrayList getFilterParaList(String TableName, String DataCol,
|
|
|
String DisplayCol, String FilterCol, String FilterValue) {
|
|
|
ParaTable table = getTable(TableName);
|
|
|
|
|
|
int iCount = table.getRowCount();
|
|
|
|
|
|
if (iCount == 0) {
|
|
|
return null;
|
|
|
}
|
|
|
|
|
|
ArrayList list = new ArrayList();
|
|
|
String sDataCol = "", sDisplayCol = "", sFilterValue = "";
|
|
|
if (FilterCol.equals("")) {
|
|
|
for (int i = 0; i < iCount; i++) {
|
|
|
sDataCol = table.getColValue(DataCol.toUpperCase(), i);
|
|
|
sDisplayCol = table.getColValue(DisplayCol.toUpperCase(), i);
|
|
|
list.add(new Row(sDataCol, sDisplayCol));
|
|
|
}
|
|
|
} else {
|
|
|
for (int i = 0; i < iCount; i++) {
|
|
|
sFilterValue = table.getColValue(FilterCol.toUpperCase(), i);
|
|
|
if (FilterValue.equals(sFilterValue)) {
|
|
|
sDataCol = table.getColValue(DataCol.toUpperCase(), i);
|
|
|
sDisplayCol = table
|
|
|
.getColValue(DisplayCol.toUpperCase(), i);
|
|
|
list.add(new Row(sDataCol, sDisplayCol));
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
return list;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* @param TableName
|
|
|
* @param DataCol
|
|
|
* @param DisplayCol
|
|
|
* @param DataValue
|
|
|
* @return
|
|
|
*/
|
|
|
public String getDesc(String TableName, String DataCol, String DisplayCol,
|
|
|
String DataValue) {
|
|
|
HashFmlBuf buf = getBuf(TableName);
|
|
|
String Display = "";
|
|
|
int pos = buf.find(DataCol.toUpperCase(), DataValue);
|
|
|
if (pos == -1)
|
|
|
return Display;
|
|
|
Display = buf.fget(DisplayCol.toUpperCase(), pos);
|
|
|
return Display;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 根据frameworkid过滤
|
|
|
* @param TableName
|
|
|
* @param DataCol
|
|
|
* @param DisplayCol
|
|
|
* @param DataValue
|
|
|
* @param Frameworkid
|
|
|
* @return
|
|
|
*/
|
|
|
public String getDesc(String TableName, String DataCol, String DisplayCol,
|
|
|
String DataValue, String Frameworkid) {
|
|
|
HashFmlBuf buf = getBuf(TableName);
|
|
|
int icount = Integer.parseInt(buf.fget("ROWCOUNT", 0));
|
|
|
String sframeworkid = "", svalue;
|
|
|
for (int i = 0; i < icount; i++) {
|
|
|
sframeworkid = buf.fget("FRAMEWORKID", i);
|
|
|
if (sframeworkid == null)
|
|
|
return getDesc(TableName, DataCol, DisplayCol, DataValue);
|
|
|
if (sframeworkid.equals(Frameworkid)) {
|
|
|
svalue = buf.fget(DataCol.toUpperCase(), i);
|
|
|
if (svalue == null)
|
|
|
return null;
|
|
|
if (svalue.equals(DataValue)) {
|
|
|
return buf.fget(DisplayCol.toUpperCase(), i);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
return null;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 通过传入的表名 获取该表对应的实例 ,然后返回该实例中的数据
|
|
|
* @param TableName
|
|
|
* @return 返回一个HashFmlBuf中存放这参数表的数据
|
|
|
*/
|
|
|
public HashFmlBuf getBuf(String TableName) {
|
|
|
return getTable(TableName).getRows();
|
|
|
}
|
|
|
/**
|
|
|
* 根据表名、数据列、显示列、过滤列、过滤值、check框的名称、文字在框的左右标志来生成check框
|
|
|
* @param TableName
|
|
|
* @param DataColumn
|
|
|
* @param DisplayColumn
|
|
|
* @param FilterColumn
|
|
|
* @param FilterValue
|
|
|
* @param CheckName
|
|
|
* @param flag
|
|
|
* @return
|
|
|
*/
|
|
|
|
|
|
public String getCheckParaFilter(String TableName, String DataColumn,
|
|
|
String DisplayColumn, String FilterColumn, String FilterValue,
|
|
|
String CheckName, String flag) {
|
|
|
HashFmlBuf buf = null;
|
|
|
buf = getBuf(TableName);
|
|
|
|
|
|
//根据显示列和数据列来生成一个HTML的代码
|
|
|
String ls_rtn = "", ls_datacolumn = null, ls_displaycolumn = null;
|
|
|
String ls_filtercolumn = "", ls_filtervalue = "";
|
|
|
int li_count = 0;
|
|
|
String ls_left_rtn = "", ls_right_rtn = "";
|
|
|
|
|
|
li_count = Integer.parseInt(buf.fget("ROWCOUNT", 0));
|
|
|
|
|
|
if (li_count == 0) {
|
|
|
return null;
|
|
|
}
|
|
|
|
|
|
for (int i = 0; i < li_count; i++) {
|
|
|
ls_filtercolumn = buf.fget(FilterColumn.toUpperCase(), i);
|
|
|
if (!ls_filtercolumn.equals(FilterValue))
|
|
|
continue;
|
|
|
ls_datacolumn = buf.fget(DataColumn.toUpperCase(), i);
|
|
|
ls_displaycolumn = buf.fget(DisplayColumn.toUpperCase(), i);
|
|
|
|
|
|
ls_left_rtn = ls_left_rtn + ls_displaycolumn
|
|
|
+ "<input type=\"checkbox\" name='" + CheckName + "' value= '"
|
|
|
+ ls_datacolumn + "'>";
|
|
|
ls_right_rtn = ls_right_rtn + "<input type=\"checkbox\" name='"
|
|
|
+ CheckName + "' value= '" + ls_datacolumn + "'>"
|
|
|
+ ls_displaycolumn;
|
|
|
|
|
|
}
|
|
|
if (flag == "0") {
|
|
|
return ls_left_rtn;
|
|
|
} else {
|
|
|
return ls_right_rtn;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
*
|
|
|
* @param TableName
|
|
|
* @param DataColumn
|
|
|
* @param DisplayColumn
|
|
|
* @return
|
|
|
*/
|
|
|
public String getSelectPara(String TableName, String DataColumn,
|
|
|
String DisplayColumn) {
|
|
|
HashFmlBuf buf = null;
|
|
|
buf = getBuf(TableName);
|
|
|
|
|
|
//根据显示列和数据列来生成一个HTML的代码
|
|
|
StringBuffer ls_rtn = new StringBuffer("");
|
|
|
String ls_datacolumn = null, ls_displaycolumn = null;
|
|
|
int li_count = 0;
|
|
|
|
|
|
li_count = Integer.parseInt(buf.fget("ROWCOUNT", 0));
|
|
|
|
|
|
if (li_count == 0) {
|
|
|
return null;
|
|
|
}
|
|
|
|
|
|
for (int i = 0; i < li_count; i++) {
|
|
|
ls_datacolumn = buf.fget(DataColumn.toUpperCase(), i);
|
|
|
ls_displaycolumn = buf.fget(DisplayColumn.toUpperCase(), i);
|
|
|
|
|
|
ls_rtn.append("\n<option value=\"").append(ls_datacolumn).append(
|
|
|
"\">").append(ls_displaycolumn).append("</option>");
|
|
|
}
|
|
|
return ls_rtn.toString();
|
|
|
}
|
|
|
|
|
|
public String getSelectPara(String TableName, String DataColumn,
|
|
|
String DisplayColumn, String Frameworkid) {
|
|
|
HashFmlBuf buf = null;
|
|
|
buf = getBuf(TableName);
|
|
|
|
|
|
//根据显示列和数据列来生成一个HTML的代码
|
|
|
StringBuffer ls_rtn = new StringBuffer("");
|
|
|
String ls_datacolumn = null, ls_displaycolumn = null, ls_frameworkid = null;
|
|
|
int li_count = 0;
|
|
|
|
|
|
li_count = Integer.parseInt(buf.fget("ROWCOUNT", 0));
|
|
|
|
|
|
if (li_count == 0) {
|
|
|
return null;
|
|
|
}
|
|
|
|
|
|
for (int i = 0; i < li_count; i++) {
|
|
|
ls_frameworkid = buf.fget("FRAMEWORKID", i);
|
|
|
if (ls_frameworkid == null)
|
|
|
return getSelectPara(TableName, DataColumn, DisplayColumn);
|
|
|
ls_datacolumn = buf.fget(DataColumn.toUpperCase(), i);
|
|
|
ls_displaycolumn = buf.fget(DisplayColumn.toUpperCase(), i);
|
|
|
|
|
|
ls_rtn.append("\n<option value=\"").append(ls_datacolumn).append(
|
|
|
"\">").append(ls_displaycolumn).append("</option>");
|
|
|
}
|
|
|
return ls_rtn.toString();
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
*根据表名、数据列、显示列、默认值来设置下拉列表框的数据
|
|
|
* @param TableName
|
|
|
* @param DataColumn
|
|
|
* @param DisplayColumn
|
|
|
* @param selvalue
|
|
|
* @return
|
|
|
*/
|
|
|
|
|
|
public String getdefaultSelectPara(String TableName, String DataColumn,
|
|
|
String DisplayColumn, String selvalue) {
|
|
|
HashFmlBuf buf = null;
|
|
|
buf = getBuf(TableName);
|
|
|
|
|
|
//根据显示列和数据列来生成一个HTML的代码
|
|
|
String ls_rtn = "", ls_datacolumn = null, ls_displaycolumn = null;
|
|
|
int li_count = 0;
|
|
|
|
|
|
li_count = Integer.parseInt(buf.fget("ROWCOUNT", 0));
|
|
|
|
|
|
if (li_count == 0) {
|
|
|
return null;
|
|
|
}
|
|
|
|
|
|
for (int i = 0; i < li_count; i++) {
|
|
|
ls_datacolumn = buf.fget(DataColumn.toUpperCase(), i);
|
|
|
ls_displaycolumn = buf.fget(DisplayColumn.toUpperCase(), i);
|
|
|
|
|
|
if (selvalue.equals(ls_datacolumn)) {
|
|
|
ls_rtn = ls_rtn + "<option value=\"" + ls_datacolumn
|
|
|
+ "\" selected>" + ls_displaycolumn + "</option>";
|
|
|
} else {
|
|
|
ls_rtn = ls_rtn + "<option value=\"" + ls_datacolumn + "\">"
|
|
|
+ ls_displaycolumn + "</option>";
|
|
|
}
|
|
|
}
|
|
|
return ls_rtn;
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
* 首先根据frameworkid过滤,再根据过滤列过滤
|
|
|
* @param TableName
|
|
|
* @param DataColumn
|
|
|
* @param DisplayColumn
|
|
|
* @param FilterColumn
|
|
|
* @param FilterValue
|
|
|
* @param Frameworkid
|
|
|
* @return
|
|
|
*/
|
|
|
public String getSelectParaFilter(String TableName, String DataColumn,
|
|
|
String DisplayColumn, String FilterColumn, String FilterValue,
|
|
|
String Frameworkid) {
|
|
|
HashFmlBuf buf = null;
|
|
|
buf = getBuf(TableName);
|
|
|
|
|
|
//根据显示列和数据列来生成一个HTML的代码
|
|
|
String ls_rtn = "", ls_datacolumn = null, ls_displaycolumn = null, ls_frameworkid = null;
|
|
|
String ls_filtercolumn = "", ls_filtervalue = "";
|
|
|
int li_count = 0;
|
|
|
|
|
|
li_count = Integer.parseInt(buf.fget("ROWCOUNT", 0));
|
|
|
|
|
|
if (li_count == 0) {
|
|
|
return null;
|
|
|
}
|
|
|
|
|
|
for (int i = 0; i < li_count; i++) {
|
|
|
ls_frameworkid = buf.fget("FRAMEWORKID", i);
|
|
|
if (ls_frameworkid == null)
|
|
|
return getSelectParaFilter(TableName, DataColumn,
|
|
|
DisplayColumn, FilterColumn, FilterValue);
|
|
|
if (!ls_frameworkid.equals(Frameworkid))
|
|
|
continue;
|
|
|
ls_filtercolumn = buf.fget(FilterColumn.toUpperCase(), i);
|
|
|
if (!ls_filtercolumn.equals(FilterValue))
|
|
|
continue;
|
|
|
ls_datacolumn = buf.fget(DataColumn.toUpperCase(), i);
|
|
|
ls_displaycolumn = buf.fget(DisplayColumn.toUpperCase(), i);
|
|
|
|
|
|
ls_rtn = ls_rtn + "<option value=\"" + ls_datacolumn + "\">"
|
|
|
+ ls_displaycolumn + "</option>";
|
|
|
}
|
|
|
return ls_rtn;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 首先根据frameworkid过滤,再根据过滤列过滤
|
|
|
* @param TableName
|
|
|
* @param DataColumn
|
|
|
* @param DisplayColumn
|
|
|
* @param FilterColumn
|
|
|
* @param FilterValue
|
|
|
* @param Frameworkid
|
|
|
* @param selvalue
|
|
|
* @return
|
|
|
*/
|
|
|
public String getSelectParaFilter(String TableName, String DataColumn,
|
|
|
String DisplayColumn, String FilterColumn, String FilterValue,
|
|
|
String Frameworkid, String selvalue) {
|
|
|
HashFmlBuf buf = null;
|
|
|
buf = getBuf(TableName);
|
|
|
|
|
|
//根据显示列和数据列来生成一个HTML的代码
|
|
|
String ls_rtn = "", ls_datacolumn = null, ls_displaycolumn = null, ls_frameworkid = null;
|
|
|
String ls_filtercolumn = "", ls_filtervalue = "";
|
|
|
int li_count = 0;
|
|
|
|
|
|
li_count = Integer.parseInt(buf.fget("ROWCOUNT", 0));
|
|
|
|
|
|
if (li_count == 0) {
|
|
|
return null;
|
|
|
}
|
|
|
|
|
|
for (int i = 0; i < li_count; i++) {
|
|
|
ls_frameworkid = buf.fget("FRAMEWORKID", i);
|
|
|
|
|
|
if (ls_frameworkid == null)
|
|
|
return getSelectParaFilter(TableName, DataColumn,
|
|
|
DisplayColumn, FilterColumn, FilterValue);
|
|
|
if (!ls_frameworkid.equals(Frameworkid))
|
|
|
continue;
|
|
|
ls_filtercolumn = buf.fget(FilterColumn.toUpperCase(), i);
|
|
|
if (!ls_filtercolumn.equals(FilterValue))
|
|
|
continue;
|
|
|
ls_datacolumn = buf.fget(DataColumn.toUpperCase(), i);
|
|
|
ls_displaycolumn = buf.fget(DisplayColumn.toUpperCase(), i);
|
|
|
|
|
|
if (selvalue.equals(ls_datacolumn)) {
|
|
|
ls_rtn = ls_rtn + "<option value=\"" + ls_datacolumn
|
|
|
+ "\" selected>" + ls_displaycolumn + "</option>";
|
|
|
} else {
|
|
|
ls_rtn = ls_rtn + "<option value=\"" + ls_datacolumn + "\">"
|
|
|
+ ls_displaycolumn + "</option>";
|
|
|
}
|
|
|
|
|
|
}
|
|
|
return ls_rtn;
|
|
|
}
|
|
|
/**
|
|
|
* 首先根据Data_code过滤,再根据过滤列过滤
|
|
|
* @param TableName
|
|
|
* @param DataColumn
|
|
|
* @param DisplayColumn
|
|
|
* @param FilterColumn
|
|
|
* @param FilterValue
|
|
|
* @param Data_code
|
|
|
* @param selvalue
|
|
|
* @return
|
|
|
*/
|
|
|
public String getSParaFilter(String TableName, String DataColumn,
|
|
|
String DisplayColumn, String FilterColumn, String FilterValue,
|
|
|
String Datacode, String selvalue) {
|
|
|
HashFmlBuf buf = null;
|
|
|
buf = getBuf(TableName);
|
|
|
|
|
|
//根据显示列和数据列来生成一个HTML的代码
|
|
|
String ls_rtn = "", ls_datacolumn = null, ls_displaycolumn = null, ls_datacode = null;
|
|
|
String ls_filtercolumn = "", ls_filtervalue = "";
|
|
|
int li_count = 0;
|
|
|
|
|
|
li_count = Integer.parseInt(buf.fget("ROWCOUNT", 0));
|
|
|
|
|
|
if (li_count == 0) {
|
|
|
return null;
|
|
|
}
|
|
|
for (int i = 0; i < li_count; i++) {
|
|
|
ls_datacode = buf.fget("TYPE_CODE", i);
|
|
|
|
|
|
if (ls_datacode == null)
|
|
|
return getSelectParaFilter(TableName, DataColumn,
|
|
|
DisplayColumn, FilterColumn, FilterValue);
|
|
|
if (ls_datacode.equals(Datacode))
|
|
|
continue;
|
|
|
ls_filtercolumn = buf.fget(FilterColumn.toUpperCase(), i);
|
|
|
|
|
|
if (!ls_filtercolumn.equals(FilterValue))
|
|
|
continue;
|
|
|
ls_datacolumn = buf.fget(DataColumn.toUpperCase(), i);
|
|
|
|
|
|
ls_displaycolumn = buf.fget(DisplayColumn.toUpperCase(), i);
|
|
|
|
|
|
if (selvalue.equals(ls_datacolumn)) {
|
|
|
ls_rtn = ls_rtn + "<option value=\"" + ls_datacolumn
|
|
|
+ "\" selected>" + ls_displaycolumn + "</option>";
|
|
|
} else {
|
|
|
ls_rtn = ls_rtn + "<option value=\"" + ls_datacolumn + "\">"
|
|
|
+ ls_displaycolumn + "</option>";
|
|
|
}
|
|
|
}
|
|
|
return ls_rtn;
|
|
|
}
|
|
|
/**
|
|
|
*
|
|
|
* @param TableName 表的名字
|
|
|
* @param DataColumn 数据的实际值
|
|
|
* @param DisplayColumn 显示值
|
|
|
* @param CheckName checkbox的名字
|
|
|
* @param flag 表示显示在左边还是在右边,0:左边,1:右边
|
|
|
* @return
|
|
|
*/
|
|
|
public String getCheckPara(String TableName, String DataColumn,
|
|
|
String DisplayColumn, String CheckName, String flag) {
|
|
|
HashFmlBuf buf = null;
|
|
|
buf = getBuf(TableName);
|
|
|
|
|
|
//根据显示列和数据列来生成一个HTML的代码
|
|
|
String ls_left_rtn = "", ls_right_rtn = "", ls_datacolumn = null, ls_displaycolumn = null;
|
|
|
int li_count = 0;
|
|
|
|
|
|
li_count = Integer.parseInt(buf.fget("ROWCOUNT", 0));
|
|
|
|
|
|
if (li_count == 0) {
|
|
|
return null;
|
|
|
}
|
|
|
|
|
|
for (int i = 0; i < li_count; i++) {
|
|
|
ls_datacolumn = buf.fget(DataColumn.toUpperCase(), i);
|
|
|
ls_displaycolumn = buf.fget(DisplayColumn.toUpperCase(), i);
|
|
|
ls_left_rtn = ls_left_rtn + ls_displaycolumn
|
|
|
+ "<input type=\"checkbox\" name=" + CheckName + " value= "
|
|
|
+ ls_datacolumn + "<br>";
|
|
|
ls_right_rtn = ls_right_rtn + "<input type=\"checkbox\" name="
|
|
|
+ CheckName + " value= " + ls_datacolumn + "<br>"
|
|
|
+ ls_displaycolumn;
|
|
|
}
|
|
|
|
|
|
if (flag == "0") {
|
|
|
return ls_left_rtn;
|
|
|
} else {
|
|
|
return ls_right_rtn;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 根据表名、上层列名、数据列、显示列来生成一个javascript的数组
|
|
|
* @param TableName
|
|
|
* @param UpColumn
|
|
|
* @param DataColumn
|
|
|
* @param DisplayColumn
|
|
|
* @return
|
|
|
*/
|
|
|
|
|
|
public String getParaArray(String TableName, String UpColumn,
|
|
|
String DataColumn, String DisplayColumn) {
|
|
|
|
|
|
HashFmlBuf buf = getBuf(TableName);
|
|
|
|
|
|
//根据显示列和数据列来生成一个HTML的代码
|
|
|
String ls_rtn = "", ls_datacolumn = null, ls_displaycolumn = null, ls_upcolumn = null, ls_temp = null;
|
|
|
int li_count = 0;
|
|
|
|
|
|
li_count = Integer.parseInt(buf.fget("ROWCOUNT", 0));
|
|
|
|
|
|
// if (li_count == 0) {
|
|
|
// return null;
|
|
|
// }
|
|
|
|
|
|
ls_temp = new StringBuffer("var ").append(TableName.toUpperCase())
|
|
|
.append("_DEP = new Array();").toString();
|
|
|
ls_rtn = new StringBuffer(ls_rtn).append(ls_temp).toString();
|
|
|
ls_temp = new StringBuffer("var ").append(TableName.toUpperCase())
|
|
|
.append("_VALUE = new Array();").toString();
|
|
|
ls_rtn = new StringBuffer(ls_rtn).append(ls_temp).toString();
|
|
|
ls_temp = new StringBuffer("var ").append(TableName.toUpperCase())
|
|
|
.append("_TEXT = new Array();").toString();
|
|
|
ls_rtn = new StringBuffer(ls_rtn).append(ls_temp).toString();
|
|
|
|
|
|
for (int i = 0; i < li_count; i++) {
|
|
|
ls_upcolumn = buf.fget(UpColumn.toUpperCase(), i);
|
|
|
ls_datacolumn = buf.fget(DataColumn.toUpperCase(), i);
|
|
|
ls_displaycolumn = buf.fget(DisplayColumn.toUpperCase(), i);
|
|
|
|
|
|
ls_rtn = new StringBuffer(ls_rtn).append(
|
|
|
TableName.toUpperCase() + "_DEP[" + Integer.toString(i)
|
|
|
+ "] = " + "'" + ls_upcolumn + "';").append(
|
|
|
TableName.toUpperCase() + "_VALUE[" + Integer.toString(i)
|
|
|
+ "] = " + "'" + ls_datacolumn + "';").append(
|
|
|
TableName.toUpperCase() + "_TEXT[" + Integer.toString(i)
|
|
|
+ "] = " + "'" + ls_displaycolumn + "';").toString();
|
|
|
}
|
|
|
return ls_rtn;
|
|
|
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 根据frameworkid过滤
|
|
|
* @param TableName
|
|
|
* @param UpColumn
|
|
|
* @param DataColumn
|
|
|
* @param DisplayColumn
|
|
|
* @param Frameworkid
|
|
|
* @return
|
|
|
*/
|
|
|
public String getParaArray(String TableName, String UpColumn,
|
|
|
String DataColumn, String DisplayColumn, String Frameworkid) {
|
|
|
|
|
|
HashFmlBuf buf = getBuf(TableName);
|
|
|
|
|
|
//根据显示列和数据列来生成一个HTML的代码
|
|
|
String ls_rtn = "", ls_datacolumn = null, ls_displaycolumn = null, ls_upcolumn = null, ls_temp = null, ls_frameworkid = null;
|
|
|
int li_count = 0;
|
|
|
|
|
|
li_count = Integer.parseInt(buf.fget("ROWCOUNT", 0));
|
|
|
|
|
|
if (li_count == 0) {
|
|
|
return null;
|
|
|
}
|
|
|
//表中没有frameworkid列
|
|
|
if (buf.fget("FRAMEWORKID", 0) == null)
|
|
|
return getParaArray(TableName, UpColumn, DataColumn, DisplayColumn);
|
|
|
|
|
|
ls_temp = new StringBuffer("var ").append(TableName.toUpperCase())
|
|
|
.append("_DEP = new Array();").toString();
|
|
|
ls_rtn = new StringBuffer(ls_rtn).append(ls_temp).toString();
|
|
|
ls_temp = new StringBuffer("var ").append(TableName.toUpperCase())
|
|
|
.append("_VALUE = new Array();").toString();
|
|
|
ls_rtn = new StringBuffer(ls_rtn).append(ls_temp).toString();
|
|
|
ls_temp = new StringBuffer("var ").append(TableName.toUpperCase())
|
|
|
.append("_TEXT = new Array();").toString();
|
|
|
ls_rtn = new StringBuffer(ls_rtn).append(ls_temp).toString();
|
|
|
|
|
|
for (int i = 0; i < li_count; i++) {
|
|
|
ls_frameworkid = buf.fget("FRAMEWORKID", i);
|
|
|
if (!ls_frameworkid.equals(Frameworkid))
|
|
|
continue;
|
|
|
ls_upcolumn = buf.fget(UpColumn.toUpperCase(), i);
|
|
|
ls_datacolumn = buf.fget(DataColumn.toUpperCase(), i);
|
|
|
ls_displaycolumn = buf.fget(DisplayColumn.toUpperCase(), i);
|
|
|
|
|
|
ls_rtn = new StringBuffer(ls_rtn).append(
|
|
|
TableName.toUpperCase() + "_DEP[" + Integer.toString(i)
|
|
|
+ "] = " + "'" + ls_upcolumn + "';").append(
|
|
|
TableName.toUpperCase() + "_VALUE[" + Integer.toString(i)
|
|
|
+ "] = " + "'" + ls_datacolumn + "';").append(
|
|
|
TableName.toUpperCase() + "_TEXT[" + Integer.toString(i)
|
|
|
+ "] = " + "'" + ls_displaycolumn + "';").toString();
|
|
|
}
|
|
|
return ls_rtn;
|
|
|
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 根据表名、上层列、数据列、显示列、过滤列、过滤值来生成javascript数组
|
|
|
* @param TableName
|
|
|
* @param UpColumn
|
|
|
* @param DataColumn
|
|
|
* @param DisplayColumn
|
|
|
* @param filtercolumn
|
|
|
* @param filtervalue
|
|
|
* @return
|
|
|
*/
|
|
|
|
|
|
public String getParaArrayFilter(String TableName, String UpColumn,
|
|
|
String DataColumn, String DisplayColumn, String filtercolumn,
|
|
|
String filtervalue) {
|
|
|
|
|
|
HashFmlBuf buf = getBuf(TableName);
|
|
|
|
|
|
//根据显示列和数据列来生成一个HTML的代码
|
|
|
String ls_rtn = "", ls_datacolumn = null, ls_displaycolumn = null, ls_upcolumn = null, ls_filter = null, ls_temp = null;
|
|
|
int li_count = 0;
|
|
|
|
|
|
li_count = Integer.parseInt(buf.fget("ROWCOUNT", 0));
|
|
|
|
|
|
if (li_count == 0) {
|
|
|
return null;
|
|
|
}
|
|
|
|
|
|
ls_temp = new StringBuffer("var ").append(TableName.toUpperCase())
|
|
|
.append("_DEP = new Array();").toString();
|
|
|
ls_rtn = new StringBuffer(ls_rtn).append(ls_temp).toString();
|
|
|
ls_temp = new StringBuffer("var ").append(TableName.toUpperCase())
|
|
|
.append("_VALUE = new Array();").toString();
|
|
|
ls_rtn = new StringBuffer(ls_rtn).append(ls_temp).toString();
|
|
|
ls_temp = new StringBuffer("var ").append(TableName.toUpperCase())
|
|
|
.append("_TEXT = new Array();").toString();
|
|
|
ls_rtn = new StringBuffer(ls_rtn).append(ls_temp).toString();
|
|
|
|
|
|
int j = 0;
|
|
|
|
|
|
for (int i = 0; i < li_count; i++) {
|
|
|
ls_upcolumn = buf.fget(UpColumn.toUpperCase(), i);
|
|
|
ls_datacolumn = buf.fget(DataColumn.toUpperCase(), i);
|
|
|
ls_displaycolumn = buf.fget(DisplayColumn.toUpperCase(), i);
|
|
|
ls_filter = buf.fget(filtercolumn.toUpperCase(), i);
|
|
|
|
|
|
if (ls_filter != null && ls_filter.equals("")) {
|
|
|
if (!ls_filter.equals(filtervalue))
|
|
|
continue;
|
|
|
}
|
|
|
|
|
|
ls_rtn = new StringBuffer(ls_rtn).append(
|
|
|
TableName.toUpperCase() + "_DEP[" + Integer.toString(j)
|
|
|
+ "] = " + "'" + ls_upcolumn + "';").append(
|
|
|
TableName.toUpperCase() + "_VALUE[" + Integer.toString(j)
|
|
|
+ "] = " + "'" + ls_datacolumn + "';").append(
|
|
|
TableName.toUpperCase() + "_TEXT[" + Integer.toString(j)
|
|
|
+ "] = " + "'" + ls_displaycolumn + "';").toString();
|
|
|
|
|
|
j++;
|
|
|
|
|
|
}
|
|
|
return ls_rtn;
|
|
|
|
|
|
}
|
|
|
|
|
|
public String getDefByID(String ID, String TableName, String FldID,
|
|
|
String FldDef) {
|
|
|
HashFmlBuf buf = getBuf(TableName);
|
|
|
int iCount = Integer.parseInt(buf.fget("ROWCOUNT", 0));
|
|
|
if (iCount == 0)
|
|
|
return "";
|
|
|
for (int i = 0; i < iCount; i++) {
|
|
|
if (buf.fget(FldID.toUpperCase(), i).equals(ID)) {
|
|
|
return buf.fget(FldDef.toUpperCase(), i);
|
|
|
}
|
|
|
}
|
|
|
return "";
|
|
|
}
|
|
|
|
|
|
}
|