public void InitToolbar(bool isAskFor, string appPath) { toolbar = this.ToolBar1; this.currND = new BP.WF.Node(this.FK_Node); BtnLab btnLab = new BtnLab(currND.NodeID); if (btnLab.PrintDocEnable && isAskFor == false) { /*如果不是加签 */ if (this.currND.HisPrintDocEnable == PrintDocEnable.PrintRTF) { string urlr = appPath + "WF/WorkOpt/PrintDoc.aspx?FK_Node=" + this.FK_Node + "&FID=" + this.FID + "&WorkID=" + this.WorkID + "&FK_Flow=" + this.FK_Flow; toolbar.Add("<input type=button class=Btn value='" + btnLab.PrintDocLab + "' enable=true onclick=\"WinOpen('" + urlr + "','dsdd'); \" />"); } if (this.currND.HisPrintDocEnable == PrintDocEnable.PrintWord) { string urlr = appPath + "WF/Rpt/RptDoc.aspx?FK_Node=" + this.FK_Node + "&FID=" + this.FID + "&WorkID=" + this.WorkID + "&FK_Flow=" + this.FK_Flow + "&IsPrint=1"; toolbar.Add("<input type=button class=Btn value='" + btnLab.PrintDocLab + "' enable=true onclick=\"WinOpen('" + urlr + "','dsdd'); \" />"); } if (this.currND.HisPrintDocEnable == PrintDocEnable.PrintHtml) { toolbar.Add("<input type=button class=Btn value='" + btnLab.PrintDocLab + "' enable=true onclick=\"printFrom(); \" />"); } } }
/// <summary> /// 是否可以打印. /// </summary> /// <param name="gwf"></param> /// <returns></returns> private bool IsCanPrintSpecForTianYe(GenerWorkFlow gwf) { //如果已经完成了,并且节点不是最后一个节点就不能打印. if (gwf.WFState == WFState.Complete) { Node nd = new Node(gwf.FK_Node); if (nd.IsEndNode == false) { return(false); } } // 判断是否可以打印. string sql = "SELECT Distinct NDFrom, EmpFrom FROM ND" + int.Parse(this.FK_Flow) + "Track WHERE WorkID=" + this.WorkID; DataTable dt = DBAccess.RunSQLReturnTable(sql); foreach (DataRow dr in dt.Rows) { //判断节点是否启用了按钮? int nodeid = int.Parse(dr[0].ToString()); BtnLab btn = new BtnLab(nodeid); if (btn.PrintPDFEnable == true || btn.PrintZipEnable == true) { string empFrom = dr[1].ToString(); if (gwf.WFState == BP.WF.WFState.Complete && (BP.Web.WebUser.No == empFrom || gwf.Starter == WebUser.No)) { return(true); } } } return(false); }
/// <summary> /// 保存 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> void btn_Save_Click(object sender, EventArgs e) { DataTable dt = this.GetTable(); string emps = ""; foreach (Control ctl in this.Pub1.Controls) { CheckBox cb = ctl as CheckBox; if (cb == null || cb.ID == null || cb.ID.Contains("CBs_")) { continue; } if (cb.Checked == false) { continue; } emps += cb.ID.Replace("CB_", "") + ","; } if (emps.Length < 2) { this.Alert("您没有选择人员。"); return; } SelectAccpers ens = new SelectAccpers(); ens.Delete(SelectAccperAttr.FK_Node, this.FK_Node, SelectAccperAttr.WorkID, this.WorkID); string[] strs = emps.Split(','); foreach (string str in strs) { if (str == null || str == "") { continue; } SelectAccper en = new SelectAccper(); en.MyPK = this.FK_Node + "_" + this.WorkID + "_" + str; en.FK_Emp = str; en.FK_Node = this.FK_Node; en.WorkID = this.WorkID; en.Insert(); } #warning 刘文辉 保存收件人后调用发送按钮 BtnLab nd = new BtnLab(this.FK_Node); if (nd.SelectAccepterEnable == 1) { /*如果是1不说明直接关闭它.*/ ScriptManager.RegisterStartupScript(this.Page, typeof(Page), "", "this.close();", true); } else { ScriptManager.RegisterStartupScript(this.Page, typeof(Page), "", "send();", true); } }
protected void Page_Load(object sender, EventArgs e) { try { BtnLab btnLab = new BtnLab(FK_Node); if (btnLab.WebOfficeEnable == 2) { IsTab = true; OfficeTabName = btnLab.WebOfficeLab; if (WorkID == 0) { Flow currFlow = new Flow(this.FK_Flow); WorkID = currFlow.NewWork().OID; } Node node = new Node(this.FK_Node); if (!node.IsStartNode) { string path = Server.MapPath("~/DataUser/OfficeFile/" + this.FK_Flow + "/"); foreach (string file in System.IO.Directory.GetFiles(path)) { System.IO.FileInfo info = new System.IO.FileInfo(file); if (info.Name.StartsWith(this.WorkID.ToString())) { IsWordTab = true; break; } } } else { IsWordTab = true; } } try { WorkFlow workflow = new WorkFlow(this.FK_Flow, this.WorkID); bool IsComplate = workflow.HisGenerWorkFlow.WFState == WFState.Complete ? true : false; if (IsComplate) { if (OfficeTabName.Equals("公文") || BP.Sys.SystemConfig.CompanyID == "XCBANK") { IsReWord = true; } } } catch (Exception ex) { IsReWord = false; } } catch (Exception ex) { } }
protected void Page_Load(object sender, EventArgs e) { BtnLab btnLab = new BtnLab(this.FK_Node); string toolsDefault = ""; //打印 if (btnLab.PrintDocEnable) { toolsDefault += "<a id=\"PrintDoc\" href=\"#\" class=\"easyui-linkbutton\" data-options=\"plain:true,iconCls:'icon-print'\" onclick=\"EventFactory('printdoc')\">" + btnLab.PrintDocLab + "</a>"; } toolsDefault += "<a id=\"closeWin\" href=\"#\" class=\"easyui-linkbutton\" data-options=\"plain:true,iconCls:'icon-no'\" onclick=\"EventFactory('closeWin')\">关闭</a>"; //添加内容 this.toolBars.InnerHtml = toolsDefault; }
protected void Page_Load(object sender, EventArgs e) { if (this.DoType != null) { Node ndJump = new Node(this.GoNode); BP.WF.WorkNode wn = new BP.WF.WorkNode(this.WorkID, this.FK_Node); string msg = wn.NodeSend(ndJump, null).ToMsgOfHtml(); this.AddFieldSet("发送提示"); this.Add(msg.Replace("@", "<br>@")); this.AddFieldSetEnd(); return; } Node nd = new Node(this.FK_Node); BP.WF.BtnLab lab = new BtnLab(this.FK_Node); string sql = "SELECT NodeID,Name FROM WF_Node WHERE FK_Flow='" + this.FK_Flow + "'"; switch (lab.JumpWayEnum) { case JumpWay.Previous: sql = "SELECT NodeID,Name FROM WF_Node WHERE NodeID IN (SELECT FK_Node FROM WF_GenerWorkerlist WHERE WorkID=" + this.WorkID + " )"; break; case JumpWay.Next: sql = "SELECT NodeID,Name FROM WF_Node WHERE NodeID NOT IN (SELECT FK_Node FROM WF_GenerWorkerlist WHERE WorkID=" + this.WorkID + " ) AND FK_Flow='" + this.FK_Flow + "'"; break; case JumpWay.AnyNode: sql = "SELECT NodeID,Name FROM WF_Node WHERE FK_Flow='" + this.FK_Flow + "' ORDER BY STEP"; break; case JumpWay.JumpSpecifiedNodes: sql = nd.JumpSQL; sql = sql.Replace("@WebUser.No", WebUser.No); sql = sql.Replace("@WebUser.Name", WebUser.Name); sql = sql.Replace("@WebUser.FK_Dept", WebUser.FK_Dept); if (sql.Contains("@")) { Work wk = nd.HisWork; wk.OID = this.WorkID; wk.RetrieveFromDBSources(); foreach (Attr attr in wk.EnMap.Attrs) { if (sql.Contains("@") == false) { break; } sql = sql.Replace("@" + attr.Key, wk.GetValStrByKey(attr.Key)); } } break; case JumpWay.CanNotJump: this.WinCloseWithMsg("此节点不允许跳转."); return; default: throw new Exception("未判断."); } string small = this.PageID; small = small.Replace("JumpWay", ""); sql = sql.Replace("~", "'"); DataTable dt = DBAccess.RunSQLReturnTable(sql); this.Add("<div align='center' ><div style='width:500px;text-align:center'>"); this.AddFieldSet("请选择要跳转的节点"); this.AddUL(); foreach (DataRow dr in dt.Rows) { if (dr[0].ToString() == this.FK_Node.ToString()) { continue; } this.AddLi(" <img src='/WF/Img/MyWork.gif' border=0 /><a href='JumpWay" + small + ".aspx?DoType=Go&GoNode=" + dr[0].ToString() + "&WorkID=" + this.WorkID + "&FK_Node=" + this.FK_Node + "' >" + dr[0].ToString() + " - " + dr[1].ToString() + "</a><br>"); } this.AddULEnd(); this.AddHR(); this.AddBR(" <a href='MyFlow" + small + ".aspx?WorkID=" + this.WorkID + "&FK_Node=" + this.FK_Node + "&FK_Flow=" + this.FK_Flow + "&FID=" + this.FID + "' ><img src='/WF/Img/Btn/Back.gif' border=0 />返回</a>"); this.AddFieldSetEnd(); this.Add("</div>"); this.Add("</div>"); }
/// <summary> /// 保存 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> void btn_Save_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; } //DataTable dt = this.GetTable(); string emps = ""; foreach (Control ctl in this.Pub1.Controls) { CheckBox cb = ctl as CheckBox; if (cb == null || cb.ID == null || cb.ID.Contains("CBs_") || cb.ID == "CB_IsSetNextTime") { continue; } if (cb.Checked == false) { continue; } emps += cb.ID.Replace("CB_", "") + ","; } if (emps.Length < 2) { this.Alert("您没有选择人员。"); return; } //获取是否下次自动设置. bool isNextTime = this.Pub1.GetCBByID("CB_IsSetNextTime").Checked; //设置人员. BP.WF.Dev2Interface.WorkOpt_SetAccepter(this.ToNode, this.WorkID, this.FID, emps, isNextTime); if (this.IsWinOpen == 0) { /*如果是 MyFlow.aspx 调用的, 就要调用发送逻辑. */ this.DoSend(); return; } if (this.Request.QueryString["IsEUI"] == null) { this.WinClose("ok"); } else { PubClass.ResponseWriteScript("window.parent.$('windowIfrem').window('close');"); } #warning 刘文辉 保存收件人后调用发送按钮 BtnLab nd = new BtnLab(this.FK_Node); if (nd.SelectAccepterEnable == 1) { if (this.Request.QueryString["IsEUI"] == null) { /*如果是1不说明直接关闭它.*/ this.WinClose("ok"); //ScriptManager.RegisterStartupScript(this.Page, typeof(Page), "", "this.close();", true); } else { PubClass.ResponseWriteScript("window.parent.$('windowIfrem').window('close');"); } } else { ScriptManager.RegisterStartupScript(this.Page, typeof(Page), "", "send();", true); } }
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); }
protected void Page_Load(object sender, EventArgs e) { if (this.Request.QueryString["FK_Node"] == null) { // 如果没有接收到节点ID参数,就绑定当前人员可以执行批量审核的待办工作. int num = this.BindNodeList(); return; } BP.WF.Node nd = new BP.WF.Node(this.FK_Node); Flow fl = nd.HisFlow; string sql = ""; if (nd.HisRunModel == RunModel.SubThread) { sql = "SELECT a.*, b.Starter,b.ADT,b.WorkID FROM " + fl.PTable + " a , WF_EmpWorks b WHERE a.OID=B.FID AND b.WFState Not IN (7) AND b.FK_Node=" + nd.NodeID + " AND b.FK_Emp='" + WebUser.No + "'"; } else { sql = "SELECT a.*, b.Starter,b.ADT,b.WorkID FROM " + fl.PTable + " a , WF_EmpWorks b WHERE a.OID=B.WorkID AND b.WFState Not IN (7) AND b.FK_Node=" + nd.NodeID + " AND b.FK_Emp='" + WebUser.No + "'"; } // string sql = "SELECT Title,RDT,ADT,SDT,FID,WorkID,Starter FROM WF_EmpWorks WHERE FK_Emp='" + WebUser.No + "'"; DataTable dt = BP.DA.DBAccess.RunSQLReturnTable(sql); if (nd.HisBatchRole == BatchRole.None) { this.Pub1.AddFieldSetRed("错误", "节点(" + nd.Name + ")不能执行批量处理操作."); return; } string inSQL = "SELECT WorkID FROM WF_EmpWorks WHERE FK_Emp='" + WebUser.No + "' AND WFState!=7 AND FK_Node=" + this.FK_Node; Works wks = nd.HisWorks; wks.RetrieveInSQL(inSQL); BtnLab btnLab = new BtnLab(this.FK_Node); this.Pub1.AddTable("width='100%'"); //移动按钮位置 if (nd.HisBatchRole == BatchRole.Group) { this.Pub1.AddCaptionMsgLong("<a href='Batch.aspx'>返回</a> <input ID=\"btnGroup\" type=\"button\" value=\"合卷批复\" CssClass=\"Btn\" onclick=\"BatchGroup()\" />"); } else { this.Pub1.AddCaptionMsgLong(nd.FlowName + " - <a href='Batch.aspx'>返回</a>"); } #region 生成标题. this.Pub1.AddTR(); this.Pub1.AddTDTitle("序号"); string str1 = "<INPUT id='checkedAll' onclick='SelectAll()' text='选择' value='选择' type='checkbox' name='checkedAll'>"; this.Pub1.AddTDTitle("align='left'", str1 + "选择"); this.Pub1.AddTDTitle("标题"); this.Pub1.AddTDTitle("发起人"); this.Pub1.AddTDTitle("接受日期"); // 显示出来字段. BatchParas 的规则为 @字段中文名=fieldName@字段中文名1=fieldName1 MapAttrs attrs = new MapAttrs(this.FK_MapData); string[] strs = nd.BatchParas.Split(','); foreach (string str in strs) { if (string.IsNullOrEmpty(str) || str.Contains("@PFlowNo") == true) { continue; } foreach (MapAttr attr in attrs) { if (str != attr.KeyOfEn) { continue; } this.Pub1.AddTDTitle(attr.Name); } } this.Pub1.AddTREnd(); #endregion 生成标题. GERpt rpt = nd.HisFlow.HisGERpt; bool is1 = false; int idx = 0; foreach (Work wk in wks) { idx++; if (idx == nd.BatchListCount) { break; } #region 显示必要的列. is1 = this.Pub1.AddTR(is1); this.Pub1.AddTDIdx(idx); CheckBox cb = new CheckBox(); cb.ID = "CB_" + wk.OID.ToString(); foreach (DataRow dr in dt.Rows) { if (dr["WorkID"].ToString() != wk.OID.ToString()) { continue; } cb.Text = "选择"; this.Pub1.AddTD(cb); //this.Pub1.AddTD("<a href=\"javascript:WinOpen('MyFlow.aspx?WorkID=" + wk.OID + "&FK_Node=" + this.FK_Node + "&FK_Flow="+nd.FK_Flow+"','s')\" >" + dr["Title"].ToString() + "</a>"); this.Pub1.AddTD("<a href=\"javascript:WinOpen('FlowFormTree/Default.aspx?WorkID=" + wk.OID + "&FK_Node=" + this.FK_Node + "&IsSend=0&FK_Flow=" + nd.FK_Flow + "','s')\" >" + dr["Title"].ToString() + "</a>"); this.Pub1.AddTD(dr["Starter"].ToString()); this.Pub1.AddTD(dr["ADT"].ToString()); break; } #endregion 显示必要的列. #region 显示出来自定义的字段数据.. foreach (string str in strs) { if (string.IsNullOrEmpty(str) || str.Contains("@PFlowNo") == true) { continue; } foreach (MapAttr attr in attrs) { if (str != attr.KeyOfEn) { continue; } TB tb = new TB(); tb.ID = "TB_" + attr.KeyOfEn + "_" + wk.OID; switch (attr.LGType) { case FieldTypeS.Normal: switch (attr.MyDataType) { case BP.DA.DataType.AppString: if (attr.UIRows == 1) { tb.Text = wk.GetValStringByKey(attr.KeyOfEn); tb.Attributes["style"] = "width: " + attr.UIWidth + "px; text-align: left; height: 15px;padding: 0px;margin: 0px;"; if (attr.UIIsEnable) { tb.CssClass = "TB"; } else { tb.CssClass = "TBReadonly"; } this.Pub1.AddTD(tb); } else { tb.TextMode = TextBoxMode.MultiLine; tb.Text = wk.GetValStringByKey(attr.KeyOfEn); tb.Attributes["style"] = "width: " + attr.UIWidth + "px; text-align: left;padding: 0px;margin: 0px;"; tb.Attributes["maxlength"] = attr.MaxLen.ToString(); tb.Rows = attr.UIRows; if (attr.UIIsEnable) { tb.CssClass = "TBDoc"; } else { tb.CssClass = "TBReadonly"; } this.Pub1.AddTD(tb); } break; case BP.DA.DataType.AppDate: tb.ShowType = TBType.Date; tb.Text = wk.GetValStrByKey(attr.KeyOfEn); if (attr.UIIsEnable) { tb.Attributes["onfocus"] = "WdatePicker();"; } if (attr.UIIsEnable) { tb.Attributes["class"] = "TB"; } else { tb.Attributes["class"] = "TBReadonly"; } tb.Attributes["style"] = "width: " + attr.UIWidth + "px; text-align: left; height: 19px;"; this.Pub1.AddTD(tb); break; case BP.DA.DataType.AppDateTime: tb.ShowType = TBType.DateTime; tb.Text = wk.GetValStrByKey(attr.KeyOfEn); // en.GetValStrByKey(attr.KeyOfEn); if (attr.UIIsEnable) { tb.Attributes["class"] = "TBcalendar"; } else { tb.Attributes["class"] = "TBReadonly"; } if (attr.UIIsEnable) { tb.Attributes["onfocus"] = "WdatePicker({dateFmt:'yyyy-MM-dd HH:mm'});"; } tb.Attributes["style"] = "width: " + attr.UIWidth + "px; text-align: left; height: 19px;"; this.Pub1.AddTD(tb); break; case BP.DA.DataType.AppBoolean: cb = new CheckBox(); //cb.Width = 350; cb.Text = attr.Name; cb.ID = "CB_" + attr.KeyOfEn + "_" + wk.OID; cb.Checked = attr.DefValOfBool; cb.Enabled = attr.UIIsEnable; cb.Checked = wk.GetValBooleanByKey(attr.KeyOfEn); if (cb.Enabled == false) { cb.Enabled = false; } else { //add by dgq 2013-4-9,添加内容修改后的事件 // cb.Attributes["onmousedown"] = "Change('" + attr.FK_MapData + "')"; cb.Enabled = true; } this.Pub1.AddTD(cb); break; case BP.DA.DataType.AppDouble: case BP.DA.DataType.AppFloat: tb.Attributes["style"] = "width: " + attr.GetValStrByKey("UIWidth") + "px; text-align: right; height: 19px;word-break: keep-all;"; tb.Text = attr.DefVal; if (attr.UIIsEnable) { //增加验证 tb.Attributes.Add("onkeyup", @"Change('" + attr.FK_MapData + "');"); tb.Attributes.Add("onblur", @"value=value.replace(/[^-?\d+\.*\d*$]/g,'');TB_ClickNum(this,0);"); tb.Attributes.Add("onClick", "TB_ClickNum(this)"); tb.Attributes["OnKeyPress"] += @"javascript:return VirtyNum(this,'float');"; tb.Attributes["class"] = "TBNum"; } else { tb.Attributes["class"] = "TBReadonly"; } this.Pub1.AddTD(tb); break; case BP.DA.DataType.AppInt: tb.Attributes["style"] = "width: " + attr.GetValStrByKey("UIWidth") + "px; text-align: right; height: 19px;word-break: keep-all;"; tb.Text = attr.DefVal; if (attr.UIIsEnable) { //增加验证 tb.Attributes.Add("onkeyup", @"Change('" + attr.FK_MapData + "');"); tb.Attributes.Add("onblur", @"value=value.replace(/[^-?\d]/g,'');TB_ClickNum(this,0);"); tb.Attributes.Add("onClick", "TB_ClickNum(this)"); tb.Attributes["OnKeyPress"] += @"javascript:return VirtyNum(this,'int');"; tb.Attributes["class"] = "TBNum"; } else { tb.Attributes["class"] = "TBReadonly"; } this.Pub1.AddTD(tb); break; case BP.DA.DataType.AppMoney: if (attr.UIIsEnable) { //增加验证 tb.Attributes.Add("onkeyup", @"Change('" + attr.FK_MapData + "');"); tb.Attributes.Add("onblur", @"value=value.replace(/[^-?\d+\.*\d*$]/g,'');TB_ClickNum(this,'0.00');"); tb.Attributes.Add("onClick", "TB_ClickNum(this)"); tb.Attributes["OnKeyPress"] += @"javascript:return VirtyNum(this,'float');"; tb.Attributes["class"] = "TBNum"; } else { tb.Attributes["class"] = "TBReadonly"; } // tb.ShowType = TBType.Moneny; tb.Text = wk.GetValIntByKey(attr.KeyOfEn).ToString("0.00"); tb.Attributes["style"] = "width: " + attr.GetValStrByKey("UIWidth") + "px; text-align: right; height: 19px;"; this.Pub1.AddTD(tb); break; case BP.DA.DataType.AppRate: if (attr.UIIsEnable) { tb.Attributes["class"] = "TBNum"; } else { tb.Attributes["class"] = "TBReadonly"; } tb.ShowType = TBType.Moneny; tb.Text = wk.GetValMoneyByKey(attr.KeyOfEn).ToString("0.00"); tb.Attributes["style"] = "width: " + attr.GetValStrByKey("UIWidth") + "px; text-align: right; height: 19px;"; this.Pub1.AddTD(tb); break; default: break; } break; case FieldTypeS.Enum: if (attr.UIContralType == UIContralType.DDL) { DDL ddle = new DDL(); ddle.ID = "DDL_" + attr.KeyOfEn + "_" + wk.OID; ddle.BindSysEnum(attr.UIBindKey); ddle.SetSelectItem(wk.GetValIntByKey(attr.KeyOfEn)); ddle.Enabled = attr.UIIsEnable; ddle.Attributes["tabindex"] = attr.Idx.ToString(); if (attr.UIIsEnable) { //add by dgq 2013-4-9,添加内容修改后的事件 ddle.Attributes["onchange"] = "Change('" + attr.FK_MapData + "')"; } // ddle.Enabled = false; this.Pub1.AddTD(ddle); } else { } break; case FieldTypeS.FK: DDL ddl1 = new DDL(); ddl1.ID = "DDL_" + attr.KeyOfEn + "_" + wk.OID; ddl1.Attributes["tabindex"] = attr.Idx.ToString(); if (ddl1.Enabled) { EntitiesNoName ens = attr.HisEntitiesNoName; ens.RetrieveAll(); ddl1.BindEntities(ens); ddl1.SetSelectItem(wk.GetValStrByKey(attr.KeyOfEn)); } else { ddl1.Attributes["style"] = "width: " + attr.UIWidth + "px;height: 19px;"; if (ddl1.Enabled == true) { ddl1.Enabled = false; } ddl1.Attributes["Width"] = attr.UIWidth.ToString(); ddl1.Items.Add(new ListItem(wk.GetValRefTextByKey(attr.KeyOfEn), wk.GetValStrByKey(attr.KeyOfEn))); } ddl1.Enabled = attr.UIIsEnable; this.Pub1.AddTD(ddl1); break; default: break; } } } #endregion 显示出来自定义的字段数据.. this.Pub1.AddTREnd(); } this.Pub1.AddTableEndWithHR(); MapExts mes = new MapExts(this.FK_MapData); #region 处理扩展属性. if (mes.Count != 0) { this.Page.RegisterClientScriptBlock("s81", "<script language='JavaScript' src='/WF/Scripts/jquery-1.4.1.min.js' ></script>"); this.Page.RegisterClientScriptBlock("b81", "<script language='JavaScript' src='/WF/CCForm/MapExt.js' defer='defer' type='text/javascript' ></script>"); this.Pub1.Add("<div id='divinfo' style='width: 155px; position: absolute; color: Lime; display: none;cursor: pointer;align:left'></div>"); this.Page.RegisterClientScriptBlock("dCd", "<script language='JavaScript' src='/DataUser/JSLibData/" + this.FK_MapData + ".js' ></script>"); foreach (Work wk in wks) { foreach (MapExt me in mes) { switch (me.ExtType) { case MapExtXmlList.DDLFullCtrl: // 自动填充. DDL ddlOper = this.Pub1.GetDDLByID("DDL_" + me.AttrOfOper + "_" + wk.OID); if (ddlOper == null) { continue; } ddlOper.Attributes["onchange"] = "DDLFullCtrl(this.value,\'" + ddlOper.ClientID + "\', \'" + me.MyPK + "\')"; break; case MapExtXmlList.ActiveDDL: DDL ddlPerant = this.Pub1.GetDDLByID("DDL_" + me.AttrOfOper + "_" + wk.OID); string val, valC; if (ddlPerant == null || wk.OID < 100) { continue; } #warning 此处需要优化 string ddlC = "ContentPlaceHolder1_Batch1_DDL_" + me.AttrsOfActive + "_" + wk.OID; // ddlPerant.Attributes["onchange"] = " isChange=true; DDLAnsc(this.value, \'" + ddlC + "\', \'" + me.MyPK + "\')"; ddlPerant.Attributes["onchange"] = "DDLAnsc(this.value, \'" + ddlC + "\', \'" + me.MyPK + "\')"; DDL ddlChild = this.Pub1.GetDDLByID("DDL_" + me.AttrsOfActive + "_" + wk.OID); val = ddlPerant.SelectedItemStringVal; if (ddlChild.Items.Count == 0) { valC = wk.GetValStrByKey(me.AttrsOfActive); } else { valC = ddlChild.SelectedItemStringVal; } string mysql = me.Doc.Replace("@Key", val); if (mysql.Contains("@")) { mysql = BP.WF.Glo.DealExp(mysql, wk, null); } ddlChild.Bind(DBAccess.RunSQLReturnTable(mysql), "No", "Name"); if (ddlChild.SetSelectItem(valC) == false) { ddlChild.Items.Insert(0, new ListItem("请选择" + valC, valC)); ddlChild.SelectedIndex = 0; } break; case MapExtXmlList.AutoFullDLL: //自动填充下拉框的范围. DDL ddlFull = this.Pub1.GetDDLByID("DDL_" + me.AttrOfOper + "_" + wk.OID); if (ddlFull == null) { continue; } string valOld = wk.GetValStrByKey(me.AttrOfOper); string fullSQL = me.Doc.Replace("@WebUser.No", WebUser.No); fullSQL = fullSQL.Replace("@WebUser.Name", WebUser.Name); fullSQL = fullSQL.Replace("@WebUser.FK_Dept", WebUser.FK_Dept); fullSQL = fullSQL.Replace("@WebUser.FK_DeptName", WebUser.FK_DeptName); fullSQL = fullSQL.Replace("@Key", this.Request.QueryString["Key"]); if (fullSQL.Contains("@")) { Attrs attrsFull = wk.EnMap.Attrs; foreach (Attr attr in attrsFull) { if (fullSQL.Contains("@") == false) { break; } fullSQL = fullSQL.Replace("@" + attr.Key, wk.GetValStrByKey(attr.Key)); } } ddlFull.Items.Clear(); ddlFull.Bind(DBAccess.RunSQLReturnTable(fullSQL), "No", "Name"); if (ddlFull.SetSelectItem(valOld) == false) { ddlFull.Items.Insert(0, new ListItem("请选择" + valOld, valOld)); ddlFull.SelectedIndex = 0; } // ddlFull.Attributes["onchange"] = " isChange=true;"; break; case MapExtXmlList.TBFullCtrl: // 自动填充. TextBox tbAuto = this.Pub1.GetTextBoxByID("TB_" + me.AttrOfOper + "_" + wk.OID); if (tbAuto == null) { continue; } // tbAuto.Attributes["onkeyup"] = " isChange=true; DoAnscToFillDiv(this,this.value,\'" + tbAuto.ClientID + "\', \'" + me.MyPK + "\');"; tbAuto.Attributes["onkeyup"] = " DoAnscToFillDiv(this,this.value,\'" + tbAuto.ClientID + "\', \'" + me.MyPK + "\');"; tbAuto.Attributes["AUTOCOMPLETE"] = "OFF"; if (me.Tag != "") { /* 处理下拉框的选择范围的问题 */ string[] strsTmp = me.Tag.Split('$'); foreach (string str in strsTmp) { string[] myCtl = str.Split(':'); string ctlID = myCtl[0]; DDL ddlC1 = this.Pub1.GetDDLByID("DDL_" + ctlID + "_" + wk.OID); if (ddlC1 == null) { //me.Tag = ""; // me.Update(); continue; } sql = myCtl[1].Replace("~", "'"); sql = sql.Replace("@WebUser.No", WebUser.No); sql = sql.Replace("@WebUser.Name", WebUser.Name); sql = sql.Replace("@WebUser.FK_Dept", WebUser.FK_Dept); sql = sql.Replace("@Key", tbAuto.Text.Trim()); dt = DBAccess.RunSQLReturnTable(sql); string valC1 = ddlC1.SelectedItemStringVal; ddlC1.Items.Clear(); foreach (DataRow dr in dt.Rows) { ddlC1.Items.Add(new ListItem(dr[1].ToString(), dr[0].ToString())); } ddlC1.SetSelectItem(valC1); } } break; case MapExtXmlList.InputCheck: TextBox tbCheck = this.Pub1.GetTextBoxByID("TB_" + me.AttrOfOper + "_" + wk.OID); if (tbCheck != null) { tbCheck.Attributes[me.Tag2] += " rowPK=" + wk.OID + "; " + me.Tag1 + "(this);"; } break; case MapExtXmlList.PopVal: //弹出窗. TB tb = this.Pub1.GetTBByID("TB_" + me.AttrOfOper + "_" + wk.OID); // tb.Attributes["ondblclick"] = " isChange=true; ReturnVal(this,'" + me.Doc + "','sd');"; tb.Attributes["ondblclick"] = " ReturnVal(this,'" + me.Doc + "','sd');"; break; case MapExtXmlList.Link: // 超链接. //TB tb = this.Pub1.GetTBByID("TB_" + me.AttrOfOper + "_" + mydtl.OID); //tb.Attributes["ondblclick"] = " isChange=true; ReturnVal(this,'" + me.Doc + "','sd');"; break; case MapExtXmlList.RegularExpression: //正则表达式,对数据控件处理 TextBox tbExp = this.Pub1.GetTextBoxByID("TB_" + me.AttrOfOper + "_" + wk.OID); if (tbExp == null || me.Tag == "onsubmit") { continue; } //验证输入的正则格式 string regFilter = me.Doc; if (regFilter.LastIndexOf("/g") < 0 && regFilter.LastIndexOf('/') < 0) { regFilter = "'" + regFilter + "'"; } //处理事件 tbExp.Attributes.Add("" + me.Tag + "", "return txtTest_Onkeyup(this," + regFilter + ",'" + me.Tag1 + "')"); //[me.Tag] += "this.value=this.value.replace(" + regFilter + ",'')"; break; default: break; } } } } #endregion 拓展属性 Button btn = new Button(); if (nd.HisBatchRole == BatchRole.Ordinary) { /*如果普通的批处理.*/ btn.CssClass = "Btn"; btn.ID = "Btn_Send"; if (nd.BatchParas_IsSelfUrl == true) { btn.Text = "选择要批量处理的工作"; } else { btn.Text = "批量处理:" + btnLab.SendLab; } btn.Click += new EventHandler(btn_Send_Click); btn.Attributes["onclick"] = " return confirm('您确定要执行吗?');"; this.Pub1.Add(btn); if (btnLab.ReturnEnable == false) { btn = new Button(); btn.CssClass = "Btn"; btn.ID = "Btn_Return"; btn.Text = "批量处理:" + btnLab.ReturnEnable; btn.Click += new EventHandler(btnDelete_Return_Click); btn.Attributes["onclick"] = " return confirm('您确定要执行吗?');"; this.Pub1.Add(btn); } } if (nd.HisBatchRole == BatchRole.Group) { /*如果分组审核?*/ btn = new Button(); btn.CssClass = "Btn"; btn.ID = "Btn_Group"; //btn.Text = btnLab.SendLab; btn.Text = "合卷批复"; btn.Click += new EventHandler(btn_Group_Click); btn.Attributes["onclick"] = " return confirm('您确定要执行吗?');"; this.Pub1.Add(btn); } if (btnLab.ReturnEnable == false) { btn = new Button(); btn.CssClass = "Btn"; btn.ID = "Btn_Return"; btn.Text = "批量处理:" + btnLab.ReturnEnable; btn.Click += new EventHandler(btnDelete_Return_Click); btn.Attributes["onclick"] = " return confirm('您确定要执行吗?');"; this.Pub1.Add(btn); } if (btnLab.DeleteEnable != 0) { btn = new Button(); btn.CssClass = "Btn"; btn.ID = "Btn_Del"; btn.Text = "批量处理:" + btnLab.DeleteLab; btn.Click += new EventHandler(btnDelete_Click); btn.Attributes["onclick"] = " return confirm('您确定要执行吗?');"; this.Pub1.Add(btn); } }
/// <summary> /// 初始化工具栏 /// </summary> private void InitToolsBar() { string toolsDefault = ""; string extMenuHTML = ""; int toolCount = 0; int alowToolCount = 8; BtnLab btnLab = new BtnLab(this.FK_Node); this.mm3.Visible = false; //发送 if (btnLab.SendEnable && currND.HisBatchRole != BatchRole.Group) { toolsDefault += "<a id=\"send\" href=\"#\" class=\"easyui-linkbutton\" data-options=\"plain:true,iconCls:'icon-send'\" onclick=\"EventFactory('send')\">" + btnLab.SendLab + "</a>"; toolCount++; } //保存 if (btnLab.SaveEnable) { toolsDefault += "<a id=\"save\" href=\"#\" class=\"easyui-linkbutton\" data-options=\"plain:true,iconCls:'icon-save'\" onclick=\"EventFactory('save')\">" + btnLab.SaveLab + "</a>"; toolCount++; } //子线程 if (btnLab.ThreadEnable) { toolsDefault += "<a id=\"childline\" href=\"#\" class=\"easyui-linkbutton\" data-options=\"plain:true,iconCls:'icon-childline'\" onclick=\"EventFactory('childline')\">" + btnLab.ThreadLab + "</a>"; toolCount++; } //跳转 if (btnLab.JumpWayEnable) { toolsDefault += "<a id=\"jumpNode\" href=\"#\" class=\"easyui-linkbutton\" data-options=\"plain:true,iconCls:'icon-redo'\" onclick=\"EventFactory('jumpway')\">" + btnLab.JumpWayLab + "</a>"; toolCount++; } //退回 if (btnLab.ReturnEnable) { toolsDefault += "<a id=\"turnBack\" href=\"#\" class=\"easyui-linkbutton\" data-options=\"plain:true,iconCls:'icon-back'\" onclick=\"EventFactory('backcase')\">" + btnLab.ReturnLab + "</a>"; toolCount++; } //抄送 if (btnLab.CCRole != 0) { toolsDefault += "<a id=\"A1\" href=\"#\" class=\"easyui-linkbutton\" data-options=\"plain:true,iconCls:'icon-ccsmall'\" onclick=\"EventFactory('CC')\">" + btnLab.CCLab + "</a>"; toolCount++; } //移交 if (btnLab.ShiftEnable) { toolsDefault += "<a id=\"ShiftLab\" href=\"#\" class=\"easyui-linkbutton\" data-options=\"plain:true,iconCls:'icon-transfer'\" onclick=\"EventFactory('Shift')\">" + btnLab.ShiftLab + "</a>"; toolCount++; } //删除 if (btnLab.DeleteEnable != 0) { toolsDefault += "<a id=\"DeleteLab\" href=\"#\" class=\"easyui-linkbutton\" data-options=\"plain:true,iconCls:'icon-delete'\" onclick=\"EventFactory('Del')\">" + "删除" + "</a>"; toolCount++; } //结束 if (btnLab.EndFlowEnable) { //超出范围增加到菜单里面 if (toolCount > alowToolCount) { extMenuHTML += "<div data-options=\"plain:true,iconCls:'icon-no'\" onclick=\"EventFactory('endflow')\">" + btnLab.EndFlowLab + "</div>"; } else { toolsDefault += "<a id=\"EndFlow\" href=\"#\" class=\"easyui-linkbutton\" data-options=\"plain:true,iconCls:'icon-no'\" onclick=\"EventFactory('endflow')\">" + btnLab.EndFlowLab + "</a>"; } toolCount++; } //打印 if (btnLab.PrintDocEnable) { //超出范围增加到菜单里面 if (toolCount > alowToolCount) { extMenuHTML += "<div data-options=\"plain:true,iconCls:'icon-print'\" onclick=\"EventFactory('printdoc')\">" + btnLab.PrintDocLab + "</div>"; } else { toolsDefault += "<a id=\"PrintDoc\" href=\"#\" class=\"easyui-linkbutton\" data-options=\"plain:true,iconCls:'icon-print'\" onclick=\"EventFactory('printdoc')\">" + btnLab.PrintDocLab + "</a>"; } toolCount++; } //轨迹 if (btnLab.TrackEnable) { //超出范围增加到菜单里面 if (toolCount > alowToolCount) { extMenuHTML += "<div data-options=\"plain:true,iconCls:'icon-flowmap'\" onclick=\"EventFactory('showchart')\">" + btnLab.TrackLab + "</div>"; } else { toolsDefault += "<a id=\"Track\" href=\"#\" class=\"easyui-linkbutton\" data-options=\"plain:true,iconCls:'icon-flowmap'\" onclick=\"EventFactory('showchart')\">" + btnLab.TrackLab + "</a>"; } toolCount++; } //挂起 if (btnLab.HungEnable) { //超出范围增加到菜单里面 if (toolCount > alowToolCount) { extMenuHTML += "<div data-options=\"plain:true,iconCls:'icon-hungup'\" onclick=\"EventFactory('hungup')\">" + btnLab.HungLab + "</div>"; } else { toolsDefault += "<a id=\"Hung\" href=\"#\" class=\"easyui-linkbutton\" data-options=\"plain:true,iconCls:'icon-hungup'\" onclick=\"EventFactory('hungup')\">" + btnLab.HungLab + "</a>"; } toolCount++; } //接收人 if (btnLab.SelectAccepterEnable == 1) { //超出范围增加到菜单里面 if (toolCount > alowToolCount) { extMenuHTML += "<div data-options=\"plain:true,iconCls:'icon-person'\" onclick=\"EventFactory('selectaccepter')\">" + btnLab.SelectAccepterLab + "</div>"; } else { toolsDefault += "<a id=\"SelectAccepter\" href=\"#\" class=\"easyui-linkbutton\" data-options=\"plain:true,iconCls:'icon-person'\" onclick=\"EventFactory('selectaccepter')\">" + btnLab.SelectAccepterLab + "</a>"; } toolCount++; } //查询 if (btnLab.SearchEnable) { //超出范围增加到菜单里面 if (toolCount > alowToolCount) { extMenuHTML += "<div data-options=\"plain:true,iconCls:'icon-search'\" onclick=\"EventFactory('search')\">" + btnLab.SearchLab + "</div>"; } else { toolsDefault += "<a id=\"Search\" href=\"#\" class=\"easyui-linkbutton\" data-options=\"plain:true,iconCls:'icon-search'\" onclick=\"EventFactory('search')\">" + btnLab.SearchLab + "</a>"; } toolCount++; } //审核 if (btnLab.WorkCheckEnable) { //超出范围增加到菜单里面 if (toolCount > alowToolCount) { extMenuHTML += "<div data-options=\"plain:true,iconCls:'icon-note'\" onclick=\"EventFactory('workcheck')\">" + btnLab.WorkCheckLab + "</div>"; } else { toolsDefault += "<a id=\"WorkCheck\" href=\"#\" class=\"easyui-linkbutton\" data-options=\"plain:true,iconCls:'icon-note'\" onclick=\"EventFactory('workcheck')\">" + btnLab.WorkCheckLab + "</a>"; } toolCount++; } //批量审核 if (btnLab.BatchEnable) { //超出范围增加到菜单里面 if (toolCount > alowToolCount) { extMenuHTML += "<div data-options=\"plain:true,iconCls:'icon-note'\" onclick=\"EventFactory('batchworkcheck')\">" + btnLab.BatchLab + "</div>"; } else { toolsDefault += "<a id=\"BatchWorkCheck\" href=\"#\" class=\"easyui-linkbutton\" data-options=\"plain:true,iconCls:'icon-note'\" onclick=\"EventFactory('batchworkcheck')\">" + btnLab.BatchLab + "</a>"; } toolCount++; } //加签 if (btnLab.AskforEnable) { //超出范围增加到菜单里面 if (toolCount > alowToolCount) { extMenuHTML += "<div data-options=\"plain:true,iconCls:'icon-tag'\" onclick=\"EventFactory('askfor')\">" + btnLab.AskforLab + "</div>"; } else { toolsDefault += "<a id=\"Askfor\" href=\"#\" class=\"easyui-linkbutton\" data-options=\"plain:true,iconCls:'icon-tag'\" onclick=\"EventFactory('askfor')\">" + btnLab.AskforLab + "</a>"; } toolCount++; } //超出范围增加到菜单里面 if (toolCount > alowToolCount) { //extMenuHTML += "<div data-options=\"plain:true,iconCls:'icon-tag'\" onclick=\"addTab('ycfj','已传附件','/app/function/office/iofficefj.aspx?WorkID=" + this.WorkID + "&UserNo=" + WebUser.No + "&FID=" + this.FID + "');\">已传附件</div>"; //项目备案数据 //extMenuHTML += "<div data-options=\"plain:true,iconCls:'icon-tag'\" onclick=\"addTab('basj','备案数据','/DataBak.aspx?WorkID=" + this.WorkID + "&UserNo=" + WebUser.No + "&FID=" + this.FID + "');\">备案数据</div>"; } else { //toolsDefault += "<a id=\"ycfj\" href=\"#\" class=\"easyui-linkbutton\" data-options=\"plain:true,iconCls:'icon-tag'\" onclick=\"addTab('ycfj','已传附件','/app/function/office/iofficefj.aspx?WorkID=" + this.WorkID + "&UserNo=" + WebUser.No + "&FID=" + this.FID + "');\">已传附件</a>"; //一键签名 //toolsDefault += "<a id=\"ycfj\" href=\"#\" class=\"easyui-linkbutton\" data-options=\"plain:true,iconCls:'icon-note'\" onclick=\"EventFactory('Sign')\">一键签名</a>"; //备案数据 //toolsDefault += "<a id=\"DataBak\" href=\"#\" class=\"easyui-linkbutton\" data-options=\"plain:true,iconCls:'icon-tag'\" onclick=\"addTab('basj','备案数据','/DataBak.aspx?WorkID=" + this.WorkID + "&UserNo=" + WebUser.No + "&FID=" + this.FID + "');\">备案数据</a>"; } //扩展工具,显示位置为工具栏类型 NodeToolbars extToolBars = new NodeToolbars(); QueryObject info = new QueryObject(extToolBars); info.AddWhere(NodeToolbarAttr.FK_Node, this.FK_Node); info.addAnd(); info.AddWhere(NodeToolbarAttr.ShowWhere, (int)ShowWhere.Toolbar); info.DoQuery(); foreach (NodeToolbar item in extToolBars) { string url = ""; if (string.IsNullOrEmpty(item.Url)) { continue; } string urlExt = this.RequestParas; //urlExt = "WorkID=" + this.WorkID + "&FK_Flow=" + this.FK_Flow + "&FK_Node=" + this.FK_Node + "&UserNo=" + WebUser.No + "&FID=" + this.FID + "&SID=" + WebUser.SID + "&CWorkID=" + this.CWorkID; url = item.Url; if (url.Contains("?")) { url += urlExt; } else { url += "?" + urlExt; } //超出范围增加到菜单里面 if (toolCount > alowToolCount) { if (!string.IsNullOrEmpty(item.Target) && item.Target.ToLower() == "javascript") { extMenuHTML += "<div data-options=\"plain:true,iconCls:'icon-new'\" onclick=\"" + item.Url + "\">" + item.Title + "</div>"; } else { extMenuHTML += "<div data-options=\"plain:true,iconCls:'icon-new'\" onclick=\"WinOpenPage('" + item.Target + "','" + url + "','" + item.Title + "')\">" + item.Title + "</div>"; } } else { if (!string.IsNullOrEmpty(item.Target) && item.Target.ToLower() == "javascript") { toolsDefault += "<a href=\"#\" onclick=\"" + item.Url + "\" class=\"easyui-linkbutton\" data-options=\"plain:true,iconCls:'icon-new'\">" + item.Title + "</a>"; } else { toolsDefault += "<a target=\"" + item.Target + "\" href=\"" + url + "\" class=\"easyui-linkbutton\" data-options=\"plain:true,iconCls:'icon-new'\">" + item.Title + "</a>"; } toolCount++; } } //判断是否出现添加菜单 if (toolCount > alowToolCount) { this.mm3.Visible = true; toolsDefault += "<a href=\"javascript:void(0)\" id=\"mb3\" class=\"easyui-menubutton\" data-options=\"menu:'#mm3',plain:true,iconCls:'icon-add'\"></a>"; } toolsDefault += "<a id=\"closeWin\" href=\"#\" class=\"easyui-linkbutton\" data-options=\"plain:true,iconCls:'icon-no'\" onclick=\"EventFactory('closeWin')\">关闭</a>"; //添加内容 this.toolBars.InnerHtml = toolsDefault; this.mm3.InnerHtml = extMenuHTML; }
private void LoadMenu(bool isMenu) { BtnLab btnLab = new BtnLab(this.FK_Node); bool isCompleate = false; BP.WF.Node node = new BP.WF.Node(FK_Node); try { WorkFlow workFlow = new WorkFlow(node.FK_Flow, WorkID); isCompleate = workFlow.IsComplete; } catch (Exception) { try { Flow fl = new Flow(node.FK_Flow); GERpt rpt = fl.HisGERpt; rpt.OID = WorkID; rpt.Retrieve(); if (rpt != null) { if (rpt.WFState == WFState.Complete) { isCompleate = true; } } } catch (Exception ex) { } } if (isMenu && !isCompleate) { if (btnLab.OfficeMarksEnable) { divMenu.InnerHtml = "查看留痕:<select id='marks' onchange='ShowUserName()' style='width: 100px'><option value='显示留痕'>显示留痕</option><option value='隐藏留痕'>隐藏留痕</option><select>"; } if (btnLab.OfficeOpenEnable) { AddBtn("openFile", btnLab.OfficeOpenLab, "OpenFile"); } if (btnLab.OfficeOpenTemplateEnable) { AddBtn("openTempLate", btnLab.OfficeOpenTemplateLab, "OpenTempLate"); } if (btnLab.OfficeSaveEnable) { AddBtn("saveFile", btnLab.OfficeSaveLab, "saveOffice"); } if (btnLab.OfficeAcceptEnable) { AddBtn("accept", btnLab.OfficeAcceptLab, "acceptOffice"); } if (btnLab.OfficeRefuseEnable) { AddBtn("refuse", btnLab.OfficeRefuseLab, "refuseOffice"); } if (btnLab.OfficeOverEnable) { AddBtn("over", btnLab.OfficeOverLab, "overOffice"); } if (btnLab.OfficeSealEnable) { AddBtn("seal", btnLab.OfficeSealLab, "sealOffice"); } if (btnLab.OfficeInsertFlowEnable) { AddBtn("flow", btnLab.OfficeInsertFlowLab, "InsertFlow"); } if (btnLab.OfficeDownEnable) { AddBtn("download", btnLab.OfficeDownLab, "DownLoad"); } if (btnLab.OfficeIsMarks) { IsMarks = true; } if (btnLab.OfficeNodeInfo) { IsCheckInfo = true; } } // OfficeTemplate = btnLab.OfficeTemplate; IsSavePDF = btnLab.OfficeReSavePDF; if (!string.IsNullOrEmpty(this.MarkName)) { AddBtn("ViewMarks", "文档痕迹", "ViewMark"); } if (isMenu) { LoadAttachment(); } }
/// <summary> /// 获取工具栏 /// </summary> /// <returns></returns> private string GetAppToolBar() { int fk_Node = Int32.Parse(getUTF8ToString("nodeId")); BtnLab btnLab = new BtnLab(fk_Node); StringBuilder toolsBar = new StringBuilder(); toolsBar.Append("{"); //系统工具 toolsBar.Append("tools:["); //Send,Save,Thread,Return,CC,Shift,Del,EndFLow,RptTrack,HungUp" //发送 if (btnLab.SendEnable) { toolsBar.Append("{"); toolsBar.Append("no:'Send',btnlabel:'" + btnLab.SendLab + "'"); toolsBar.Append("},"); } //保存 if (btnLab.SaveEnable) { toolsBar.Append("{"); toolsBar.Append("no:'Save',btnlabel:'" + btnLab.SaveLab + "'"); toolsBar.Append("},"); } //子线程 if (btnLab.ThreadEnable) { toolsBar.Append("{"); toolsBar.Append("no:'Thread',btnlabel:'" + btnLab.ThreadLab + "'"); toolsBar.Append("},"); } //退回 if (btnLab.ReturnEnable) { toolsBar.Append("{"); toolsBar.Append("no:'Return',btnlabel:'" + btnLab.ReturnLab + "'"); toolsBar.Append("},"); } //抄送 if (btnLab.CCRole != 0) { toolsBar.Append("{"); toolsBar.Append("no:'CC',btnlabel:'" + btnLab.CCLab + "'"); toolsBar.Append("},"); } //移交 if (btnLab.ShiftEnable) { toolsBar.Append("{"); toolsBar.Append("no:'Shift',btnlabel:'" + btnLab.ShiftLab + "'"); toolsBar.Append("},"); } //删除 if (btnLab.DeleteEnable != 0) { toolsBar.Append("{"); toolsBar.Append("no:'Del',btnlabel:'" + btnLab.DeleteLab + "'"); toolsBar.Append("},"); } //结束 if (btnLab.EndFlowEnable) { toolsBar.Append("{"); toolsBar.Append("no:'EndFLow',btnlabel:'" + btnLab.EndFlowLab + "'"); toolsBar.Append("},"); } //打印 if (btnLab.PrintDocEnable) { toolsBar.Append("{"); toolsBar.Append("no:'Rpt',btnlabel:'" + btnLab.PrintDocLab + "'"); toolsBar.Append("},"); } //轨迹 if (btnLab.TrackEnable) { toolsBar.Append("{"); toolsBar.Append("no:'Track',btnlabel:'" + btnLab.TrackLab + "'"); toolsBar.Append("},"); } //挂起 if (btnLab.HungEnable) { toolsBar.Append("{"); toolsBar.Append("no:'HungUp',btnlabel:'" + btnLab.HungLab + "'"); toolsBar.Append("},"); } if (toolsBar.Length > 8) { toolsBar.Remove(toolsBar.Length - 1, 1); } toolsBar.Append("]"); //扩展工具 NodeToolbars extToolBars = new NodeToolbars(); extToolBars.RetrieveByAttr(NodeToolbarAttr.FK_Node, fk_Node); toolsBar.Append(",extTools:["); if (extToolBars.Count > 0) { foreach (NodeToolbar item in extToolBars) { toolsBar.Append("{OID:'" + item.OID + "',Title:'" + item.Title + "',Target:'" + item.Target + "',Url:'" + item.Url + "'},"); } toolsBar.Remove(toolsBar.Length - 1, 1); } toolsBar.Append("]"); toolsBar.Append("}"); return(toolsBar.ToString()); }
protected void Page_Load(object sender, EventArgs e) { if (this.IsPostBack == false) { //加载请选择一个节点表单 DDL_Frm1(); this.RB_Frm_0.Attributes["onclick"] = "SelectImg('0')"; this.RB_Frm_1.Attributes["onclick"] = "SelectImg('1')"; this.RB_tree.Attributes["onclick"] = "ChangeImg('0')"; this.RB_tab.Attributes["onclick"] = "ChangeImg('1')"; this.RB_CurrentForm.Attributes["onclick"] = "SetDDLEnable('" + this.DDL_Frm.ClientID + "','enable')"; this.RB_OtherForms.Attributes["onclick"] = "SetDDLEnable('" + this.DDL_Frm.ClientID + "','disable')"; BP.WF.Node nd = new Node(this.NodeID); BtnLab btn = new BtnLab(this.NodeID); if (btn.WebOfficeWorkModel == WebOfficeWorkModel.FrmFirst || btn.WebOfficeWorkModel == WebOfficeWorkModel.WordFirst) { nd.FormType = NodeFormType.WebOffice; } switch (nd.FormType) { //加载使用ccbpm内置的节点表单傻瓜表单 case NodeFormType.FixForm: this.RB_FixFrm.Checked = true; this.RB_Frm_1.Checked = true; //.SelectedValue ="1"; if (nd.NodeFrmID == "ND" + this.NodeID) { this.RB_CurrentForm.Checked = true; } else { this.RB_OtherForms.Checked = true; } this.DDL_Frm.SelectedValue = nd.NodeFrmID.Substring(2); break; //加载使用ccbpm内置的节点表单自由表单 case NodeFormType.FreeForm: this.RB_FixFrm.Checked = true; this.RB_Frm_0.Checked = true; //.SelectedValue ="1"; if (nd.NodeFrmID == "ND" + this.NodeID) { this.RB_CurrentForm.Checked = true; } else { this.RB_OtherForms.Checked = true; } this.DDL_Frm.SelectedValue = nd.NodeFrmID.Substring(2); break; //加载使用嵌入式表单 case NodeFormType.SelfForm: this.RB_SelfForm.Checked = true; this.TB_CustomURL.Text = nd.FormUrl; break; //加载使用SDK表单 case NodeFormType.SDKForm: this.RB_SDKForm.Checked = true; this.TB_FormURL.Text = nd.FormUrl; break; //加载表单树 case NodeFormType.SheetTree: this.RB_SheetTree.Checked = true; this.RB_tree.Checked = true; break; case NodeFormType.WebOffice: //公文表单. this.RB_WebOffice.Checked = true; this.RB_WebOffice_Frm2.Checked = true; if (btn.WebOfficeWorkModel == WebOfficeWorkModel.FrmFirst) { this.RB_WebOffice_Frm2.Checked = true; } else { this.RB_WebOffice_Frm3.Checked = true; } // this.RB_tree.Checked = true; break; //加载禁用(对多表单流程有效) case NodeFormType.DisableIt: this.RB_SheetTree.Checked = true; this.RB_tab.Checked = true; break; } } }
protected void Save() { Node nd = new Node(this.NodeID); //使用ccbpm内置的节点表单 if (this.RB_FixFrm.Checked) { if (this.RB_Frm_0.Checked == true) { nd.FormType = NodeFormType.FreeForm; nd.DirectUpdate(); } else { nd.FormType = NodeFormType.FixForm; nd.DirectUpdate(); } if (this.RB_CurrentForm.Checked) { nd.NodeFrmID = ""; nd.DirectUpdate(); } if (this.RB_OtherForms.Checked) { nd.NodeFrmID = "ND" + this.DDL_Frm.SelectedValue; nd.DirectUpdate(); } } //使用嵌入式表单 if (this.RB_SelfForm.Checked) { nd.FormType = NodeFormType.SelfForm; nd.FormUrl = this.TB_CustomURL.Text; nd.DirectUpdate(); } //使用SDK表单 if (this.RB_SDKForm.Checked) { nd.FormType = NodeFormType.SDKForm; nd.FormUrl = this.TB_FormURL.Text; nd.DirectUpdate(); } //绑定多表单 if (this.RB_SheetTree.Checked) { if (this.RB_tree.Checked == true) { nd.FormType = NodeFormType.SheetTree; nd.DirectUpdate(); } else { nd.FormType = NodeFormType.DisableIt; nd.DirectUpdate(); } } //如果公文表单选择了 if (this.RB_WebOffice.Checked) { nd.FormType = NodeFormType.WebOffice; nd.Update(); //按钮标签. BtnLab btn = new BtnLab(this.NodeID); if (this.RB_WebOffice_Frm2.Checked) { btn.WebOfficeWorkModel = WebOfficeWorkModel.FrmFirst; } else { btn.WebOfficeWorkModel = WebOfficeWorkModel.WordFirst; } btn.Update(); } }
protected void Page_Load(object sender, EventArgs e) { string sql = "SELECT Title,RDT,ADT,SDT,FID,WorkID,Starter FROM WF_EmpWorks WHERE FK_Emp='" + WebUser.No + "'"; DataTable dt = BP.DA.DBAccess.RunSQLReturnTable(sql); BP.WF.Node nd = new BP.WF.Node(this.FK_Node); BtnLab btnLab = new BtnLab(this.FK_Node); this.AddTable("width=80%"); this.AddCaption("批处理:" + nd.Name); this.AddTR(); this.AddTDTitle("IDX"); string str1 = "<INPUT id='checkedAll' onclick='SelectAll()' value='选择' type='checkbox' name='checkedAll'>"; this.AddTDTitle(str1); this.AddTDTitle("发起人"); this.AddTDTitle("发起日期"); this.AddTDTitle("接受日期"); this.AddTDTitle("应完成日期"); if (btnLab.ReturnEnable == true) { this.AddTD("<a href=>退回意见</a>"); } this.AddTREnd(); bool is1 = false; int idx = 0; foreach (DataRow dr in dt.Rows) { idx++; is1 = this.AddTR(is1); this.AddTDIdx(idx); CheckBox cb = new CheckBox(); cb.ID = "CB_" + dr["WorkID"].ToString(); cb.Text = dr["Title"].ToString(); this.AddTD(cb); this.AddTD(dr["Starter"].ToString()); this.AddTD(dr["RDT"].ToString()); this.AddTD(dr["ADT"].ToString()); this.AddTD(dr["SDT"].ToString()); this.AddTREnd(); } this.AddTableEndWithHR(); Button btn = new Button(); btn.CssClass = "Btn"; btn.ID = "Btn_Send"; btn.Text = "批量处理:" + btnLab.SendLab; btn.Click += new EventHandler(btn_Click); btn.Attributes["onclick"] = " return confirm('您确定要执行吗?');"; if (btnLab.DeleteEnable != 0) { btn = new Button(); btn.CssClass = "Btn"; btn.ID = "Btn_Del"; btn.Text = "批量处理:" + btnLab.DeleteLab; btn.Click += new EventHandler(btn_Click); btn.Attributes["onclick"] = " return confirm('您确定要执行吗?');"; } if (btnLab.ReturnEnable) { btn = new Button(); btn.CssClass = "Btn"; btn.ID = "Btn_Return"; btn.Text = "批量处理:" + btnLab.ReturnLab; btn.Click += new EventHandler(btn_Click); btn.Attributes["onclick"] = " return confirm('您确定要执行吗?');"; } this.Add(btn); }
/// <summary> /// 获取可操作状态信息 /// </summary> /// <returns></returns> public string OP_GetStatus() { GenerWorkFlow gwf = new GenerWorkFlow(this.WorkID); Hashtable ht = new Hashtable(); string json = "{"; bool isCan; #region 文件打印的权限判断,这里为天业集团做的特殊判断,现实的应用中,都可以打印. bool CanPackUp = false; if (SystemConfig.CustomerNo == "TianYe") { bool isAdmin = false; if (BP.Web.WebUser.No == "admin") { isAdmin = true; } // if (BP.Web.WebUser.No == "admin" || BP.Web.WebUser.IsAdmin == true) // 判断是否可以打印. //string sql = "SELECT NDFrom,NDFromT,EmpFrom FROM ND" + int.Parse(this.FK_Flow) + "Track WHERE WorkID=" + this.WorkID + " AND (EmpFrom='" + BP.Web.WebUser.No + "' OR EmpTo='" + BP.Web.WebUser.No + "') "; string sql = "SELECT Distinct NDFrom, EmpFrom FROM ND" + int.Parse(this.FK_Flow) + "Track WHERE WorkID=" + this.WorkID; DataTable dt = DBAccess.RunSQLReturnTable(sql); foreach (DataRow dr in dt.Rows) { //判断节点是否启用了按钮? int nodeid = int.Parse(dr[0].ToString()); BtnLab btn = new BtnLab(nodeid); if (btn.PrintPDFEnable == true || btn.PrintZipEnable == true) { string empFrom = dr[1].ToString(); if (isAdmin == true || BP.Web.WebUser.No == empFrom || gwf.Starter == WebUser.No) { CanPackUp = true; break; } } } } else { CanPackUp = true; } #endregion 文件打印的权限判断,这里为天业集团做的特殊判断,现实的应用中,都可以打印. ht.Add("CanPackUp", CanPackUp.ToString().ToLower()); //是否可以打印. switch (gwf.WFState) { case WFState.Runing: /* 运行时*/ /*删除流程.*/ isCan = BP.WF.Dev2Interface.Flow_IsCanDeleteFlowInstance(this.FK_Flow, this.WorkID, WebUser.No); ht.Add("CanFlowOverByCoercion", isCan.ToString().ToLower()); /*取回审批*/ isCan = false; string para = ""; string sql = "SELECT NodeID FROM WF_Node WHERE CheckNodes LIKE '%" + gwf.FK_Node + "%'"; int myNode = DBAccess.RunSQLReturnValInt(sql, 0); if (myNode != 0) { GetTask gt = new GetTask(myNode); if (gt.Can_I_Do_It()) { isCan = true; ht.Add("TackBackFromNode", gwf.FK_Node); ht.Add("TackBackToNode", myNode); } } ht.Add("CanTackBack", isCan.ToString().ToLower()); /*撤销发送*/ GenerWorkerLists workerlists = new GenerWorkerLists(); QueryObject info = new QueryObject(workerlists); info.AddWhere(GenerWorkerListAttr.FK_Emp, WebUser.No); info.addAnd(); info.AddWhere(GenerWorkerListAttr.IsPass, "1"); info.addAnd(); info.AddWhere(GenerWorkerListAttr.IsEnable, "1"); info.addAnd(); info.AddWhere(GenerWorkerListAttr.WorkID, this.WorkID); isCan = info.DoQuery() > 0; ht.Add("CanUnSend", isCan.ToString().ToLower()); break; case WFState.Complete: // 完成. case WFState.Delete: // 逻辑删除.. /*恢复使用流程*/ isCan = WebUser.No == "admin"; ht.Add("CanRollBack", isCan.ToString().ToLower()); //判断是否可以打印. break; case WFState.HungUp: // 挂起. /*撤销挂起*/ isCan = BP.WF.Dev2Interface.Flow_IsCanDoCurrentWork(FK_Flow, FK_Node, WorkID, WebUser.No); ht.Add("CanUnHungUp", isCan.ToString().ToLower()); break; default: break; } return(BP.Tools.Json.ToJson(ht)); //return json + "}"; }
/// <summary> /// 打开工作处理器,仅仅查看,不能修改。 /// </summary> public void BindTrack_ViewWorkForm() { string appPath = this.Request.ApplicationPath; Node nd = null; Track tk = new Track(); tk.FK_Flow = this.FK_Flow; tk.NDFrom = this.FK_Node; tk.WorkID = this.WorkID; if (this.MyPK != null) { tk = new Track(this.FK_Flow, this.MyPK); nd = new Node(tk.NDFrom); } else { nd = new Node(this.FK_Node); } Flow fl = new Flow(this.FK_Flow); Int64 workid = 0; if (nd.HisRunModel == RunModel.SubThread) { workid = tk.FID; } else { workid = tk.WorkID; } Int64 fid = this.FID; if (this.FID == 0) { fid = tk.FID; } DataTable ndrpt = DBAccess.RunSQLReturnTable("SELECT PFlowNo,PWorkID FROM " + fl.PTable + " WHERE OID=" + workid); string urlExt = "&PFlowNo=" + ndrpt.Rows[0]["PFlowNo"] + "&PWorkID=" + ndrpt.Rows[0]["PWorkID"] + "&IsToobar=0&IsHidden=true"; urlExt += "&From=CCFlow&TruckKey=" + tk.GetValStrByKey("MyPK"); if (nd.HisFormType == NodeFormType.SDKForm || nd.HisFormType == NodeFormType.SelfForm) { if (nd.FormUrl.Contains("?")) { this.Response.Redirect(nd.FormUrl + "&WorkID=" + tk.WorkID + "&FK_Node=" + nd.NodeID + "&FK_Flow=" + nd.FK_Flow + "&FID=" + fid + urlExt, true); } else { this.Response.Redirect(nd.FormUrl + "?WorkID=" + tk.WorkID + "&FK_Node=" + nd.NodeID + "&FK_Flow=" + nd.FK_Flow + "&FID=" + fid + urlExt, true); } if (nd.HisFormType == NodeFormType.SDKForm) { if (nd.FormUrl.Contains("?")) { this.Response.Redirect(nd.FormUrl + "&WorkID=" + tk.WorkID + "&FK_Node=" + nd.NodeID + "&FK_Flow=" + nd.FK_Flow + "&FID=" + fid + urlExt, true); } else { this.Response.Redirect(nd.FormUrl + "?WorkID=" + tk.WorkID + "&FK_Node=" + nd.NodeID + "&FK_Flow=" + nd.FK_Flow + "&FID=" + fid + urlExt, true); } return; } this.Response.Redirect(nd.FormUrl + "&WorkID=" + tk.WorkID + "&FK_Node=" + nd.NodeID + "&FK_Flow=" + nd.FK_Flow + "&FID=" + fid + urlExt, true); return; } Work wk = nd.HisWork; wk.OID = tk.WorkID; if (wk.RetrieveFromDBSources() == 0) { GERpt rtp = nd.HisFlow.HisGERpt; rtp.OID = this.WorkID; if (rtp.RetrieveFromDBSources() == 0) { this.UCEn1.AddFieldSet("打开(" + nd.Name + ")错误"); this.UCEn1.AddH1("当前的节点数据已经被删除!!!<br> 造成此问题出现的原因如下。"); this.UCEn1.AddBR("1、当前节点数据被非法删除。"); this.UCEn1.AddBR("2、节点数据是退回人与被退回人中间的节点,这部分节点数据查看不支持。"); this.UCEn1.AddH1("技术信息:表" + wk.EnMap.PhysicsTable + " WorkID=" + this.WorkID); this.UCEn1.AddFieldSetEnd(); return; } wk.Row = rtp.Row; } GenerWorkFlow gwf = new GenerWorkFlow(); gwf.WorkID = wk.OID; if (nd.HisFlow.IsMD5 && wk.IsPassCheckMD5() == false) { this.UCEn1.AddFieldSet("打开(" + nd.Name + ")错误"); this.UCEn1.AddH1("当前的节点数据已经被篡改,请报告管理员。"); this.UCEn1.AddFieldSetEnd(); return; } this.InitToolbar(false, appPath); this.UCEn1.IsReadonly = true; Frms frms = nd.HisFrms; if (frms.Count == 0) { if (nd.HisFormType == NodeFormType.FreeForm) { MapData map = new MapData(nd.NodeFrmID); /* 自由表单 */ Width = map.MaxRight + map.MaxLeft * 2 + 10 + ""; if (float.Parse(Width) < 500) { Width = "900"; } Height = map.MaxEnd + ""; BtnLab btnLab = new BtnLab(FK_Node); BtnWord = btnLab.WebOfficeEnable + ""; this.UCEn1.Add("<div id=divCCForm style='width:" + Width + "px;height:" + Height + "px' >"); this.UCEn1.BindCCForm(wk, nd.NodeFrmID, true, 0, false); //, false, false, null); this.UCEn1.Add("</div>"); } if (nd.HisFormType == NodeFormType.FixForm) { MapData map = new MapData(nd.NodeFrmID); if (map.TableWidth.Contains("px")) { Width = map.TableWidth.Replace("px", ""); } else { Width = map.TableWidth + ""; } if (map.TableWidth.Equals("100%")) { Width = "900"; } this.UCEn1.Add("<div id=divCCForm style='width:" + Width + "px;height:" + map.FrmH + "px;overflow-x:scroll;' >"); /*傻瓜表单*/ this.UCEn1.IsReadonly = true; this.UCEn1.BindColumn4(wk, nd.NodeFrmID); //, false, false, null); //if (wk.WorkEndInfo.Length > 2) // this.UCEn1.Add(wk.WorkEndInfo); this.UCEn1.Add("</div>"); } BillTemplates bills = new BillTemplates(); bills.Retrieve(BillTemplateAttr.NodeID, nd.NodeID); if (bills.Count >= 1) { string title = ""; foreach (BillTemplate item in bills) { title += "<img src='/WF/Img/Btn/Word.gif' border=0/>" + item.Name + "</a>"; } string urlr = appPath + "WF/WorkOpt/PrintDoc.aspx?FK_Node=" + nd.NodeID + "&FID=" + fid + "&WorkID=" + tk.WorkID + "&FK_Flow=" + nd.FK_Flow; this.UCEn1.Add("<p><a href=\"javascript:WinOpen('" + urlr + "','dsdd');\" />" + title + "</a></p>"); //this.UCEn1.Add("<a href='' target=_blank><img src='/WF/Img/Btn/Word.gif' border=0/>" + bt.Name + "</a>"); } } else { /* 涉及到多个表单的情况...*/ if (nd.HisFormType == NodeFormType.SheetTree) { Response.Redirect(appPath + "WF/FlowFormTree/FlowFormTreeView.aspx?WorkID=" + tk.WorkID + "&FK_Flow=" + nd.FK_Flow + "&FID=" + fid + "&FK_Node=" + nd.NodeID + "&CWorkID=" + this.CWorkID); } else if (nd.HisFormType != NodeFormType.DisableIt) { Frm myfrm = new Frm(); myfrm.No = "ND" + nd.NodeID; myfrm.Name = wk.EnDesc; myfrm.HisFormRunType = (FormRunType)(int)nd.HisFormType; FrmNode fnNode = new FrmNode(); fnNode.FK_Frm = myfrm.No; fnNode.IsEdit = true; fnNode.IsPrint = false; switch (nd.HisFormType) { case NodeFormType.FixForm: fnNode.HisFrmType = FrmType.Column4Frm; break; case NodeFormType.FreeForm: fnNode.HisFrmType = FrmType.FreeFrm; break; case NodeFormType.SelfForm: fnNode.HisFrmType = FrmType.Url; break; default: throw new Exception("出现了未判断的异常。"); } myfrm.HisFrmNode = fnNode; frms.AddEntity(myfrm, 0); } if (frms.Count == 1) { /* 如果禁用了节点表单,并且只有一个表单的情况。*/ Frm frm = (Frm)frms[0]; FrmNode fn = frm.HisFrmNode; string src = ""; src = fn.FrmUrl + ".aspx?FK_MapData=" + frm.No + "&FID=" + fid + "&IsEdit=0&IsPrint=0&FK_Node=" + nd.NodeID + "&WorkID=" + tk.WorkID + "&CWorkID=" + this.CWorkID; this.UCEn1.Add("\t\n <DIV id='" + frm.No + "' style='width:" + frm.FrmW + "px; height:" + frm.FrmH + "px;text-align: left; background-color:white;margin:0;padding:0;' >"); this.UCEn1.Add("\t\n <iframe ID='F" + frm.No + "' src='" + src + "' frameborder=0 style='margin:0;padding:0;width:" + frm.FrmW + "px; height:" + frm.FrmH + "px;text-align: left;' leftMargin='0' topMargin='0' /></iframe>"); this.UCEn1.Add("\t\n </DIV>"); } else { Frm frmFirst = null; foreach (Frm frm in frms) { if (frmFirst == null) { frmFirst = frm; } if (frmFirst.FrmW < frm.FrmW) { frmFirst = frm; } } #region 载入相关文件. this.Page.RegisterClientScriptBlock("sg", "<link href='./Style/Frm/Tab.css' rel='stylesheet' type='text/css' />"); this.Page.RegisterClientScriptBlock("s2g4", "<script language='JavaScript' src='./Style/Frm/jquery.min.js' ></script>"); this.Page.RegisterClientScriptBlock("sdf24j", "<script language='JavaScript' src='./Style/Frm/jquery.idTabs.min.js' ></script>"); this.Page.RegisterClientScriptBlock("sdsdf24j", "<script language='JavaScript' src='./Style/Frm/TabClick.js' ></script>"); #endregion 载入相关文件. this.UCEn1.Clear(); this.UCEn1.Add("<div style='clear:both' ></div>"); // this.UCEn1.Add("\t\n<div id='usual2' class='usual' style='width:" + frmFirst.FrmW + "px;height:auto;margin:0 auto;background-color:white;'>"); //begain. #region 输出标签. this.UCEn1.Add("\t\n <ul class='abc' style='background:red;border-color: #800000;border-width: 10px;' >"); foreach (Frm frm in frms) { FrmNode fn = frm.HisFrmNode; string src = ""; src = fn.FrmUrl + ".aspx?FK_MapData=" + frm.No + "&FID=" + fid + "&IsEdit=0&IsPrint=0&FK_Node=" + nd.NodeID + "&WorkID=" + tk.WorkID + "&CWorkID=" + this.CWorkID + "&FK_Flow=" + this.FK_Flow;//edited by liuxc,2015-6-17 this.UCEn1.Add("\t\n<li><a href=\"#" + frm.No + "\" onclick=\"TabClick('" + frm.No + "','" + src + "');\" >" + frm.Name + "</a></li>"); } this.UCEn1.Add("\t\n </ul>"); #endregion 输出标签. #region 输出表单 iframe 内容. foreach (Frm frm in frms) { FrmNode fn = frm.HisFrmNode; this.UCEn1.Add("\t\n <DIV id='" + frm.No + "' style='width:" + frm.FrmW + "px; height:" + frm.FrmH + "px;text-align: left;margin:0px;padding:0px;' >"); string src = "loading.htm"; this.UCEn1.Add("\t\n <iframe ID='F" + frm.No + "' src='" + src + "' frameborder=0 style='margin:0px;padding:0px;width:" + frm.FrmW + "px; height:" + frm.FrmH + "px;text-align: left;' leftMargin='0' topMargin='0' /></iframe>"); this.UCEn1.Add("\t\n </DIV>"); } #endregion 输出表单 iframe 内容. this.UCEn1.Add("\t\n</div>"); // end usual2 // 设置选择的默认值. this.UCEn1.Add("\t\n<script type='text/javascript'>"); this.UCEn1.Add("\t\n $(\"#usual2 ul\").idTabs(\"" + frms[0].No + "\");"); this.UCEn1.Add("\t\n</script>"); } } }
public string GenerWorkNode(string fk_flow, int fk_node, Int64 workID, Int64 fid, string userNo) { try { Emp emp = new Emp(userNo); BP.Web.WebUser.SignInOfGener(emp); MapData md = new MapData(); md.No = "ND" + fk_node; if (md.RetrieveFromDBSources() == 0) { throw new Exception("装载错误,该表单ID=" + md.No + "丢失,请修复一次流程重新加载一次."); } DataSet myds = md.GenerHisDataSet(); // 节点数据. Node nd = new Node(fk_node); myds.Tables.Add(nd.ToDataTableField("WF_Node")); //节点标签数据. BtnLab btnLab = new BtnLab(fk_node); myds.Tables.Add(btnLab.ToDataTableField("WF_BtnLab")); // 流程数据. Flow fl = new Flow(fk_flow); myds.Tables.Add(fl.ToDataTableField("WF_Flow")); //.工作数据放里面去, 放进去前执行一次装载前填充事件. BP.WF.Work wk = nd.HisWork; wk.OID = workID; wk.RetrieveFromDBSources(); wk.ResetDefaultVal(); // 执行一次装载前填充. string msg = md.FrmEvents.DoEventNode(FrmEventList.FrmLoadBefore, wk); if (string.IsNullOrEmpty(msg) == false) { return(msg); } myds.Tables.Add(wk.ToDataTableField("Main")); #region 获取明细表数据,并把它加入dataset里. if (md.MapDtls.Count > 0) { foreach (MapDtl dtl in md.MapDtls) { GEDtls dtls = new GEDtls(dtl.No); QueryObject qo = null; try { qo = new QueryObject(dtl); switch (dtl.DtlOpenType) { case DtlOpenType.ForEmp: // 按人员来控制. qo.AddWhere(GEDtlAttr.RefPK, workID); qo.addAnd(); qo.AddWhere(GEDtlAttr.Rec, WebUser.No); break; case DtlOpenType.ForWorkID: // 按工作ID来控制 qo.AddWhere(GEDtlAttr.RefPK, workID); break; case DtlOpenType.ForFID: // 按流程ID来控制. qo.AddWhere(GEDtlAttr.FID, workID); break; } } catch { dtls.GetNewEntity.CheckPhysicsTable(); } DataTable dtDtl = qo.DoQueryToTable(); dtDtl.TableName = dtl.No; //修改明细表的名称. myds.Tables.Add(dtDtl); //加入这个明细表. } } #endregion //把流程信息表发送过去. GenerWorkFlow gwf = new GenerWorkFlow(); gwf.WorkID = workID; myds.Tables.Add(gwf.ToDataTableField("WF_GenerWorkFlow")); if (gwf.WFState == WFState.Forward) { //如果是转发. BP.WF.ForwardWorks fws = new ForwardWorks(); fws.Retrieve(ForwardWorkAttr.WorkID, workID, ForwardWorkAttr.FK_Node, fk_node); myds.Tables.Add(fws.ToDataTableField("WF_ForwardWork")); } if (gwf.WFState == WFState.ReturnSta) { //如果是退回. ReturnWorks rts = new ReturnWorks(); rts.Retrieve(ReturnWorkAttr.WorkID, workID, ReturnWorkAttr.ReturnToNode, fk_node); myds.Tables.Add(rts.ToDataTableField("WF_ForwardWork")); } if (gwf.WFState == WFState.HungUp) { //如果是挂起. HungUps hups = new HungUps(); hups.Retrieve(HungUpAttr.WorkID, workID, HungUpAttr.FK_Node, fk_node); myds.Tables.Add(hups.ToDataTableField("WF_HungUp")); } //放入track信息. Paras ps = new Paras(); ps.SQL = "SELECT * FROM ND" + int.Parse(fk_flow) + "Track WHERE WorkID=" + BP.SystemConfig.AppCenterDBVarStr + "WorkID"; ps.Add("WorkID", workID); DataTable dt = DBAccess.RunSQLReturnTable(ps); dt.TableName = "Track"; myds.Tables.Add(dt); //写入数据. myds.WriteXml("c:\\sss.xml"); //转化成它所能识别的格式. return(Silverlight.DataSetConnector.Connector.ToXml(myds)); } catch (Exception ex) { Log.DebugWriteError(ex.StackTrace); return("@生成工作FK_Flow=" + fk_flow + ",FK_Node=" + fk_node + ",WorkID=" + workID + ",FID=" + fid + "错误,错误信息:" + ex.Message); } }
private void ReadFile() { string path = Server.MapPath("~/DataUser/OfficeFile/" + FK_Flow + "/"); if (!Directory.Exists(path)) { Directory.CreateDirectory(path); } string[] files = Directory.GetFiles(path); bool isHave = false; BP.WF.Node node = new BP.WF.Node(FK_Node); string fileStart = WorkID.ToString(); if (node.HisNodeWorkType == NodeWorkType.SubThreadWork) { fileStart = FID.ToString(); } try { WorkFlow workflow = new WorkFlow(this.FK_Flow, this.WorkID); if (workflow.HisGenerWorkFlow.PWorkID != 0) { BtnLab btnLab = new BtnLab(this.FK_Node); if (btnLab.OfficeIsParent) { fileStart = workflow.HisGenerWorkFlow.PWorkID.ToString(); } } } catch (Exception) { } foreach (string file in files) { FileInfo fileInfo = new FileInfo(file); if (fileInfo.Name.StartsWith(fileStart + ".") && fileInfo.Name.Contains(".doc")) { fileName.Text = fileInfo.Name; fileType.Text = fileInfo.Extension.TrimStart('.'); isHave = true; break; } } foreach (string file in files) { FileInfo fileInfo = new FileInfo(file); if (fileInfo.Name.StartsWith(fileStart + "Mark.")) { MarkName = fileInfo.Name; break; } } if (!isHave) { if (node.IsStartNode) { //加载template BtnLab btnLab = new BtnLab(this.FK_Node); OfficeTemplate = btnLab.OfficeTemplate; if (!string.IsNullOrEmpty(OfficeTemplate)) { fileName.Text = "/" + OfficeTemplate; fileType.Text = OfficeTemplate.Split('.')[1]; IsLoadTempLate = true; } } //if (node.HisNodeWorkType == NodeWorkType.SubThreadWork) //{ // File.Exists(path+) // foreach (string file in files) // { // FileInfo fileInfo = new FileInfo(file); // if (fileInfo.Name.StartsWith(this.FID.ToString())) // { // fileInfo.CopyTo(path + "\\" + this.WorkID + fileInfo.Extension); // fileName.Text = this.WorkID + fileInfo.Extension; // fileType.Text = fileInfo.Extension.TrimStart('.'); // break; // } // } //} } else { // if (node.HisNodeWorkType == NodeWorkType.WorkHL || node.HisNodeWorkType == NodeWorkType.WorkFHL) // { // GenerWorkFlows generWorksFlows = new GenerWorkFlows(); // generWorksFlows.RetrieveByAttr(GenerWorkFlowAttr.FID, this.WorkID); // string tempH = ""; // foreach (GenerWorkFlow generWork in generWorksFlows) // { // tempH += generWork.WorkID + ","; // } // HeBing = tempH.TrimEnd(','); // } } }