/// <summary> /// 生成列表页面 /// </summary> /// <param name="generateInfo">生成文件信息</param> /// <param name="gridViewMain">Grid信息</param> public static void GenerateListWebFormFile(GenerateInfo generateInfo, DataGridView gridViewMain) { List<PageControl> listControls = getPageControlList(gridViewMain, EnumFilterType.列表页面); List<PageControl> gridColumns = getGridColumnsList(gridViewMain); string fileName = generateInfo.TableName.Substring(generateInfo.TableName.LastIndexOf("_", StringComparison.Ordinal) + 1) + "List"; #region 生成.aspx页面 string filePath = string.Format("{0}\\{1}.aspx", generateInfo.SavePath, fileName); if (File.Exists(filePath)) { File.Delete(filePath); } using (StreamWriter writer = File.CreateText(filePath)) { writer.WriteLine(string.Format("<%@ Page Language=\"C#\" AutoEventWireup=\"true\" CodeBehind=\"{0}.aspx.cs\" Inherits=\"Founder.FIS.CMD.Website.Views{1}{0}\" %>", fileName, generateInfo.Module == "" ? "" : generateInfo.Module + ".")); writer.WriteLine("<!DOCTYPE html>"); writer.WriteLine("<html xmlns=\"http://www.w3.org/1999/xhtml\">"); writer.WriteLine("<head runat=\"server\">"); writer.WriteLine("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\"/>"); writer.WriteLine(string.Format(" <title>{0}</title>", generateInfo.TableDesc + "列表")); writer.WriteLine("</head>"); writer.WriteLine("<body>"); writer.WriteLine(" <form id=\"form1\" runat=\"server\">"); writer.WriteLine(" <div id=\"flt\" class=\"flttoolbar\">"); writer.WriteLine(" <Founder:FIButton ID=\"btnQuery\" runat=\"server\" Action=\"查询\" OnClick=\"btnQuery_Click\" />"); if (generateInfo.IsCanExport) { writer.WriteLine(" <Founder:FIButton ID=\"btnExport\" runat=\"server\" Action=\"导出\" OnClick=\"btnExport_Click\"/>"); } writer.WriteLine(" </div>"); writer.WriteLine(" <div class=\"searchtoolbar\">"); writer.WriteLine(" <table >"); int colCount = generateInfo.ListColumnNumber; int rowCount = listControls.Count % colCount == 0 ? listControls.Count / colCount : listControls.Count / colCount + 1; int k = 0; #region 生成查询条件区 for (int i = 0; i < rowCount; i++) { if (k != listControls.Count) { writer.WriteLine(" <tr>"); for (int j = 0; j < colCount; j++) { if (k != listControls.Count) { writer.WriteLine(" <th>"); writer.WriteLine(string.Format(" <Founder:FILabel ID=\"lbl{0}\" runat=\"server\" Text=\"{1}\" />", listControls[k].ControlName, listControls[k].ControlDesc)); writer.WriteLine(" </th>"); string validateHtml = string.Empty; if (listControls[k].ControlValidate == EnumValidateType.必填) { validateHtml = "Required=\"true\""; } else if (listControls[k].ControlValidate == EnumValidateType.必填数字) { validateHtml = "Required=\"true\" Type=\"Number\""; } else if (listControls[k].ControlValidate == EnumValidateType.必填邮箱) { validateHtml = "Required=\"true\" Type=\"Email\""; } writer.WriteLine(" <td>"); writer.WriteLine(string.Format(" <Founder:{1} ID=\"{0}\" runat=\"server\" {2} />", listControls[k].ControlID, listControls[k].ControlType.ToString(), validateHtml)); writer.WriteLine(" </td>"); k++; } } writer.WriteLine(" </tr>"); } } writer.WriteLine(" </table>"); writer.WriteLine(" </div>"); #endregion #region 生成Grid writer.WriteLine(" <div id=\"divList\" >"); writer.WriteLine(string.Format(" <Founder:FIGridView DataKeyNames=\"Id\" ID=\"gv{0}\" runat=\"server\" AutoGenerateColumns=\"False\" ", fileName)); writer.WriteLine(string.Format(" AllowSorting=\"True\" AllowPaging=\"True\" OnPageIndexChanging=\"gv{0}_PageIndexChanging\" OnSorting=\"gv{0}_Sorting\">", fileName)); writer.WriteLine(" <Columns>"); writer.WriteLine(" <Founder:FISerialNumberField />"); foreach (PageControl column in gridColumns) { writer.Write(string.Format(" <asp:TemplateField HeaderText=\"{0}\" ", column.ControlDesc)); if (column.Sort) { writer.Write(string.Format("SortExpression=\"{0}\"", column.ControlName)); } writer.WriteLine(">"); writer.Write(" <ItemStyle VerticalAlign=\"Middle\" "); switch (column.ColumnType) { case "Int64": case "Int32": case "Decimal": writer.WriteLine("HorizontalAlign=\"Right\"/>"); writer.Write(" <ItemTemplate>"); writer.Write(string.Format("<%#Eval (\"{0}\") %>", column.ControlName)); break; case "DateTime": writer.WriteLine("HorizontalAlign=\"Center\"/>"); writer.Write(" <ItemTemplate>"); writer.Write("<%#Eval (\"" + column.ControlName + "\",\"{0:yyyy-MM-dd}\") %>"); break; default: writer.WriteLine("HorizontalAlign=\"Left\"/>"); writer.Write(" <ItemTemplate>"); writer.Write(string.Format("<%#Eval (\"{0}\") %>", column.ControlName)); break; } writer.WriteLine("</ItemTemplate>"); writer.WriteLine(" </asp:TemplateField>"); } writer.WriteLine(" </Columns>"); writer.WriteLine(" </Founder:FIGridView>"); writer.WriteLine(" </div>"); writer.WriteLine(" </form>"); writer.WriteLine("</body>"); writer.WriteLine("</html>"); #endregion } #endregion #region 生成View.cs文件 //生成View.cs文件 filePath = string.Format("{0}\\I{1}View.cs", generateInfo.SavePath, fileName); if (File.Exists(filePath)) { File.Delete(filePath); } using (StreamWriter writer = File.CreateText(filePath)) { writer.WriteLine(@"/*----------------------------------------------------------------"); writer.WriteLine("// Copyright (C) 2014方正国际软件有限公司"); writer.WriteLine("// 版权所有。"); writer.WriteLine(string.Format("// 文 件 名:I{0}View.cs", fileName)); writer.WriteLine("// 文件功能描述:"); writer.WriteLine("//"); writer.WriteLine("//"); writer.WriteLine("// 创 建 人:" + System.Environment.UserName); writer.WriteLine("// 创建日期:" + DateTime.Now.ToLongDateString() + " " + DateTime.Now.ToLongTimeString()); writer.WriteLine("//"); writer.WriteLine("// 修 改 人:"); writer.WriteLine("// 修改描述:"); writer.WriteLine("//"); writer.WriteLine("// 修改标识:"); writer.WriteLine("//----------------------------------------------------------------*/"); writer.WriteLine("using System;"); writer.WriteLine("using Founder.FIS.CMD.Base;"); writer.WriteLine(); writer.WriteLine("namespace Founder.FIS.CMD.IView"); writer.WriteLine("{"); writer.WriteLine(string.Format(" public interface I{0}View : ICMDViewBase", fileName)); writer.WriteLine(" {"); writer.WriteLine(" #region 属性"); writer.WriteLine(); foreach (PageControl pageControl in listControls) { //string type = FormHelper.GetCSharpTypeByDBType(pageControl.ColumnType); writer.WriteLine(" ///<summary>"); writer.WriteLine(string.Format(" ///{0}", pageControl.ControlDesc)); writer.WriteLine(" ///</summary>"); writer.WriteLine(" " + pageControl.ColumnType + (FormHelper.IsNullableType(pageControl.ColumnType) ? "?" : "") + " " + pageControl.ControlName + "{ get; set; }"); writer.WriteLine(); } writer.WriteLine(" #endregion"); writer.WriteLine(" }"); writer.WriteLine("}"); } #endregion #region 生成.cs页面 string strDefaultSortExpression = string.Empty; filePath = string.Format("{0}\\{1}.aspx.cs", generateInfo.SavePath, fileName); if (File.Exists(filePath)) { File.Delete(filePath); } using (StreamWriter writer = File.CreateText(filePath)) { writer.WriteLine(@"/*----------------------------------------------------------------"); writer.WriteLine("// Copyright (C) 2014方正国际软件有限公司"); writer.WriteLine("// 版权所有。"); writer.WriteLine(string.Format("// 文 件 名:{0}.aspx.cs", fileName)); writer.WriteLine("// 文件功能描述:"); writer.WriteLine("//"); writer.WriteLine("//"); writer.WriteLine("// 创 建 人:" + System.Environment.UserName); writer.WriteLine("// 创建日期:" + DateTime.Now.ToLongDateString() + " " + DateTime.Now.ToLongTimeString()); writer.WriteLine("//"); writer.WriteLine("// 修 改 人:"); writer.WriteLine("// 修改描述:"); writer.WriteLine("//"); writer.WriteLine("// 修改标识:"); writer.WriteLine("//----------------------------------------------------------------*/"); writer.WriteLine("using System;"); writer.WriteLine("using System.Collections.Generic;"); writer.WriteLine("using System.Linq;"); writer.WriteLine("using System.Data;"); writer.WriteLine("using System.Web;"); writer.WriteLine("using System.Web.Security;"); writer.WriteLine("using System.Web.UI;"); writer.WriteLine("using System.Web.UI.WebControls;"); writer.WriteLine("using Founder.Framework.UI;"); writer.WriteLine("using Founder.Framework.Web.UI;"); writer.WriteLine("using Founder.Framework.Utility;"); writer.WriteLine("using Founder.Framework.Common;"); writer.WriteLine("using Founder.FIS.CMD.Website.Common;"); writer.WriteLine("using Founder.FIS.CMD.Shared;"); writer.WriteLine("using System.Data.Common;"); writer.WriteLine("using System.Data.SqlClient;"); writer.WriteLine("using Founder.FIS.CMD.Website.Resource.SQLPath;"); writer.WriteLine("using Founder.Framework.Web.UI.WebControls;"); writer.WriteLine("using Founder." + (string.IsNullOrWhiteSpace(generateInfo.Module) ? "" : generateInfo.Module + ".") + "IView;"); writer.WriteLine("using Founder." + (string.IsNullOrWhiteSpace(generateInfo.Module) ? "" : generateInfo.Module + ".") + "BusinessLogic.Controller;"); writer.WriteLine("using Founder." + (string.IsNullOrWhiteSpace(generateInfo.Module) ? "" : generateInfo.Module + ".") + "DataEntity;"); writer.WriteLine("using Founder." + (string.IsNullOrWhiteSpace(generateInfo.Module) ? "" : generateInfo.Module + ".") + "BusinessLogic.DAL;"); writer.WriteLine(); writer.WriteLine(string.Format("namespace Founder.FIS.CMD.Website.Views{0}", generateInfo.Module == "" ? "" : "." + generateInfo.Module)); writer.WriteLine("{"); writer.WriteLine(string.Format(" public partial class {0} : CMDListPageBase, I{0}View", fileName)); writer.WriteLine(" {"); writer.WriteLine(" #region 字段"); writer.WriteLine(" #endregion"); writer.WriteLine(" #region 属性"); writer.WriteLine(); writer.WriteLine(" protected override EnumModule Module"); writer.WriteLine(" {"); writer.WriteLine(" get { return EnumModule.用户管理详细; }"); writer.WriteLine(" }"); writer.WriteLine(); writer.WriteLine(" public Guid? ID { get; set; }"); writer.WriteLine(); foreach (PageControl pageControl in listControls) { writer.WriteLine(" ///<summary>"); writer.WriteLine(string.Format(" ///{0}", pageControl.ControlDesc)); writer.WriteLine(" ///</summary>"); writer.WriteLine(string.Format(" public {1} {0}", pageControl.ControlName, pageControl.ColumnType)); writer.WriteLine(" {"); writer.WriteLine(" get"); writer.WriteLine(" {"); writer.WriteLine(string.Format(" return {0}.{2}{1};", pageControl.ControlID, FormHelper.GetConvertMethodByType(pageControl.ColumnType), FormHelper.GetControlPropertyValueSetProperty(pageControl.ControlType))); writer.WriteLine(" }"); writer.WriteLine(" set"); writer.WriteLine(" {"); writer.WriteLine(string.Format(" {0}.{1} = value.ToStringEx();", pageControl.ControlID, FormHelper.GetControlPropertyValueSetProperty(pageControl.ControlType))); writer.WriteLine(" }"); writer.WriteLine(" }"); writer.WriteLine(); } writer.WriteLine(" #endregion"); writer.WriteLine(" #region 事件"); writer.WriteLine(" /// <summary>"); writer.WriteLine(" /// 页面加载"); writer.WriteLine(" /// </summary>"); writer.WriteLine(" /// <param name=\"sender\"></param>"); writer.WriteLine(" /// <param name=\"e\"></param>"); writer.WriteLine(" protected void Page_Load(object sender, EventArgs e)"); writer.WriteLine(" {"); writer.WriteLine(" this.gv" + fileName + ".BindGridView += new FIGridView.FIHandler(this.BindGridView);"); writer.WriteLine(" if (!IsPostBack)"); writer.WriteLine(" {"); writer.WriteLine(" //数据初始化"); writer.WriteLine(" DataInit();"); foreach (PageControl column in gridColumns) { if (column.DefaultSortExpression) { if (string.IsNullOrEmpty(strDefaultSortExpression)) { strDefaultSortExpression = column.ControlName; } else { strDefaultSortExpression += "," + column.ControlName; } } } writer.WriteLine(" gv" + fileName + ".DefaultSortExpression = \"" + strDefaultSortExpression + "\";"); writer.WriteLine(" //绑定Grid"); writer.WriteLine(" BindGridView();"); writer.WriteLine(" }"); writer.WriteLine(" }"); writer.WriteLine(" /// <summary>"); writer.WriteLine(" /// 查询"); writer.WriteLine(" /// </summary>"); writer.WriteLine(" /// <param name=\"sender\"></param>"); writer.WriteLine(" /// <param name=\"e\"></param>"); writer.WriteLine(" protected void btnQuery_Click(object sender, EventArgs e){}"); if (generateInfo.IsCanExport) { writer.WriteLine(" /// <summary>"); writer.WriteLine(" /// 导出"); writer.WriteLine(" /// </summary>"); writer.WriteLine(" /// <param name=\"sender\"></param>"); writer.WriteLine(" /// <param name=\"e\"></param>"); writer.WriteLine(" protected void btnExport_Click(object sender, EventArgs e){}"); } writer.WriteLine(" protected void gv" + fileName + "_RowDataBound(object sender, GridViewRowEventArgs e){}"); writer.WriteLine(" protected void gv" + fileName + "_RowCommand(object sender, GridViewCommandEventArgs e){}"); writer.WriteLine(" #endregion"); writer.WriteLine(" #region 私有方法"); writer.WriteLine(" /// <summary>"); writer.WriteLine(" ///数据初始化"); writer.WriteLine(" /// <summary>"); writer.WriteLine(" private void DataInit()"); writer.WriteLine(" {"); writer.WriteLine(" }"); writer.WriteLine(" /// <summary>"); writer.WriteLine(" /// 绑定Grid数据"); writer.WriteLine(" /// </summary>"); writer.WriteLine(" private void BindGridView()"); writer.WriteLine(" {"); writer.WriteLine(" int rowCount, pageCount;"); writer.WriteLine(""); writer.WriteLine(" " + generateInfo.EntityName + " entity = new " + generateInfo.EntityName + "();"); foreach (PageControl pageControl in listControls) { writer.WriteLine(" entity." + pageControl.ControlName + "=" + pageControl.ControlName + ";"); } writer.WriteLine(" DataTable dt = Pagination.GetGridViewData(SystemPath.SQLPath, SystemPath.DictionaryList,"); writer.WriteLine(" gv" + fileName + ".PageIndex, gv" + fileName + ".DefaultSortExpression,entity, out rowCount, out pageCount);"); writer.WriteLine(" GridHelper.BindGrid(rowCount, gv" + fileName + ", dt);"); writer.WriteLine(" }"); writer.WriteLine(" protected override void InitControl(){}"); writer.WriteLine(" #endregion"); writer.WriteLine(" #region 公共方法"); writer.WriteLine(" #endregion"); writer.WriteLine(" }"); writer.WriteLine("}"); } #endregion #region 生成.aspx.designer.cs页面 filePath = string.Format("{0}\\{1}.aspx.designer.cs", generateInfo.SavePath, fileName); if (File.Exists(filePath)) { File.Delete(filePath); } using (StreamWriter writer = File.CreateText(filePath)) { writer.WriteLine("//------------------------------------------------------------------------------"); writer.WriteLine("// <自动生成>"); writer.WriteLine("// 此代码由工具生成。"); writer.WriteLine("//"); writer.WriteLine("// 对此文件的更改可能会导致不正确的行为,并且如果"); writer.WriteLine("// 重新生成代码,这些更改将会丢失。"); writer.WriteLine("// </自动生成>"); writer.WriteLine("//------------------------------------------------------------------------------"); writer.WriteLine(); writer.WriteLine("namespace Founder.FIS.CMD.Website" + (generateInfo.Module == "" ? "" : "." + generateInfo.Module) + "{"); writer.WriteLine(); writer.WriteLine(" public partial class " + fileName + " {"); writer.WriteLine(); writer.WriteLine(" /// <summary>"); writer.WriteLine(" /// form1 控件。"); writer.WriteLine(" /// </summary>"); writer.WriteLine(" /// <remarks>"); writer.WriteLine(" /// 自动生成的字段。"); writer.WriteLine(" /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。"); writer.WriteLine(" /// </remarks>"); writer.WriteLine(" protected global::System.Web.UI.HtmlControls.HtmlForm form1;"); foreach (PageControl pageControl in listControls) { writer.WriteLine(" /// <summary>"); writer.WriteLine(string.Format(" /// {0} 控件。", pageControl.ControlID)); writer.WriteLine(" /// </summary>"); writer.WriteLine(" /// <remarks>"); writer.WriteLine(" /// 自动生成的字段。"); writer.WriteLine(" /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。"); writer.WriteLine(" /// </remarks>"); writer.WriteLine(string.Format(" protected global::Founder.Framework.Web.UI.WebControls.{0} {1};", pageControl.ControlType.ToString(), pageControl.ControlID)); writer.WriteLine(); writer.WriteLine(); } writer.WriteLine(" /// <summary>"); writer.WriteLine(string.Format(" /// btnQuery 控件。")); writer.WriteLine(" /// </summary>"); writer.WriteLine(" /// <remarks>"); writer.WriteLine(" /// 自动生成的字段。"); writer.WriteLine(" /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。"); writer.WriteLine(" /// </remarks>"); writer.WriteLine(" protected global::Founder.Framework.Web.UI.WebControls.FIButton btnQuery;"); writer.WriteLine(" /// <summary>"); writer.WriteLine(); writer.WriteLine(); writer.WriteLine(string.Format(" /// gv{0} 控件。", fileName)); writer.WriteLine(" /// </summary>"); writer.WriteLine(" /// <remarks>"); writer.WriteLine(" /// 自动生成的字段。"); writer.WriteLine(" /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。"); writer.WriteLine(" /// </remarks>"); writer.WriteLine(string.Format(" protected global::Founder.Framework.Web.UI.WebControls.FIGridView gv{0};", fileName)); writer.WriteLine(); writer.WriteLine(" }"); writer.WriteLine("}"); } #endregion }
/// <summary> /// 生成实体文件 /// </summary> /// <param name="path"></param> /// <param name="fileName"></param> public static void GenerateEntityFile(GenerateInfo generateInfo, DataGridView gridViewMain) { string entityName = generateInfo.TableName.Substring(generateInfo.TableName.LastIndexOf("_", StringComparison.Ordinal) + 1) + "Entity"; string filePath = string.Format("{0}\\{1}.cs", generateInfo.SavePath, entityName); if (File.Exists(filePath)) { File.Delete(filePath); } using (StreamWriter writer = File.CreateText(filePath)) { writer.WriteLine(@"/*----------------------------------------------------------------"); writer.WriteLine("// Copyright (C) 2014方正国际软件有限公司"); writer.WriteLine("// 版权所有。"); writer.WriteLine("// 文 件 名:" + entityName + ".cs"); writer.WriteLine("// 文件功能描述:"); writer.WriteLine("//"); writer.WriteLine("//"); writer.WriteLine("// 创 建 人:" + System.Environment.UserName); writer.WriteLine("// 创建日期:" + DateTime.Now.ToLongDateString() + " " + DateTime.Now.ToLongTimeString()); writer.WriteLine("//"); writer.WriteLine("// 修 改 人:"); writer.WriteLine("// 修改描述:"); writer.WriteLine("//"); writer.WriteLine("// 修改标识:"); writer.WriteLine("//----------------------------------------------------------------*/"); writer.WriteLine("using System;"); writer.WriteLine("using Founder.Framework.Base;"); writer.WriteLine("using Founder.FIS.CMD.Base;"); writer.WriteLine(); writer.WriteLine("namespace " + generateInfo.NameSpace); writer.WriteLine("{"); //TableDesc writer.WriteLine(" /// <summary>"); writer.WriteLine(string.Format(" /// {0}", generateInfo.TableDesc)); writer.WriteLine(" /// </summary>"); writer.WriteLine(" [Serializable] "); writer.WriteLine(string.Format(" public class {0} : CMDEntityBase", entityName)); writer.WriteLine(" {"); writer.WriteLine(" #region 属性"); writer.WriteLine(); //Properties foreach (DataGridViewRow row in gridViewMain.Rows) { bool isPK = row.Cells["ColumnIsPK"].Value.ToString() == "√" ? true : false; //bool isNullable = row.Cells["ColumnIsNullable"].Value.ToString() == "√" ? true : false; if (!isPK) { string isBase = row.Cells["ColumnName"].Value.ToString().ToUpper(); string type = FormHelper.GetCSharpTypeByDBType(FormHelper.ConvertStrToCMD2DBType(row.Cells["ColumnType"].Value.ToString())); if (isBase != "CREATOR" && isBase != "CREATETIME" && isBase != "LASTMODIFIER" && isBase != "LASTMODIFYTIME") { writer.WriteLine(" /// <summary>"); writer.WriteLine(string.Format(" /// {0}", row.Cells["ColumnDesc"].Value)); writer.WriteLine(" /// </summary>"); writer.WriteLine(" public virtual " + type + (FormHelper.IsNullableType(type) ? "?" : "") + " " + row.Cells["ColumnName"].Value + "{ get; set; }"); writer.WriteLine(); } } } writer.WriteLine(" #endregion"); writer.WriteLine(" }"); writer.WriteLine("}"); } }
/// <summary> /// 生成XML映射文件 /// </summary> /// <param name="path"></param> /// <param name="fileName"></param> public static void GenerateEntityMapFile(GenerateInfo generateInfo, DataGridView gridViewMain) { string entityName = generateInfo.TableName.Substring(generateInfo.TableName.LastIndexOf("_", StringComparison.Ordinal) + 1) + "Entity"; string filePath = string.Format("{0}\\{1}.hbm.xml", generateInfo.SavePath, entityName); if (File.Exists(filePath)) { File.Delete(filePath); } using (StreamWriter writer = File.CreateText(filePath)) { writer.WriteLine("<?xml version=\"1.0\" encoding=\"utf-8\"?>"); writer.WriteLine(string.Format("<hibernate-mapping assembly=\"{0}\" namespace=\"{1}\" xmlns=\"urn:nhibernate-mapping-2.2\">", generateInfo.Assembly, generateInfo.NameSpace)); writer.WriteLine(string.Format(" <class name=\"{0}\" table=\"{1}\" lazy=\"true\" >", entityName, generateInfo.TableName)); //Properties foreach (DataGridViewRow row in gridViewMain.Rows) { string isPK = row.Cells["ColumnIsPK"].Value.ToString(); if (isPK == "√") { writer.WriteLine(string.Format(" <id name=\"ID\" column=\"{0}\" />", row.Cells["ColumnName"].Value.ToString())); } else { writer.WriteLine(string.Format(" <property name=\"{0}\">", row.Cells["ColumnName"].Value.ToString())); writer.WriteLine(string.Format(" <column name=\"{0}\" sql-type=\"{1}\" not-null=\"{2}\" />", row.Cells["ColumnName"].Value.ToString(), row.Cells["ColumnType"].Value.ToString(), row.Cells["ColumnIsNullable"].Value.ToString() == "√" ? "false" : "true")); writer.WriteLine(" </property>"); } } writer.WriteLine(" </class>"); writer.WriteLine("</hibernate-mapping>"); } }
/// <summary> /// 生成通用查询列表页面 /// </summary> /// <param name="generateInfo">生成文件信息</param> /// <param name="gridViewMain">Grid信息</param> public static void GenerateCommonQueryListWebFormFile(GenerateInfo generateInfo, DataGridView gridViewMain) { List<PageControl> listControls = getPageControlList(gridViewMain, EnumFilterType.列表页面); List<PageControl> gridColumns = getGridColumnsList(gridViewMain); string fileName = generateInfo.TableName.Substring(generateInfo.TableName.LastIndexOf("_", StringComparison.Ordinal) + 1) + "List"; var entityName = fileName.Replace("List", ""); #region 生成.aspx页面 string filePath = string.Format("{0}\\{1}.aspx", generateInfo.SavePath, fileName); if (File.Exists(filePath)) { File.Delete(filePath); } using (StreamWriter writer = File.CreateText(filePath)) { writer.WriteLine(string.Format("<%@ Page Language=\"C#\" AutoEventWireup=\"true\" CodeBehind=\"{0}.aspx.cs\" Inherits=\"Founder.FIS.CMD.Website.Views{1}{0}\" %>", fileName, generateInfo.Module == "" ? "" : generateInfo.Module + ".")); writer.WriteLine("<%@ Register Src=\"~/UserControls/Common/ConfigurableGrid.ascx\" TagPrefix=\"Founder\" TagName=\"ConfigurableGrid\" %>"); writer.WriteLine("<!DOCTYPE html>"); writer.WriteLine("<html xmlns=\"http://www.w3.org/1999/xhtml\">"); writer.WriteLine("<head runat=\"server\">"); writer.WriteLine("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\"/>"); writer.WriteLine(string.Format(" <title>{0}</title>", generateInfo.TableDesc + "列表")); writer.WriteLine("</head>"); writer.WriteLine("<body>"); writer.WriteLine(" <form id=\"form1\" runat=\"server\">"); writer.WriteLine(" <div id=\"flt\" class=\"flttoolbar\">"); writer.WriteLine(" <Founder:FIButton ID=\"btnQuery\" runat=\"server\" Action=\"查询\" OnClick=\"btnQuery_Click\" />"); if (generateInfo.IsCanExport) { writer.WriteLine(" <Founder:FIButton ID=\"btnExport\" runat=\"server\" Action=\"导出\" OnClick=\"btnExport_Click\"/>"); } writer.WriteLine(" </div>"); writer.WriteLine(" <div class=\"searchtoolbar\">"); writer.WriteLine(" <table >"); int colCount = generateInfo.ListColumnNumber; int rowCount = listControls.Count % colCount == 0 ? listControls.Count / colCount : listControls.Count / colCount + 1; int k = 0; #region 生成查询条件区 for (int i = 0; i < rowCount; i++) { if (k != listControls.Count) { writer.WriteLine(" <tr>"); for (int j = 0; j < colCount; j++) { if (k != listControls.Count) { writer.WriteLine(" <th>"); writer.WriteLine(string.Format(" <Founder:FILabel ID=\"lbl{0}\" runat=\"server\" Text=\"{1}\" />", listControls[k].ControlName, listControls[k].ControlDesc)); writer.WriteLine(" </th>"); string validateHtml = string.Empty; if (listControls[k].ControlValidate == EnumValidateType.必填) { validateHtml = "Required=\"true\""; } else if (listControls[k].ControlValidate == EnumValidateType.必填数字) { validateHtml = "Required=\"true\" Type=\"Number\""; } else if (listControls[k].ControlValidate == EnumValidateType.必填邮箱) { validateHtml = "Required=\"true\" Type=\"Email\""; } writer.WriteLine(" <td>"); writer.WriteLine(string.Format(" <Founder:{1} ID=\"{0}\" runat=\"server\" {2} />", listControls[k].ControlID, listControls[k].ControlType.ToString(), validateHtml)); writer.WriteLine(" </td>"); k++; } } writer.WriteLine(" </tr>"); } } writer.WriteLine(" </table>"); writer.WriteLine(" </div>"); #endregion #region 生成Grid writer.WriteLine(" <div id=\"divList\" >"); writer.WriteLine(string.Format(" <Founder:ConfigurableGrid runat=\"server\" ID=\"cfGrid{0}\" />", entityName)); writer.WriteLine(" </div>"); writer.WriteLine(" </form>"); writer.WriteLine("</body>"); writer.WriteLine("</html>"); #endregion } #endregion #region 生成View.cs文件 //生成View.cs文件 filePath = string.Format("{0}\\I{1}View.cs", generateInfo.SavePath, fileName); if (File.Exists(filePath)) { File.Delete(filePath); } using (StreamWriter writer = File.CreateText(filePath)) { writer.WriteLine(@"/*----------------------------------------------------------------"); writer.WriteLine("// Copyright (C) 2014方正国际软件有限公司"); writer.WriteLine("// 版权所有。"); writer.WriteLine(string.Format("// 文 件 名:I{0}View.cs", fileName)); writer.WriteLine("// 文件功能描述:"); writer.WriteLine("//"); writer.WriteLine("//"); writer.WriteLine("// 创 建 人:" + System.Environment.UserName); writer.WriteLine("// 创建日期:" + DateTime.Now.ToLongDateString() + " " + DateTime.Now.ToLongTimeString()); writer.WriteLine("//"); writer.WriteLine("// 修 改 人:"); writer.WriteLine("// 修改描述:"); writer.WriteLine("//"); writer.WriteLine("// 修改标识:"); writer.WriteLine("//----------------------------------------------------------------*/"); writer.WriteLine("using System;"); writer.WriteLine("using Founder.FIS.CMD.Base;"); writer.WriteLine(); writer.WriteLine("namespace Founder.FIS.CMD.IView"); writer.WriteLine("{"); writer.WriteLine(string.Format(" public interface I{0}View : ICMDViewBase", fileName)); writer.WriteLine(" {"); writer.WriteLine(" #region 属性"); writer.WriteLine(); foreach (PageControl pageControl in listControls) { //string type = FormHelper.GetCSharpTypeByDBType(pageControl.ColumnType); writer.WriteLine(" ///<summary>"); writer.WriteLine(string.Format(" ///{0}", pageControl.ControlDesc)); writer.WriteLine(" ///</summary>"); writer.WriteLine(" " + pageControl.ColumnType + (FormHelper.IsNullableType(pageControl.ColumnType) ? "?" : "") + " " + pageControl.ControlName + "{ get; set; }"); writer.WriteLine(); } writer.WriteLine(" #endregion"); writer.WriteLine(" }"); writer.WriteLine("}"); } #endregion #region 生成.cs页面 string strDefaultSortExpression = string.Empty; filePath = string.Format("{0}\\{1}.aspx.cs", generateInfo.SavePath, fileName); if (File.Exists(filePath)) { File.Delete(filePath); } using (StreamWriter writer = File.CreateText(filePath)) { writer.WriteLine(@"/*----------------------------------------------------------------"); writer.WriteLine("// Copyright (C) 2014方正国际软件有限公司"); writer.WriteLine("// 版权所有。"); writer.WriteLine(string.Format("// 文 件 名:{0}.aspx.cs", fileName)); writer.WriteLine("// 文件功能描述:"); writer.WriteLine("//"); writer.WriteLine("//"); writer.WriteLine("// 创 建 人:" + System.Environment.UserName); writer.WriteLine("// 创建日期:" + DateTime.Now.ToLongDateString() + " " + DateTime.Now.ToLongTimeString()); writer.WriteLine("//"); writer.WriteLine("// 修 改 人:"); writer.WriteLine("// 修改描述:"); writer.WriteLine("//"); writer.WriteLine("// 修改标识:"); writer.WriteLine("//----------------------------------------------------------------*/"); writer.WriteLine("using System;"); writer.WriteLine("using System.Web;"); writer.WriteLine("using System.Web.UI;"); writer.WriteLine("using System.Web.UI.WebControls;"); writer.WriteLine("using Founder.FIS.CMD.BasicModule.Controller;"); writer.WriteLine("using Founder.FIS.CMD.BasicModule.Controller.IView;"); writer.WriteLine("using Founder.FIS.CMD.Constants.CommonQueryPath;"); writer.WriteLine("using Founder.FIS.CMD.Constants.Enum;"); writer.WriteLine("using Founder.FIS.CMD.Website.Shared;"); writer.WriteLine("using Founder.FIS.CMD.Website.UserControls.Common;"); writer.WriteLine("using Founder.Framework.Utility;"); writer.WriteLine(); writer.WriteLine(string.Format("namespace Founder.FIS.CMD.Website.Views{0}", generateInfo.Module == "" ? "" : "." + generateInfo.Module)); writer.WriteLine("{"); writer.WriteLine(string.Format(" public partial class {0} : CMDPageBase, I{0}View", fileName)); writer.WriteLine(" {"); writer.WriteLine(" #region 字段"); writer.WriteLine(" #endregion"); writer.WriteLine(" #region 属性"); writer.WriteLine(); writer.WriteLine(" protected override EnumModule Module"); writer.WriteLine(" {"); writer.WriteLine(" get { return EnumModule.用户管理详细; }"); writer.WriteLine(" }"); writer.WriteLine(); writer.WriteLine(" public Guid? ID { get; set; }"); writer.WriteLine(); foreach (PageControl pageControl in listControls) { writer.WriteLine(" ///<summary>"); writer.WriteLine(string.Format(" ///{0}", pageControl.ControlDesc)); writer.WriteLine(" ///<summary>"); writer.WriteLine(string.Format(" public {1} {0}", pageControl.ControlName, pageControl.ColumnType)); writer.WriteLine(" {"); writer.WriteLine(" get"); writer.WriteLine(" {"); writer.WriteLine(string.Format(" return {0}.{2}{1};", pageControl.ControlID, FormHelper.GetConvertMethodByType(pageControl.ColumnType), FormHelper.GetControlPropertyValueSetProperty(pageControl.ControlType))); writer.WriteLine(" }"); writer.WriteLine(" set"); writer.WriteLine(" {"); writer.WriteLine(string.Format(" {0}.{1} = value.ToStringEx();", pageControl.ControlID, FormHelper.GetControlPropertyValueSetProperty(pageControl.ControlType))); writer.WriteLine(" }"); writer.WriteLine(" }"); writer.WriteLine(); } writer.WriteLine(" #endregion"); writer.WriteLine(" #region 事件"); writer.WriteLine(" /// <summary>"); writer.WriteLine(" /// 初始化ConfigurableGrid"); writer.WriteLine(" /// </summary>"); writer.WriteLine(" /// <param name=\"e\"></param>"); writer.WriteLine(" protected override void OnPreInit(EventArgs e)"); writer.WriteLine(" {"); writer.WriteLine(" base.OnPreInit(e);"); writer.WriteLine(string.Format(" cfGrid{0}.Key = \"{0}Grid\";", entityName)); writer.WriteLine(string.Format(" cfGrid{0}.Path = GridPath.ConfigurableGridPath;", entityName)); writer.WriteLine(" }"); writer.WriteLine(" protected void Page_Load(object sender, EventArgs e)"); writer.WriteLine(" {"); writer.WriteLine(string.Format(" var parameters = new {0}ManagerController().GetParameters(this, typeof(I{1}View));", entityName, fileName)); writer.WriteLine(string.Format(" cfGrid{0}.Where = parameters;", entityName)); writer.WriteLine(" if (!IsPostBack){}"); writer.WriteLine(" }"); writer.WriteLine(" protected void btnQuery_Click(object sender, EventArgs e)"); writer.WriteLine(" {"); writer.WriteLine(string.Format(" cfGrid{0}.BindGridView();", entityName)); writer.WriteLine(" }"); writer.WriteLine(" #endregion"); writer.WriteLine(" #region 私有方法"); writer.WriteLine(" protected override void InitControl(){}"); writer.WriteLine(" #endregion"); writer.WriteLine(" #region 公共方法"); writer.WriteLine(" #endregion"); writer.WriteLine(" }"); writer.WriteLine("}"); } #endregion #region 生成.aspx.designer.cs页面 filePath = string.Format("{0}\\{1}.aspx.designer.cs", generateInfo.SavePath, fileName); if (File.Exists(filePath)) { File.Delete(filePath); } using (StreamWriter writer = File.CreateText(filePath)) { writer.WriteLine("//------------------------------------------------------------------------------"); writer.WriteLine("// <自动生成>"); writer.WriteLine("// 此代码由工具生成。"); writer.WriteLine("//"); writer.WriteLine("// 对此文件的更改可能会导致不正确的行为,并且如果"); writer.WriteLine("// 重新生成代码,这些更改将会丢失。"); writer.WriteLine("// </自动生成>"); writer.WriteLine("//------------------------------------------------------------------------------"); writer.WriteLine(); writer.WriteLine("namespace Founder.FIS.CMD.Website.Views" + (generateInfo.Module == "" ? "" : "." + generateInfo.Module) + "{"); writer.WriteLine(); writer.WriteLine(" public partial class " + fileName + " {"); writer.WriteLine(); writer.WriteLine(" /// <summary>"); writer.WriteLine(" /// form1 控件。"); writer.WriteLine(" /// </summary>"); writer.WriteLine(" /// <remarks>"); writer.WriteLine(" /// 自动生成的字段。"); writer.WriteLine(" /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。"); writer.WriteLine(" /// </remarks>"); writer.WriteLine(" protected global::System.Web.UI.HtmlControls.HtmlForm form1;"); foreach (PageControl pageControl in listControls) { writer.WriteLine(" /// <summary>"); writer.WriteLine(string.Format(" /// {0} 控件。", pageControl.ControlID)); writer.WriteLine(" /// </summary>"); writer.WriteLine(" /// <remarks>"); writer.WriteLine(" /// 自动生成的字段。"); writer.WriteLine(" /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。"); writer.WriteLine(" /// </remarks>"); writer.WriteLine(string.Format(" protected global::Founder.Framework.Web.UI.WebControls.{0} {1};", pageControl.ControlType.ToString(), pageControl.ControlID)); writer.WriteLine(); writer.WriteLine(); } writer.WriteLine(" /// <summary>"); writer.WriteLine(string.Format(" /// btnQuery 控件。")); writer.WriteLine(" /// </summary>"); writer.WriteLine(" /// <remarks>"); writer.WriteLine(" /// 自动生成的字段。"); writer.WriteLine(" /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。"); writer.WriteLine(" /// </remarks>"); writer.WriteLine(" protected global::Founder.Framework.Web.UI.WebControls.FIButton btnQuery;"); writer.WriteLine(); writer.WriteLine(); writer.WriteLine(" /// <summary>"); writer.WriteLine(string.Format(" /// cfGrid{0} 控件。", entityName)); writer.WriteLine(" /// </summary>"); writer.WriteLine(" /// <remarks>"); writer.WriteLine(" /// 自动生成的字段。"); writer.WriteLine(" /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。"); writer.WriteLine(" /// </remarks>"); writer.WriteLine(string.Format(" protected global::Founder.FIS.CMD.Website.UserControls.Common.ConfigurableGrid cfGrid{0};", entityName)); writer.WriteLine(); writer.WriteLine(" }"); writer.WriteLine("}"); } #endregion #region 生成GirdView.XML文件 filePath = string.Format("{0}\\{1}GridView.xml", generateInfo.SavePath, entityName); if (File.Exists(filePath)) { File.Delete(filePath); } using (StreamWriter writer = File.CreateText(filePath)) { writer.WriteLine("<?xml version=\"1.0\" encoding=\"utf-8\" ?>"); writer.WriteLine("<xmlroot>"); foreach (PageControl column in gridColumns) { if (column.DefaultSortExpression) { if (string.IsNullOrEmpty(strDefaultSortExpression)) { strDefaultSortExpression = column.ControlName; } else { strDefaultSortExpression += "," + column.ControlName; } } } writer.WriteLine(string.Format(" <{0}Grid key=\"{0}Grid\" ShowCheckBox=\"True\" EmptyDataText=\"没有数据\" PageSize=\"10\" DataKeyNames=\"ID\" DefaultSort=\"{1}\">", entityName, strDefaultSortExpression)); writer.WriteLine(" <Sql>"); writer.WriteLine(" <![CDATA["); writer.WriteLine(" " + GetQuerySql(generateInfo.TableName, listControls)); writer.WriteLine(" ]]>"); writer.WriteLine(" </Sql>"); foreach (PageControl pageControl in gridColumns) { writer.WriteLine(" <Column>"); writer.WriteLine(string.Format(" <ColumnName>{0}</ColumnName>", pageControl.ControlName)); writer.WriteLine(string.Format(" <HeaderText>{0}</HeaderText>", pageControl.ControlDesc)); writer.WriteLine(" <ForeColor>Black</ForeColor>"); writer.WriteLine(" <Width>80px</Width>"); writer.WriteLine(" <OpenType></OpenType>"); writer.WriteLine(" <OpenTitle>编辑页面</OpenTitle>"); writer.WriteLine(" <OpenWidth>800</OpenWidth>"); writer.WriteLine(" <OpenHeight>600</OpenHeight>"); writer.WriteLine(" <URL>"); writer.WriteLine(" <Address><![CDATA[]]></Address>"); writer.WriteLine(" <Parameter></Parameter>"); writer.WriteLine(" </URL>"); writer.WriteLine(string.Format(" <Aligment>{0}</Aligment>", FormHelper.GetAligmentByType(pageControl.ColumnType))); writer.WriteLine(string.Format(" <Format>{0}</Format>", pageControl.ColumnType == "DateTime" ? "{0:yyyy-MM-dd}" : "")); writer.WriteLine(" </Column>"); } writer.WriteLine(" <CommandAction>"); writer.WriteLine(" <ActionName>删除</ActionName>"); writer.WriteLine(" <ActionType>Delete</ActionType>"); writer.WriteLine(" <ConfirmText>确认要删除吗</ConfirmText>"); writer.WriteLine(" <OpenType></OpenType>"); writer.WriteLine(" <URL>"); writer.WriteLine(" <Address><![CDATA[****Detail.aspx?ID={0}]]></Address>"); writer.WriteLine(" <Parameter>ID</Parameter>"); writer.WriteLine(" </URL>"); writer.WriteLine(" <OnClientClick></OnClientClick>"); writer.WriteLine(" <SkinID></SkinID>"); writer.WriteLine(" <CommandArgument>"); writer.WriteLine(" <CommandParameter>ID</CommandParameter>"); writer.WriteLine(" </CommandArgument>"); writer.WriteLine(" </CommandAction>"); writer.WriteLine(string.Format(" </{0}Grid>", entityName)); writer.WriteLine("</xmlroot>"); } #endregion }
/// <summary> /// 生成编辑页面 /// </summary> public static void GenerateEditWebFormFile(GenerateInfo generateInfo, DataGridView gridViewMain) { List<PageControl> editControls = getPageControlList(gridViewMain, EnumFilterType.编辑页面); string fileName = generateInfo.TableName.Substring(generateInfo.TableName.LastIndexOf("_", StringComparison.Ordinal) + 1) + "Detail"; #region 生成.aspx页面 //生成编辑页面 string filePath = string.Format("{0}\\{1}.aspx", generateInfo.SavePath, fileName); if (File.Exists(filePath)) { File.Delete(filePath); } //生成.aspx页面 using (StreamWriter writer = File.CreateText(filePath)) { writer.WriteLine(string.Format("<%@ Page Language=\"C#\" AutoEventWireup=\"true\" CodeBehind=\"{0}.aspx.cs\" Inherits=\"Founder.FIS.CMD.Website.Views{1}{0}\" %>", fileName, generateInfo.Module == "" ? "" : generateInfo.Module + ".")); writer.WriteLine("<!DOCTYPE html>"); writer.WriteLine("<html xmlns=\"http://www.w3.org/1999/xhtml\">"); writer.WriteLine("<head runat=\"server\">"); writer.WriteLine("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\"/>"); writer.WriteLine(string.Format(" <title>{0}</title>", generateInfo.TableDesc + "编辑")); writer.WriteLine("</head>"); writer.WriteLine("<body>"); writer.WriteLine(" <form id=\"form1\" runat=\"server\">"); writer.WriteLine(" <div id=\"flt\" class=\"flttoolbar\">"); writer.WriteLine(" <Founder:FIButton ID=\"btnSave\" runat=\"server\" Action=\"保存\" OnClick=\"btnSave_Click\" />"); writer.WriteLine(" <Founder:FIButton ID=\"btnCancel\" runat=\"server\" Action=\"取消\" OnClick=\"btnCancel_Click\"/>"); writer.WriteLine(" </div>"); writer.WriteLine(" <div class=\"searchtoolbar\"></div>"); writer.WriteLine(" <div>"); writer.WriteLine(" <table>"); int colCount = generateInfo.EditColumnNumber; int rowCount = editControls.Count % colCount == 0 ? editControls.Count / colCount : editControls.Count / colCount + 1; int k = 0; for (int i = 0; i < rowCount; i++) { if (k != editControls.Count) { writer.WriteLine(" <tr>"); for (int j = 0; j < colCount; j++) { if (k != editControls.Count) { writer.WriteLine(" <th>"); writer.WriteLine(string.Format(" <Founder:FILabel ID=\"lbl{0}\" runat=\"server\" Text=\"{1}\" />", editControls[k].ControlName, editControls[k].ControlDesc)); writer.WriteLine(" </th>"); writer.WriteLine(" <td>"); string validateHtml = string.Empty; if (editControls[k].ControlValidate == EnumValidateType.必填) { validateHtml = "Required=\"true\""; } else if (editControls[k].ControlValidate == EnumValidateType.必填数字) { validateHtml = "Required=\"true\" Type=\"Number\""; } else if (editControls[k].ControlValidate == EnumValidateType.必填邮箱) { validateHtml = "Required=\"true\" Type=\"Email\""; } writer.WriteLine(string.Format(" <Founder:{1} ID=\"{0}\" runat=\"server\" {2} />", editControls[k].ControlID, editControls[k].ControlType.ToString(), validateHtml)); writer.WriteLine(" </td>"); k++; } } writer.WriteLine(" </tr>"); } } writer.WriteLine(" </table>"); writer.WriteLine(" </div>"); writer.WriteLine(" </form>"); writer.WriteLine("</body>"); writer.WriteLine("</html>"); } #endregion #region 生成View.cs文件 //生成View.cs文件 filePath = string.Format("{0}\\I{1}View.cs", generateInfo.SavePath, fileName); if (File.Exists(filePath)) { File.Delete(filePath); } using (StreamWriter writer = File.CreateText(filePath)) { writer.WriteLine(@"/*----------------------------------------------------------------"); writer.WriteLine("// Copyright (C) 2014方正国际软件有限公司"); writer.WriteLine("// 版权所有。"); writer.WriteLine(string.Format("// 文 件 名:I{0}View.cs", fileName)); writer.WriteLine("// 文件功能描述:"); writer.WriteLine("//"); writer.WriteLine("//"); writer.WriteLine("// 创 建 人:" + System.Environment.UserName); writer.WriteLine("// 创建日期:" + DateTime.Now.ToLongDateString() + " " + DateTime.Now.ToLongTimeString()); writer.WriteLine("//"); writer.WriteLine("// 修 改 人:"); writer.WriteLine("// 修改描述:"); writer.WriteLine("//"); writer.WriteLine("// 修改标识:"); writer.WriteLine("//----------------------------------------------------------------*/"); writer.WriteLine("using System;"); writer.WriteLine("using Founder.FIS.CMD.Base;"); writer.WriteLine(); writer.WriteLine("namespace Founder.FIS.CMD.IView"); writer.WriteLine("{"); writer.WriteLine(string.Format(" public interface I{0}View : ICMDViewBase", fileName)); writer.WriteLine(" {"); writer.WriteLine(" #region 属性"); writer.WriteLine(); foreach (PageControl pageControl in editControls) { //Type type = pageControl.ColumnType; writer.WriteLine(" /// <summary>"); writer.WriteLine(string.Format(" /// {0}", pageControl.ControlDesc)); writer.WriteLine(" /// </summary>"); writer.WriteLine(" " + pageControl.ColumnType + (FormHelper.IsNullableType(pageControl.ColumnType) ? "?" : "") + " " + pageControl.ControlName + "{ get; set; }"); writer.WriteLine(); } writer.WriteLine(" #endregion"); writer.WriteLine(" }"); writer.WriteLine("}"); } #endregion #region 生成.cs页面 filePath = string.Format("{0}\\{1}.aspx.cs", generateInfo.SavePath, fileName); if (File.Exists(filePath)) { File.Delete(filePath); } using (StreamWriter writer = File.CreateText(filePath)) { writer.WriteLine(@"/*----------------------------------------------------------------"); writer.WriteLine("// Copyright (C) 2014方正国际软件有限公司"); writer.WriteLine("// 版权所有。"); writer.WriteLine(string.Format("// 文 件 名:{0}.aspx.cs", fileName)); writer.WriteLine("// 文件功能描述:"); writer.WriteLine("//"); writer.WriteLine("//"); writer.WriteLine("// 创 建 人:" + System.Environment.UserName); writer.WriteLine("// 创建日期:" + DateTime.Now.ToLongDateString() + " " + DateTime.Now.ToLongTimeString()); writer.WriteLine("//"); writer.WriteLine("// 修 改 人:"); writer.WriteLine("// 修改描述:"); writer.WriteLine("//"); writer.WriteLine("// 修改标识:"); writer.WriteLine("//----------------------------------------------------------------*/"); writer.WriteLine("using System;"); writer.WriteLine("using System.Web;"); writer.WriteLine("using Founder.FIS.CMD.Constants.Enum;"); writer.WriteLine("using System.Web.UI;"); writer.WriteLine("using System.Web.UI.WebControls;"); writer.WriteLine("using Founder.BasicModule.Permission.IView;"); writer.WriteLine("using Founder.FIS.CMD.Website.Shared;"); writer.WriteLine("using Founder.Framework.Utility;"); writer.WriteLine(); writer.WriteLine(string.Format("namespace Founder.FIS.CMD.Website.Views{0}", generateInfo.Module == "" ? "" : "." + generateInfo.Module)); writer.WriteLine("{"); writer.WriteLine(string.Format(" public partial class {0} : CMDDetailPageBase, I{0}View", fileName)); writer.WriteLine(" {"); writer.WriteLine(" #region 字段"); writer.WriteLine(" #endregion"); writer.WriteLine(" #region 属性"); writer.WriteLine(); writer.WriteLine(" protected override EnumModule Module"); writer.WriteLine(" {"); writer.WriteLine(" get { return EnumModule.用户管理详细; }"); writer.WriteLine(" }"); writer.WriteLine(); writer.WriteLine(" public Guid? ID"); writer.WriteLine(" {"); writer.WriteLine(" get"); writer.WriteLine(" {"); writer.WriteLine(" return ItemID;"); writer.WriteLine(" }"); writer.WriteLine(" set"); writer.WriteLine(" {"); writer.WriteLine(" ItemID = value;"); writer.WriteLine(" }"); writer.WriteLine(" }"); writer.WriteLine(); foreach (PageControl pageControl in editControls) { writer.WriteLine(" ///<summary>"); writer.WriteLine(string.Format(" ///{0}", pageControl.ControlDesc)); writer.WriteLine(" ///</summary>"); writer.WriteLine(string.Format(" public {1} {0}", pageControl.ControlName, pageControl.ColumnType)); writer.WriteLine(" {"); writer.WriteLine(" get"); writer.WriteLine(" {"); writer.WriteLine(string.Format(" return {0}.{2}{1};", pageControl.ControlID, FormHelper.GetConvertMethodByType(pageControl.ColumnType), FormHelper.GetControlPropertyValueSetProperty(pageControl.ControlType))); writer.WriteLine(" }"); writer.WriteLine(" set"); writer.WriteLine(" {"); writer.WriteLine(string.Format(" {0}.{1} = value.ToStringEx();", pageControl.ControlID, FormHelper.GetControlPropertyValueSetProperty(pageControl.ControlType))); writer.WriteLine(" }"); writer.WriteLine(" }"); writer.WriteLine(); } writer.WriteLine(" #endregion"); writer.WriteLine(); writer.WriteLine(" #region 事件"); writer.WriteLine(" protected void Page_Load(object sender, EventArgs e){}"); writer.WriteLine(" protected void btnSave_Click(object sender, EventArgs e){}"); writer.WriteLine(" protected void btnCancel_Click(object sender, EventArgs e){}"); writer.WriteLine(" #endregion"); writer.WriteLine(" #region 私有方法"); writer.WriteLine(" protected override void InitControl(){}"); writer.WriteLine(" #endregion"); writer.WriteLine(" #region 公共方法"); writer.WriteLine(" #endregion"); writer.WriteLine(" }"); writer.WriteLine("}"); } #endregion #region 生成.aspx.designer.cs页面 filePath = string.Format("{0}\\{1}.aspx.designer.cs", generateInfo.SavePath, fileName); if (File.Exists(filePath)) { File.Delete(filePath); } using (StreamWriter writer = File.CreateText(filePath)) { writer.WriteLine("//------------------------------------------------------------------------------"); writer.WriteLine("// <自动生成>"); writer.WriteLine("// 此代码由工具生成。"); writer.WriteLine("//"); writer.WriteLine("// 对此文件的更改可能会导致不正确的行为,并且如果"); writer.WriteLine("// 重新生成代码,这些更改将会丢失。"); writer.WriteLine("// </自动生成>"); writer.WriteLine("//------------------------------------------------------------------------------"); writer.WriteLine(); writer.WriteLine("namespace Founder.FIS.CMD.Website.Views" + (generateInfo.Module == "" ? "" : "." + generateInfo.Module) + "{"); writer.WriteLine(); writer.WriteLine(" public partial class " + fileName + " {"); writer.WriteLine(); writer.WriteLine(" /// <summary>"); writer.WriteLine(" /// form1 控件。"); writer.WriteLine(" /// </summary>"); writer.WriteLine(" /// <remarks>"); writer.WriteLine(" /// 自动生成的字段。"); writer.WriteLine(" /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。"); writer.WriteLine(" /// </remarks>"); writer.WriteLine(" protected global::System.Web.UI.HtmlControls.HtmlForm form1;"); foreach (PageControl pageControl in editControls) { writer.WriteLine(" /// <summary>"); writer.WriteLine(string.Format(" /// {0} 控件。", pageControl.ControlID)); writer.WriteLine(" /// </summary>"); writer.WriteLine(" /// <remarks>"); writer.WriteLine(" /// 自动生成的字段。"); writer.WriteLine(" /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。"); writer.WriteLine(" /// </remarks>"); writer.WriteLine(string.Format(" protected global::Founder.Framework.Web.UI.WebControls.{0} {1};", pageControl.ControlType.ToString(), pageControl.ControlID)); writer.WriteLine(); //foreach (ValidateControl validateControl in pageControl.ValidateControlList) //{ // writer.WriteLine(" /// <summary>"); // writer.WriteLine(string.Format(" /// {0} 控件。", validateControl.ControlID)); // writer.WriteLine(" /// </summary>"); // writer.WriteLine(" /// <remarks>"); // writer.WriteLine(" /// 自动生成的字段。"); // writer.WriteLine(" /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。"); // writer.WriteLine(" /// </remarks>"); // writer.WriteLine(string.Format(" protected global::System.Web.UI.WebControls.{0} {1};", validateControl.ControlName, validateControl.ControlID)); //} writer.WriteLine(); } writer.WriteLine(" }"); writer.WriteLine("}"); } #endregion }
/// <summary> /// 生成Logic文件 /// </summary> /// <param name="generateInfo"></param> /// <param name="gridViewMain"></param> public static void GenerateLogicFile(GenerateInfo generateInfo, DataGridView gridViewMain) { string logicName = generateInfo.TableName.Substring(generateInfo.TableName.LastIndexOf("_", StringComparison.Ordinal) + 1) + "Logic"; string filePath = string.Format("{0}\\{1}.cs", generateInfo.SavePath, logicName); List<PageControl> editControls = getPageControlList(gridViewMain, EnumFilterType.列表页面); if (File.Exists(filePath)) { File.Delete(filePath); } using (StreamWriter writer = File.CreateText(filePath)) { writer.WriteLine(@"/*----------------------------------------------------------------"); writer.WriteLine("// Copyright (C) 2014方正国际软件有限公司"); writer.WriteLine("// 版权所有。"); writer.WriteLine(string.Format("// 文 件 名:{0}.cs", logicName)); writer.WriteLine("// 文件功能描述:"); writer.WriteLine("//"); writer.WriteLine("//"); writer.WriteLine("// 创 建 人:" + System.Environment.UserName); writer.WriteLine("// 创建日期:" + DateTime.Now.ToLongDateString() + " " + DateTime.Now.ToLongTimeString()); writer.WriteLine("//"); writer.WriteLine("// 修 改 人:"); writer.WriteLine("// 修改描述:"); writer.WriteLine("//"); writer.WriteLine("// 修改标识:"); writer.WriteLine("//----------------------------------------------------------------*/"); writer.WriteLine("using System;"); writer.WriteLine("using System.Data;"); writer.WriteLine("using System.Data.Common;"); writer.WriteLine("using System.Text;"); writer.WriteLine("using System.Collections.Generic;"); writer.WriteLine("using Founder.Framework.Data;"); writer.WriteLine("using Founder.Framework.Core.Base;"); writer.WriteLine("using Founder.FIS.CMD.IView;"); writer.WriteLine(); writer.WriteLine("namespace Founder.FIS.CMD.Logic"); writer.WriteLine("{"); //TableDesc writer.WriteLine(" /// <summary>"); writer.WriteLine(string.Format(" /// {0}", generateInfo.TableDesc)); writer.WriteLine(" /// </summary>"); //Class writer.WriteLine(string.Format(" public class {0} ", logicName)); writer.WriteLine(" {"); writer.WriteLine(string.Format(" public static DataTable Serach(I{0}ListView view)", generateInfo.TableName.Substring(generateInfo.TableName.LastIndexOf("_", StringComparison.Ordinal) + 1))); writer.WriteLine(" {"); writer.WriteLine(" List<DbParameter> listPara = new List<DbParameter>();"); writer.WriteLine(" #region Parameter"); //Add Parameter foreach (PageControl pageControl in editControls) { writer.WriteLine(" DbParameter para=new SqlParameter();"); writer.WriteLine(string.Format(" para.ParameterName=\"@{0}\";", pageControl.ControlName)); writer.WriteLine(string.Format(" para.Value= view.{0};", pageControl.ControlName)); writer.WriteLine(" listPara.Add(para);"); } writer.WriteLine(" #endregion"); writer.WriteLine(" return new DataTable();"); writer.WriteLine(" }"); writer.WriteLine(" }"); writer.WriteLine("}"); } }
/// <summary> /// 生成事件 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnGenerate_Click(object sender, EventArgs e) { if (gridViewMain.DataSource == null) { MessageBox.Show("请选择数据库表进行生成!", "提示"); return; } //检查数据表的字段类型是否符合要求 if (!CheckColumnTypeValidate()) { return; } string savePath = this.txtSavePath.Text.Trim(); string defaultSavePath = ConfigurationManager.AppSettings["DefaultSavePath"]; if (string.IsNullOrEmpty(savePath)) { if (MessageBox.Show("是否保存到默认路径" + defaultSavePath + "?", "提示", MessageBoxButtons.YesNo) == System.Windows.Forms.DialogResult.Yes) { savePath = defaultSavePath; } } if (!string.IsNullOrEmpty(savePath)) { if (!Directory.Exists(savePath)) { if (MessageBox.Show("找不到指定路径" + savePath + ",是否创建?", "提示", MessageBoxButtons.YesNo) == System.Windows.Forms.DialogResult.Yes) { Directory.CreateDirectory(savePath); } else { return; } } if (chkEntity.Checked || chkEditPage.Checked || chkListPage.Checked) { GenerateInfo generateInfo = new GenerateInfo(); generateInfo.TableName = this.listBoxTableName.SelectedValue.ToString(); generateInfo.TableDesc = this.lblTableDesc.Text.Trim(); generateInfo.SavePath = savePath; generateInfo.Module = this.txtModule.Text.Trim(); generateInfo.EditColumnNumber = Convert.ToInt16(this.txtEditLayout.Text.Trim()); generateInfo.ListColumnNumber = Convert.ToInt16(this.txtListLayout.Text.Trim()); generateInfo.IsCanExport = this.chkExport.Checked; generateInfo.NameSpace = this.txtNameSpace.Text.Trim(); generateInfo.Assembly = this.txtAssembly.Text.Trim() == "" ? this.txtNameSpace.Text.Trim() : this.txtAssembly.Text.Trim(); generateInfo.EntityName = generateInfo.TableName.Substring(generateInfo.TableName.LastIndexOf("_", StringComparison.Ordinal) + 1) + "Entity"; GenerateFile(generateInfo); MessageBox.Show("生成成功!", "消息"); } else { MessageBox.Show("请选择生成选项!", "提示"); } } }
/// <summary> /// 生成文件 /// </summary> /// <param name="generateInfo"></param> private void GenerateFile(GenerateInfo generateInfo) { //实体 if (chkEntity.Checked) { GenerateFileHelper.GenerateEntityFile(generateInfo, gridViewMain); GenerateFileHelper.GenerateEntityMapFile(generateInfo, gridViewMain); } //编辑页面 if (chkEditPage.Checked) { GenerateFileHelper.GenerateEditWebFormFile(generateInfo, gridViewMain); } //列表页面 if (chkListPage.Checked) { if (radioButtonBasic.Checked) { GenerateFileHelper.GenerateListWebFormFile(generateInfo, gridViewMain); } else { GenerateFileHelper.GenerateCommonQueryListWebFormFile(generateInfo, gridViewMain); } } //数据存储 if (chkLogic.Checked) { GenerateFileHelper.GenerateLogicFile(generateInfo, gridViewMain); } }