/// <summary> /// 获得外键列表. /// </summary> /// <returns></returns> public string FrmTable_GetSFTableList() { //WF_Admin_FoolFormDesigner wf = new WF_Admin_FoolFormDesigner(this.context); SFTables ens = new SFTables(); ens.RetrieveAll(); return(ens.ToJson()); }
public override object Do() { string msg = ""; #region 检查数据文件是否完整. string path = "C:\\CCFlowTemplete"; if (System.IO.Directory.Exists(path) == false) { msg += "@错误:约定的目录不存在服务器" + path + ",请把从ccflow备份的文件放入" + path; } //PortTables. string file = path + "\\PortTables.xml"; if (System.IO.File.Exists(file) == false) { msg += "@错误:约定的文件不存在," + file; } //SysTables. file = path + "\\SysTables.xml"; if (System.IO.File.Exists(file) == false) { msg += "@错误:约定的文件不存在," + file; } //FlowTables. file = path + "\\FlowTables.xml"; if (System.IO.File.Exists(file) == false) { msg += "@错误:约定的文件不存在," + file; } #endregion 检查数据文件是否完整. #region 1 装载流程基础表数据. DataSet ds = new DataSet(); ds.ReadXml(path + "\\FlowTables.xml"); //流程类别. FlowSorts sorts = new FlowSorts(); sorts.ClearTable(); DataTable dt = ds.Tables["WF_FlowSort"]; // sorts = QueryObject.InitEntitiesByDataTable(sorts, dt, null) as FlowSorts; foreach (FlowSort item in sorts) { item.DirectInsert(); //插入数据. } #endregion 1 装载流程基础表数据. #region 2 组织结构. ds = new DataSet(); ds.ReadXml(path + "\\PortTables.xml"); //Port_Emp. Emps emps = new Emps(); emps.ClearTable(); dt = ds.Tables["Port_Emp"]; emps = QueryObject.InitEntitiesByDataTable(emps, dt, null) as Emps; foreach (Emp item in emps) { item.DirectInsert(); //插入数据. } //Depts. Depts depts = new Depts(); depts.ClearTable(); dt = ds.Tables["Port_Dept"]; depts = QueryObject.InitEntitiesByDataTable(depts, dt, null) as Depts; foreach (Dept item in depts) { item.DirectInsert(); //插入数据. } //Stations. Stations stas = new Stations(); stas.ClearTable(); dt = ds.Tables["Port_Station"]; stas = QueryObject.InitEntitiesByDataTable(stas, dt, null) as Stations; foreach (Station item in stas) { item.DirectInsert(); //插入数据. } //EmpDepts. EmpDepts eds = new EmpDepts(); eds.ClearTable(); dt = ds.Tables["Port_EmpDept"]; eds = QueryObject.InitEntitiesByDataTable(eds, dt, null) as EmpDepts; foreach (EmpDept item in eds) { item.DirectInsert(); //插入数据. } //EmpStations. EmpStations ess = new EmpStations(); ess.ClearTable(); dt = ds.Tables["Port_EmpStation"]; ess = QueryObject.InitEntitiesByDataTable(ess, dt, null) as EmpStations; foreach (EmpStation item in ess) { item.DirectInsert(); //插入数据. } #endregion 2 组织结构. #region 3 恢复系统数据. ds = new DataSet(); ds.ReadXml(path + "\\SysTables.xml"); //枚举Main. SysEnumMains sems = new SysEnumMains(); sems.ClearTable(); dt = ds.Tables["Sys_EnumMain"]; sems = QueryObject.InitEntitiesByDataTable(sems, dt, null) as SysEnumMains; foreach (SysEnumMain item in sems) { item.DirectInsert(); //插入数据. } //枚举. SysEnums ses = new SysEnums(); ses.ClearTable(); dt = ds.Tables["Sys_Enum"]; ses = QueryObject.InitEntitiesByDataTable(ses, dt, null) as SysEnums; foreach (SysEnum item in ses) { item.DirectInsert(); //插入数据. } ////Sys_FormTree. //BP.Sys.SysFormTrees sfts = new SysFormTrees(); //sfts.ClearTable(); //dt = ds.Tables["Sys_FormTree"]; //sfts = QueryObject.InitEntitiesByDataTable(sfts, dt, null) as SysFormTrees; //foreach (SysFormTree item in sfts) //{ // try // { // item.DirectInsert(); //插入数据. // } // catch // { // } //} #endregion 3 恢复系统数据. #region 4.备份表单相关数据. if (1 == 2) { string pathOfTables = path + "\\SFTables"; System.IO.Directory.CreateDirectory(pathOfTables); SFTables tabs = new SFTables(); tabs.RetrieveAll(); foreach (SFTable item in tabs) { if (item.No.Contains(".")) { continue; } string sql = "SELECT * FROM " + item.No; ds = new DataSet(); ds.Tables.Add(BP.DA.DBAccess.RunSQLReturnTable(sql)); ds.WriteXml(pathOfTables + "\\" + item.No + ".xml"); } } #endregion 4 备份表单相关数据. #region 5.恢复表单数据. //删除所有的流程数据. MapDatas mds = new MapDatas(); mds.RetrieveAll(); foreach (MapData fl in mds) { //if (fl.FK_FormTree.Length > 1 || fl.FK_FrmSort.Length > 1) // continue; fl.Delete(); //删除流程. } //清除数据. SysFormTrees fss = new SysFormTrees(); fss.ClearTable(); // 调度表单文件。 string frmPath = path + "\\Form"; DirectoryInfo dirInfo = new DirectoryInfo(frmPath); DirectoryInfo[] dirs = dirInfo.GetDirectories(); foreach (DirectoryInfo item in dirs) { if (item.FullName.Contains(".svn")) { continue; } string[] fls = System.IO.Directory.GetFiles(item.FullName); if (fls.Length == 0) { continue; } SysFormTree fs = new SysFormTree(); fs.No = item.Name.Substring(0, item.Name.IndexOf('.')); fs.Name = item.Name.Substring(item.Name.IndexOf('.')); fs.ParentNo = "0"; fs.Insert(); foreach (string f in fls) { try { msg += "@开始调度表单模板文件:" + f; System.IO.FileInfo info = new System.IO.FileInfo(f); if (info.Extension != ".xml") { continue; } ds = new DataSet(); ds.ReadXml(f); MapData md = MapData.ImpMapData(ds, false); md.FK_FrmSort = fs.No; md.Update(); } catch (Exception ex) { msg += "@调度失败,文件:" + f + ",异常信息:" + ex.Message; } } } #endregion 5.恢复表单数据. #region 6.恢复流程数据. //删除所有的流程数据. Flows flsEns = new Flows(); flsEns.RetrieveAll(); foreach (Flow fl in flsEns) { fl.DoDelete(); //删除流程. } dirInfo = new DirectoryInfo(path + "\\Flow\\"); dirs = dirInfo.GetDirectories(); //删除数据. FlowSorts fsRoots = new FlowSorts(); fsRoots.ClearTable(); //生成流程树. FlowSort fsRoot = new FlowSort(); fsRoot.No = "99"; fsRoot.Name = "流程树"; fsRoot.ParentNo = "0"; fsRoot.DirectInsert(); foreach (DirectoryInfo dir in dirs) { if (dir.FullName.Contains(".svn")) { continue; } string[] fls = System.IO.Directory.GetFiles(dir.FullName); if (fls.Length == 0) { continue; } FlowSort fs = new FlowSort(); fs.No = dir.Name.Substring(0, dir.Name.IndexOf('.')); fs.Name = dir.Name.Substring(3); fs.ParentNo = fsRoot.No; fs.Insert(); foreach (string filePath in fls) { msg += "@开始调度流程模板文件:" + filePath; Flow myflow = BP.WF.Flow.DoLoadFlowTemplate(fs.No, filePath, ImpFlowTempleteModel.AsTempleteFlowNo); msg += "@流程:" + myflow.Name + "装载成功。"; System.IO.FileInfo info = new System.IO.FileInfo(filePath); myflow.Name = info.Name.Replace(".xml", ""); if (myflow.Name.Substring(2, 1) == ".") { myflow.Name = myflow.Name.Substring(3); } myflow.DirectUpdate(); } } #endregion 6.恢复流程数据. BP.DA.Log.DefaultLogWriteLineInfo(msg); //删除多余的空格. BP.WF.DTS.DeleteBlankGroupField dts = new DeleteBlankGroupField(); dts.Do(); //执行生成签名. GenerSiganture gs = new GenerSiganture(); gs.Do(); return(msg); }
protected void Page_Load(object sender, EventArgs e) { this.Title = "编码表编辑"; if (this.DoType == "Del") { MapAttrs attrs = new MapAttrs(); attrs.Retrieve(MapAttrAttr.UIBindKey, this.RefNo); if (attrs.Count != 0) { this.UCSys1.AddFieldSet("<a href='SFTableList.aspx' ><img src='./../../Img/Btn/Home.gif' border=0/>返回列表</a> - 删除确认"); this.UCSys1.Add("此编码表已经被其它的字段所引用,您不能删除它。"); this.UCSys1.AddH2("<a href='SFTableList.aspx' >返回列表</a>"); this.UCSys1.AddFieldSetEnd(); return; } this.UCSys1.AddFieldSet("<a href='SFTableList.aspx' ><img src='./../../Img/Btn/Home.gif' border=0/>返回列表</a> - 删除确认"); SFTable m = new SFTable(this.RefNo); this.UCSys1.AddH2("<a href='SFTableList.aspx?RefNo=" + this.RefNo + "&DoType=DelReal' >删除:" + m.Name + " 确认.</a>"); this.UCSys1.AddFieldSetEnd(); return; } if (this.DoType == "DelReal") { SFTable m = new SFTable(); m.No = this.RefNo; m.Delete(); SFTables ses = new SFTables(); // ses.Delete(SFTableAttr.SFTableKey, this.RefNo); this.Response.Redirect("SFTableList.aspx", true); return; } if (this.DoType == "New") { this.BindNew(); return; } if (this.RefNo != null) { this.BindIt(); return; } this.UCSys1.AddTable("class=Table width=500px"); this.UCSys1.AddCaption("<img src='./../../Img/Btn/Home.gif' border=0/>列表 - <a href='SFTableList.aspx?DoType=New' ><img border=0 src='./../../Img/Btn/New.gif' >新建</a>"); this.UCSys1.AddTR(); this.UCSys1.AddTDTitle("序"); this.UCSys1.AddTDTitle("编号"); this.UCSys1.AddTDTitle("名称"); //this.UCSys1.AddTDTitle("类型"); this.UCSys1.AddTDTitle("描述"); this.UCSys1.AddTDTitle("操作"); this.UCSys1.AddTREnd(); SFTables sems = new SFTables(); sems.RetrieveAll(); int i = 0; foreach (SFTable se in sems) { i++; this.UCSys1.AddTR(); this.UCSys1.AddTDIdx(i); this.UCSys1.AddTD(se.No); this.UCSys1.AddTDA("SFTableList.aspx?RefNo=" + se.No, se.Name); // this.UCSys1.AddTD(se.SFTableTypeT); this.UCSys1.AddTD(se.TableDesc); this.UCSys1.AddTDA("SFTableList.aspx?RefNo=" + se.No + "&DoType=Del", "<img src='./../../Img/Btn/Delete.gif' border=0 />删除"); //switch (se.HisSFTableType) //{ // case SFTableType.SFTable: // this.UCSys1.AddTDA("SFTableList.aspx?RefNo=" + se.No + "&DoType=Del", "<img src='./../../Img/Btn/Delete.gif' border=0 />删除"); // break; // case SFTableType.ClsLab: // case SFTableType.SysTable: // default: // this.UCSys1.AddTD(); // break; //} this.UCSys1.AddTREnd(); } this.UCSys1.AddTableEnd(); }
/// <summary> /// 初始化sf0. @于庆海,新方法. /// </summary> /// <returns></returns> public string SF0_Init() { string cl = "BP.En.Entities"; ArrayList al = ClassFactory.GetObjects(cl); //定义容器. DataTable dt = new DataTable(); dt.Columns.Add("No"); dt.Columns.Add("Name"); SFTables sfs = new SFTables(); sfs.RetrieveAll(); foreach (object obj in al) { Entities ens = obj as Entities; if (ens == null) { continue; } try { Entity en = ens.GetNewEntity; if (en == null) { continue; } if (en.EnMap.Attrs.Contains("No") == false) { continue; } if (sfs.Contains(ens.ToString()) == true) { continue; } DataRow dr = dt.NewRow(); dr["No"] = ens.ToString(); if (en.IsTreeEntity) { dr["Name"] = en.EnMap.EnDesc + "(树结构) " + ens.ToString(); } else { dr["Name"] = en.EnMap.EnDesc + " " + ens.ToString(); } dt.Rows.Add(dr); } catch { } } return(BP.Tools.Json.ToJson(dt)); }
/// <summary> /// 执行 /// </summary> /// <returns>返回执行结果</returns> public override object Do() { string path = "C:\\CCFlowTemplete" + DateTime.Now.ToString("yy年MM月dd日HH时mm分ss秒"); if (System.IO.Directory.Exists(path) == false) { System.IO.Directory.CreateDirectory(path); } #region 1.备份流程类别信息 DataSet dsFlows = new DataSet(); //WF_FlowSort DataTable dt = DBAccess.RunSQLReturnTable("SELECT * FROM WF_FlowSort"); dt.TableName = "WF_FlowSort"; dsFlows.Tables.Add(dt); dsFlows.WriteXml(path + "\\FlowTables.xml"); #endregion 备份流程类别信息. #region 2.备份组织结构. DataSet dsPort = new DataSet(); //emps dt = DBAccess.RunSQLReturnTable("SELECT * FROM Port_Emp"); dt.TableName = "Port_Emp"; dsPort.Tables.Add(dt); //Port_Dept dt = DBAccess.RunSQLReturnTable("SELECT * FROM Port_Dept"); dt.TableName = "Port_Dept"; dsPort.Tables.Add(dt); //Port_Station dt = DBAccess.RunSQLReturnTable("SELECT * FROM Port_Station"); dt.TableName = "Port_Station"; dsPort.Tables.Add(dt); //Port_EmpStation dt = DBAccess.RunSQLReturnTable("SELECT * FROM Port_DeptEmpStation"); dt.TableName = "Port_DeptEmpStation"; dsPort.Tables.Add(dt); dsPort.WriteXml(path + "\\PortTables.xml"); #endregion 备份表单相关数据. #region 3.备份系统数据 DataSet dsSysTables = new DataSet(); //Sys_EnumMain dt = DBAccess.RunSQLReturnTable("SELECT * FROM Sys_EnumMain"); dt.TableName = "Sys_EnumMain"; dsSysTables.Tables.Add(dt); //Sys_Enum dt = DBAccess.RunSQLReturnTable("SELECT * FROM Sys_Enum"); dt.TableName = "Sys_Enum"; dsSysTables.Tables.Add(dt); //Sys_FormTree dt = DBAccess.RunSQLReturnTable("SELECT * FROM Sys_FormTree"); dt.TableName = "Sys_FormTree"; dsSysTables.Tables.Add(dt); dsSysTables.WriteXml(path + "\\SysTables.xml"); #endregion 备份系统数据. #region 4.备份表单相关数据. string pathOfTables = path + "\\SFTables"; System.IO.Directory.CreateDirectory(pathOfTables); SFTables tabs = new SFTables(); tabs.RetrieveAll(); foreach (SFTable item in tabs) { if (item.No.Contains(".")) { continue; } if (item.SrcType != SrcType.CreateTable) { continue; } try { string sql = "SELECT * FROM " + item.No + " "; DataSet ds = new DataSet(); ds.Tables.Add(BP.DA.DBAccess.RunSQLReturnTable(sql)); ds.WriteXml(pathOfTables + "\\" + item.No + ".xml"); } catch { } } #endregion 备份表单相关数据. #region 5.备份流程. Flows fls = new Flows(); fls.RetrieveAllFromDBSource(); foreach (Flow fl in fls) { FlowSort fs = new FlowSort(); fs.No = fl.FK_FlowSort; fs.RetrieveFromDBSources(); string pathDir = path + "\\Flow\\" + fs.No + "." + fs.Name + "\\"; if (System.IO.Directory.Exists(pathDir) == false) { System.IO.Directory.CreateDirectory(pathDir); } fl.DoExpFlowXmlTemplete(pathDir); } #endregion 备份流程. #region 6.备份表单. MapDatas mds = new MapDatas(); mds.RetrieveAllFromDBSource(); foreach (MapData md in mds) { if (md.FK_FrmSort.Length < 2) { continue; } SysFormTree fs = new SysFormTree(); fs.No = md.FK_FormTree; fs.RetrieveFromDBSources(); string pathDir = path + "\\Form\\" + fs.No + "." + fs.Name; if (System.IO.Directory.Exists(pathDir) == false) { System.IO.Directory.CreateDirectory(pathDir); } DataSet ds = BP.Sys.CCFormAPI.GenerHisDataSet(md.No); ds.WriteXml(pathDir + "\\" + md.Name + ".xml"); } #endregion 备份表单. return("执行成功,存放路径:" + path); }