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

📄 reportconfigaction.java

📁 OBPM是一个开源
💻 JAVA
📖 第 1 页 / 共 4 页
字号:

		return map;
	}

	public Map getColumnAndDataType(DataPackage pack, Map columnInfo) { // 取得Column的数据类型且排序(用于用户自定义的报表)
		if (pack == null || pack.datas == null || pack.datas.size() == 0
				|| columnInfo == null)
			return null;

		Collection coll = pack.datas;
		Map map = new LinkedHashMap();

		Object[] columns = coll.toArray();
		Object temp = null;
		int k = 0;
		for (int i = 0; i < columns.length; i++) {
			k = i;
			TableColumn em = (TableColumn) columns[i];
			for (int j = i + 1; j < columns.length; j++) {
				TableColumn cm = (TableColumn) columns[j];
				if (em.getOrderno() < cm.getOrderno()) {
					em = cm;
					k = j;
				}
			}
			if (k != i) {
				temp = columns[i];
				columns[i] = columns[k];
				columns[k] = temp;
			}
		}
		for (int i = 0; i < columns.length; i++) {
			TableColumn em = (TableColumn) columns[i];
			if (columnInfo.containsKey(em.getName()) && !map.containsKey(em)) {
				map.put(em, columnInfo.get(em.getName()));
			}
		}

		return map;
	}

	public String creatCrossTable(DataPackage rows, DataPackage columns,
			ReportConfig vo) { // 创建交叉报表

		if (rows == null || rows.datas == null || rows.datas.size() == 0
				|| columns == null || columns.datas == null
				|| columns.datas.size() == 0)
			return "";

		StringBuffer sb = new StringBuffer();
		sb.append("<summary>");

		sb.append("<band height=\"60\"  isSplitAllowed=\"true\" >");
		sb.append("<crosstab>");
		sb
				.append("<reportElement x=\"0\" y=\"0\" width=\"750\" height=\"60\" key=\"crosstab\"/>");
		sb.append("<crosstabDataset><dataset ></dataset></crosstabDataset>");
		sb.append("<crosstabHeaderCell>");
		sb.append("<cellContents mode=\"Transparent\">");
		sb
				.append("<box topBorder=\"Thin\" topBorderColor=\"#000000\" leftBorder=\"Thin\" leftBorderColor=\"#000000\" rightBorder=\"Thin\" rightBorderColor=\"#000000\" bottomBorder=\"Thin\" bottomBorderColor=\"#000000\"/>");
		sb.append("</cellContents>");
		sb.append("</crosstabHeaderCell>");

		for (Iterator iter = rows.datas.iterator(); iter.hasNext();) {
			TableColumn em = (TableColumn) iter.next();
			sb.append("<rowGroup name=\"").append(em.getName()).append(
					"\" width=\"76\" totalPosition=\"End\">");// //
			sb.append("<bucket>");
			sb
					.append(
							"<bucketExpression class=\"java.lang.String\"><![CDATA[$F{")
					.append(em.getName()).append("}]]></bucketExpression>"); // //
			sb.append("</bucket>");
			sb.append("<crosstabRowHeader>");
			sb.append("<cellContents mode=\"Opaque\" style=\"CellStyle\">");
			sb
					.append("<box topBorder=\"1Point\" topBorderColor=\"#000000\" leftBorder=\"1Point\" leftBorderColor=\"#000000\" rightBorder=\"1Point\" rightBorderColor=\"#000000\" bottomBorder=\"1Point\" bottomBorderColor=\"#000000\"/>");
			sb
					.append("<textField isStretchWithOverflow=\"false\" isBlankWhenNull=\"false\" evaluationTime=\"Now\" hyperlinkType=\"None\"  hyperlinkTarget=\"Self\" >");
			sb
					.append("<reportElement style=\"Arial_Bold\" x=\"7\" y=\"3\" width=\"67\" height=\"15\" key=\"textField\"/>");
			sb
					.append("<box topBorder=\"None\" topBorderColor=\"#000000\" leftBorder=\"None\" leftBorderColor=\"#000000\" rightBorder=\"None\" rightBorderColor=\"#000000\" bottomBorder=\"None\" bottomBorderColor=\"#000000\"/>");
			sb.append("<textElement verticalAlignment=\"Middle\">");
			sb.append("<font size=\"12\"/>");
			sb.append("</textElement>");
			sb
					.append(
							"<textFieldExpression   class=\"java.lang.String\"><![CDATA[$V{")
					.append(em.getName()).append("}]]></textFieldExpression>"); // //
			sb.append("</textField>");
			sb.append("</cellContents>");
			sb.append("</crosstabRowHeader>");
			sb.append("<crosstabTotalRowHeader>");
			sb.append("<cellContents mode=\"Transparent\">");
			sb
					.append("<box topBorder=\"1Point\" topBorderColor=\"#000000\" leftBorder=\"1Point\" leftBorderColor=\"#000000\" rightBorder=\"1Point\" rightBorderColor=\"#000000\" bottomBorder=\"1Point\" bottomBorderColor=\"#000000\"/>");
			sb.append("<staticText>");
			sb
					.append("<reportElement style=\"Arial_Bold\" x=\"6\" y=\"3\" width=\"64\" height=\"15\" key=\"staticText\"/>");
			sb
					.append("<box topBorder=\"None\" topBorderColor=\"#000000\" leftBorder=\"None\" leftBorderColor=\"#000000\" rightBorder=\"None\" rightBorderColor=\"#000000\" bottomBorder=\"None\" bottomBorderColor=\"#000000\"/>");
			sb.append("<textElement verticalAlignment=\"Middle\">");
			sb.append("<font size=\"12\"/>");
			sb.append("</textElement>");
			sb.append("<text><![CDATA[TOTAL]]></text>"); // /
			sb.append("</staticText>");
			sb.append("</cellContents>");
			sb.append("</crosstabTotalRowHeader>");
			sb.append("</rowGroup>");
		}

		// //////////////////////////////////////////////////////////////////////////

		for (Iterator iter = columns.datas.iterator(); iter.hasNext();) {
			TableColumn em = (TableColumn) iter.next();

			sb.append("<columnGroup name=\"").append(em.getName()).append(
					"\" height=\"30\" totalPosition=\"End\">"); // ///
			sb.append("<bucket order=\"Descending\">");
			sb
					.append(
							"<bucketExpression class=\"java.lang.String\"><![CDATA[$F{")
					.append(em.getName()).append("}]]></bucketExpression>"); //
			sb.append("</bucket>");
			sb.append("<crosstabColumnHeader>");
			sb.append("<cellContents mode=\"Transparent\">");
			sb
					.append("<box topBorder=\"Thin\" topBorderColor=\"#000000\" leftBorder=\"Thin\" leftBorderColor=\"#000000\" rightBorder=\"Thin\" rightBorderColor=\"#000000\" bottomBorder=\"Thin\" bottomBorderColor=\"#000000\"/>");
			sb
					.append("<textField isStretchWithOverflow=\"false\" isBlankWhenNull=\"false\" evaluationTime=\"Now\" hyperlinkType=\"None\"  hyperlinkTarget=\"Self\" >");
			sb
					.append("<reportElement style=\"Arial_Normal\" x=\"2\" y=\"8\" width=\"60\" height=\"15\" key=\"textField-1\"/>");
			sb
					.append("<box topBorder=\"None\" topBorderColor=\"#000000\" leftBorder=\"None\" leftBorderColor=\"#000000\" rightBorder=\"None\" rightBorderColor=\"#000000\" bottomBorder=\"None\" bottomBorderColor=\"#000000\"/>");
			sb
					.append("<textElement textAlignment=\"Center\"><font size=\"12\"/></textElement>");
			sb
					.append(
							"<textFieldExpression   class=\"java.lang.String\"><![CDATA[$V{")
					.append(em.getName()).append("}]]></textFieldExpression>");
			sb.append("</textField>");
			sb.append("</cellContents>");
			sb.append("</crosstabColumnHeader>");
			sb.append("<crosstabTotalColumnHeader>");
			sb.append("<cellContents mode=\"Transparent\">");
			sb
					.append("<box topBorder=\"Thin\" topBorderColor=\"#000000\" leftBorder=\"Thin\" leftBorderColor=\"#000000\" rightBorder=\"Thin\" rightBorderColor=\"#000000\" bottomBorder=\"Thin\" bottomBorderColor=\"#000000\"/>");
			sb.append("<staticText>");
			sb
					.append("<reportElement style=\"Arial_Normal\" x=\"4\" y=\"8\" width=\"60\" height=\"15\" key=\"staticText-1\"/>");
			sb
					.append("<box topBorder=\"None\" topBorderColor=\"#000000\" leftBorder=\"None\" leftBorderColor=\"#000000\" rightBorder=\"None\" rightBorderColor=\"#000000\" bottomBorder=\"None\" bottomBorderColor=\"#000000\"/>");
			sb
					.append("<textElement textAlignment=\"Center\"><font size=\"12\"/></textElement>");
			sb.append("<text><![CDATA[TOTAL]]></text>");
			sb.append("</staticText>");
			sb.append("</cellContents>");
			sb.append("</crosstabTotalColumnHeader>");
			sb.append("</columnGroup>");
		}

		sb
				.append(
						"<measure name=\"amount\" class=\"java.lang.Double\" calculation=\"")
				.append(vo.getCrossTable_CalculateType()).append("\">"); // /
		sb.append("<measureExpression><![CDATA[$F{").append(
				vo.getCrossTable_CalculateField()).append("}!=null?$F{")
				.append(vo.getCrossTable_CalculateField()).append(
						"}:Double.valueOf(0.0)]]></measureExpression>"); // /
		sb.append("</measure>");
		sb.append("<crosstabCell width=\"78\" height=\"21\">");
		sb.append("<cellContents mode=\"Opaque\" style=\"CellStyle\">");
		sb
				.append("<box topBorder=\"Thin\" topBorderColor=\"#000000\" leftBorder=\"Thin\" leftBorderColor=\"#000000\" rightBorder=\"Thin\" rightBorderColor=\"#000000\" bottomBorder=\"Thin\" bottomBorderColor=\"#000000\"/>");
		sb
				.append("<textField isStretchWithOverflow=\"false\" isBlankWhenNull=\"false\" evaluationTime=\"Now\" hyperlinkType=\"None\"  hyperlinkTarget=\"Self\" >");
		sb
				.append("<reportElement style=\"Arial_Normal\" x=\"3\" y=\"3\" width=\"60\" height=\"15\" key=\"textField-1\"/>");
		sb
				.append("<box topBorder=\"None\" topBorderColor=\"#000000\" leftBorder=\"None\" leftBorderColor=\"#000000\" rightBorder=\"None\" rightBorderColor=\"#000000\" bottomBorder=\"None\" bottomBorderColor=\"#000000\"/>");
		sb.append("<textElement><font size=\"12\"/></textElement>");

		sb
				.append("<textFieldExpression   class=\"java.lang.Double\"><![CDATA[$V{amount}]]></textFieldExpression>"); // /
		sb.append("</textField>");
		sb.append("</cellContents>");
		sb.append("</crosstabCell>");

		sb.append("<whenNoDataCell>");
		sb.append("<cellContents mode=\"Transparent\">");
		sb
				.append("<box topBorder=\"None\" topBorderColor=\"#000000\" leftBorder=\"None\" leftBorderColor=\"#000000\" rightBorder=\"Thin\" rightBorderColor=\"#000000\" bottomBorder=\"Thin\" bottomBorderColor=\"#000000\"/>");
		sb.append("</cellContents>");
		sb.append("</whenNoDataCell>");
		sb.append("</crosstab>");
		sb.append("</band>");
		sb.append("</summary>");
		return sb.toString();
	}

	public String get_query() {
		ReportConfig rc = (ReportConfig) getContent();
		return (rc != null && rc.getQuery() != null) ? rc.getQuery().getId()
				: null;
	}

	public void set_query(String _query) {
		this._query = _query;
	}

	public String get_reportType() {
		ReportConfig rc = ((ReportConfig) this.getContent());
		if (rc != null && rc.getReportType() != null) {
			_reportType = rc.getReportType();
		}
		return _reportType;
	}

	public void set_reportType(String reportType) {
		this._reportType = reportType;
	}

	public String get_creatReportType() {
		return _creatReportType;
	}

	public void set_creatReportType(String reportType) {
		_creatReportType = reportType;
	}

	public String get_module() {
		ReportConfig vo = (ReportConfig) getContent();
		return vo.getForm_module() != null ? vo.getForm_module().getId() : null;
	}

	public String get_path() {
		return _path;
	}

	public void set_path(String _path) {
		this._path = _path;
	}

	public void set_module(String _module) {
		this._module = _module;
	}

	public String get_searchForm() {
		ReportConfig vo = (ReportConfig) getContent();
		return vo.getSearchForm() != null ? vo.getSearchForm().getId() : null;
	}

	public void set_searchForm(String form) {
		_searchForm = form;
	}

	public String get_dts() {
		ReportConfig vo = (ReportConfig) getContent();
		return (vo != null && vo.getDataSource() != null) ? vo.getDataSource()
				.getId() : null;
	}

	public void set_dts(String _dts) {
		this._dts = _dts;
	}

	public Collection get_mappingconfigs() {
		ReportConfig vo = (ReportConfig) getContent();
		return vo != null ? vo.getMappingconfigs() : null;
	}

	public void set_mappingconfigs(Collection _mappingconfigs) throws Exception {

		Collection maps = new HashSet();
		MappingConfigProcess dp = (MappingConfigProcess) ProcessFactory
				.createProcess((MappingConfigProcess.class));
		for (Iterator iter = _mappingconfigs.iterator(); iter.hasNext();) {
			String id = (String) iter.next();
			MappingConfig mc = (MappingConfig) dp.doView(id);
			maps.add(mc);
		}
		((ReportConfig) getContent()).setMappingconfigs(maps);
	}

	public Map getCreatReportParams(Map params, ParamsTable paramstable,
			JRParameter[] p) {// paramstable里参数类型转化成符合JRParameter的类型,返回创建报表所需的参数Map(用于直接上传Jrxml产生的报表)
		Map creatReportParams = new HashMap();

		if (p == null || params == null || params.size() == 0 || p.length == 0)
			return creatReportParams;

		for (int i = 0; i < p.length; i++) {
			if (params.containsKey(p[i].getName())) {
				Class clazz = p[i].getValueClass();
				if (paramstable.getParameter(p[i].getName()) != null
						&& paramstable.getParameter(p[i].getName()).equals("")) {
					continue;
				}
				if (clazz.equals(Double.class)) {
					Double value = paramstable.getParameterAsDouble(p[i]
							.getName());
					creatReportParams.put(p[i].getName(), value);
				} else if (clazz.equals(Integer.class)) {
					Integer value = Integer.valueOf(paramstable
							.getParameterAsString(p[i].getName()));
					creatReportParams.put(p[i].getName(), value);
				} else if (clazz.equals(String.class)) {
					String value = paramstable.getParameterAsString(p[i]
							.getName());
					creatReportParams.put(p[i].getName(), value);
				} else if (clazz.equals(java.util.Date.class)) {
					java.util.Date value = paramstable.getParameterAsDate(p[i]
							.getName());
					creatReportParams.put(p[i].getName(), value);
				} else if (clazz.equals(Timestamp.class)) {
					java.util.Date date = paramstable.getParameterAsDate(p[i]
							.getName());
					Timestamp value = new Timestamp(date.getTime());
					creatReportParams.put(p[i].getName(), value);
				} else if (clazz.equals(java.sql.Date.class)) {
					java.util.Date date = paramstable.getParameterAsDate(p[i]
							.getName());
					java.sql.Date value = new java.sql.Date(date.getTime());
					creatReportParams.put(p[i].getName(), value);
				}
			}
		}
		return creatReportParams;
	}

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -