/// <summary> /// 生成所有表单元素. /// </summary> /// <returns></returns> public string CCForm_AllElements_ResponseJson() { try { DataSet ds = new DataSet(); MapData mapData = new MapData(this.FK_MapData); //属性. MapAttrs attrs = new MapAttrs(this.FK_MapData); attrs.Retrieve(MapAttrAttr.FK_MapData, this.FK_MapData, MapAttrAttr.UIVisible, 1); ds.Tables.Add(attrs.ToDataTableField("Sys_MapAttr")); FrmBtns btns = new FrmBtns(this.FK_MapData); ds.Tables.Add(btns.ToDataTableField("Sys_FrmBtn")); FrmRBs rbs = new FrmRBs(this.FK_MapData); ds.Tables.Add(rbs.ToDataTableField("Sys_FrmRB")); FrmLabs labs = new FrmLabs(this.FK_MapData); ds.Tables.Add(labs.ToDataTableField("Sys_FrmLab")); FrmLinks links = new FrmLinks(this.FK_MapData); ds.Tables.Add(links.ToDataTableField("Sys_FrmLink")); FrmImgs imgs = new FrmImgs(this.FK_MapData); ds.Tables.Add(imgs.ToDataTableField("Sys_FrmImg")); FrmImgAths imgAths = new FrmImgAths(this.FK_MapData); ds.Tables.Add(imgAths.ToDataTableField("Sys_FrmImgAth")); FrmAttachments aths = new FrmAttachments(this.FK_MapData); ds.Tables.Add(aths.ToDataTableField("Sys_FrmAttachment")); MapDtls dtls = new MapDtls(this.FK_MapData); ds.Tables.Add(dtls.ToDataTableField("Sys_MapDtl")); FrmLines lines = new FrmLines(this.FK_MapData); ds.Tables.Add(lines.ToDataTableField("Sys_FrmLine")); BP.Sys.FrmUI.MapFrameExts mapFrameExts = new BP.Sys.FrmUI.MapFrameExts(this.FK_MapData); ds.Tables.Add(mapFrameExts.ToDataTableField("Sys_MapFrame")); //组织节点组件信息. string sql = ""; if (this.FK_Node > 100) { sql += "select '轨迹图' AS Name,'FlowChart' AS No,FrmTrackSta Sta,FrmTrack_X X,FrmTrack_Y Y,FrmTrack_H H,FrmTrack_W W from WF_Node WHERE nodeid=" + SystemConfig.AppCenterDBVarStr + "nodeid"; sql += " union select '审核组件'AS Name, 'FrmCheck'AS No,FWCSta Sta,FWC_X X,FWC_Y Y,FWC_H H, FWC_W W from WF_Node WHERE nodeid=" + SystemConfig.AppCenterDBVarStr + "nodeid"; sql += " union select '子流程' AS Name,'SubFlowDtl'AS No,SFSta Sta,SF_X X,SF_Y Y,SF_H H, SF_W W from WF_Node WHERE nodeid=" + SystemConfig.AppCenterDBVarStr + "nodeid"; sql += " union select '子线程' AS Name, 'ThreadDtl'AS No,FrmThreadSta Sta,FrmThread_X X,FrmThread_Y Y,FrmThread_H H,FrmThread_W W from WF_Node WHERE nodeid=" + SystemConfig.AppCenterDBVarStr + "nodeid"; sql += " union select '流转自定义' AS Name,'FrmTransferCustom' AS No,FTCSta Sta,FTC_X X,FTC_Y Y,FTC_H H,FTC_W W FROM WF_Node WHERE nodeid=" + SystemConfig.AppCenterDBVarStr + "nodeid"; Paras ps = new Paras(); ps.SQL = sql; ps.Add("nodeid", this.FK_Node); DataTable dt = null; try { dt = DBAccess.RunSQLReturnTable(ps); } catch (Exception ex) { FrmSubFlow sb = new FrmSubFlow(); sb.CheckPhysicsTable(); TransferCustom tc = new TransferCustom(); tc.CheckPhysicsTable(); FrmThread ft = new FrmThread(); ft.CheckPhysicsTable(); FrmTrack ftd = new FrmTrack(); ftd.CheckPhysicsTable(); FrmTransferCustom ftd1 = new FrmTransferCustom(); ftd1.CheckPhysicsTable(); throw ex; } dt.TableName = "FigureCom"; if (SystemConfig.AppCenterDBType == DBType.Oracle || SystemConfig.AppCenterDBType == DBType.PostgreSQL) { // figureComCols = "Name,No,Sta,X,Y,H,W"; dt.Columns[0].ColumnName = "Name"; dt.Columns[1].ColumnName = "No"; dt.Columns[2].ColumnName = "Sta"; dt.Columns[3].ColumnName = "X"; dt.Columns[4].ColumnName = "Y"; dt.Columns[5].ColumnName = "H"; dt.Columns[6].ColumnName = "W"; } ds.Tables.Add(dt); } return(BP.Tools.Json.ToJson(ds)); } catch (Exception ex) { return("err@" + ex.Message); } }
/// <summary> /// 执行旧版本的兼容性检查. /// </summary> public string DoCheckFixFrmForUpdateVer() { // 更新状态. DBAccess.RunSQL("UPDATE Sys_GroupField SET CtrlType='' WHERE CtrlType IS NULL"); DBAccess.RunSQL("UPDATE Sys_GroupField SET CtrlID='' WHERE CtrlID IS NULL"); DBAccess.RunSQL("UPDATE Sys_GroupField SET CtrlID='' WHERE CtrlID IS NULL"); //删除重影数据. DBAccess.RunSQL("DELETE FROM Sys_GroupField WHERE CtrlType='FWC' and CTRLID is null"); //一直遇到遇到自动变长的问题, 强制其修复过来. DBAccess.RunSQL("UPDATE Sys_Mapattr SET colspan=3 WHERE UIHeight<=38 AND colspan=4"); string str = ""; //处理失去分组的字段. string sql = "SELECT MyPK FROM Sys_MapAttr WHERE FK_MapData='" + this.No + "' AND GroupID NOT IN (SELECT OID FROM Sys_GroupField WHERE FrmID='" + this.No + "' AND ( CtrlType='' OR CtrlType IS NULL) ) OR GroupID IS NULL "; MapAttrs attrs = new MapAttrs(); attrs.RetrieveInSQL(sql); if (attrs.Count != 0) { GroupField gf = null; GroupFields gfs = new GroupFields(this.No); foreach (GroupField mygf in gfs) { if (mygf.CtrlID == "") { gf = mygf; } } if (gf == null) { gf = new GroupField(); gf.Lab = "基本信息"; gf.FrmID = this.No; gf.Insert(); } //设置GID. foreach (MapAttr attr in attrs) { attr.Update(MapAttrAttr.GroupID, gf.OID); } } //从表. MapDtls dtls = new MapDtls(this.No); foreach (MapDtl dtl in dtls) { GroupField gf = new GroupField(); int i = gf.Retrieve(GroupFieldAttr.CtrlID, dtl.No, GroupFieldAttr.FrmID, this.No); if (i == 1) { continue; } //GroupField gf = new GroupField(); //if (gf.IsExit(GroupFieldAttr.CtrlID, dtl.No) == true && !DataType.IsNullOrEmpty(gf.CtrlType)) // continue; gf.Lab = dtl.Name; gf.CtrlID = dtl.No; gf.CtrlType = "Dtl"; gf.FrmID = dtl.FK_MapData; gf.DirectSave(); str += "@为从表" + dtl.Name + " 增加了分组."; } // 框架. MapFrames frams = new MapFrames(this.No); foreach (MapFrame fram in frams) { GroupField gf = new GroupField(); int i = gf.Retrieve(GroupFieldAttr.CtrlID, fram.MyPK, GroupFieldAttr.FrmID, this.No); if (i == 1) { continue; } gf.Lab = fram.Name; gf.CtrlID = fram.MyPK; gf.CtrlType = "Frame"; gf.EnName = fram.FK_MapData; gf.Insert(); str += "@为框架 " + fram.Name + " 增加了分组."; } // 附件. FrmAttachments aths = new FrmAttachments(this.No); foreach (FrmAttachment ath in aths) { if (ath.IsVisable == false) { continue; } GroupField gf = new GroupField(); int i = gf.Retrieve(GroupFieldAttr.CtrlID, ath.MyPK, GroupFieldAttr.FrmID, this.No); if (i == 1) { continue; } gf.Lab = ath.Name; gf.CtrlID = ath.MyPK; gf.CtrlType = "Ath"; gf.FrmID = ath.FK_MapData; gf.Insert(); str += "@为附件 " + ath.Name + " 增加了分组."; } if (this.IsNodeFrm == true) { FrmNodeComponent conn = new FrmNodeComponent(this.NodeID); conn.Update(); } //删除重复的数据, 比如一个从表显示了多个分组里. 增加此部分. if (SystemConfig.AppCenterDBType == DBType.Oracle) { sql = "SELECT * FROM (SELECT FrmID,CtrlID,CtrlType, count(*) as Num FROM sys_groupfield WHERE CtrlID!='' GROUP BY FrmID,CtrlID,CtrlType ) WHERE Num > 1"; } else { sql = "SELECT * FROM (SELECT FrmID,CtrlID,CtrlType, count(*) as Num FROM sys_groupfield WHERE CtrlID!='' GROUP BY FrmID,CtrlID,CtrlType ) AS A WHERE A.Num > 1"; } DataTable dt = DBAccess.RunSQLReturnTable(sql); foreach (DataRow dr in dt.Rows) { string enName = dr[0].ToString(); string ctrlID = dr[1].ToString(); string ctrlType = dr[2].ToString(); GroupFields gfs = new GroupFields(); gfs.Retrieve(GroupFieldAttr.FrmID, enName, GroupFieldAttr.CtrlID, ctrlID, GroupFieldAttr.CtrlType, ctrlType); if (gfs.Count <= 1) { continue; } foreach (GroupField gf in gfs) { gf.Delete(); //删除其中的一个. break; } } if (str == "") { return("检查成功."); } return(str + ", @@@ 检查成功。"); }