/// <summary> /// 生成HTML子页 /// </summary> /// <param name="tableCode">表编码</param> /// <param name="tableName">表名称</param> /// <param name="tableAlias">表别名</param> /// <param name="directory">输出路径</param> /// <param name="itemsPath">模板路径</param> private static void BuildItems(Guid tableCode, string tableName, string tableAlias, string directory, string itemsPath) { IList <Column> columnlist = DColumn.GetColumn(tableCode); string tableStr = @"<table style=""width: 100%;""> <tr class=""text-center""><th style=""width:60px"">序号</th><th>字段</th><th>类型</th><th>说明</th><th>作者</th><th>时间</th></tr>"; for (int k = 0; k < columnlist.Count; k++) { tableStr += string.Format(@"<tr><td style=""padding-left:10px;"">{0}</td> <td>{1}</td><td>{2}</td><td>{3}</td><td class=""text-center"">{4}</td><td class=""text-center"">{5}</td></tr>", k + 1, columnlist[k].Name, columnlist[k].Type, columnlist[k].Bewrite, columnlist[k].Author, columnlist[k].CreateTime.ToString("yyyy年MM月dd日 HH:mm:ss")); } tableStr += "</table>"; string[] itemsTemp = new string[] { "@title", "@name", "@alias", "@table", "@footer" }; string[] itemsHtml = new string[] { tableAlias, tableName, tableAlias, tableStr, "DBVortaro" }; DTemplates.WriteHtml(itemsTemp, itemsHtml, itemsPath, directory); }
/// <summary> /// 生成HTML首页 /// </summary> /// <param name="projectCode">项目编码</param> /// <param name="fileName">文件名称</param> /// <param name="directory">输出路径</param> /// <param name="indexPath">首页模板路径</param> /// <param name="itemsPath">子页模板路径</param> private static void BuildIndex(string projectCode, string fileName, string directory, string indexPath, string itemsPath) { string tableStr = string.Empty; //表格 IList <Database> databaselist = DDatabase.GetDatabase(new Guid(projectCode)); int rowspan = 0; //分组跨行计数 bool merger = false; //是否合并 for (int k = 0; k < databaselist.Count; k++) { DataTable tableslist = DTables.GetTables2(databaselist[k].Code); if (tableslist.Rows.Count > 0)//是否存在表字段 { tableStr += @" <table style=""width: 100%;""> <tr><td colspan=""5"" style=""font-weight:bold;line-height:20px;"">服务器:" + databaselist[k].ServerName + "<br/>数据库:" + databaselist[k].Name + @"</td></tr> <tr class=""text-center""><th style=""width:60px"">序号</th><th>分组</th><th>表名</th><th>别名</th><th>作者</th></tr>" ; for (int q = 0; q < tableslist.Rows.Count; q++) { string url = string.Format("Items/{0}_{1}.html", databaselist[k].Name, tableslist.Rows[q]["Name"].ToString()); tableStr += string.Format(@"<tr><td style=""padding-left:10px;"">{0}</td>", q + 1); string GroupName = string.Empty, TempName = DGroup.GetGroupName(new Guid(tableslist.Rows[q]["GroupCode"].ToString())); //名称竖排 for (int Q = 0; Q < TempName.Length; Q++) { GroupName += TempName[Q].ToString() + "<br/>"; } //分组跨行处理 if (rowspan == 0) { for (int j = q; j < tableslist.Rows.Count; j++) { if (tableslist.Rows[j]["GroupCode"].ToString() == tableslist.Rows[q]["GroupCode"].ToString()) { rowspan++; } } merger = true; } if (rowspan > 0 && merger == true) { tableStr += string.Format(@"<td class=""text-center"" style=""width:60px;"" rowspan=""{0}"">{1}</td>", rowspan, GroupName); merger = false; //停用合并 rowspan--; //合并行计数 } else if (rowspan > 0) { rowspan--;//合并行计数 } else { tableStr += string.Format(@"<td class=""text-center"" style=""width:60px;"">{0}</td>", GroupName); } tableStr += string.Format(@"<td><a href=""{0}"">{1}</a></td><td><a href=""{0}"">{2}</a></td> <td class=""text-center"">{3}</td></tr>" , url, tableslist.Rows[q]["Name"].ToString(), tableslist.Rows[q]["Alias"].ToString(), tableslist.Rows[q]["Author"].ToString()); BuildItems(new Guid(tableslist.Rows[q]["Code"].ToString()), tableslist.Rows[q]["Name"].ToString(), tableslist.Rows[q]["Alias"].ToString(), directory + "/" + url, itemsPath); } tableStr += "</table><br/>"; } } string[] indexTemp = new string[] { "@title", "@table", "@footer" }; string[] indexHtml = new string[] { fileName, tableStr, "DBVortaro" }; DTemplates.WriteHtml(indexTemp, indexHtml, indexPath, directory + "/index.html"); }