⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bssrefersobean.java

📁 电信的网厅的整站代码
💻 JAVA
📖 第 1 页 / 共 3 页
字号:

				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 + -