/// <summary> /// 与业务表数据同步 /// </summary> /// <returns></returns> public string DTSBTable_Save() { Flow flow = new Flow(this.FK_Flow); BP.WF.Template.FlowDTSWay dtsWay = (BP.WF.Template.FlowDTSWay) this.GetRequestValInt("RB_DTSWay"); flow.DTSWay = dtsWay; if (flow.DTSWay == FlowDTSWay.None) { flow.Update(); return("保存成功."); } flow.DTSDBSrc = this.GetRequestVal("DDL_DBSrc"); flow.DTSBTable = this.GetRequestVal("DDL_Table"); DTSField field = (DTSField)this.GetRequestValInt("DTSField"); if (field == 0) { field = DTSField.SameNames; } flow.DTSField = field; SFDBSrc s = new SFDBSrc("local"); if (field == DTSField.SameNames) { DataTable dt = s.GetColumns(flow.PTable); s = new SFDBSrc(flow.DTSDBSrc); // this.src); DataTable ywDt = s.GetColumns(flow.DTSBTable); // this.ywTableName); string str = ""; string ywStr = ""; foreach (DataRow ywDr in ywDt.Rows) { foreach (DataRow dr in dt.Rows) { if (ywDr["No"].ToString().ToUpper() == dr["No"].ToString().ToUpper()) { if (dr["No"].ToString().ToUpper() == "OID") { flow.DTSBTablePK = "OID"; } str += dr["No"].ToString() + ","; ywStr += ywDr["No"].ToString() + ","; } } } if (!DataType.IsNullOrEmpty(str)) { flow.DTSFields = str.TrimEnd(',') + "@" + ywStr.TrimEnd(','); } else { PubClass.Alert("未检测到业务主表【" + flow.PTable + "】与表【" + flow.DTSBTable + "】有相同的字段名."); return("");//不执行保存 } } else//按设置的字段匹配 检查在 { try { s = new SFDBSrc("local"); string str = flow.DTSFields; string[] arr = str.Split('@'); string sql = "SELECT " + arr[0] + " FROM " + flow.PTable; s.RunSQL(sql); s = new SFDBSrc(flow.DTSDBSrc); sql = "SELECT " + arr[1] + ", " + flow.DTSBTablePK + " FROM " + flow.DTSBTable; s.RunSQL(sql); } catch { //PubClass.Alert(ex.Message); PubClass.Alert("设置的字段有误.【" + flow.DTSFields + "】"); return("");//不执行保存 } } flow.Update(); return(flow.ToJson()); }
/// <summary> /// 保存数据同步 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void BtnSave_Click(object sender, EventArgs e) { Flow flow = new Flow(this.FK_Flow); #region 步 if (this.RB_DTSWay0.Checked) { flow.DTSWay = FlowDTSWay.None; } #endregion #region 步 if (this.RB_DTSWay1.Checked) { flow.DTSDBSrc = this.DDL_DBSrc.SelectedValue; flow.DTSBTable = this.DDL_Table.SelectedValue; DTSField field = DTSField.SameNames; if (this.RB_DTSField1.Checked) { field = DTSField.SpecField; } flow.DTSField = field; FlowDTSTime time = FlowDTSTime.AllNodeSend; if (this.RB_DTSTime1.Checked) { time = FlowDTSTime.SpecNodeSend; } if (this.RB_DTSTime2.Checked) { time = FlowDTSTime.WhenFlowOver; } if (time == FlowDTSTime.SpecNodeSend) { string specNodes = this.HiddenField.Value.TrimEnd(','); if (string.IsNullOrEmpty(specNodes)) { PubClass.Alert("没有设置要同步的节点"); return; } else { flow.DTSSpecNodes = specNodes.TrimEnd(','); } } flow.DTSTime = time; flow.DTSWay = FlowDTSWay.Syn; #region 字段名相同 SFDBSrc s = new SFDBSrc("local"); if (field == DTSField.SameNames) { DataTable dt = s.GetColumns(flow.PTable); s = new SFDBSrc(this.DDL_DBSrc.SelectedValue); // this.src); DataTable ywDt = s.GetColumns(this.DDL_Table.SelectedValue); // this.ywTableName); string str = ""; string ywStr = ""; foreach (DataRow ywDr in ywDt.Rows) { foreach (DataRow dr in dt.Rows) { if (ywDr["No"].ToString().ToUpper() == dr["No"].ToString().ToUpper()) { if (dr["No"].ToString().ToUpper() == "OID") { flow.DTSBTablePK = "OID"; } str += dr["No"].ToString() + ","; ywStr += ywDr["No"].ToString() + ","; } } } if (!string.IsNullOrEmpty(str)) { flow.DTSFields = str.TrimEnd(',') + "@" + ywStr.TrimEnd(','); } else { PubClass.Alert("未检测到业务主表【" + flow.PTable + "】与表【" + this.DDL_Table.SelectedValue + "】有相同的字段名."); return;//不执行保存 } } else//按设置的字段匹配 检查在 { try { s = new SFDBSrc("local"); string str = flow.DTSFields; string[] arr = str.Split('@'); string sql = "SELECT " + arr[0] + " FROM " + flow.PTable; s.RunSQL(sql); s = new SFDBSrc(this.DDL_DBSrc.SelectedValue); sql = "SELECT " + arr[1] + ", " + flow.DTSBTablePK + " FROM " + flow.DTSBTable; s.RunSQL(sql); } catch { //PubClass.Alert(ex.Message); PubClass.Alert("设置的字段有误.【" + flow.DTSFields + "】"); return;//不执行保存 } } #endregion } #endregion flow.Update(); }