void btnC_Click(object sender, EventArgs e) { BP.WF.Node mynd = new BP.WF.Node(this.RefNo); BP.WF.Nodes nds = new BP.WF.Nodes(mynd.FK_Flow); foreach (BP.WF.Node nd in nds) { if ("ND" + nd.NodeID == this.RefNo) { continue; } GroupFields gfs = new GroupFields("ND" + nd.NodeID); foreach (GroupField gf in gfs) { string id = "CB_" + gf.OID; if (this.Pub1.GetCBByID(id).Checked == false) { continue; } MapAttrs attrs = new MapAttrs(); attrs.Retrieve(MapAttrAttr.GroupID, gf.OID); if (attrs.Count == 0) { continue; } } } }
public bool SetNextNodeFH(string flowid, Int64 workid, int nodeid, string emps, int fid) { try { BP.WF.Nodes nodes = BP.WF.Dev2Interface.WorkOpt_GetToNodes(flowid, nodeid, workid, fid); int nodeID = 0; foreach (BP.WF.Node node in nodes) { nodeID = node.NodeID; break; } string[] empData = emps.Split(','); foreach (string emp in empData) { Compeader.Data.Comleader_NodeWork nodeWork = new Compeader.Data.Comleader_NodeWork(); string[] empAndTag = emp.Split('@'); string userName = ""; string tag = ""; string userNo = ""; if (empAndTag.Length >= 2) { tag = empAndTag[1]; userNo = empAndTag[0]; try { BP.Port.Emp empSingle = new BP.Port.Emp(userNo); userName = empSingle.Name; } catch (Exception ex) { continue; } } nodeWork.MyPk = Guid.NewGuid().ToString("N"); nodeWork.OID = workid; nodeWork.NodeID = nodeid; nodeWork.UserNo = userNo; nodeWork.Tag = tag; nodeWork.UserName = userName; nodeWork.Insert(); } return(true); } catch (Exception ex) { return(false); } }
protected void Page_Load(object sender, EventArgs e) { if (this.IsPostBack == false) { BP.WF.Node nd = new BP.WF.Node(this.FK_Node); //绑定节点集合. BP.WF.Nodes nds = new BP.WF.Nodes(nd.FK_Flow); foreach (BP.WF.Node mynd in nds) { this.DDL_Node.Items.Add(new ListItem(mynd.Name, mynd.NodeID.ToString())); } switch (nd.HisOutTimeDeal) { case BP.WF.Template.OutTimeDeal.None: this.RB_0.Checked = true; break; case BP.WF.Template.OutTimeDeal.AutoTurntoNextStep: //自动运行到下一步. this.RB_1.Checked = true; break; case BP.WF.Template.OutTimeDeal.AutoJumpToSpecNode: // 自动转向指定的步骤 this.RB_2.Checked = true; //设置当前的选择. this.DDL_Node.SelectedValue = nd.DoOutTime; break; case BP.WF.Template.OutTimeDeal.AutoShiftToSpecUser: //移交给指定的人员. this.RB_3.Checked = true; this.TB_3_Shift.Text = nd.DoOutTime; break; case BP.WF.Template.OutTimeDeal.SendMsgToSpecUser: //向指定的人员发消息. this.TB_4_SendMsg.Text = nd.DoOutTime; this.RB_4.Checked = true; break; case BP.WF.Template.OutTimeDeal.DeleteFlow: //删除流程. this.RB_5.Checked = true; break; case BP.WF.Template.OutTimeDeal.RunSQL: //运行SQL this.RB_6.Checked = true; this.TB_6_SQL.Text = nd.DoOutTime; break; } } }
protected void Page_Load(object sender, EventArgs e) { //变量定义: 第几页. int currPageIdx = this.PageIdx; int pageSize = 12; //页面记录条数. //实体查询. BP.WF.Nodes ens = new BP.WF.Nodes(); BP.En.QueryObject qo = new QueryObject(ens); qo.AddWhere(BP.WF.Template.NodeAttr.NodePosType, "1"); // 设置查询条件. //把代码放到表格尾部, 形成 第1,2,3,4,5 页 ....... this.Pub2.Clear(); this.Pub2.BindPageIdx(qo.GetCount(), pageSize, currPageIdx, "DemoTurnPage.aspx?1=2&3=xx"); //每页有15条数据,取第2页的数据. qo.DoQuery("NodeID", pageSize, currPageIdx); this.Pub1.AddTable(); this.Pub1.AddTR(); this.Pub1.AddTDTitle("序"); this.Pub1.AddTDTitle("节点编号"); this.Pub1.AddTDTitle("节点名称"); this.Pub1.AddTDTitle("操作"); this.Pub1.AddTREnd(); int idx = 0; foreach (BP.WF.Node en in ens) { idx++; this.Pub1.AddTR(); this.Pub1.AddTDIdx(idx); this.Pub1.AddTD(en.NodeID); this.Pub1.AddTD(en.Name); this.Pub1.AddTD("<a href='http://ccflow.org/case.aspx?ID=" + en.NodeID + "' >打开</a>"); this.Pub1.AddTREnd(); } this.Pub1.AddTableEnd(); }
public bool SetNextWork(string flowid, Int64 workid, int nodeid, string emps, int fid) { try { BP.WF.Nodes nodes = BP.WF.Dev2Interface.WorkOpt_GetToNodes(flowid, nodeid, workid, fid); int nodeID = 0; foreach (BP.WF.Node node in nodes) { nodeID = node.NodeID; break; } BP.WF.Dev2Interface.Node_AddNextStepAccepters(workid, nodeID, emps); return(true); } catch (Exception ex) { return(false); } }
protected void Page_Load(object sender, EventArgs e) { BP.WF.Node nd = new BP.WF.Node(this.FK_Node); //判断节点消息事件类型, switch (this.FK_Event) { case BP.Sys.EventListOfNode.WorkArrive: //1.节点到达时 this.RB_Email_1.Text = "发送给当前节点的所有处理人"; this.RB_SMS_1.Text = "发送给当前节点的所有处理人"; break; case BP.Sys.EventListOfNode.SendSuccess: //2.节点发送成功时 this.RB_Email_1.Text = "发送给下一个节点的所有接受人"; this.RB_SMS_1.Text = "发送给下一个节点的所有接受人"; break; case BP.Sys.EventListOfNode.ReturnAfter: //3.节点退回后 this.RB_Email_1.Text = "发送给被退回的节点处理人."; this.RB_SMS_1.Text = "发送给被退回的节点处理人"; break; case BP.Sys.EventListOfNode.UndoneAfter: //4.工作撤销后 this.RB_Email_1.Text = "撤销工作后通知的节点接受人"; this.RB_SMS_1.Text = "撤销工作后通知的节点接受人";; break; case BP.Sys.EventListOfNode.FlowOverAfter: //6.流程结束后 this.RB_Email_1.Text = "流程结束后通知的节点接受人"; this.RB_SMS_1.Text = "流程结束通知的节点接受人"; break; case BP.Sys.EventListOfNode.AfterFlowDel: //7.流程删除后 this.RB_Email_1.Text = "流程删除后通知的节点接受人"; this.RB_SMS_1.Text = "流程删除通知的节点接受人"; break; } if (this.IsPostBack == true) { return; } BP.WF.Template.PushMsg msg = new BP.WF.Template.PushMsg(); msg.MyPK = this.MyPK; msg.FK_Event = this.FK_Event; msg.FK_Node = this.FK_Node; if (msg.RetrieveFromDBSources() == 0 && (this.FK_Event == BP.Sys.EventListOfNode.SendSuccess || this.FK_Event == BP.Sys.EventListOfNode.ReturnAfter)) { /*如果是发送成功的消息没有被查询到. */ msg.MailPushWay = 1; msg.SMSPushWay = 0; } #region 设置字段下拉框. BP.Sys.MapAttrs attrs = new BP.Sys.MapAttrs(); int i = attrs.Retrieve(BP.Sys.MapAttrAttr.FK_MapData, "ND" + FK_Node); foreach (BP.Sys.MapAttr item in attrs) { if (item.LGType != BP.En.FieldTypeS.Normal) { continue; } if (item.MyDataType != BP.DA.DataType.AppString) { continue; } switch (item.KeyOfEn) { case BP.WF.GEWorkAttr.Emps: case BP.WF.GEWorkAttr.MD5: case BP.WF.GEWorkAttr.Rec: case BP.WF.GEWorkAttr.RecText: break; default: break; } this.DDL_SMS_Fields.Items.Add(new ListItem(item.KeyOfEn + " ; " + item.Name, item.KeyOfEn)); this.DDL_Email.Items.Add(new ListItem(item.KeyOfEn + " ; " + item.Name, item.KeyOfEn)); } #endregion 设置字段下拉框. #region 短信内容设置。 if (msg.SMSPushWay == 0) { this.RB_SMS_0.Checked = true; } if (msg.SMSPushWay == 1) { this.RB_SMS_1.Checked = true; } if (msg.SMSPushWay == 2) { this.RB_SMS_2.Checked = true; } if (msg.SMSPushWay == 3) { this.RB_SMS_3.Checked = true; } this.TB_SMS.Text = msg.SMSDoc; this.DDL_SMS_Fields.SelectedValue = msg.SMSField; #endregion #region 邮件内容设置。 if (msg.MailPushWay == 0) { this.RB_Email_0.Checked = true; } if (msg.MailPushWay == 1) { this.RB_Email_1.Checked = true; } if (msg.MailPushWay == 2) { this.RB_Email_2.Checked = true; } if (msg.MailPushWay == 3) { this.RB_Email_3.Checked = true; } this.TB_Email_Title.Text = msg.MailTitle; this.TB_Email_Doc.Text = msg.MailDoc; this.DDL_Email.SelectedValue = msg.MailAddress; #endregion 邮件内容设置 #region 绑定节点. BP.WF.Nodes nds = new BP.WF.Nodes(nd.FK_Flow); foreach (BP.WF.Node mynd in nds) { CheckBox cb = new CheckBox(); cb.ID = "CB_SMS_" + mynd.NodeID; cb.Text = mynd.Name; cb.Checked = msg.SMSNodes.Contains(mynd.NodeID + ""); this.Pub1.Add(cb); CheckBox cb2 = new CheckBox(); cb2.ID = "CB_Email_" + mynd.NodeID; cb2.Text = mynd.Name; cb2.Checked = msg.MailNodes.Contains(mynd.NodeID + ""); this.Pub2.Add(cb2); } #endregion 绑定节点 }
protected void Btn_Save_Click(object sender, EventArgs e) { BP.WF.Template.PushMsg msg = new BP.WF.Template.PushMsg(); msg.MyPK = this.MyPK; msg.RetrieveFromDBSources(); msg.FK_Event = this.FK_Event; msg.FK_Node = this.FK_Node; BP.WF.Node nd = new BP.WF.Node(this.FK_Node); BP.WF.Nodes nds = new BP.WF.Nodes(nd.FK_Flow); #region 求出来选择的节点. string nodesOfSMS = ""; string nodesOfEmail = ""; foreach (BP.WF.Node mynd in nds) { foreach (string key in this.Request.Params.AllKeys) { if (key.Contains("CB_SMS_" + mynd.NodeID) && nodesOfSMS.Contains(mynd.NodeID + "") == false) { nodesOfSMS += mynd.NodeID + ","; } if (key.Contains("CB_Email_" + mynd.NodeID) && nodesOfEmail.Contains(mynd.NodeID + "") == false) { nodesOfEmail += mynd.NodeID + ","; } } } //节点. msg.MailNodes = nodesOfEmail; msg.SMSNodes = nodesOfSMS; #endregion 求出来选择的节点. #region 短信保存. //短信推送方式。 if (this.RB_SMS_0.Checked) { msg.SMSPushWay = 0; } if (this.RB_SMS_1.Checked) { msg.SMSPushWay = 1; } if (this.RB_SMS_2.Checked) { msg.SMSPushWay = 2; } if (this.RB_SMS_3.Checked) { msg.SMSPushWay = 3; } //短信手机字段. msg.SMSField = this.DDL_SMS_Fields.SelectedValue; //替换变量 string smsstr = this.TB_SMS.Text; smsstr = smsstr.Replace("@WebUser.Name", BP.Web.WebUser.Name); smsstr = smsstr.Replace("@WebUser.No", BP.Web.WebUser.No); System.Data.DataTable dt = BP.WF.Dev2Interface.DB_GenerEmpWorksOfDataTable(); // smsstr = smsstr.Replace("@RDT",); //短信内容模版. msg.SMSDoc_Real = smsstr; #endregion 短信保存. #region 邮件保存. //邮件. if (this.RB_Email_0.Checked) { msg.MailPushWay = 0; } if (this.RB_Email_1.Checked) { msg.MailPushWay = 1; } if (this.RB_Email_2.Checked) { msg.MailPushWay = 2; } if (this.RB_Email_3.Checked) { msg.MailPushWay = 3; } //邮件标题与内容. msg.MailTitle_Real = this.TB_Email_Title.Text; msg.MailDoc_Real = this.TB_Email_Doc.Text; //邮件地址. msg.MailAddress = this.DDL_Email.SelectedValue; #endregion 邮件保存. //保存. if (string.IsNullOrEmpty(msg.MyPK) == true) { msg.MyPK = BP.DA.DBAccess.GenerGUID(); msg.Insert(); } else { msg.Update(); } //转向他. this.Response.Redirect("PushMessage.aspx?FK_Node=" + this.FK_Node + "&FK_Event=" + this.FK_Event + "&MyPK" + this.MyPK, true); }
/// <summary> /// 添加图片 /// </summary> private void RenderPic(string type) { #region 处理权限控制. BP.Sys.FrmAttachment athDesc = new BP.Sys.FrmAttachment(); athDesc.MyPK = this.FK_FrmAttachment; if (this.FK_Node == null || this.FK_Flow == null) { athDesc.RetrieveFromDBSources(); } else { #region 判断是否可以查询出来,如果查询不出来,就可能是公文流程。 athDesc.MyPK = this.FK_FrmAttachment; if (athDesc.RetrieveFromDBSources() == 0 && string.IsNullOrEmpty(this.FK_Flow) == false) { /*如果没有查询到它,就有可能是公文多附件被删除了.*/ athDesc.MyPK = this.FK_FrmAttachment; athDesc.NoOfObj = "DocMultiAth"; athDesc.FK_MapData = this.FK_MapData; athDesc.Exts = "*.*"; //存储路径. string path = Server.MapPath("/DataUser/UploadFile/"); path += "\\F" + this.FK_Flow + "MultiAth"; athDesc.SaveTo = path; athDesc.IsNote = false; //不显示note字段. //位置. athDesc.X = (float)94.09; athDesc.Y = (float)333.18; athDesc.W = (float)626.36; athDesc.H = (float)150; //多附件. athDesc.UploadType = AttachmentUploadType.Multi; athDesc.Name = "公文多附件(系统自动增加)"; athDesc.SetValByKey("AtPara", "@IsWoEnablePageset=1@IsWoEnablePrint=1@IsWoEnableViewModel=1@IsWoEnableReadonly=0@IsWoEnableSave=1@IsWoEnableWF=1@IsWoEnableProperty=1@IsWoEnableRevise=1@IsWoEnableIntoKeepMarkModel=1@FastKeyIsEnable=0@IsWoEnableViewKeepMark=1@FastKeyGenerRole=@IsWoEnableTemplete=1"); athDesc.Insert(); //有可能在其其它的节点上没有这个附件,所以也要循环增加上它. BP.WF.Nodes nds = new BP.WF.Nodes(this.FK_Flow); foreach (BP.WF.Node nd in nds) { athDesc.FK_MapData = "ND" + nd.NodeID; athDesc.MyPK = athDesc.FK_MapData + "_" + athDesc.NoOfObj; if (athDesc.IsExits == true) { continue; } athDesc.Insert(); } //重新查询一次,把默认值加上. athDesc.RetrieveFromDBSources(); } #endregion 判断是否可以查询出来,如果查询不出来,就可能是公文流程。 #region 处理权限方案。 /*首先判断是否具有权限方案*/ string at = BP.Sys.SystemConfig.AppCenterDBVarStr; Paras ps = new BP.DA.Paras(); ps.SQL = "SELECT FrmSln FROM WF_FrmNode WHERE FK_Node=" + at + "FK_Node AND FK_Flow=" + at + "FK_Flow AND FK_Frm=" + at + "FK_Frm"; ps.Add("FK_Node", this.FK_Node); ps.Add("FK_Flow", this.FK_Flow); ps.Add("FK_Frm", this.FK_MapData); DataTable dt = DBAccess.RunSQLReturnTable(ps); if (dt.Rows.Count == 0) { athDesc.RetrieveFromDBSources(); } else { int sln = int.Parse(dt.Rows[0][0].ToString()); if (sln == 0) { athDesc.RetrieveFromDBSources(); } else { int result = athDesc.Retrieve(FrmAttachmentAttr.FK_MapData, this.FK_MapData, FrmAttachmentAttr.FK_Node, this.FK_Node, FrmAttachmentAttr.NoOfObj, this.Ath); if (result == 0) /*如果没有定义,就获取默认的.*/ { athDesc.RetrieveFromDBSources(); } // throw new Exception("@该流程表单在该节点("+this.FK_Node+")使用的是自定义的权限控制,但是没有定义该附件的权限。"); } } #endregion 处理权限方案。 } #endregion 处理权限控制. BP.Sys.FrmAttachmentDBs dbs = LoadAttach(athDesc); this.Pub1.AddTable("style='width:100%;overflow:hidden;padding:0px;margin:0px;display:block;'"); int idx = 0; bool isHave = false; bool isRedirect = false; int count = 0; foreach (FrmAttachmentDB db in dbs) { if (!DataType.IsImgExt(db.FileExts)) { continue; } if (!string.IsNullOrEmpty(type)) { int updateIdx = int.Parse(this.Request.QueryString["Idx"]); if (type.Equals("UP")) { if (db.Idx == updateIdx) { db.Idx = updateIdx - 1; db.Update(); } else if (db.Idx == updateIdx - 1) { db.Idx = updateIdx; db.Update(); } } else if (type.Equals("DOWN")) { if (db.Idx == updateIdx) { db.Idx = updateIdx + 1; db.Update(); } else if (db.Idx == updateIdx + 1) { db.Idx = updateIdx; db.Update(); } } } if (db.Idx != 0) { isHave = true; } count++; } if (!string.IsNullOrEmpty(type)) { dbs = LoadAttach(athDesc); } foreach (FrmAttachmentDB db in dbs) { if (!DataType.IsImgExt(db.FileExts)) { continue; } this.Pub1.AddTR(); if (!athDesc.SaveTo.EndsWith("/")) { athDesc.SaveTo += "/"; } //s image.ImageUrl = athDesc.SaveTo + this.WorkID + "/" + db.MyPK + "." + db.FileName; // this.Pub1.AddTD("style='width:80%;margin-left:5%;display:block;text-align:center;overflow:scroll' align='center' valign='middle'" ,image); this.Pub1.AddTDBegin(); this.Pub1.Add("<div style='width:80%;margin:0 auto;'>"); // image.Attributes["style"]="width:800px;heght:600px;"; string url = athDesc.SaveTo + this.WorkID + "/" + db.MyPK + "." + db.FileName; // url = ""; this.Pub1.Add("<img src='" + url + "' border=0 />"); this.Pub1.Add("</div>"); this.Pub1.AddTDEnd(); if (athDesc.IsOrder && count > 1) { this.Pub1.AddTR(); idx++; if (db.Idx == 0) { if (isHave) { db.Idx = count - idx + 1; db.Update(); } else { db.Idx = idx; db.Update(); } isRedirect = true; } this.Pub1.AddTDBegin(); this.Pub1.Add("<div style='width:80%;margin:0 auto;text-align:center;'>"); if (idx == count) { this.Pub1.Add(db.FileName + " <a href='FilesView.aspx?DoType=UP&Idx=" + idx + "&DelPKVal=" + db.MyPK + "&FK_FrmAttachment=" + this.FK_FrmAttachment + "&PKVal=" + this.PKVal + "&FK_Flow=" + this.FK_Flow + "&FK_Node=" + this.FK_Node + "&WorkID=" + this.WorkID + "&FK_FrmAttachmentExt=" + this.FK_FrmAttachmentExt + "&IsCC=" + this.IsCC + "&Ath=" + this.Ath + "'>上移</a> <a href='FilesView.aspx?DoType=ViewPic&DelPKVal=" + db.MyPK + "' target='_balnk'>查看原图</a>"); } else if (idx == 1) { this.Pub1.Add(db.FileName + " <a href='FilesView.aspx?DoType=DOWN&Idx=" + idx + "&DelPKVal=" + db.MyPK + "&FK_FrmAttachment=" + this.FK_FrmAttachment + "&PKVal=" + this.PKVal + "&FK_Flow=" + this.FK_Flow + "&FK_Node=" + this.FK_Node + "&WorkID=" + this.WorkID + "&FK_FrmAttachmentExt=" + this.FK_FrmAttachmentExt + "&IsCC=" + this.IsCC + "&Ath=" + this.Ath + "'>下移</a> <a href='FilesView.aspx?DoType=ViewPic&DelPKVal=" + db.MyPK + "' target='_balnk'>查看原图</a>"); } else { this.Pub1.Add(db.FileName + " <a href='FilesView.aspx?DoType=UP&Idx=" + idx + "&DelPKVal=" + db.MyPK + "&FK_FrmAttachment=" + this.FK_FrmAttachment + "&PKVal=" + this.PKVal + "&FK_Flow=" + this.FK_Flow + "&FK_Node=" + this.FK_Node + "&WorkID=" + this.WorkID + "&FK_FrmAttachmentExt=" + this.FK_FrmAttachmentExt + "&IsCC=" + this.IsCC + "&Ath=" + this.Ath + "'>上移</a> <a href='FilesView.aspx?DoType=DOWN&Idx=" + idx + "&DelPKVal=" + db.MyPK + "&FK_FrmAttachment=" + this.FK_FrmAttachment + "&PKVal=" + this.PKVal + "&FK_Flow=" + this.FK_Flow + "&FK_Node=" + this.FK_Node + "&WorkID=" + this.WorkID + "&FK_FrmAttachmentExt=" + this.FK_FrmAttachmentExt + "&IsCC=" + this.IsCC + "&Ath=" + this.Ath + "'>下移</a> <a href='FilesView.aspx?DoType=ViewPic&DelPKVal=" + db.MyPK + "' target='_balnk'>查看原图</a>"); } this.Pub1.Add("</div>"); this.Pub1.AddTDEnd(); this.Pub1.AddTREnd(); } else { this.Pub1.AddTR(); this.Pub1.Add("<div style='width:80%;margin:0 auto;text-align:center'>"); this.Pub1.AddTDBegin(); this.Pub1.Add(db.FileName); this.Pub1.Add("</div>"); this.Pub1.AddTDEnd(); this.Pub1.AddTREnd(); } this.Pub1.AddTREnd(); } this.Pub1.AddTableEnd(); if (isRedirect) { this.Response.Redirect(this.Request.RawUrl, true); } }