public void TableMode() { this.Pub2.AddTable(); this.Pub2.AddTR(); this.Pub2.AddTDTitle("IDX"); this.Pub2.AddTDTitle("日期时间"); this.Pub2.AddTDTitle("从节点"); this.Pub2.AddTDTitle("人员"); this.Pub2.AddTDTitle("到节点"); this.Pub2.AddTDTitle("人员"); this.Pub2.AddTDTitle("活动"); this.Pub2.AddTDTitle("信息"); this.Pub2.AddTDTitle("表单"); this.Pub2.AddTDTitle("执行人"); this.Pub2.AddTREnd(); string sqlOfWhere1 = ""; string dbStr = BP.Sys.SystemConfig.AppCenterDBVarStr; Paras prs = new Paras(); if (this.FID == 0) { sqlOfWhere1 = " WHERE (FID=" + dbStr + "WorkID11 OR WorkID=" + dbStr + "WorkID12 ) "; prs.Add("WorkID11", this.WorkID); prs.Add("WorkID12", this.WorkID); } else { sqlOfWhere1 = " WHERE (FID=" + dbStr + "FID11 OR WorkID=" + dbStr + "FID12 ) "; prs.Add("FID11", this.FID); prs.Add("FID12", this.FID); } string sql = ""; sql = "SELECT MyPK,ActionType,ActionTypeText,FID,WorkID,NDFrom,NDFromT,NDTo,NDToT,EmpFrom,EmpFromT,EmpTo,EmpToT,RDT,WorkTimeSpan,Msg,NodeData,Exer,Tag FROM ND" + int.Parse(this.FK_Flow) + "Track " + sqlOfWhere1; prs.SQL = sql; DataTable dt = null; try { dt = DBAccess.RunSQLReturnTable(prs); } catch { // 处理track表. Track.CreateOrRepairTrackTable(this.FK_Flow); dt = DBAccess.RunSQLReturnTable(prs); } DataView dv = dt.DefaultView; dv.Sort = "RDT"; int idx = 1; foreach (DataRowView dr in dv) { ActionType at = (ActionType)int.Parse(dr[TrackAttr.ActionType].ToString()); if (at != ActionType.WorkCheck) { continue; } this.Pub2.AddTR(); this.Pub2.AddTDIdx(idx++); DateTime dtt = DataType.ParseSysDateTime2DateTime(dr[TrackAttr.RDT].ToString()); this.Pub2.AddTD(dtt.ToString("yyyy年MM月dd日HH:mm")); this.Pub2.AddTD(dr[TrackAttr.NDFromT].ToString()); this.Pub2.AddTD(dr[TrackAttr.EmpFromT].ToString()); this.Pub2.AddTD(dr[TrackAttr.NDToT].ToString()); this.Pub2.AddTD(dr[TrackAttr.EmpToT].ToString()); this.Pub2.AddTD("<img src='../../Img/Action/" + at.ToString() + ".png' class='ActionType' border=0/>" + BP.WF.Track.GetActionTypeT(at)); // 删除信息 string tag = dr[TrackAttr.Tag].ToString(); string msg = dr[TrackAttr.Msg].ToString(); switch (at) { case ActionType.CallChildenFlow: //被调用父流程吊起。 tag = dr[TrackAttr.Tag].ToString(); if (string.IsNullOrEmpty(tag) == false) { AtPara ap = new AtPara(tag); this.Pub2.AddTD("class=TD", "<a target=b" + ap.GetValStrByKey("PWorkID") + " href='Track.aspx?WorkID=" + ap.GetValStrByKey("PWorkID") + "&FK_Flow=" + ap.GetValStrByKey("PFlowNo") + "' >" + msg + "</a>"); } else { this.Pub2.AddTD("class=TD", msg); } break; case ActionType.StartChildenFlow: //吊起子流程。 tag = dr[TrackAttr.Tag].ToString(); if (string.IsNullOrEmpty(tag) == false) { AtPara ap = new AtPara(tag); this.Pub2.AddTD("class=TD", "<a target=b" + ap.GetValStrByKey("CWorkID") + " href='Track.aspx?WorkID=" + ap.GetValStrByKey("CWorkID") + "&FK_Flow=" + ap.GetValStrByKey("CFlowNo") + "' >" + msg + "</a>"); } else { this.Pub2.AddTD("class=TD", msg); } break; default: this.Pub2.AddTD(DataType.ParseText2Html(msg)); break; } this.Pub2.AddTD("<a href=\"javascript:WinOpen('" + BP.WF.Glo.CCFlowAppPath + "WF/WFRpt.aspx?WorkID=" + dr[TrackAttr.WorkID].ToString() + "&FK_Flow=" + this.FK_Flow + "&FK_Node=" + dr[TrackAttr.NDTo].ToString() + "&DoType=View&MyPK=" + dr[TrackAttr.MyPK].ToString() + "','" + dr[TrackAttr.MyPK].ToString() + "');\">表单</a>"); this.Pub2.AddTD(dr[TrackAttr.Exer].ToString()); this.Pub2.AddTREnd(); } this.Pub2.AddTableEnd(); if (this.CCID != null) { CCList cl = new CCList(); cl.MyPK = this.CCID; cl.RetrieveFromDBSources(); this.Pub2.AddFieldSet(cl.Title); this.Pub2.Add("抄送人:" + cl.Rec + ", 抄送日期:" + cl.RDT); this.Pub2.AddHR(); this.Pub2.Add(cl.DocHtml); this.Pub2.AddFieldSetEnd(); if (cl.HisSta == CCSta.UnRead) { cl.HisSta = CCSta.Read; cl.Update(); } } }
public void BindTrack() { this.Page.Title = "感谢您使用ccflow"; if (this.DoType == "View") { this.BindTrack_ViewWork(); return; } if (this.DoType == "ViewSpecialWork") { this.BindTrack_ViewSpecialWork(); return; } this.AddTable(); this.AddTR(); this.AddTDTitle("IDX"); this.AddTDTitle("日期时间"); this.AddTDTitle("从节点"); this.AddTDTitle("人员"); this.AddTDTitle("到节点"); this.AddTDTitle("人员"); this.AddTDTitle("活动"); this.AddTDTitle("信息"); this.AddTDTitle("表单"); this.AddTDTitle("执行人"); this.AddTREnd(); string sqlOfWhere2 = ""; string sqlOfWhere1 = ""; string dbStr = BP.SystemConfig.AppCenterDBVarStr; Paras prs = new Paras(); if (this.FID == 0) { sqlOfWhere1 = " WHERE (FID=" + dbStr + "WorkID11 OR WorkID=" + dbStr + "WorkID12 ) "; prs.Add("WorkID11", this.WorkID); prs.Add("WorkID12", this.WorkID); } else { sqlOfWhere1 = " WHERE (FID=" + dbStr + "FID11 OR WorkID=" + dbStr + "FID12 ) "; prs.Add("FID11", this.FID); prs.Add("FID12", this.FID); } string sql = ""; sql = "SELECT MyPK,ActionType,ActionTypeText,FID,WorkID,NDFrom,NDFromT,NDTo,NDToT,EmpFrom,EmpFromT,EmpTo,EmpToT,RDT,WorkTimeSpan,Msg,NodeData,Exer FROM ND" + int.Parse(this.FK_Flow) + "Track " + sqlOfWhere1; prs.SQL = sql; DataTable dt = DBAccess.RunSQLReturnTable(prs); DataView dv = dt.DefaultView; dv.Sort = "RDT"; // dv.RowFilter int idx = 1; foreach (DataRowView dr in dv) { this.AddTR(); this.AddTDIdx(idx++); DateTime dtt = DataType.ParseSysDateTime2DateTime(dr[TrackAttr.RDT].ToString()); this.AddTD(dtt.ToString("MM月dd日HH:mm")); this.AddTD(dr[TrackAttr.NDFromT].ToString()); this.AddTD(dr[TrackAttr.EmpFromT].ToString()); this.AddTD(dr[TrackAttr.NDToT].ToString()); this.AddTD(dr[TrackAttr.EmpToT].ToString()); ActionType at = (ActionType)int.Parse(dr[TrackAttr.ActionType].ToString()); this.AddTD("<img src='./../../Img/Action/" + at.ToString() + ".png' class='ActionType' border=0/>" + BP.WF.Track.GetActionTypeT(at)); this.AddTD(DataType.ParseText2Html(dr[TrackAttr.Msg].ToString())); //this.AddTD(item.NDToT); //this.AddTD(item.EmpToT); //this.AddTD(item.HisActionTypeT); //this.AddTDDoc(item.MsgHtml); this.AddTD("<a href=\"javascript:WinOpen('" + this.Request.ApplicationPath + "WF/WFRpt.aspx?WorkID=" + dr[TrackAttr.WorkID].ToString() + "&FK_Flow=" + this.FK_Flow + "&DoType=View&MyPK=" + dr[TrackAttr.MyPK].ToString() + "','" + dr[TrackAttr.MyPK].ToString() + "');\">表单</a>"); this.AddTD(dr[TrackAttr.Exer].ToString()); this.AddTREnd(); } this.AddTableEnd(); if (this.CCID != null) { CCList cl = new CCList(); cl.MyPK = this.CCID; cl.RetrieveFromDBSources(); this.AddFieldSet(cl.Title); this.Add("抄送人:" + cl.Rec + ", 抄送日期:" + cl.RDT); this.AddHR(); this.Add(cl.DocHtml); this.AddFieldSetEnd(); if (cl.HisSta == CCSta.UnRead) { cl.HisSta = CCSta.Read; cl.Update(); } } }
protected void Page_Load(object sender, EventArgs e) { if (this.DoType == "View") { this.BindTrack_ViewWork(); return; } if (this.DoType == "ViewSpecialWork") { this.BindTrack_ViewSpecialWork(); return; } //this.AddTable("class='Table' cellpadding='0' cellspacing='0' border='0' style='width: 100%'"); //this.AddTR(); //this.AddTDGroupTitle("style='text-align:center'", "序"); //this.AddTDGroupTitle("操作时间"); //this.AddTDGroupTitle("表单"); //moved by liuxc,2014-12-18,应zhangqingpeng要求将此列提前 //this.AddTDGroupTitle("从节点"); //this.AddTDGroupTitle("人员"); //this.AddTDGroupTitle("到节点"); //this.AddTDGroupTitle("人员"); //this.AddTDGroupTitle("到达时间"); //this.AddTDGroupTitle("用时"); //this.AddTDGroupTitle("活动"); //this.AddTDGroupTitle("信息"); //this.AddTDGroupTitle("执行人"); //this.AddTREnd(); //获取track. DataTable dt = BP.WF.Dev2Interface.DB_GenerTrack(this.FK_Flow, this.WorkID, this.FID).Tables["Track"]; DataView dv = dt.DefaultView; dv.Sort = "RDT"; GenerWorkFlow gwf = new GenerWorkFlow(); gwf.WorkID = this.WorkID; gwf.RetrieveFromDBSources(); string currNodeID = "0"; if (gwf.WFState != WFState.Complete) { currNodeID = gwf.FK_Node.ToString(); //获得当前运行到的节点如果流程完成则为O. } int idx = 1; string checkStr = ""; #region qin 改成时间轴的显示方式 15/7/15 如果不需要这种显示方式 string str = "";//拼接字符串 str += "<div class='content'>"; str += "<div class='wrapper'>"; str += "<div class='main'>"; str += "<h1 class='title'>"; str += "ccflow流程日志</h1>"; str += "<div class='year'>"; str += "<h2>"; str += "<a href='#'>到达时间<i></i></a></h2>"; str += "<div class='list'>"; str += "<ul>"; #endregion qin 改成时间轴的显示方式 15/7/15 #region 开始循环添加数据 foreach (DataRowView dr in dv) { ActionType at = (ActionType)int.Parse(dr[TrackAttr.ActionType].ToString()); // 记录审核节点。 if (at == ActionType.WorkCheck) { checkStr = dr[TrackAttr.NDFrom].ToString(); //记录当前的审核节点id. } //审核信息过滤, if (at == ActionType.WorkCheck) { if (currNodeID == checkStr) { continue; } //如果当前节点与审核信息节点一致,就说明当前人员的审核意见已经保存,但是工作还没有发送,就不让他显示。 } if (at == ActionType.Forward) { if (checkStr == dr[TrackAttr.NDFrom].ToString()) { continue; } } str += "<li class='cls highlight' style=\"background: url('../../Img/Action/" + at.ToString() + ".png') no-repeat 235px 31px\">"; //this.AddTR(); //this.AddTDIdx(idx); DateTime dtt = DataType.ParseSysDateTime2DateTime(dr[TrackAttr.RDT].ToString()); // this.AddTD(dtt.ToString("yy年MM月dd日HH:mm"));</br> str += "<p class='date'>" + dtt.ToString("yy年MM月dd日") + " " + BP.DA.DataType.GetWeek((int)dtt.DayOfWeek); str += "</br>" + dtt.ToString("hh时mm分"); str += "</br>" + BP.WF.Glo.GenerUserImgHtml(dr[TrackAttr.EmpFrom].ToString(), dr[TrackAttr.EmpFromT].ToString()) + "</p>"; str += "<p class='intro'>" + dr[TrackAttr.NDFromT].ToString() + "</p>"; str += "<div class='more'>"; if (at == ActionType.Forward || at == ActionType.ForwardAskfor || at == ActionType.WorkCheck || at == ActionType.Order || at == ActionType.FlowOver || //added by liuxc,2014-12-3,正常结束结点也显示表单 at == ActionType.Skip) //added by liuxc,2015-7-13,自动跳转的也显示表单 { //this.AddTD("<a class='easyui-linkbutton' data-options=\"iconCls:'icon-sheet'\" href=\"javascript:WinOpen('" + BP.WF.Glo.CCFlowAppPath + "WF/WFRpt.aspx?WorkID=" + dr[TrackAttr.WorkID].ToString() + "&FK_Flow=" + this.FK_Flow + "&FK_Node=" + dr[TrackAttr.NDFrom].ToString() + "&DoType=View&MyPK=" + dr[TrackAttr.MyPK].ToString() + "','" + dr[TrackAttr.MyPK].ToString() + "');\">表单</a>"); str += "<p>" + "<a class='easyui-linkbutton' data-options=\"iconCls:'icon-sheet'\" href=\"javascript:WinOpen('" + BP.WF.Glo.CCFlowAppPath + "WF/WFRpt.aspx?WorkID=" + dr[TrackAttr.WorkID].ToString() + "&FK_Flow=" + this.FK_Flow + "&FK_Node=" + dr[TrackAttr.NDFrom].ToString() + "&DoType=View&MyPK=" + dr[TrackAttr.MyPK].ToString() + "','" + dr[TrackAttr.MyPK].ToString() + "');\">表单</a>" + "</p>"; } else { // this.AddTD(""); // str += "<p>" + "<a class='easyui-linkbutton' data-options=\"iconCls:'icon-sheet'\" >表单</a>" + "</p>"; } //this.AddTD(dr[TrackAttr.NDFromT].ToString()); //this.AddTD(BP.WF.Glo.GenerUserImgSmallerHtml(dr[TrackAttr.EmpFrom].ToString(), dr[TrackAttr.EmpFromT].ToString())); //this.AddTD("<img src='../../Img/Action/" + at.ToString() + ".png' class='ActionType' border=0/>" + BP.WF.Track.GetActionTypeT(at)); if (at == ActionType.FlowOver || at == ActionType.CC || at == ActionType.UnSend) { str += "<p></p>"; str += "<p></p>"; } else { str += "<p>到达节点:" + dr[TrackAttr.NDToT].ToString() + "</p>"; } //增加两列,到达时间、用时 added by liuxc,2014-12-4 if (idx > 1) { var toTime = Convert.ToDateTime(dv[idx - 1 - 1][TrackAttr.RDT].ToString()); str += "<p>到达时间:" + toTime.ToString("yy年MM月dd日HH:mm") + " 用时:" + DataType.GetSpanTime(toTime, dtt) + "</p>"; } // 删除信息. string tag = dr[TrackAttr.Tag].ToString(); if (tag != null) { tag = tag.Replace("~", "'"); } string msg = DataType.ParseText2Html(dr[TrackAttr.Msg].ToString()); switch (at) { case ActionType.CallChildenFlow: //被调用父流程吊起。 if (string.IsNullOrEmpty(tag) == false) { AtPara ap = new AtPara(tag); GenerWorkFlow mygwf = new GenerWorkFlow(); mygwf.WorkID = ap.GetValInt64ByKey("PWorkID"); if (mygwf.RetrieveFromDBSources() == 1) { msg = "<p>操作员:{" + dr[TrackAttr.EmpFromT].ToString() + "}在当前节点上,被父流程{" + mygwf.FlowName + "},<a target=b" + ap.GetValStrByKey("PWorkID") + " href='Track.aspx?WorkID=" + ap.GetValStrByKey("PWorkID") + "&FK_Flow=" + ap.GetValStrByKey("PFlowNo") + "' >" + msg + "</a></p>"; } else { msg = "<p>操作员:{" + dr[TrackAttr.EmpFromT].ToString() + "}在当前节点上,被父流程调用{" + mygwf.FlowName + "},但是该流程被删除了.</p>" + tag; } msg = "<a target=b" + ap.GetValStrByKey("PWorkID") + " href='Track.aspx?WorkID=" + ap.GetValStrByKey("PWorkID") + "&FK_Flow=" + ap.GetValStrByKey("PFlowNo") + "' >" + msg + "</a>"; } break; case ActionType.StartChildenFlow: //吊起子流程。 if (string.IsNullOrEmpty(tag) == false) { if (tag.Contains("Sub")) { tag = tag.Replace("Sub", "C"); } AtPara ap = new AtPara(tag); GenerWorkFlow mygwf = new GenerWorkFlow(); mygwf.WorkID = ap.GetValInt64ByKey("CWorkID"); if (mygwf.RetrieveFromDBSources() == 1) { msg = "<p>操作员:{" + dr[TrackAttr.EmpFromT].ToString() + "}在当前节点上调用了子流程{" + mygwf.FlowName + "}, <a target=b" + ap.GetValStrByKey("CWorkID") + " href='Track.aspx?WorkID=" + ap.GetValStrByKey("CWorkID") + "&FK_Flow=" + ap.GetValStrByKey("CFlowNo") + "' >" + msg + "</a></p>"; msg += "<p>当前子流程状态:{" + mygwf.WFStateText + "},运转到:{" + mygwf.NodeName + "},最后处理人{" + mygwf.TodoEmps + "},最后处理时间{" + mygwf.RDT + "}。</p>"; } else { msg = "<p>操作员:{" + dr[TrackAttr.EmpFromT].ToString() + "}在当前节点上调用了子流程{" + mygwf.FlowName + "},但是该流程被删除了.</p>" + tag; } } break; default: break; } msg = msg.Replace("\"", ""); str += "<p>" + msg + "</p>"; str += "</div>"; str += "</li>"; idx++; } //结束循环. //this.AddTableEnd(); #endregion if (this.CCID != null) { CCList cl = new CCList(); cl.MyPK = this.CCID; cl.RetrieveFromDBSources(); // this.AddFieldSet(cl.Title); // this.Add("抄送人:" + cl.Rec + ", 抄送日期:" + cl.RDT); // this.AddHR(); // this.Add(cl.DocHtml); // this.AddFieldSetEnd(); str += "<li class='cls highlight' style=\"background: url('./Img/Action/circle.png') no-repeat 235px 31px\">"; str += "<p class='date'> </p>"; str += "<p class='intro'>" + cl.Title + "</p>"; str += "<p class='version'> </p>"; str += "<div class='more'>"; str += "<p>抄送人:" + cl.Rec + "</p>"; str += "<p>抄送日期:" + cl.RDT + "</p>"; str += "</div>"; str += "</li>"; if (cl.HisSta == CCSta.UnRead) { cl.HisSta = CCSta.Read; cl.Update(); } } str += "</ul>"; str += "</div>"; str += "</div>"; str += "</div>"; str += "</div>"; str += "</div>"; //this.Clear(); HiddenField1.Value = str.ToString(); }
protected void Page_Load(object sender, EventArgs e) { //以下判断没发现起到什么作用 if (BP.WF.Dev2Interface.Flow_IsCanViewTruck(this.FK_Flow, this.WorkID, this.FID) == false) { //string url = this.Request.RawUrl; ////url=url.Replace ////this.Response.Redirect(url,true); //string errorStr = "您没有权限查看该工作"; //errorStr += "<br>1,您非该流程的处理人."; //errorStr += "<br>2, 您不与该流程发起人是同一个部门。"; //return ; } if (this.DoType == "View") { this.BindTrack_ViewWork(); return; } if (this.DoType == "ViewSpecialWork") { this.BindTrack_ViewSpecialWork(); return; } //this.AddTable("class='Table' cellpadding='0' cellspacing='0' border='0' style='width: 100%'"); //this.AddTR(); //this.AddTDGroupTitle("style='text-align:center'", "序"); //this.AddTDGroupTitle("操作时间"); //this.AddTDGroupTitle("表单"); //moved by liuxc,2014-12-18,应zhangqingpeng要求将此列提前 //this.AddTDGroupTitle("从节点"); //this.AddTDGroupTitle("人员"); //this.AddTDGroupTitle("到节点"); //this.AddTDGroupTitle("人员"); //this.AddTDGroupTitle("到达时间"); //this.AddTDGroupTitle("用时"); //this.AddTDGroupTitle("活动"); //this.AddTDGroupTitle("信息"); //this.AddTDGroupTitle("执行人"); //this.AddTREnd(); //获取track. DataTable dt = BP.WF.Dev2Interface.DB_GenerTrack(this.FK_Flow, this.WorkID, this.FID).Tables["Track"]; DataView dv = dt.DefaultView; dv.Sort = "RDT"; GenerWorkFlow gwf = new GenerWorkFlow(); gwf.WorkID = this.WorkID; gwf.RetrieveFromDBSources(); string currNodeID = "0"; if (gwf.WFState != WFState.Complete) { currNodeID = gwf.FK_Node.ToString(); //获得当前运行到的节点如果流程完成则为O. } int idx = 1; string checkStr = ""; #region qin 改成时间轴的显示方式 15/7/15 如果不需要这种显示方式 string str = "";//拼接字符串 str += "<div style='width: 100%;height:400px;'><div class='content'>"; str += "<div class='wrapper'>"; str += "<div class='main'>"; str += "<h1 class='title'>"; str += "流程日志</h1>"; str += "<div class='year'>"; str += "<h2>"; str += "<a href='#'> 时间轴<i></i></a></h2>"; str += "<div class='list'>"; str += "<ul>"; #endregion qin 改成时间轴的显示方式 15/7/15 #region 开始循环添加数据 foreach (DataRowView dr in dv) { Int64 fid = int.Parse(dr["FID"].ToString()); if (fid != 0) { continue; } ActionType at = (ActionType)int.Parse(dr[TrackAttr.ActionType].ToString()); //如果是协作发送,就不输出他. edit 2016.02.20 . if (at == ActionType.TeampUp) { continue; } // 记录审核节点。 if (at == ActionType.WorkCheck) { checkStr = dr[TrackAttr.NDFrom].ToString(); //记录当前的审核节点id. } //审核信息过滤, if (at == ActionType.WorkCheck) { if (currNodeID == checkStr) { continue; } //如果当前节点与审核信息节点一致,就说明当前人员的审核意见已经保存,但是工作还没有发送,就不让他显示。 } if (at == ActionType.Forward) { if (checkStr == dr[TrackAttr.NDFrom].ToString()) { continue; } } str += "<li class='cls highlight' style=\"background: url('../../Img/Action/" + at.ToString() + ".png') no-repeat 235px 31px\">"; //this.AddTR(); //this.AddTDIdx(idx); DateTime dtt = DataType.ParseSysDateTime2DateTime(dr[TrackAttr.RDT].ToString()); // this.AddTD(dtt.ToString("yy年MM月dd日HH:mm"));</br> str += "<p class='date'>" + dtt.ToString("yy年MM月dd日") + " " + dtt.ToString("hh时mm分"); str += "</br>" + BP.DA.DataType.GetWeek((int)dtt.DayOfWeek); str += "</br>" + BP.WF.Glo.GenerUserImgHtml(dr[TrackAttr.EmpFrom].ToString(), dr[TrackAttr.EmpFromT].ToString()) + "</p>"; str += "<p class='intro'>" + dr[TrackAttr.NDFromT].ToString() + "</p>"; str += "<div class='more'>"; if (at == ActionType.Forward || at == ActionType.ForwardAskfor || at == ActionType.WorkCheck || at == ActionType.Order || at == ActionType.FlowOver || //added by liuxc,2014-12-3,正常结束结点也显示表单 at == ActionType.Skip) //added by liuxc,2015-7-13,自动跳转的也显示表单 { //this.AddTD("<a class='easyui-linkbutton' data-options=\"iconCls:'icon-sheet'\" href=\"javascript:WinOpen('" + BP.WF.Glo.CCFlowAppPath + "WF/WFRpt.aspx?WorkID=" + dr[TrackAttr.WorkID].ToString() + "&FK_Flow=" + this.FK_Flow + "&FK_Node=" + dr[TrackAttr.NDFrom].ToString() + "&DoType=View&MyPK=" + dr[TrackAttr.MyPK].ToString() + "','" + dr[TrackAttr.MyPK].ToString() + "');\">表单</a>"); str += "<p><a class='easyui-linkbutton' data-options=\"iconCls:'icon-sheet'\" href=\"javascript:WinOpen('" + BP.WF.Glo.CCFlowAppPath + "WF/WFRpt.aspx?WorkID=" + dr[TrackAttr.WorkID].ToString() + "&FK_Flow=" + this.FK_Flow + "&FK_Node=" + dr[TrackAttr.NDFrom].ToString() + "&DoType=View&MyPK=" + dr[TrackAttr.MyPK].ToString() + "','" + dr[TrackAttr.MyPK].ToString() + "');\">打开<img src='../../Img/Form.png'>表单</a>" + "</p>"; } if (at == ActionType.FlowOver || at == ActionType.CC || at == ActionType.UnSend) { str += "<p></p>"; str += "<p></p>"; } else { str += "<p>发送到节点:" + dr[TrackAttr.NDToT].ToString() + "</p>"; } //增加两列,到达时间、用时 added by liuxc,2014-12-4 if (idx > 1) { var toTime = Convert.ToDateTime(dv[idx - 1 - 1][TrackAttr.RDT].ToString()); str += "<p>到达时间:" + toTime.ToString("yy年MM月dd日HH:mm") + " 用时:" + DataType.GetSpanTime(toTime, dtt) + "</p>"; } // 删除信息. string tag = dr[TrackAttr.Tag].ToString(); if (tag != null) { tag = tag.Replace("~", "'"); } string msg = DataType.ParseText2Html(dr[TrackAttr.Msg].ToString()); switch (at) { case ActionType.CallChildenFlow: //被调用父流程吊起。 if (string.IsNullOrEmpty(tag) == false) { AtPara ap = new AtPara(tag); GenerWorkFlow mygwf = new GenerWorkFlow(); mygwf.WorkID = ap.GetValInt64ByKey("PWorkID"); if (mygwf.RetrieveFromDBSources() == 1) { msg = "<p>操作员:{" + dr[TrackAttr.EmpFromT].ToString() + "}在当前节点上,被父流程{" + mygwf.FlowName + "},<a target=b" + ap.GetValStrByKey("PWorkID") + " href='Track.aspx?WorkID=" + ap.GetValStrByKey("PWorkID") + "&FK_Flow=" + ap.GetValStrByKey("PFlowNo") + "' >" + msg + "</a></p>"; } else { msg = "<p>操作员:{" + dr[TrackAttr.EmpFromT].ToString() + "}在当前节点上,被父流程调用{" + mygwf.FlowName + "},但是该流程被删除了.</p>" + tag; } msg = "<a target=b" + ap.GetValStrByKey("PWorkID") + " href='Track.aspx?WorkID=" + ap.GetValStrByKey("PWorkID") + "&FK_Flow=" + ap.GetValStrByKey("PFlowNo") + "' >" + msg + "</a>"; } break; case ActionType.StartChildenFlow: //吊起子流程。 if (string.IsNullOrEmpty(tag) == false) { if (tag.Contains("Sub")) { tag = tag.Replace("Sub", "C"); } AtPara ap = new AtPara(tag); GenerWorkFlow mygwf = new GenerWorkFlow(); mygwf.WorkID = ap.GetValInt64ByKey("CWorkID"); if (mygwf.RetrieveFromDBSources() == 1) { msg = "<p>操作员:{" + dr[TrackAttr.EmpFromT].ToString() + "}在当前节点上调用了子流程{" + mygwf.FlowName + "}, <a target=b" + ap.GetValStrByKey("CWorkID") + " href='Track.aspx?WorkID=" + ap.GetValStrByKey("CWorkID") + "&FK_Flow=" + ap.GetValStrByKey("CFlowNo") + "' >" + msg + "</a></p>"; msg += "<p>当前子流程状态:{" + mygwf.WFStateText + "},运转到:{" + mygwf.NodeName + "},最后处理人{" + mygwf.TodoEmps + "},最后处理时间{" + mygwf.RDT + "}。</p>"; } else { msg = "<p>操作员:{" + dr[TrackAttr.EmpFromT].ToString() + "}在当前节点上调用了子流程{" + mygwf.FlowName + "},但是该流程被删除了.</p>" + tag; } } break; default: break; } msg = msg.Replace("\"", ""); str += "<p>" + msg + "</p>"; str += "</div>"; str += "</li>"; idx++; } //判断当前工作是否完成,如果没有完成,就输出当前人员的待办信息 ,读取信息。 if (gwf.WFState == WFState.Runing) { GenerWorkerLists gwls = new GenerWorkerLists(gwf.WorkID, gwf.FK_Node); Node nd = new Node(gwf.FK_Node); str += "<li class='cls highlight' style=\"background: url('../../Img/Action/Todolist.png') no-repeat 235px 31px\" >"; str += "<BR><BR><p class='date'>流程运行到: " + gwf.NodeName + "。"; if (gwf.TodoEmpsNum == 1) { string myemp = gwf.TodoEmps; myemp = myemp.Replace("(", ""); myemp = myemp.Replace(")", ""); string[] strs = myemp.Split(','); str += "<br>" + BP.WF.Glo.GenerUserImgHtml(strs[0], strs[1]) + "。</p>"; } else { // str += "<br>处理人员:(" + gwf.TodoEmps + ")计(" + gwf.TodoEmpsNum + ")个,。</p>"; } str += "<div></div><br><br>"; if (nd.HisNodeWorkType == NodeWorkType.WorkFL || nd.HisNodeWorkType == NodeWorkType.StartWorkFL || nd.HisNodeWorkType == NodeWorkType.WorkFHL) { str += "<div><ul>"; foreach (GenerWorkerList item in gwls) { if (gwls.Count == 0 || nd.TodolistModel == TodolistModel.QiangBan || nd.TodolistModel == TodolistModel.Sharing) { if (item.IsRead == false) { str += "<li><img src='../../Img/Dot.png' width='8px' >处理人:" + BP.WF.Glo.DealUserInfoShowModel(item.FK_Emp, item.FK_EmpText) + " <font style='color:#FFFFFF; background-color:#00CC66' >未读</font></li>"; } else { str += "<li><img src='../../Img/Dot.png' width='8px' >处理人:" + BP.WF.Glo.DealUserInfoShowModel(item.FK_Emp, item.FK_EmpText) + " <font style='color:#FFFFFF; background-color:#FF9966' ><strong>已读</strong></font></li>"; } break; } switch (nd.TodolistModel) { case TodolistModel.QiangBan: str += "<li><img src='../../Img/Dot.png' width='8px' >处理人:" + BP.WF.Glo.DealUserInfoShowModel(item.FK_Emp, item.FK_EmpText) + " <font style='color:#FFFFFF; background-color:#FF9966' ><strong>已读</strong></font></li>"; break; case TodolistModel.Order: if (item.IsPassInt == 1) { str += "<li><img src='../../Img/Dot.png' width='8px' >处理人:" + BP.WF.Glo.DealUserInfoShowModel(item.FK_Emp, item.FK_EmpText) + " <font style='color:#FFFFFF; background-color:#FF9966' ><strong>已处理</strong></font></li>"; } else { if (item.IsRead == false) { str += "<li><img src='../../Img/Dot.png' width='8px' >处理人:" + BP.WF.Glo.DealUserInfoShowModel(item.FK_Emp, item.FK_EmpText) + " <font style='color:#FFFFFF; background-color:#00CC66' >未读</font></li>"; } else { str += "<li><img src='../../Img/Dot.png' width='8px' >处理人:" + BP.WF.Glo.DealUserInfoShowModel(item.FK_Emp, item.FK_EmpText) + " <font style='color:#FFFFFF; background-color:#FF9966' ><strong>已读</strong></font></li>"; } } break; case TodolistModel.Sharing: str += "<li><img src='../../Img/Dot.png' width='8px' >处理人:" + BP.WF.Glo.DealUserInfoShowModel(item.FK_Emp, item.FK_EmpText) + " <font style='color:#FFFFFF; background-color:#FF9966' ><strong>已读</strong></font></li>"; break; case TodolistModel.Teamup: if (item.IsPassInt == 1) { str += "<li><img src='../../Img/Dot.png' width='8px' >处理人:" + BP.WF.Glo.DealUserInfoShowModel(item.FK_Emp, item.FK_EmpText) + " <font style='color:#FFFFFF; background-color:#999966' ><strong>已处理</strong></font></li>"; } else { if (item.IsRead == false) { str += "<li><img src='../../Img/Dot.png' width='8px' >处理人:" + BP.WF.Glo.DealUserInfoShowModel(item.FK_Emp, item.FK_EmpText) + " <font style='color:#FFFFFF; background-color:#00CC66' >未读</font></li>"; } else { str += "<li><img src='../../Img/Dot.png' width='8px' >处理人:" + BP.WF.Glo.DealUserInfoShowModel(item.FK_Emp, item.FK_EmpText) + " <font style='color:#FFFFFF; background-color:#FF9966' ><strong>已读</strong></font></li>"; } } break; default: break; } } } str += "</ul>"; str += "</div>"; str += "<br>"; str += "<br>"; str += "<br>"; str += "<br>"; str += "<br>"; str += "<br>"; str += "<br>"; str += "</li>"; ///* 运行中的状态. */ //str += "<li>"; //str += "<table>"; //str += "<caption>当前节点信息</caption>"; //str += "<tr>"; //str += "<th>停留节点</th>"; //str += "<th>处理人</th>"; //str += "<th>是否读取?</th>"; //str += "</tr>"; //foreach (GenerWorkerList item in gwls) //{ // str += "<tr>"; // str += "<td>" + item.FK_NodeText + "</td>"; // str += "<td>" + item.FK_EmpText + "</td>"; // if (item.IsRead) // str += "<td>已读</td>"; // else // str += "<td>未读</td>"; // str += "</tr>"; //} //str += "</table>"; //str += "</li>"; } //结束循环. //this.AddTableEnd(); #endregion if (this.CCID != null) { CCList cl = new CCList(); cl.MyPK = this.CCID; cl.RetrieveFromDBSources(); // this.AddFieldSet(cl.Title); // this.Add("抄送人:" + cl.Rec + ", 抄送日期:" + cl.RDT); // this.AddHR(); // this.Add(cl.DocHtml); // this.AddFieldSetEnd(); str += "<li class='cls highlight' style=\"background: url('./Img/Action/circle.png') no-repeat 235px 31px\">"; str += "<p class='date'> </p>"; str += "<p class='intro'>" + cl.Title + "</p>"; str += "<p class='version'> </p>"; str += "<div class='more'>"; str += "<p>抄送人:" + cl.Rec + "</p>"; str += "<p>抄送日期:" + cl.RDT + "</p>"; str += "</div>"; str += "</li>"; if (cl.HisSta == CCSta.UnRead) { cl.HisSta = CCSta.Read; cl.Update(); } } str += "</ul>"; str += "</div>"; str += "</div>"; str += "</div>"; str += "</div>"; str += "</div>"; str += "</div>"; //this.Clear(); HiddenField1.Value = str.ToString(); }
protected void Page_Load(object sender, EventArgs e) { if (this.DoType == "View") { this.BindTrack_ViewWork(); return; } if (this.DoType == "ViewSpecialWork") { this.BindTrack_ViewSpecialWork(); return; } this.AddTable("class='Table' cellpadding='0' cellspacing='0' border='0' style='width: 100%'"); this.AddTR(); this.AddTDGroupTitle("style='text-align:center'", "序"); this.AddTDGroupTitle("操作时间"); this.AddTDGroupTitle("表单"); //moved by liuxc,2014-12-18,应zhangqingpeng要求将此列提前 this.AddTDGroupTitle("从节点"); this.AddTDGroupTitle("人员"); this.AddTDGroupTitle("到节点"); this.AddTDGroupTitle("人员"); this.AddTDGroupTitle("到达时间"); this.AddTDGroupTitle("用时"); this.AddTDGroupTitle("活动"); this.AddTDGroupTitle("信息"); this.AddTDGroupTitle("执行人"); this.AddTREnd(); //获取track. DataTable dt = BP.WF.Dev2Interface.DB_GenerTrack(this.FK_Flow, this.WorkID, this.FID).Tables["Track"]; DataView dv = dt.DefaultView; dv.Sort = "RDT"; GenerWorkFlow gwf = new GenerWorkFlow(); gwf.WorkID = this.WorkID; gwf.RetrieveFromDBSources(); string currNodeID = "0"; if (gwf.WFState != WFState.Complete) { currNodeID = gwf.FK_Node.ToString(); //获得当前运行到的节点如果流程完成则为O. } int idx = 1; string checkStr = ""; foreach (DataRowView dr in dv) { ActionType at = (ActionType)int.Parse(dr[TrackAttr.ActionType].ToString()); // 记录审核节点。 if (at == ActionType.WorkCheck) { checkStr = dr[TrackAttr.NDFrom].ToString(); //记录当前的审核节点id. } //审核信息过滤, if (at == ActionType.WorkCheck) { if (currNodeID == checkStr) { continue; } //如果当前节点与审核信息节点一致,就说明当前人员的审核意见已经保存,但是工作还没有发送,就不让他显示。 } if (at == ActionType.Forward) { if (checkStr == dr[TrackAttr.NDFrom].ToString()) { continue; } } this.AddTR(); this.AddTDIdx(idx); DateTime dtt = DataType.ParseSysDateTime2DateTime(dr[TrackAttr.RDT].ToString()); this.AddTD(dtt.ToString("yy年MM月dd日HH:mm")); if (at == ActionType.Forward || at == ActionType.ForwardAskfor || at == ActionType.WorkCheck || at == ActionType.Order || at == ActionType.FlowOver || //added by liuxc,2014-12-3,正常结束结点也显示表单 at == ActionType.Skip) //added by liuxc,2015-7-13,自动跳转的也显示表单 { this.AddTD("<a class='easyui-linkbutton' data-options=\"iconCls:'icon-sheet'\" href=\"javascript:WinOpen('" + BP.WF.Glo.CCFlowAppPath + "WF/WFRpt.aspx?WorkID=" + dr[TrackAttr.WorkID].ToString() + "&FK_Flow=" + this.FK_Flow + "&FK_Node=" + dr[TrackAttr.NDFrom].ToString() + "&DoType=View&MyPK=" + dr[TrackAttr.MyPK].ToString() + "','" + dr[TrackAttr.MyPK].ToString() + "');\">表单</a>"); } else { this.AddTD(""); } this.AddTD(dr[TrackAttr.NDFromT].ToString()); this.AddTD(BP.WF.Glo.GenerUserImgSmallerHtml(dr[TrackAttr.EmpFrom].ToString(), dr[TrackAttr.EmpFromT].ToString())); if (at == ActionType.FlowOver || at == ActionType.CC || at == ActionType.UnSend) { this.AddTD(); this.AddTD(); } else { this.AddTD(dr[TrackAttr.NDToT].ToString()); this.AddTD(dr[TrackAttr.EmpToT].ToString()); } //增加两列,到达时间、用时 added by liuxc,2014-12-4 if (idx > 1) { var toTime = Convert.ToDateTime(dv[idx - 1 - 1][TrackAttr.RDT].ToString()); this.AddTD(toTime.ToString("yy年MM月dd日HH:mm")); this.AddTD(DataType.GetSpanTime(toTime, dtt)); } else { this.AddTD(); this.AddTD(); } this.AddTD("<img src='../../Img/Action/" + at.ToString() + ".png' class='ActionType' border=0/>" + BP.WF.Track.GetActionTypeT(at)); // 删除信息. string tag = dr[TrackAttr.Tag].ToString(); if (tag != null) { tag = tag.Replace("~", "'"); } string msg = dr[TrackAttr.Msg].ToString(); switch (at) { case ActionType.CallChildenFlow: //被调用父流程吊起。 if (string.IsNullOrEmpty(tag) == false) { AtPara ap = new AtPara(tag); this.AddTD("class=TD", "<a target=b" + ap.GetValStrByKey("PWorkID") + " href='Track.aspx?WorkID=" + ap.GetValStrByKey("PWorkID") + "&FK_Flow=" + ap.GetValStrByKey("PFlowNo") + "' >" + msg + "</a>"); } else { this.AddTD("class=TD", msg); } break; case ActionType.StartChildenFlow: //吊起子流程。 if (string.IsNullOrEmpty(tag) == false) { AtPara ap = new AtPara(tag); this.AddTD("class=TD", "<a target=b" + ap.GetValStrByKey("CWorkID") + " href='Track.aspx?WorkID=" + ap.GetValStrByKey("CWorkID") + "&FK_Flow=" + ap.GetValStrByKey("CFlowNo") + "' >" + msg + "</a>"); } else { this.AddTD("class=TD", msg); } break; default: this.AddTD(DataType.ParseText2Html(msg)); break; } this.AddTD(dr[TrackAttr.Exer].ToString()); this.AddTREnd(); idx++; } this.AddTableEnd(); if (this.CCID != null) { CCList cl = new CCList(); cl.MyPK = this.CCID; cl.RetrieveFromDBSources(); this.AddFieldSet(cl.Title); this.Add("抄送人:" + cl.Rec + ", 抄送日期:" + cl.RDT); this.AddHR(); this.Add(cl.DocHtml); this.AddFieldSetEnd(); if (cl.HisSta == CCSta.UnRead) { cl.HisSta = CCSta.Read; cl.Update(); } } }
protected void Page_Load(object sender, System.EventArgs e) { Response.AddHeader("P3P", "CP=CAO PSA OUR"); Response.AddHeader("Cache-Control", "no-store"); Response.AddHeader("Expires", "0"); Response.AddHeader("Pragma", "no-cache"); string url = this.Request.RawUrl; if (url.Contains("DTT=") == false) { //this.Response.Redirect(url + "&DTT=" + DateTime.Now.ToString("mmDDhhmmss"), true); //return; } try { switch (this.ActionType) { case "Focus": //把任务放入任务池. BP.WF.Dev2Interface.Flow_Focus(Int64.Parse(this.Request.QueryString["WorkID"])); this.WinClose("ss"); break; case "PutOne": //把任务放入任务池. Int64 workid42 = Int64.Parse(this.Request.QueryString["WorkID"]); BP.WF.Dev2Interface.Node_TaskPoolPutOne(workid42); this.WinClose("ss"); break; case "DoAppTask": // 申请任务. Int64 workid2 = Int64.Parse(this.Request.QueryString["WorkID"]); BP.WF.Dev2Interface.Node_TaskPoolTakebackOne(workid2); this.WinClose("ss"); return; case "DoOpenCC": string fk_flow1 = this.Request.QueryString["FK_Flow"]; string fk_node1 = this.Request.QueryString["FK_Node"]; string workid1 = this.Request.QueryString["WorkID"]; string fid1 = this.Request.QueryString["FID"]; string Sta = this.Request.QueryString["Sta"]; if (Sta == "0") { BP.WF.Template.CCList cc1 = new BP.WF.Template.CCList(); cc1.MyPK = this.Request.QueryString["MyPK"]; cc1.Retrieve(); cc1.HisSta = CCSta.Read; cc1.Update(); } this.Response.Redirect("./WorkOpt/OneWork/Track.aspx?FK_Flow=" + fk_flow1 + "&FK_Node=" + fk_node1 + "&WorkID=" + workid1 + "&FID=" + fid1, false); return; case "DelCC": //删除抄送. CCList cc = new CCList(); cc.MyPK = this.MyPK; cc.Retrieve(); cc.HisSta = CCSta.Del; cc.Update(); this.WinClose(); break; case "DelSubFlow": //删除进程。 try { BP.WF.Dev2Interface.Flow_DeleteSubThread(this.FK_Flow, this.WorkID, "手工删除"); this.WinClose(); } catch (Exception ex) { this.WinCloseWithMsg(ex.Message); } break; case "DownBill": Bill b = new Bill(this.MyPK); b.DoOpen(); break; case "DelDtl": GEDtls dtls = new GEDtls(this.EnsName); GEDtl dtl = (GEDtl)dtls.GetNewEntity; dtl.OID = this.RefOID; if (dtl.RetrieveFromDBSources() == 0) { this.WinClose(); break; } FrmEvents fes = new FrmEvents(this.EnsName); //获得事件. // 处理删除前事件. try { fes.DoEventNode(BP.WF.XML.EventListDtlList.DtlItemDelBefore, dtl); } catch (Exception ex) { this.WinCloseWithMsg(ex.Message); break; } dtl.Delete(); // 处理删除后事件. try { fes.DoEventNode(BP.WF.XML.EventListDtlList.DtlItemDelAfter, dtl); } catch (Exception ex) { this.WinCloseWithMsg(ex.Message); break; } this.WinClose(); break; case "EmpDoUp": BP.WF.Port.WFEmp ep = new BP.WF.Port.WFEmp(this.RefNo); ep.DoUp(); BP.WF.Port.WFEmps emps111 = new BP.WF.Port.WFEmps(); // emps111.RemoveCash(); emps111.RetrieveAll(); this.WinClose(); break; case "EmpDoDown": BP.WF.Port.WFEmp ep1 = new BP.WF.Port.WFEmp(this.RefNo); ep1.DoDown(); BP.WF.Port.WFEmps emps11441 = new BP.WF.Port.WFEmps(); // emps11441.RemoveCash(); emps11441.RetrieveAll(); this.WinClose(); break; case "Track": //通过一个串来打开一个工作. string mySid = this.Request.QueryString["SID"]; string[] mystrs = mySid.Split('_'); Int64 myWorkID = int.Parse(mystrs[1]); string fk_emp = mystrs[0]; int fk_node = int.Parse(mystrs[2]); Node mynd = new Node(); mynd.NodeID = fk_node; mynd.RetrieveFromDBSources(); string fk_flow = mynd.FK_Flow; string myurl = "./WorkOpt/OneWork/Track.aspx?FK_Node=" + mynd.NodeID + "&WorkID=" + myWorkID + "&FK_Flow=" + fk_flow; Web.WebUser.SignInOfGener(new BP.Port.Emp(fk_emp), true); this.Response.Write("<script> window.location.href='" + myurl + "'</script> *^_^* <br><br>正在进入系统请稍后,如果长时间没有反应,请<a href='" + myurl + "'>点这里进入。</a>"); return; case "OF": //通过一个串来打开一个工作. string sid = this.Request.QueryString["SID"]; string[] strs = sid.Split('_'); GenerWorkerList wl = new GenerWorkerList(); int i = wl.Retrieve(GenerWorkerListAttr.FK_Emp, strs[0], GenerWorkerListAttr.WorkID, strs[1], GenerWorkerListAttr.FK_Node, strs[2]); if (i == 0) { this.Response.Write("<h2>提示</h2>此工作已经被别人处理或者此流程已删除。"); return; } BP.Port.Emp empOF = new BP.Port.Emp(wl.FK_Emp); Web.WebUser.SignInOfGener(empOF, true); string u = "MyFlow.aspx?FK_Flow=" + wl.FK_Flow + "&WorkID=" + wl.WorkID + "&FK_Node=" + wl.FK_Node + "&FID=" + wl.FID; this.Response.Write("<script> window.location.href='" + u + "'</script> *^_^* <br><br>正在进入系统请稍后,如果长时间没有反应,请<a href='" + u + "'>点这里进入。</a>"); return; case "ExitAuth": BP.Port.Emp emp = new BP.Port.Emp(this.FK_Emp); //首先退出,再进行登录 BP.Web.WebUser.Exit(); BP.Web.WebUser.SignInOfGenerLang(emp, WebUser.SysLang); this.WinClose(); return; case "LogAs": BP.WF.Port.WFEmp wfemp = new BP.WF.Port.WFEmp(this.FK_Emp); if (wfemp.AuthorIsOK == false) { this.WinCloseWithMsg("授权失败"); return; } BP.Port.Emp emp1 = new BP.Port.Emp(this.FK_Emp); BP.Web.WebUser.SignInOfGener(emp1, WebUser.SysLang, WebUser.No, true, false); this.WinClose(); return; case "TakeBack": // 取消授权。 BP.WF.Port.WFEmp myau = new BP.WF.Port.WFEmp(WebUser.No); BP.DA.Log.DefaultLogWriteLineInfo("取消授权:" + WebUser.No + "取消了对(" + myau.Author + ")的授权。"); myau.Author = ""; myau.AuthorWay = 0; myau.Update(); this.WinClose(); return; case "AutoTo": // 执行授权。 BP.WF.Port.WFEmp au = new BP.WF.Port.WFEmp(); au.No = WebUser.No; au.RetrieveFromDBSources(); au.AuthorDate = BP.DA.DataType.CurrentData; au.Author = this.FK_Emp; au.AuthorWay = 1; au.Save(); BP.DA.Log.DefaultLogWriteLineInfo("执行授权:" + WebUser.No + "执行了对(" + au.Author + ")的授权。"); this.WinClose(); return; case "UnSend": //执行撤消发送。 this.Response.Redirect("./WorkOpt/UnSend.aspx?WorkID=" + this.WorkID + "&FK_Flow=" + this.FK_Flow, false); return; case "SetBillState": break; case "WorkRpt": Bill bk1 = new Bill(this.Request.QueryString["OID"]); Node nd = new Node(bk1.FK_Node); this.Response.Redirect("WFRpt.aspx?WorkID=" + bk1.WorkID + "&FID=" + bk1.FID + "&FK_Flow=" + nd.FK_Flow + "&NodeId=" + bk1.FK_Node, false); //this.WinOpen(); //this.WinClose(); break; case "PrintBill": //Bill bk2 = new Bill(this.Request.QueryString["OID"]); //Node nd2 = new Node(bk2.FK_Node); //this.Response.Redirect("NodeRefFunc.aspx?NodeId=" + bk2.FK_Node + "&FlowNo=" + nd2.FK_Flow + "&NodeRefFuncOID=" + bk2.FK_NodeRefFunc + "&WorkFlowID=" + bk2.WorkID); ////this.WinClose(); break; //删除流程中第一个节点的数据,包括待办工作 case "DeleteFlow": string fk_flowDel = this.Request.QueryString["FK_Flow"]; Int64 workid = Int64.Parse(this.Request.QueryString["WorkID"]); //调用DoDeleteWorkFlowByReal方法 WorkFlow wf = new WorkFlow(new Flow(fk_flowDel), workid); wf.DoDeleteWorkFlowByReal(true); // Glo.ToMsg("流程删除成功"); BP.WF.Glo.ToMsg("流程删除成功"); //this.ToWFMsgPage("流程删除成功"); break; default: throw new Exception("ActionType error" + this.ActionType); } } catch (Exception ex) { this.ToErrorPage("执行其间如下异常:<BR>" + ex.Message); } }