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

📄 generateconfigxml.java

📁 替换jsp中的中文为sturts中的bundle
💻 JAVA
字号:
package com.pengjj.test;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

import com.pengjj.util.ExcelUtil;
import com.pengjj.util.FileUtil;

public class GenerateConfigXml {
	public static void main(String[] args) {
		String sourceFile="e:/exceltest.xls";
		String newFile = "c:/dbnew.xml";
		String deleteFile = "c:/errorcodesqldelete.txt";
		GenerateConfigXml generateConfigXml = new GenerateConfigXml();
		generateConfigXml.generateExcel(generateConfigXml,sourceFile,newFile);
	}
	public void generateExcel(GenerateConfigXml generateConfigXml,String sourceFile, String newFileName) {
		// datawindow的名称,如:D_cc_jcbg
		String sDataWindowName = "";
		// 内码,如:CC_JCBG_BGNM
		String sTableNm = "";
		// 表名:CC_JCBG
		String sTableName = "";
		//表名的中文名称
		String sTableNameShow = "";
		//input的类型:input、hidden、textarea
		String inputOrTextarea = "input";
		//占用的列数
		String colspan = "1";
		//数据库字段
		String sCode = "";
		//数据库字段对应的中文名称
		String sCodeName = "";
		//数据库字段的长度
		String sCodeLength = "";		

		// PENGJJ_TODO 判断是否隐藏字段:需要追加相关的类型
		String sHiddenType = "(NM)|(ZYX)|(\\w+BZ)|(XG)|(LRR)|(SC)";
		ExcelUtil excelUtil = new ExcelUtil();
		ArrayList arrayList = excelUtil.getExcel(sourceFile);
		HashMap hashMap = new HashMap();
		
		StringBuffer sXml = new StringBuffer(
				"<?xml version=\"1.0\" encoding=\"gb2312\" ?>\r\n");
		sXml.append("   <GenerationRule>\r\n");
		sXml.append("   <OrClassNamePath>ctais.business.common.data."
				+ sDataWindowName + "</OrClassNamePath>\r\n");
		sXml.append("    <MainTable>\r\n");
		sXml.append("      <Name>" + sTableName + "</Name>\r\n");
		sXml.append("       <Show>"+sTableNameShow+"</Show>\r\n");
		sXml.append("      <Key>" + sTableNm + "</Key>\r\n ");
		sXml.append("     <Fields>\r\n");
		
		//PENGJJ_TODO 根据excel表格读取对应的字段、字段名称、大小
		int iArrayList = arrayList.size();
		for (int i = 0; i < iArrayList; i++) {
			hashMap = (HashMap) arrayList.get(i);
			sCode = (String) hashMap.get("0");
			sCodeName = (String) hashMap.get("1");
			sCodeLength = (String) hashMap.get("3");
			//PENGJJ_TODO 得到字段的长度
			sXml.append("<Item>\r\n");
			// 数据库字段名称
			sXml.append("    <Name>");
			sXml.append(sCode);
			sXml.append("</Name>\r\n");
			// 界面上显示的名称
			sXml.append("    <Show>");
			sXml.append(sCodeName);
			sXml.append("</Show>\r\n");

			// TODO 如果字段为内码,hidden,如果长度大于32,为textarea
			inputOrTextarea = "input";
			colspan = "1";
			if (generateConfigXml.isHidden(sCode, sHiddenType)) {
				inputOrTextarea = "hidden";
			}
			// textarea域的情况比较复杂,目前暂且不考虑
			// else if(Integer.parseInt(strSql[2].trim())>32){
			// inputOrTextarea="textarea";
			// colspan = "3";
			// j--;
			// System.out.println("222---"+inputOrTextarea);
			// }
			sXml.append("    <DisplayType>" + inputOrTextarea
					+ "</DisplayType>\r\n");
			sXml.append("    <IsQuery>false</IsQuery>\r\n");
			// TODO 如果长度大于32,为2 colspan
			sXml.append("    <ColSpan>" + colspan + "</ColSpan>\r\n");
			sXml.append("    <IsFill>false</IsFill>\r\n");
			sXml.append("    <DataType>string</DataType>\r\n");
			sXml.append("    <MaxLength>");
			sXml.append(sCodeLength);
			sXml.append("</MaxLength>\r\n");
			sXml.append("    <ReadOnly>false</ReadOnly>\r\n");
			// if ((j + 1) % 2 == 0) {
			// sXml.append(" <Width>18%</Width>\r\n");
			// } else {
			// sXml.append(" <Width>34%</Width>\r\n");
			// }
			sXml.append("    <IsQueryLink>false</IsQueryLink>\r\n");
			sXml.append("    <IsGridColumn>false</IsGridColumn>\r\n");
			sXml.append("    <IsAuditQuery>false</IsAuditQuery>\r\n");
			sXml.append("    <IsAuditGridColumn>false</IsAuditGridColumn>\r\n");
			sXml.append("</Item>\r\n");
		}
		sXml.append("    </Fields>\r\n");
		sXml.append("  </MainTable>\r\n");
		sXml.append("</GenerationRule>\r\n");

		// FileUtil fileUtil = new FileUtil();
		// 写入文件
		FileUtil.writeFile(newFileName, sXml.toString());
	}
	
	/**
	 * 是否属于隐藏字段
	 * @param sCode 字段名称
	 * @param regex 属于隐藏字段的正则表达式
	 * @return 隐藏:true,
	 */
	public boolean isHidden(String sCode,String regex){
		boolean flag = true;
		Pattern p = Pattern.compile(regex);
        Matcher m = p.matcher(sCode);
        flag = m.find();
		return flag;
	}
}

⌨️ 快捷键说明

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