void btn_Click(object sender, EventArgs e) { Nodes nds = new Nodes(); nds = BP.WF.Dev2Interface.WorkOpt_GetToNodes(this.FK_Flow, this.FK_Node, this.WorkID, this.FID); Button btn = (Button)sender; if (btn.ID == "Btn_Cancel") { string url = "../MyFlow.aspx?FK_Flow=" + this.FK_Flow + "&FK_Node=" + this.FK_Node + "&WorkID=" + this.WorkID + "&FID=" + this.FID; this.Response.Redirect(url, true); return; } //首先去找到开始节点的发起部门编号 string str = "select * from wf_generworkflow where WORKID='" + this.WorkID.ToString() + "'"; DataTable dtl = BP.DA.DBAccess.RunSQLReturnTable(str); string emps = ""; string sql = "select * from port_shipleader where FK_DEPT='" + dtl.Rows[0]["FK_DEPT"] + "'"; DataTable dt = BP.DA.DBAccess.RunSQLReturnTable(sql); foreach (DataRow row in dt.Rows) { BP.Web.Controls.RadioBtn rb = this.Pub1.GetRadioBtnByID("RB_" + row["FK_EMP"].ToString()); if (rb.Checked == false) { continue; } emps = row["FK_EMP"].ToString(); } if (emps.Length < 2) { this.Alert("您没有选择人员。"); return; } int toNodes = this.ToNodes; if (this.ToNodes == 0) { foreach (Node mynd in nds) { toNodes = mynd.NodeID; } } //设置人员. BP.WF.Dev2Interface.WorkOpt_SetAccepter(toNodes, this.WorkID, this.FID, emps, false); this.DoSend(); return; }
protected void Page_Load(object sender, EventArgs e) { //首先去找到开始节点的发起部门编号 string str = "select * from wf_generworkflow where WORKID='" + this.WorkID.ToString() + "'"; DataTable dtl = BP.DA.DBAccess.RunSQLReturnTable(str); //根据部门编号,查询所属的分管领导 string sql = "select * from port_shipleader where FK_DEPT='" + dtl.Rows[0]["FK_DEPT"] + "'"; DataTable dt = BP.DA.DBAccess.RunSQLReturnTable(sql); foreach (DataRow row in dt.Rows) { this.Pub1.AddBR(); this.Pub1.AddBR(); BP.Web.Controls.RadioBtn rb = new BP.Web.Controls.RadioBtn(); rb = new BP.Web.Controls.RadioBtn(); rb.GroupName = "s"; rb.Text = row["FK_EMPNAME"].ToString(); rb.ID = "RB_" + row["FK_EMP"].ToString(); rb.Attributes["onclick"] = "SetUnEable(this);"; this.Pub1.Add(rb); this.Pub1.AddBR(); } this.Pub1.AddBR(); this.Pub1.AddBR(); this.Pub1.Add(" "); this.Pub1.Add(" "); this.Pub1.Add(" "); this.Pub1.Add(" "); this.Pub1.Add(" "); this.Pub1.Add(" "); this.Pub1.Add(" "); this.Pub1.Add(" "); this.Pub1.Add(" "); this.Pub1.Add(" "); this.Pub1.Add(" "); this.Pub1.Add(" "); this.Pub1.Add(" "); this.Pub1.Add(" "); this.Pub1.Add(" "); this.Pub1.Add(" "); this.Pub1.Add(" "); this.Pub1.Add(" "); this.Pub1.Add(" "); this.Pub1.Add(" "); this.Pub1.Add(" "); this.Pub1.Add(" "); Button btn = new Button(); btn.ID = "To"; btn.Text = " 执 行 "; this.Pub1.Add(btn); btn.Click += new EventHandler(btn_Click); this.Pub1.Add(" "); this.Pub1.Add(" "); btn = new Button(); btn.ID = "Btn_Cancel"; btn.Text = "取消/返回"; this.Pub1.Add(btn); btn.Click += new EventHandler(btn_Click); this.Pub1.AddBR(); this.Pub1.AddBR(); }
protected void Page_Load(object sender, EventArgs e) { //获得当前节点到达的节点. Nodes nds = new Nodes(); if (this.ToNodes != null) { /*解决跳转问题.*/ string[] mytoNodes = this.ToNodes.Split(','); foreach (string str in mytoNodes) { if (string.IsNullOrEmpty(str) == true) { continue; } nds.AddEntity(new Node(int.Parse(str))); } } else { nds = BP.WF.Dev2Interface.WorkOpt_GetToNodes(this.FK_Flow, this.FK_Node, this.WorkID, this.FID); } //获得上次默认选择的节点. 2015-01-15. int lastSelectNodeID = BP.WF.Dev2Interface.WorkOpt_ToNodes_GetLasterSelectNodeID(this.FK_Flow, this.FK_Node); if (lastSelectNodeID == 0 && nds.Count != 0) { lastSelectNodeID = int.Parse(nds[0].PKVal.ToString()); } //检查是否有异表单。 bool isSubYBD = false; //异表单? foreach (Node mynd in nds) { BP.Web.Controls.RadioBtn rb = new BP.Web.Controls.RadioBtn(); if (mynd.NodeID == 0) { rb = new BP.Web.Controls.RadioBtn(); rb.GroupName = "s"; rb.Text = "<b>可以分发启动的异表单节点</b>"; rb.ID = "RB_SameSheet"; rb.Attributes["onclick"] = "RBSameSheet(this);"; if (this.IsPostBack == false && lastSelectNodeID == 0) { rb.Checked = true; } // 增加选择项. add 2015-01-15. if (this.IsPostBack == false && mynd.NodeID == lastSelectNodeID) { rb.Checked = true; } this.Pub1.Add(rb); this.Pub1.AddBR(); isSubYBD = true; continue; } //已有人员直接显示到人员选择器a标签上 秦15.2.5 string sql = "SELECT A.No,a.Name FROM Port_Emp A, WF_SelectAccper B WHERE A.No=B.FK_Emp AND B.FK_Node=" + mynd.NodeID + " AND B.WorkID=" + this.WorkID; DataTable dt = BP.DA.DBAccess.RunSQLReturnTable(sql); string addSpan = ""; if (dt.Rows.Count != 0) { for (int i = 0; i < dt.Rows.Count; i++) { if (i == 4) { addSpan += dt.Rows[i]["Name"].ToString() + "..."; break; } else { if (i == dt.Rows.Count - 1) { addSpan += dt.Rows[i]["Name"].ToString(); } else { addSpan += dt.Rows[i]["Name"].ToString() + ","; } } } addSpan = "<span style='color:black;'>(" + addSpan + ")</span>"; } if (isSubYBD == true) { /*如果是异表单.*/ CheckBox cb = new CheckBox(); cb.ID = "CB_" + mynd.NodeID; cb.Text = mynd.Name; this.Pub1.Add(" "); this.Pub1.Add(cb); if (this.IsPostBack == false && mynd.NodeID == lastSelectNodeID) { cb.Checked = true; } if (mynd.HisDeliveryWay == DeliveryWay.BySelected) { /*由上一步发送人员选择.*/ this.Pub1.Add(" - <a id=\"acc_link_" + mynd.NodeID + "\" href=\"javascript:WinShowModalDialog_Accepter('Accepter.aspx?FK_Flow=" + this.FK_Flow + "&FK_Node=" + this.FK_Node + "&ToNode=" + mynd.NodeID + "&WorkID=" + this.WorkID + "&FID=" + this.FID + "&type=1')\" >选择接受人员" + addSpan + "</a>"); } this.Pub1.AddBR(); continue; } else { rb = new BP.Web.Controls.RadioBtn(); rb.GroupName = "s"; rb.Text = mynd.Name; rb.ID = "RB_" + mynd.NodeID; rb.Attributes["onclick"] = "SetUnEable(this);"; this.Pub1.Add(rb); if (this.IsPostBack == false && mynd.NodeID == lastSelectNodeID) { rb.Checked = true; } if (mynd.HisDeliveryWay == DeliveryWay.BySelected) { /*由上一步发送人员选择.*/ this.Pub1.Add(" - <a id=\"acc_link_" + mynd.NodeID + "\" href=\"javascript:WinShowModalDialog_Accepter('Accepter.aspx?FK_Flow=" + this.FK_Flow + "&FK_Node=" + this.FK_Node + "&ToNode=" + mynd.NodeID + "&WorkID=" + this.WorkID + "&FID=" + this.FID + "&type=1')\" >选择接受人员" + addSpan + "</a>"); } this.Pub1.AddBR(); } } this.Pub1.AddHR(); Button btn = new Button(); btn.ID = "To"; BP.WF.Template.BtnLab btnlab = new BtnLab(this.FK_Node); btn.Text = " " + btnlab.SendLab + " "; this.Pub1.Add(btn); btn.Click += new EventHandler(btn_Click); btn = new Button(); btn.ID = "Btn_Cancel"; btn.Text = "取消/返回"; this.Pub1.Add(btn); btn.Click += new EventHandler(btn_Click); }
void btn_Click(object sender, EventArgs e) { Button btn = (Button)sender; if (btn.ID == "Btn_Cancel") { string url = "../MyFlow.aspx?FK_Flow=" + this.FK_Flow + "&FK_Node=" + this.FK_Node + "&WorkID=" + this.WorkID + "&FID=" + this.FID; this.Response.Redirect(url, true); return; } #region 计算出来到达的节点. //获得当前节点到达的节点. Nodes nds = new Nodes(); if (this.ToNodes != null) { /*解决跳转问题.*/ string[] mytoNodes = this.ToNodes.Split(','); foreach (string str in mytoNodes) { if (string.IsNullOrEmpty(str) == true) { continue; } nds.AddEntity(new Node(int.Parse(str))); } } else { nds = BP.WF.Dev2Interface.WorkOpt_GetToNodes(this.FK_Flow, this.FK_Node, this.WorkID, this.FID); } // 首先到非异表单去找. string toNodes = ""; foreach (Node mynd in nds) { if (mynd.HisRunModel == RunModel.SubThread && mynd.HisSubThreadType == SubThreadType.UnSameSheet) { continue; //如果是子线程节点. } if (mynd.NodeID == 0) { continue; } BP.Web.Controls.RadioBtn rb = this.Pub1.GetRadioBtnByID("RB_" + mynd.NodeID); if (rb.Checked == false) { continue; } toNodes = mynd.NodeID.ToString(); break; } if (toNodes == "") { // 如果在非异表单没有找到,就到异表单集合去找。 检查是否具有异表单的子线程. bool isHave = false; foreach (Node mynd in nds) { if (mynd.NodeID == 0) { isHave = true; } } if (isHave) { /*增加异表单的子线程*/ foreach (Node mynd in nds) { if (mynd.HisSubThreadType != SubThreadType.UnSameSheet) { continue; } CheckBox cb = this.Pub1.GetCBByID("CB_" + mynd.NodeID); if (cb == null) { continue; } if (cb.Checked == true) { toNodes += "," + mynd.NodeID; } } } } #endregion 计算出来选择的到达节点. if (toNodes == "") { this.Pub1.AddFieldSetRed("发送出现错误", "您没有选择到达的节点。"); return; } // 执行发送. string msg = ""; Node nd = new Node(this.FK_Node); Work wk = nd.HisWork; wk.OID = this.WorkID; wk.Retrieve(); try { string toNodeStr = int.Parse(FK_Flow) + "01"; //如果为开始节点 if (toNodeStr == toNodes) { //把参数更新到数据库里面. GenerWorkFlow gwf = new GenerWorkFlow(); gwf.WorkID = this.WorkID; gwf.RetrieveFromDBSources(); gwf.Paras_ToNodes = toNodes; gwf.Save(); WorkNode firstwn = new WorkNode(wk, nd); Node toNode = new Node(toNodeStr); msg = firstwn.NodeSend(toNode, gwf.Starter).ToMsgOfHtml(); } else { msg = BP.WF.Dev2Interface.WorkOpt_SendToNodes(this.FK_Flow, this.FK_Node, this.WorkID, this.FID, toNodes).ToMsgOfHtml(); } } catch (Exception ex) { this.Pub1.AddFieldSetRed("发送出现错误", ex.Message); return; } #region 处理通用的发送成功后的业务逻辑方法,此方法可能会抛出异常. try { //处理通用的发送成功后的业务逻辑方法,此方法可能会抛出异常. Glo.DealBuinessAfterSendWork(this.FK_Flow, this.WorkID, this.DoFunc, WorkIDs, this.CFlowNo, 0, null); } catch (Exception ex) { this.ToMsg(msg, ex.Message); return; } #endregion 处理通用的发送成功后的业务逻辑方法,此方法可能会抛出异常. /*处理转向问题.*/ switch (nd.HisTurnToDeal) { case TurnToDeal.SpecUrl: string myurl = nd.TurnToDealDoc.Clone().ToString(); if (myurl.Contains("&") == false) { myurl += "?1=1"; } myurl = BP.WF.Glo.DealExp(myurl, wk, null); myurl += "&FromFlow=" + this.FK_Flow + "&FromNode=" + this.FK_Node + "&PWorkID=" + this.WorkID + "&UserNo=" + WebUser.No + "&SID=" + WebUser.SID; this.Response.Redirect(myurl, true); return; case TurnToDeal.TurnToByCond: TurnTos tts = new TurnTos(this.FK_Flow); if (tts.Count == 0) { throw new Exception("@您没有设置节点完成后的转向条件。"); } foreach (TurnTo tt in tts) { tt.HisWork = wk; if (tt.IsPassed == true) { string url = tt.TurnToURL.Clone().ToString(); if (url.Contains("&") == false) { url += "?1=1"; } url = BP.WF.Glo.DealExp(url, wk, null); url += "&PFlowNo=" + this.FK_Flow + "&FromNode=" + this.FK_Node + "&PWorkID=" + this.WorkID + "&UserNo=" + WebUser.No + "&SID=" + WebUser.SID; this.Response.Redirect(url, true); return; } } #warning 为上海修改了如果找不到路径就让它按系统的信息提示。 this.ToMsg(msg, "info"); //throw new Exception("您定义的转向条件不成立,没有出口。"); break; default: this.ToMsg(msg, "info"); break; } return; }
protected void Page_Load(object sender, EventArgs e) { FindWorkerRole en = new FindWorkerRole(); en.OID = this.RefOID; if (en.OID != 0) { en.Retrieve(); } if (this.RefOID != 0 && this.S1 == null) { if (en.SortVal1 != "0") { this.Response.Redirect("Leader.aspx?S1=" + en.SortVal1 + "&RefOID=" + this.RefOID + "&FK_Flow=" + this.FK_Flow + "&FK_Node=" + this.FK_Node, true); return; } } #region 1级 this.UCS1.AddFieldSet("人员范围其它参数"); BP.Web.Controls.DDL ddl = new BP.Web.Controls.DDL(); ddl.ID = "DDL_S1"; // 第一纬度. ddl.AutoPostBack = true; ddl.Items.Add(new ListItem("当前提交人", "0")); ddl.Items.Add(new ListItem("指定节点的提交人", "1")); ddl.Items.Add(new ListItem("按表单字段指定的提交人", "2")); if (this.S1 != null) { ddl.SetSelectItem(this.S1); } else { ddl.SetSelectItem(en.SortVal1); } ddl.SelectedIndexChanged += new EventHandler(ddl_SelectedIndexChanged); this.UCS1.Add("选择人员"); this.UCS1.Add(ddl); #endregion 2级 #region 2级 if (this.S1 == "1") { this.UCS2.AddFieldSet("您需要指定一个节点."); this.UCS2.Add("选择节点"); ddl = new BP.Web.Controls.DDL(); ddl.ID = "DDL_V1"; // 第一个纬度的参数. ddl.BindSQL("SELECT NodeID AS No, Name FROM WF_Node WHERE FK_Flow='" + this.FK_Flow + "' ORDER BY NODEID ", "No", "Name", "20"); this.UCS2.Add(ddl); ddl.SetSelectItem(en.TagVal1); // 第一纬度的参数. this.UCS2.AddFieldSetEnd(); } if (this.S1 == "2") { this.UCS2.AddFieldSet("选择表单字段"); ddl = new BP.Web.Controls.DDL(); ddl.ID = "DDL_V1"; //第一个纬度的参数 ddl.BindSQL("SELECT KeyOfEn as No, KeyOfEn+' - '+Name as Name FROM Sys_MapAttr WHERE FK_MapData='ND" + int.Parse(this.FK_Flow) + "Rpt' AND MyDataType=1 ", "No", "Name", "20"); this.UCS2.Add("选择一个字段"); this.UCS2.Add(ddl); ddl.SetSelectItem(en.TagVal1); // 第一纬度的参数. this.UCS2.AddFieldSetEnd(); } #endregion 2级 #region 绑定后半部分. this.UCS3.AddFieldSet("人员范围其它参数"); // 其他的配置信息. BP.Web.Controls.RadioBtn rb = new BP.Web.Controls.RadioBtn(); rb.GroupName = "s"; rb.ID = "RB_0"; rb.Text = "直接主管"; if (en.SortVal2 == "0") { rb.Checked = true; } this.UCS3.Add(rb); this.UCS3.AddHR(); //特定职务级别的主管 rb = new BP.Web.Controls.RadioBtn(); rb.GroupName = "s"; rb.ID = "RB_1"; rb.Text = "特定职务级别的主管"; if (en.SortVal2 == "1") { rb.Checked = true; } this.UCS3.Add(rb); ddl = new BP.Web.Controls.DDL(); ddl.ID = "DDL_DutyLevel"; ddl.BindSQL("SELECT distinct DutyLevel AS No, DutyLevel as Name FROM Port_DeptEmp WHERE DutyLevel IS NOT NULL", "No", "Name", "20"); this.UCS3.Add(ddl); ddl.SetSelectItem(en.TagVal2); this.UCS3.AddHR(); // 特定职务的领导 rb = new BP.Web.Controls.RadioBtn(); rb.GroupName = "s"; rb.ID = "RB_2"; rb.Text = "特定职务的领导"; if (en.SortVal2 == "2") { rb.Checked = true; } this.UCS3.Add(rb); ddl = new BP.Web.Controls.DDL(); ddl.BindSQL("SELECT No, Name FROM Port_Duty ", "No", "Name", "20"); ddl.SetSelectItem(en.TagVal2); ddl.ID = "DDL_Duty"; this.UCS3.Add(ddl); this.UCS3.AddHR(); // 特定岗位 rb = new BP.Web.Controls.RadioBtn(); rb.GroupName = "s"; rb.ID = "RB_3"; rb.Text = "特定岗位"; this.UCS3.Add(rb); if (en.SortVal2 == "3") { rb.Checked = true; } ddl = new BP.Web.Controls.DDL(); ddl.BindSQL("SELECT No, Name FROM Port_Station ", "No", "Name", "20"); ddl.SetSelectItem(en.TagVal2); ddl.ID = "DDL_Station"; this.UCS3.Add(ddl); this.UCS3.AddFieldSetEnd(); #endregion 绑定后半部分. Button btn = new Button(); btn.ID = "Btn_Save"; btn.Text = " Save "; btn.Click += new EventHandler(btn_Click); this.UCS3.Add(btn); }
protected void Page_Load(object sender, EventArgs e) { string rpt = "ND" + int.Parse(this.FK_Flow) + "Rpt"; MapAttrs attrs = new MapAttrs(rpt); Flow fl = new Flow(this.FK_Flow); fl.RetrieveFromDBSources(); fl.No = this.FK_Flow; if (string.IsNullOrEmpty(this.TableName) == true) { this.Pub1.AddFieldSet("配置错误", "请关闭该窗口,在流程属性里配置业务表名,然后点保存按钮,之后打开该功能界面。"); return; } //获得数据表列. SFDBSrc src = new SFDBSrc(this.FK_DBSrc); DataTable dt = src.GetColumns(this.TableName); foreach (DataRow dr in dt.Rows) { string fType = dr["DBType"].ToString(); string desc = dr["Name"].ToString(); dr["Name"] = dr["No"] + " " + dr["DBType"] + "(" + dr["DBLength"] + ") " + dr["Name"]; } this.Pub1.AddTable(); this.Pub1.AddCaptionLeft("请设置流程字段与业务表字段的同步映射"); this.Pub1.AddTR(); string textCenter = " style='text-align:center;'"; this.Pub1.AddTDTitle(textCenter, "序"); this.Pub1.AddTDTitle(textCenter, "是否同步"); this.Pub1.AddTDTitle(textCenter, "类型"); this.Pub1.AddTDTitle(textCenter, "业务表(" + fl.DTSBTable + ")"); this.Pub1.AddTREnd(); int idx = 0; Hashtable ht = new Hashtable(); if (string.IsNullOrEmpty(fl.DTSFields)) { fl.DTSFields = "@"; } string[] fieldArr = fl.DTSFields.Split('@'); string[] lcArr = fieldArr[0].Split(','); string[] ywArr = fieldArr[1].Split(','); for (int i = 0; i < lcArr.Length; i++) { ht.Add(lcArr[i], ywArr[i]); } #region 锁定workid 在第一行上. //guid workid必须选择一项 BP.Web.Controls.RadioBtn rb_workId = new BP.Web.Controls.RadioBtn(); rb_workId.ID = "rb_workId"; rb_workId.GroupName = "RB_KEY"; rb_workId.Text = "OID - WorkID"; BP.Web.Controls.RadioBtn rb_guid = new BP.Web.Controls.RadioBtn(); rb_guid.ID = "rb_guid"; rb_guid.GroupName = "RB_KEY"; rb_guid.Text = "GUID"; foreach (DictionaryEntry de in ht) { if (de.Key.ToString().ToUpper() == "OID") { rb_workId.Checked = true; } else { rb_guid.Checked = true; } } this.Pub1.AddTR(); this.Pub1.AddTDIdx("1"); this.Pub1.AddTDBegin(); this.Pub1.Add(rb_workId); this.Pub1.Add(rb_guid); this.Pub1.AddTDEnd(); this.Pub1.AddTD("主键<img src='../../Img/PRI/2.png' border=0/>"); BP.Web.Controls.DDL ddl = new BP.Web.Controls.DDL(); ddl.Width = 250; ddl.ID = "DDL_OID"; ddl.Bind(dt, dt.Columns["No"].ToString(), dt.Columns["Name"].ToString()); ddl.SetSelectItem(fl.DTSBTablePK); this.Pub1.AddTD(textCenter, ddl); this.Pub1.AddTREnd(); #endregion 锁定workid 在第一行上. bool is1 = false; foreach (MapAttr attr in attrs) { if (attr.KeyOfEn.ToUpper() == "OID" || attr.KeyOfEn.ToUpper() == "GUID") { continue; } idx++; is1 = this.Pub1.AddTR(is1); this.Pub1.AddTDIdx(idx); CheckBox cb = new CheckBox(); cb.ID = "CB_" + attr.KeyOfEn; cb.Text = attr.KeyOfEn + " - " + attr.Name; foreach (DictionaryEntry de in ht) { if (attr.KeyOfEn == de.Key.ToString()) { cb.Checked = true; } } this.Pub1.AddTD(cb); this.Pub1.AddTD(attr.MyDataTypeStr); ddl = new BP.Web.Controls.DDL(); ddl.ID = "DDL_" + attr.KeyOfEn; ddl.Width = 250; ddl.Bind(dt, dt.Columns["No"].ToString(), dt.Columns["Name"].ToString()); if (cb.Checked == true) { try { ddl.SetSelectItem(ht[attr.KeyOfEn].ToString()); } catch { } } //类似的默认选中 区分大小写 方法if(ddl.SetSelectItem(attr.KeyOfEn)){cb.Checked = true;}不适用 foreach (DataRow dr in dt.Rows) { if (attr.KeyOfEn.ToUpper() == dr[0].ToString().ToUpper()) { ddl.SetSelectItem(dr[0].ToString()); cb.Checked = true; break; } } this.Pub1.AddTD(textCenter, ddl); this.Pub1.AddTREnd(); } this.Pub1.AddTableEnd(); this.Pub1.AddBR(); this.Pub1.AddBR(); Button btn = new Button(); btn.ID = "Btn_Save"; btn.Text = "保存"; btn.Click += new EventHandler(btn_Save_Click); Button btnClose = new Button(); btnClose.ID = "Btn_Close"; btnClose.Text = "取消"; btnClose.Click += new EventHandler(btnClose_Click); this.Pub1.Add(btn); this.Pub1.Add(btnClose); this.Pub1.AddBR(); this.Pub1.AddBR(); this.Pub1.AddBR(); }
/// <summary> /// 执行数据的保存操作 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> void btn_Save_Click(object sender, EventArgs e) { try { string rpt = "ND" + int.Parse(this.FK_Flow) + "Rpt"; Flow fl = new Flow(this.FK_Flow); MapAttrs attrs = new MapAttrs(rpt); #region 求业务表的主键。 string pk = this.Pub1.GetDDLByID("DDL_OID").SelectedItemStringVal; if (string.IsNullOrEmpty(pk) == true) { BP.Sys.PubClass.Alert("@必须设置业务表的主键,否则无法同步。"); return; } #endregion 求业务表的主键。 string lcStr = ""; //要同步的流程字段 string ywStr = ""; //第三方字段 string err = ""; foreach (MapAttr attr in attrs) { CheckBox cb = this.Pub1.GetCBByID("CB_" + attr.KeyOfEn); if (cb == null || cb.Checked == false) { continue; } BP.Web.Controls.DDL ddl = this.Pub1.GetDDLByID("DDL_" + attr.KeyOfEn); //如果选中的业务字段重复,抛出异常 if (ywStr.Contains("@" + ddl.SelectedItemStringVal + "@")) { err += "@配置【" + attr.KeyOfEn + " - " + attr.Name + "】错误, 请确保选中业务字段的唯一性,该业务字段已经被其他字段所使用。"; } lcStr += "@" + attr.KeyOfEn + "@,"; ywStr += "@" + ddl.SelectedItemStringVal + "@,"; } BP.Web.Controls.RadioBtn rb = this.Pub1.GetRadioBtnByID("rb_workId"); BP.Web.Controls.DDL ddl_key = this.Pub1.GetDDLByID("DDL_OID"); if (rb.Checked) { if (ywStr.Contains("@" + ddl_key.SelectedItemStringVal + "@")) { err += "@请确保选中业务字段的唯一性,该业务字段【" + ddl_key.SelectedItemStringVal + "】已经被其他字段所使用。"; } lcStr = "@OID@," + lcStr; ywStr = "@" + ddl_key.SelectedItemStringVal + "@," + ywStr; } else { if (ywStr.Contains("@" + ddl_key.SelectedItemStringVal + "@")) { err += "@请确保选中业务字段的唯一性,该业务字段【" + ddl_key.SelectedItemStringVal + "】已经被其他字段所使用。"; } lcStr = "@GUID@," + lcStr; ywStr = "@" + ddl_key.SelectedItemStringVal + "@," + ywStr; } if (err != "") { BP.Sys.PubClass.Alert(err); return; } lcStr = lcStr.Replace("@", ""); ywStr = ywStr.Replace("@", ""); //去除最后一个字符的操作 if (string.IsNullOrEmpty(lcStr) || string.IsNullOrEmpty(ywStr)) { BP.Sys.PubClass.Alert("要配置的内容为空..."); return; } lcStr = lcStr.Substring(0, lcStr.Length - 1); ywStr = ywStr.Substring(0, ywStr.Length - 1); //数据存储格式 a,b,c@a_1,b_1,c_1 fl.DTSFields = lcStr + "@" + ywStr; fl.DTSBTablePK = pk; fl.Update(); // System.Web.HttpContext.Current.Response.Write("<script language='JavaScript'>if (confirm('操作成功,是否关闭配置页面?'))" + //"{window.parent.closeTab('设置字段匹配');}</script> "); System.Web.HttpContext.Current.Response.Write("<script language='JavaScript'>if (confirm('操作成功,是否关闭配置页面?'))" + "{try{window.parent.closeTab('设置字段匹配');}catch{}}</script> "); } catch (Exception ex) { throw ex; } }