/// <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 void AddSFTable() { this.Title = "增加新字段向导"; this.Pub1.AddTable(); this.Pub1.AddCaption("<a href='Do.aspx?DoType=AddF&MyPK=" + this.MyPK + "&Idx=" + this.Idx + "'>增加新字段向导</a> - 增加外键字段 - <a href='SFTable.aspx?DoType=New&MyPK=" + this.MyPK + "&Idx=" + this.Idx + "' > 新建表</a>"); this.Pub1.AddTR(); this.Pub1.AddTDTitle("Idx"); this.Pub1.AddTDTitle("编号(点击增加到表单)"); this.Pub1.AddTDTitle("名称"); this.Pub1.AddTDTitle("类别"); this.Pub1.AddTDTitle("描述/编辑"); this.Pub1.AddTDTitle("编辑数据"); this.Pub1.AddTREnd(); BP.Sys.SFTables ens = new SFTables(); QueryObject qo = new QueryObject(ens); this.Pub2.BindPageIdx(qo.GetCount(), pageSize, this.PageIdx, "Do.aspx?DoType=AddSFTable&MyPK=" + this.MyPK + "&Idx=&GroupField"); qo.DoQuery("No", pageSize, this.PageIdx); bool is1 = false; int Idx = 0; foreach (BP.Sys.SFTable sem in ens) { Idx++; //is1 = this.Pub1.AddTR(is1); is1 = this.Pub1.AddTR(is1); this.Pub1.AddTDIdx(Idx); this.Pub1.AddTD("<a href=\"javascript:AddSFTable('" + this.MyPK + "','" + this.Idx + "','" + sem.No + "')\" >" + sem.No + "</a>"); this.Pub1.AddTD(sem.Name); if (sem.IsClass) { this.Pub1.AddTD("<a href=\"javascript:WinOpen('../Comm/Search.aspx?EnsName=" + sem.No + "','sg')\" ><img src='../Img/Btn/Edit.gif' border=0/>" + sem.TableDesc + "</a>"); } else { this.Pub1.AddTD("<a href=\"javascript:WinOpen('SFTable.aspx?DoType=Edit&MyPK=" + this.MyPK + "&Idx=" + this.Idx + "&RefNo=" + sem.No + "','sg')\" ><img src='../Img/Btn/Edit.gif' border=0/>" + sem.TableDesc + "</a>"); } if (sem.No.Contains(".")) { this.Pub1.AddTD(" "); } else { this.Pub1.AddTD("<a href=\"javascript:WinOpen('SFTableEditData.aspx?RefNo=" + sem.No + "');\" >编辑</a>"); } this.Pub1.AddTREnd(); } this.Pub1.AddTableEnd(); }
public void AddSFWS() { this.Title = "增加新WebService接口向导"; this.Pub1.AddTable(); this.Pub1.AddCaption("<a href='Do.aspx?DoType=AddF&MyPK=" + this.MyPK + "&Idx=" + this.Idx + "'><img src='/WF/Img/Btn/Back.gif' /> 返回</a> - WebService接口列表 - <a href='SFWS.aspx?DoType=New&MyPK=" + this.MyPK + "&Idx=" + this.Idx + "' >新建WebService接口</a>"); this.Pub1.AddTR(); this.Pub1.AddTDTitle("Idx"); this.Pub1.AddTDTitle("编号(点击增加到表单)"); this.Pub1.AddTDTitle("名称(点击名称编辑属性)"); this.Pub1.AddTDTitle("编码表类型"); this.Pub1.AddTDTitle("查看数据"); this.Pub1.AddTREnd(); BP.Sys.SFTables ens = new SFTables(); QueryObject qo = new QueryObject(ens); qo.AddWhere(BP.Sys.SFTableAttr.SrcType, (int)SrcType.WebServices); this.Pub2.BindPageIdx(qo.GetCount(), pageSize, this.PageIdx, "Do.aspx?DoType=AddSFWS&MyPK=" + this.MyPK + "&Idx=&GroupField"); qo.DoQuery("No", pageSize, this.PageIdx); if (ens.Count == 0) { //string html = "<a href='Do.aspx?DoType=AddF&MyPK=" + this.MyPK + "&Idx=" + this.Idx + "'><img src='/WF/Img/Btn/Back.gif' /> 返回</a> - 增加外键字段 - <a href='SFTable.aspx?DoType=New&MyPK=" + this.MyPK + "&Idx=" + this.Idx + "' >新建表</a>"; this.Pub1.AddTR(); this.Pub1.AddTDBigDoc("colspan=5", "注册到ccform的WebService接口为空,点击上面的新建表,进入创建向导。"); this.Pub1.AddTREnd(); this.Pub1.AddTableEnd(); return; } bool is1 = false; int idx = 0; foreach (BP.Sys.SFTable sem in ens) { idx++; is1 = this.Pub1.AddTR(is1); this.Pub1.AddTDIdx(idx); this.Pub1.AddTD(sem.No); this.Pub1.AddTD("<a href=\"javascript:WinOpen('SFWS.aspx?DoType=Edit&MyPK=" + this.MyPK + "&Idx=" + this.Idx + "&RefNo=" + sem.No + "','sg')\" ><img src='../Img/Btn/Edit.gif' border=0/>" + sem.Name + "</a>"); this.Pub1.AddTD(sem.CodeStructT); //编码表类型. this.Pub1.AddTD("<a href=\"javascript:WinOpen('SFTableEditData.aspx?RefNo=" + sem.No + "');\" >查看</a>"); this.Pub1.AddTREnd(); } this.Pub1.AddTableEnd(); }
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); }
/// <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)); }
public void AddSFTable() { BP.Sys.SFTables ens = new SFTables(); QueryObject qo = new QueryObject(ens); qo.AddWhere(BP.Sys.SFTableAttr.SrcType, (int)SrcType.TableOrView); this.Pub2.BindPageIdx(qo.GetCount(), pageSize, this.PageIdx, "Do.aspx?DoType=AddSFTable&MyPK=" + this.MyPK + "&Idx=&GroupField"); qo.DoQuery("No", pageSize, this.PageIdx); this.Title = "增加新字段向导"; this.Pub1.AddTable(); this.Pub1.AddCaption("<a href='Do.aspx?DoType=AddF&MyPK=" + this.MyPK + "&Idx=" + this.Idx + "'><img src='/WF/Img/Btn/Back.gif' /> 返回</a> - 外键列表 - <a href='SFTable.aspx?DoType=New&MyPK=" + this.MyPK + "&Idx=" + this.Idx + "' >新建表</a>"); this.Pub1.AddTR(); this.Pub1.AddTDTitle("Idx"); this.Pub1.AddTDTitle("编号(点击增加到表单)"); this.Pub1.AddTDTitle("名称(点击修改属性)"); this.Pub1.AddTDTitle("描述"); this.Pub1.AddTDTitle("编码表类型"); this.Pub1.AddTDTitle("编辑数据"); this.Pub1.AddTREnd(); if (ens.Count == 0) { //string html = "<a href='Do.aspx?DoType=AddF&MyPK=" + this.MyPK + "&Idx=" + this.Idx + "'><img src='/WF/Img/Btn/Back.gif' /> 返回</a> - 增加外键字段 - <a href='SFTable.aspx?DoType=New&MyPK=" + this.MyPK + "&Idx=" + this.Idx + "' >新建表</a>"; this.Pub1.AddTR(); this.Pub1.AddTDBigDoc("colspan=5", "注册到ccform的表为空,点击上面的新建表,进入创建向导。"); this.Pub1.AddTREnd(); this.Pub1.AddTableEnd(); return; } bool is1 = false; int Idx = 0; foreach (BP.Sys.SFTable sem in ens) { Idx++; //is1 = this.Pub1.AddTR(is1); is1 = this.Pub1.AddTR(is1); this.Pub1.AddTDIdx(Idx); this.Pub1.AddTD("<a href=\"javascript:AddSFTable('" + this.MyPK + "','" + this.Idx + "','" + sem.No + "')\" >" + sem.No + "</a>"); this.Pub1.AddTD("<a href=\"javascript:WinOpen('SFTable.aspx?DoType=Edit&MyPK=" + this.MyPK + "&Idx=" + this.Idx + "&RefNo=" + sem.No + "','sg')\" ><img src='../Img/Btn/Edit.gif' border=0/>" + sem.Name + "</a>"); this.Pub1.AddTD(sem.TableDesc); //描述. //编码表类型. this.Pub1.AddTD(sem.CodeStructT); if (sem.No.Contains(".")) { this.Pub1.AddTD("<a href=\"javascript:WinOpen('/WF/Comm/Search.aspx?EnsName=" + sem.No + "');\" >编辑数据</a>"); } else { this.Pub1.AddTD("<a href=\"javascript:WinOpen('SFTableEditData.aspx?RefNo=" + sem.No + "');\" >编辑数据</a>"); } this.Pub1.AddTREnd(); } this.Pub1.AddTableEnd(); }
/// <summary> /// 获取从表数据,用于显示dtl.htm /// </summary> /// <param name="frmID">表单ID</param> /// <param name="pkval">主键</param> /// <param name="atParas">参数</param> /// <param name="specDtlFrmID">指定明细表的参数,如果为空就标识主表数据,否则就是从表数据.</param> /// <returns>数据</returns> public static DataSet GenerDBForCCFormDtl(string frmID, MapDtl dtl, int pkval, string atParas) { //数据容器,就是要返回的对象. DataSet myds = new DataSet(); //映射实体. MapData md = new MapData(frmID); //实体. GEEntity wk = new GEEntity(frmID); wk.OID = pkval; if (wk.RetrieveFromDBSources() == 0) { wk.Insert(); } //把参数放入到 En 的 Row 里面。 if (DataType.IsNullOrEmpty(atParas) == false) { AtPara ap = new AtPara(atParas); foreach (string key in ap.HisHT.Keys) { try { if (wk.Row.ContainsKey(key) == true) //有就该变. { wk.Row[key] = ap.GetValStrByKey(key); } else { wk.Row.Add(key, ap.GetValStrByKey(key)); //增加他. } } catch (Exception ex) { throw new Exception(key); } } } #region 加载从表表单模版信息. DataTable Sys_MapDtl = dtl.ToDataTableField("Sys_MapDtl"); myds.Tables.Add(Sys_MapDtl); //明细表的表单描述 DataTable Sys_MapAttr = dtl.MapAttrs.ToDataTableField("Sys_MapAttr"); myds.Tables.Add(Sys_MapAttr); //明细表的配置信息. DataTable Sys_MapExt = dtl.MapExts.ToDataTableField("Sys_MapExt"); myds.Tables.Add(Sys_MapExt); #region 把从表的- 外键表/枚举 加入 DataSet. MapExts mes = dtl.MapExts; MapExt me = null; foreach (DataRow dr in Sys_MapAttr.Rows) { string lgType = dr["LGType"].ToString(); //不是枚举/外键字段 if (lgType.Equals("0")) { continue; } string uiBindKey = dr["UIBindKey"].ToString(); var mypk = dr["MyPK"].ToString(); #region 枚举字段 if (lgType.Equals("1")) { // 如果是枚举值, 判断是否存在. if (myds.Tables.Contains(uiBindKey) == true) { continue; } string mysql = "SELECT IntKey AS No, Lab as Name FROM Sys_Enum WHERE EnumKey='" + uiBindKey + "' ORDER BY IntKey "; DataTable dtEnum = DBAccess.RunSQLReturnTable(mysql); dtEnum.TableName = uiBindKey; dtEnum.Columns[0].ColumnName = "No"; dtEnum.Columns[1].ColumnName = "Name"; myds.Tables.Add(dtEnum); continue; } #endregion #region 外键字段 string UIIsEnable = dr["UIIsEnable"].ToString(); if (UIIsEnable.Equals("0")) //字段未启用 { continue; } // 检查是否有下拉框自动填充。 string keyOfEn = dr["KeyOfEn"].ToString(); #region 处理下拉框数据范围. for 小杨. me = mes.GetEntityByKey(MapExtAttr.ExtType, MapExtXmlList.AutoFullDLL, MapExtAttr.AttrOfOper, keyOfEn) as MapExt; if (me != null) //有范围限制时 { string fullSQL = me.Doc.Clone() as string; fullSQL = fullSQL.Replace("~", ","); fullSQL = BP.WF.Glo.DealExp(fullSQL, wk, null); DataTable dt = DBAccess.RunSQLReturnTable(fullSQL); dt.TableName = uiBindKey; dt.Columns[0].ColumnName = "No"; dt.Columns[1].ColumnName = "Name"; myds.Tables.Add(dt); continue; } #endregion 处理下拉框数据范围. // 判断是否存在. if (myds.Tables.Contains(uiBindKey) == true) { continue; } myds.Tables.Add(BP.Sys.PubClass.GetDataTableByUIBineKey(uiBindKey)); #endregion 外键字段 } #endregion 把从表的- 外键表/枚举 加入 DataSet. #endregion 加载从表表单模版信息. #region 把主表数据放入. if (BP.Sys.SystemConfig.IsBSsystem == true) { // 处理传递过来的参数。 foreach (string k in System.Web.HttpContext.Current.Request.QueryString.AllKeys) { wk.SetValByKey(k, System.Web.HttpContext.Current.Request.QueryString[k]); } } //重设默认值. wk.ResetDefaultVal(); //增加主表数据. DataTable mainTable = wk.ToDataTableField(md.No); mainTable.TableName = "MainTable"; myds.Tables.Add(mainTable); #endregion 把主表数据放入. #region 把从表的数据放入. GEDtls dtls = new GEDtls(dtl.No); QueryObject qo = null; try { qo = new QueryObject(dtls); switch (dtl.DtlOpenType) { case DtlOpenType.ForEmp: // 按人员来控制. qo.AddWhere(GEDtlAttr.RefPK, pkval); qo.addAnd(); qo.AddWhere(GEDtlAttr.Rec, WebUser.No); break; case DtlOpenType.ForWorkID: // 按工作ID来控制 qo.AddWhere(GEDtlAttr.RefPK, pkval); break; case DtlOpenType.ForFID: // 按流程ID来控制. qo.AddWhere(GEDtlAttr.FID, pkval); break; } } catch (Exception ex) { dtls.GetNewEntity.CheckPhysicsTable(); throw ex; } //条件过滤. if (dtl.FilterSQLExp != "") { string[] strs = dtl.FilterSQLExp.Split('='); qo.addAnd(); qo.AddWhere(strs[0], strs[1]); } //增加排序. // qo.addOrderByDesc( dtls.GetNewEntity.PKField ); //从表 DataTable dtDtl = qo.DoQueryToTable(); //查询所有动态SQL查询类型的字典表记录 SFTable sftable = null; DataTable dtsftable = null; DataRow[] drs = null; SFTables sftables = new SFTables(); sftables.Retrieve(SFTableAttr.SrcType, (int)SrcType.SQL); // 为明细表设置默认值. MapAttrs dtlAttrs = new MapAttrs(dtl.No); foreach (MapAttr attr in dtlAttrs) { #region 修改区分大小写. if (BP.DA.DBType.Oracle == SystemConfig.AppCenterDBType) { foreach (DataColumn dr in dtDtl.Columns) { var a = attr.KeyOfEn; var b = dr.ColumnName; if (attr.KeyOfEn.ToUpper().Equals(dr.ColumnName)) { dr.ColumnName = attr.KeyOfEn; continue; } if (attr.LGType == FieldTypeS.Enum || attr.LGType == FieldTypeS.FK) { if (dr.ColumnName.Equals(attr.KeyOfEn.ToUpper() + "TEXT")) { dr.ColumnName = attr.KeyOfEn + "Text"; } } } foreach (DataRow dr in dtDtl.Rows) { //本身是大写的不进行修改 if (DataType.IsNullOrEmpty(dr[attr.KeyOfEn] + "")) { dr[attr.KeyOfEn] = dr[attr.KeyOfEn.ToUpper()]; dr[attr.KeyOfEn.ToUpper()] = null; } } } #endregion 修改区分大小写. //处理增加动态SQL查询类型的下拉框选中值Text值,added by liuxc,2017-9-22 if (attr.LGType == FieldTypeS.FK && attr.UIIsEnable == false) { sftable = sftables.GetEntityByKey(attr.UIBindKey) as SFTable; if (sftable != null) { dtsftable = sftable.GenerHisDataTable; //为Text赋值 foreach (DataRow dr in dtDtl.Rows) { drs = dtsftable.Select("No='" + dr[attr.KeyOfEn] + "'"); if (drs.Length == 0) { continue; } dr[attr.KeyOfEn + "Text"] = drs[0]["Name"]; } } } //处理它的默认值. if (attr.DefValReal.Contains("@") == false) { continue; } foreach (DataRow dr in dtDtl.Rows) { dr[attr.KeyOfEn] = attr.DefVal; } } dtDtl.TableName = "DBDtl"; //修改明细表的名称. myds.Tables.Add(dtDtl); //加入这个明细表, 如果没有数据,xml体现为空. #endregion 把从表的数据放入. //放入一个空白的实体,用与获取默认值. GEDtl dtlBlank = dtls.GetNewEntity as GEDtl; dtlBlank.ResetDefaultVal(); myds.Tables.Add(dtlBlank.ToDataTableField("Blank")); return(myds); }
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> /// 执行 /// </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); }