📄 bssrefersobean.java
字号:
desc.setValue(fieldElement.getName(), sValue.trim());
}
fieldElement = element.nextField();
}
return hasValues;
}
private String getFieldValue(DataRow src, FieldElement element) {
String result = "";
String sFieldName = element.getSrcField();
String sTableName = element.getSrcTable();
switch (element.getSrcType()) {
case 0:
if (element.getDefaultValue() != null) {
result = element.getDefaultValue();
}
break;
case 1:
if (sFieldName != null)
result = this.flowBean.getRecordIDS(sFieldName);
if (ExtString.isEmpty(result))
result = element.getDefaultValue();
break;
case 2:
DataRow oRow = src;
if (!ExtString.isEmpty(sTableName)) {
// 表名不为空,将替换table元素中的行记录。
DataTable dt = this.flowBean.getRecordFrom(sTableName);
if (dt != null && dt.getRows().getCount() > 0) {
oRow = dt.getRow(0);
}
}
if (!ExtString.isEmpty(sFieldName) && oRow != null) {
result = oRow.getString(sFieldName);
}
if (ExtString.isEmpty(result))
result = element.getDefaultValue();
break;
case 3:
if (src != null) {
result = String.valueOf(src.getRowIndex() + 1);
} else {
result = "1";
}
break;
case 4:
sFieldName = element.getSrcField();
if (sFieldName != null) {
String tmp = this.flowBean.getRecordIDS(sFieldName);
CaseElement caseElement = element.getCase(tmp);
if (caseElement != null) {
result = getCaseValue(src, caseElement);
}
}
if (ExtString.isEmpty(result))
result = element.getDefaultValue();
break;
case 10:
result = ExtString.fromDate(new Date());
break;
case -1:
return null;
default:
throw new UnsupportedOperationException("系统不支持的取值方式:" + String.valueOf(element.getSrcType()));
}
if (result == null)
result = "";
return result;
}
private String getCaseValue(DataRow src, CaseElement element) {
String result = "";
String sFieldName = element.getSrcField();
String sTableName = element.getSrcTable();
switch (element.getSrcType()) {
case 0:
if (element.getDefaultValue() != null) {
result = element.getDefaultValue();
}
break;
case 1:
if (sFieldName != null)
result = this.flowBean.getRecordIDS(sFieldName);
if (ExtString.isEmpty(result))
result = element.getDefaultValue();
break;
case 2:
if (!ExtString.isEmpty(sFieldName)) {
if (!ExtString.isEmpty(sTableName)) {
DataTable dt = this.flowBean.getRecordFrom(sTableName);
if (dt != null && dt.getRows().getCount() > 0) {
result = dt.getRow(0).getString(sFieldName);
}
} else if (src != null) {
result = src.getString(sFieldName);
}
}
if (ExtString.isEmpty(result))
result = element.getDefaultValue();
break;
case 3:
if (src != null) {
result = String.valueOf(src.getRowIndex() + 1);
} else {
result = "1";
}
break;
case 10:
result = ExtString.fromDate(new Date());
break;
default:
throw new UnsupportedOperationException("系统不支持的取值方式:" + String.valueOf(element.getSrcType()));
}
if (result == null)
result = "";
return result;
}
public static DataSet getReferSoBean() {
if (struct == null) {
struct = new DataSet();
struct.readXml("com/doone/fj1w/fjmgr/order/referso.xml");
}
return (DataSet) struct.clone();
}
public static Map call(String sType, TF_BSSFlowRecord flowBean, String cityCode) throws IOException {
DataSet dtSet = getReferSoBean();
BssReferSoBean bean = new BssReferSoBean();
bean.config = BssReferSoConfig.getConfig(sType);
bean.flowBean = flowBean;
bean.fill(dtSet);
return call(dtSet, cityCode);
}
public static Map call(DataSet referSo, String cityCode) throws IOException {
Map result = null;
if (referSo != null) {
Hashtable ht = new Hashtable();
DataTable dts[] = referSo.getTables();
for (int i = 0; i < dts.length; i++) {
putParamTable(ht, dts[i]);
}
result = BssInter7.callWebReferSo(ht, cityCode);
}
return result;
}
private static void putParamTable(Hashtable ht, DataTable dt) {
if (dt != null && dt.getRows().getCount() > 0) {
String[] fldNames = new String[dt.getColumns().getCount()];
StringBuffer[] fldValues = new StringBuffer[fldNames.length];
boolean[] allowNulls = new boolean[fldNames.length];
boolean hasValue = false;
for (int i = 0; i < fldNames.length; i++) {
DataColumn dc = dt.getColumn(i);
if (!dc.getReadOnly()) {
if (dc.getAllowDBNull()) {
if (dt.getRows().getCount() == 1 && ExtString.isEmpty(dt.getRow(0).getString(i))) {
// 只有一条记录,字段属性允许空,同时值为空时不传该字段。
fldNames[i] = null;
} else if (dt.getRows().getCount() == 0) {
fldNames[i] = null;
} else {
fldNames[i] = dt.getColumn(i).getCaption();
}
} else {
fldNames[i] = dt.getColumn(i).getCaption();
}
} else
// 列属性为只读属性时可以不传该字段。
fldNames[i] = null;
allowNulls[i] = dc.getAllowDBNull();
fldValues[i] = new StringBuffer();
}
for (int rownum = 0; rownum < dt.getRows().getCount(); rownum++) {
DataRow dr = dt.getRow(rownum);
for (int i = 0; i < fldValues.length; i++) {
if (fldNames[i] != null) {
String value = dr.getString(fldNames[i]);
if (!value.equals(""))
hasValue = true;
if (rownum == 0) {
fldValues[i].append(value);
} else {
fldValues[i].append("【★】").append(value);
}
}
}
}
for (int i = 0; hasValue && i < fldNames.length; i++) {
if (fldNames[i] != null) {
if (fldValues[i].length() >= 3 && fldValues[i].substring(fldValues[i].length() - 3).equals("【★】"))
fldValues[i].append("【★】");
ht.put(fldNames[i], fldValues[i].toString());
System.out.println(fldNames[i] + "=" + fldValues[i].toString());
}
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -