Exemple #1
0
        /// <summary>
        /// 获取流程所有元素
        /// </summary>
        /// <returns>json data</returns>
        private string Flow_AllElements_ResponseJson()
        {
            try
            {
                BP.WF.Flow flow = new BP.WF.Flow();
                flow.No = this.FK_Flow;
                flow.RetrieveFromDBSources();
                if (flow.DType == 0)
                {
                    //获取所有节点
                    string sqls = "SELECT NODEID,NAME,X,Y,RUNMODEL FROM WF_NODE WHERE FK_FLOW='" + this.FK_Flow + "';" + Environment.NewLine
                                  + "SELECT NODE,TONODE FROM WF_DIRECTION WHERE FK_FLOW='" + this.FK_Flow + "';" + Environment.NewLine
                                  + "SELECT MYPK,NAME,X,Y FROM WF_LABNOTE WHERE FK_FLOW='" + this.FK_Flow + "';";
                    DataSet ds = DBAccess.RunSQLReturnDataSet(sqls);
                    ds.Tables[0].TableName = "Nodes";
                    ds.Tables[1].TableName = "Direction";
                    ds.Tables[2].TableName = "LabNote";

                    return(Newtonsoft.Json.JsonConvert.SerializeObject(new { success = true, msg = "", data = Newtonsoft.Json.JsonConvert.SerializeObject(ds) }));
                }
                return(Newtonsoft.Json.JsonConvert.SerializeObject(new { success = false, msg = "", data = new { } }));
            }
            catch (Exception ex)
            {
                return(Newtonsoft.Json.JsonConvert.SerializeObject(new { success = false, msg = ex.Message, data = new { } }));
            }
        }
Exemple #2
0
        /// <summary>
        /// 创建一个流程.
        /// </summary>
        /// <param name="flowSort">流程类别</param>
        /// <returns>string</returns>
        public static string NewFlow(string flowSort, string flowName, BP.WF.Template.DataStoreModel dsm, string ptable, string flowMark, string flowVer)
        {
            //执行保存.
            BP.WF.Flow fl = new BP.WF.Flow();

            fl.DType = CCBPM_DType.CCBPM;

            string flowNo = fl.DoNewFlow(flowSort, flowName, dsm, ptable, flowMark);

            fl.No = flowNo;
            fl.Retrieve();

            //如果为CCFlow模式则不进行写入Json串
            if (flowVer == "0")
            {
                return(flowNo);
            }


            //创建连线
            Direction drToNode = new Direction();

            drToNode.FK_Flow = flowNo;
            drToNode.Node    = int.Parse(int.Parse(flowNo) + "01");
            drToNode.ToNode  = int.Parse(int.Parse(flowNo) + "02");
            drToNode.Insert();

            //执行一次流程检查, 为了节省效率,把检查去掉了.
            fl.DoCheck();

            return(flowNo);
        }
Exemple #3
0
        public string GetCompleateWork(string userNo, string[][] queryParams, int?page, int?pageSize)
        {
            UserLogin(userNo);

            string sql = string.Format("select * from WF_GenerWorkFlow  where WFState in({0}) and Emps like '%{1}%'", "'" + (int)BP.WF.WFState.Complete + "'", "@" + userNo);

            DataTable table = BP.DA.DBAccess.RunSQLReturnTable(sql);

            table.Columns.Add("TitleUrl");
            table.Columns.Add("FlowEmps");
            table.Columns.Add("FlowEnderRDT");
            string url = "";

            foreach (DataRow row in table.Rows)
            {
                url             = BP.Sys.SystemConfig.AppSettings["BaseUrl"] + "/WF/WFRpt.aspx?WorkID=" + row["WorkID"] + "&FK_Flow=" + row["FK_Flow"] + "&FK_Node=" + row["FK_Node"] + "&UserNo=" + userNo;
                row["TitleUrl"] = url;

                string emps = row["Emps"] + "";

                foreach (string single in emps.Split('@'))
                {
                    if (!string.IsNullOrEmpty(single))
                    {
                        try
                        {
                            row["FlowEmps"] += new BP.Port.Emp(single).Name + ";";
                        }
                        catch (Exception ex)
                        {
                            row["FlowEmps"] += single + ";";
                        }
                    }
                }

                BP.WF.Flow flow = new BP.WF.Flow(row["FK_Flow"] + "");

                BP.WF.Data.GERpt rpt = flow.HisGERpt;
                rpt.OID = Int64.Parse(row["WorkID"] + "");
                int count = rpt.RetrieveFromDBSources();
                if (count > 0)
                {
                    row["FlowEnderRDT"] = rpt.FlowEnderRDT;
                }
            }



            DataTable filterTable = FilterTable(queryParams, table);

            DataTable finalTable = PageTable(page, pageSize, table);


            string xml = WriteTableToXml(finalTable, filterTable.Rows.Count);


            return(xml);
        }
Exemple #4
0
        protected void Button1_Click(object sender, EventArgs e)
        {
            if (FU_Upload.HasFile)
            {
                string StrsavePath = Server.MapPath("..//..//..//dataUser//FlowFile"); //路径
                StrsavePath = StrsavePath + "//" + FU_Upload.FileName;
                FU_Upload.SaveAs(StrsavePath);                                         //保存文件
                BP.WF.Flow flow                  = new BP.WF.Flow(this.Request.QueryString["FK_Flow"]);
                int        SpecifiedNumber       = 0;
                BP.WF.ImpFlowTempleteModel model = BP.WF.ImpFlowTempleteModel.AsNewFlow;
                //作为新流程导入(由ccbpm自动生成新的流程编号)
                if (Import_1.Checked)
                {
                    model = BP.WF.ImpFlowTempleteModel.AsNewFlow;
                }
                //作为新流程导入(使用流程模版里面的流程编号,如果该编号已经存在系统则会提示错误)
                if (Import_2.Checked)
                {
                    model = BP.WF.ImpFlowTempleteModel.AsTempleteFlowNo;
                }
                //作为新流程导入(使用流程模版里面的流程编号,如果该编号已经存在系统则会覆盖此流程)
                if (Import_3.Checked)
                {
                    model = BP.WF.ImpFlowTempleteModel.OvrewaiteCurrFlowNo;
                }
                //导入并覆盖当前的流程
                if (Import_4.Checked)
                {
                    String StrSpecifiedNumber = this.SpecifiedNumber.Text;
                    if (StrSpecifiedNumber == null)
                    {
                        this.Alert("请输入指定流程编号。");
                        return;
                    }

                    SpecifiedNumber = Convert.ToInt32(StrSpecifiedNumber);
                    model           = BP.WF.ImpFlowTempleteModel.AsSpecFlowNo;
                }
                //执行导入
                flow = BP.WF.Flow.DoLoadFlowTemplate(flow.FK_FlowSort, StrsavePath, model, SpecifiedNumber);
                if (flow.No != "")
                {
                    this.Alert("导入成功");
                }
                else
                {
                    this.Alert("导入失败");
                }
            }
            else
            {
                this.Alert("请您选择上传的文件 文件格式为xml");
            }
        }
 /// <summary>
 /// 检查流程
 /// </summary>
 /// <param name="workflowNo">流程编号</param>
 /// <returns>检查结果</returns>
 public ActionResult Check(string workflowNo)
 {
     try
     {
         var fl1 = new BP.WF.Flow(workflowNo);
         var msg = fl1.DoCheck();
         return(Json(new { success = true, msg = msg }));
     }
     catch (Exception ex)
     {
         return(Json(new { success = false, msg = ex.Message }));
     }
 }
Exemple #6
0
        protected void Page_Load(object sender, EventArgs e)
        {
            //获取以当前FK_Node为起点所能到达的所有结点方向信息

            //added by liuxc,2014.11.29
            var sql = new StringBuilder();

            FrmSubFlow sf = new FrmSubFlow("ND" + this.FK_Node);

            if (sf.SFActiveFlows.Length <= 2)
            {
                //  this.Alert("您没有设置要启动的子流程,所以您不能设置触发子流程的条件。");
                this.WinCloseWithMsg("在节点【" + sf.NodeID + " " + sf.Name + "】上您没有设置要启动的子流程,所以您不能设置触发子流程的条件。");
                return;
            }


            BP.WF.Flows fls  = new BP.WF.Flows();
            string[]    strs = sf.SFActiveFlows.Split(',');
            foreach (string str in strs)
            {
                if (string.IsNullOrEmpty(str))
                {
                    continue;
                }

                BP.WF.Flow fl = new BP.WF.Flow(str);
                fls.AddEntity(fl);
            }

            //sql.AppendLine("SELECT wd.Node,");
            //sql.AppendLine("       wn2.Name AS NodeName,");
            //sql.AppendLine("       wd.ToNode,");
            //sql.AppendLine("       wn.Name AS ToNodeName,");
            //sql.AppendLine("       wd.DirType");
            //sql.AppendLine("FROM   WF_Direction wd");
            //sql.AppendLine("       INNER JOIN WF_Node wn");
            //sql.AppendLine("            ON  wn.NodeID = wd.ToNode");
            //sql.AppendLine("       INNER JOIN WF_Node wn2");
            //sql.AppendLine("            ON  wn2.NodeID = wd.Node");
            //sql.AppendLine("WHERE  wd.Node = " + FK_Node);

            rptLines.DataSource = fls.ToDataTableField(); // DBAccess.RunSQLReturnTable(sql.ToString());
            rptLines.DataBind();
        }
        /// <summary>
        /// 新建节点
        /// </summary>
        /// <param name="flowNo">流程编号</param>
        /// <param name="nodeName">节点名称</param>
        /// <param name="x">x值</param>
        /// <param name="y">y值</param>
        /// <returns>操作结果</returns>
        public ActionResult AddNode(string flowNo, string nodeName = "新建节点", int x = 10, int y = 10)
        {
            var fl = new BP.WF.Flow(flowNo);

            try
            {
                BP.WF.Node nf = fl.DoNewNode(x, y);
                nf.Name           = nodeName;
                nf.HisRunModel    = BP.WF.RunModel.Ordinary;
                nf.HisDeliveryWay = BP.WF.DeliveryWay.ByStationOnly;
                nf.Save();
                return(Json(new { success = true, msg = "新建节点成功" }));
            }
            catch
            {
                return(Json(new { success = false, msg = "新建节点失败" }));
            }
        }
Exemple #8
0
        /// <summary>
        /// 创建一个流程模版
        /// </summary>
        /// <param name="flowSort">流程类别</param>
        /// <param name="flowName">名称</param>
        /// <param name="dsm">存储方式</param>
        /// <param name="ptable">物理量</param>
        /// <param name="flowMark">标记</param>
        /// <param name="flowVer">版本</param>
        /// <returns>创建的流程编号</returns>
        public static string NewFlow(string flowSort, string flowName, BP.WF.Template.DataStoreModel dsm, string ptable, string flowMark, string flowVer)
        {
            //执行保存.
            BP.WF.Flow fl = new BP.WF.Flow();

            string flowNo = fl.DoNewFlow(flowSort, flowName, dsm, ptable, flowMark);

            fl.No = flowNo;
            fl.Retrieve();

            FlowExt flowExt = new FlowExt(flowNo);

            flowExt.DesignerNo   = BP.Web.WebUser.No;
            flowExt.DesignerName = BP.Web.WebUser.Name;
            flowExt.DesignTime   = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
            flowExt.DirectSave();


            //如果为CCFlow模式则不进行写入Json串
            if (flowVer == "0")
            {
                return(flowNo);
            }

            //创建连线
            Direction drToNode = new Direction();

            drToNode.FK_Flow = flowNo;
            drToNode.Node    = int.Parse(int.Parse(flowNo) + "01");
            drToNode.ToNode  = int.Parse(int.Parse(flowNo) + "02");
            drToNode.Insert();

            //执行一次流程检查, 为了节省效率,把检查去掉了.
            fl.DoCheck();

            return(flowNo);
        }
Exemple #9
0
        public void DTS_Flow(BP.WF.Flow fl)
        {
            #region 读取数据.
            BP.Sys.MapExt me = new MapExt();
            me.MyPK = "ND" + int.Parse(fl.No) + "01" + "_" + MapExtXmlList.StartFlow;
            int i = me.RetrieveFromDBSources();
            if (i == 0)
            {
                BP.DA.Log.DefaultLogWriteLineError("没有为流程(" + fl.Name + ")的开始节点设置发起数据,请参考说明书解决.");
                return;
            }
            if (string.IsNullOrEmpty(me.Tag))
            {
                BP.DA.Log.DefaultLogWriteLineError("没有为流程(" + fl.Name + ")的开始节点设置发起数据,请参考说明书解决.");
                return;
            }

            // 获取从表数据.
            DataSet  ds      = new DataSet();
            string[] dtlSQLs = me.Tag1.Split('*');
            foreach (string sql in dtlSQLs)
            {
                if (string.IsNullOrEmpty(sql))
                {
                    continue;
                }

                string[]  tempStrs = sql.Split('=');
                string    dtlName  = tempStrs[0];
                DataTable dtlTable = BP.DA.DBAccess.RunSQLReturnTable(sql.Replace(dtlName + "=", ""));
                dtlTable.TableName = dtlName;
                ds.Tables.Add(dtlTable);
            }
            #endregion 读取数据.

            #region 检查数据源是否正确.
            string errMsg = "";
            // 获取主表数据.
            DataTable dtMain = BP.DA.DBAccess.RunSQLReturnTable(me.Tag);
            if (dtMain.Rows.Count == 0)
            {
                BP.DA.Log.DefaultLogWriteLineError("流程(" + fl.Name + ")此时无任务.");
                return;
            }

            if (dtMain.Columns.Contains("Starter") == false)
            {
                errMsg += "@配值的主表中没有Starter列.";
            }

            if (dtMain.Columns.Contains("MainPK") == false)
            {
                errMsg += "@配值的主表中没有MainPK列.";
            }

            if (errMsg.Length > 2)
            {
                BP.DA.Log.DefaultLogWriteLineError("流程(" + fl.Name + ")的开始节点设置发起数据,不完整." + errMsg);
                return;
            }
            #endregion 检查数据源是否正确.

            #region 处理流程发起.
            string nodeTable = "ND" + int.Parse(fl.No) + "01";
            int    idx       = 0;
            foreach (DataRow dr in dtMain.Rows)
            {
                idx++;

                string mainPK = dr["MainPK"].ToString();
                string sql    = "SELECT OID FROM " + nodeTable + " WHERE MainPK='" + mainPK + "'";
                if (DBAccess.RunSQLReturnTable(sql).Rows.Count != 0)
                {
                    continue; /*说明已经调度过了*/
                }

                string starter = dr["Starter"].ToString();
                if (WebUser.No != starter)
                {
                    BP.Web.WebUser.Exit();
                    BP.Port.Emp emp = new BP.Port.Emp();
                    emp.No = starter;
                    if (emp.RetrieveFromDBSources() == 0)
                    {
                        BP.DA.Log.DefaultLogWriteLineInfo("@数据驱动方式发起流程(" + fl.Name + ")设置的发起人员:" + emp.No + "不存在。");
                        continue;
                    }
                    WebUser.SignInOfGener(emp);
                }

                #region  给值.
                //System.Collections.Hashtable ht = new Hashtable();

                Work wk = fl.NewWork();

                string err = "";
                #region 检查用户拼写的sql是否正确?
                foreach (DataColumn dc in dtMain.Columns)
                {
                    string f = dc.ColumnName.ToLower();
                    switch (f)
                    {
                    case "starter":
                    case "mainpk":
                    case "refmainpk":
                    case "tonode":
                        break;

                    default:
                        bool isHave = false;
                        foreach (Attr attr in wk.EnMap.Attrs)
                        {
                            if (attr.Key.ToLower() == f)
                            {
                                isHave = true;
                                break;
                            }
                        }
                        if (isHave == false)
                        {
                            err += " " + f + " ";
                        }
                        break;
                    }
                }
                if (string.IsNullOrEmpty(err) == false)
                {
                    throw new Exception("您设置的字段:" + err + "不存在开始节点的表单中,设置的sql:" + me.Tag);
                }

                #endregion 检查用户拼写的sql是否正确?

                foreach (DataColumn dc in dtMain.Columns)
                {
                    wk.SetValByKey(dc.ColumnName, dr[dc.ColumnName].ToString());
                }

                if (ds.Tables.Count != 0)
                {
                    // MapData md = new MapData(nodeTable);
                    MapDtls dtls = new MapDtls(nodeTable);
                    foreach (MapDtl dtl in dtls)
                    {
                        foreach (DataTable dt in ds.Tables)
                        {
                            if (dt.TableName != dtl.No)
                            {
                                continue;
                            }

                            //删除原来的数据。
                            GEDtl dtlEn = dtl.HisGEDtl;
                            dtlEn.Delete(GEDtlAttr.RefPK, wk.OID.ToString());

                            // 执行数据插入。
                            foreach (DataRow drDtl in dt.Rows)
                            {
                                if (drDtl["RefMainPK"].ToString() != mainPK)
                                {
                                    continue;
                                }

                                dtlEn = dtl.HisGEDtl;
                                foreach (DataColumn dc in dt.Columns)
                                {
                                    dtlEn.SetValByKey(dc.ColumnName, drDtl[dc.ColumnName].ToString());
                                }

                                dtlEn.RefPK = wk.OID.ToString();
                                dtlEn.OID   = 0;
                                dtlEn.Insert();
                            }
                        }
                    }
                }
                #endregion  给值.


                int toNodeID = 0;
                try
                {
                    toNodeID = int.Parse(dr["ToNode"].ToString());
                }
                catch
                {
                    /*有可能在4.5以前的版本中没有tonode这个约定.*/
                }

                // 处理发送信息.
                //  Node nd =new Node();
                string msg = "";
                try
                {
                    if (toNodeID == 0)
                    {
                        WorkNode wn = new WorkNode(wk, fl.HisStartNode);
                        msg = wn.NodeSend().ToMsgOfText();
                    }

                    if (toNodeID == fl.StartNodeID)
                    {
                        /* 发起后让它停留在开始节点上,就是为开始节点创建一个待办。*/
                        Int64 workID = BP.WF.Dev2Interface.Node_CreateBlankWork(fl.No, null, null, WebUser.No, null);
                        if (workID != wk.OID)
                        {
                            throw new Exception("@异常信息:不应该不一致的workid.");
                        }
                        else
                        {
                            wk.Update();
                        }
                        msg = "已经为(" + WebUser.No + ") 创建了开始工作节点. ";
                    }

                    BP.DA.Log.DefaultLogWriteLineInfo(msg);
                }
                catch (Exception ex)
                {
                    BP.DA.Log.DefaultLogWriteLineWarning("@" + fl.Name + ",第" + idx + "条,发起人员:" + WebUser.No + "-" + WebUser.Name + "发起时出现错误.\r\n" + ex.Message);
                }
            }
            #endregion 处理流程发起.
        }
Exemple #10
0
 /// <summary>
 /// 触发模式
 /// </summary>
 /// <param name="fl"></param>
 public void InsertModel(BP.WF.Flow fl)
 {
 }
        /// <summary>
        /// 获取下一步骤的所有节点
        /// </summary>
        /// <param name="workflowNo">流程编号</param>
        /// <param name="NodeID">从节点</param>
        /// <param name="WorkID">工作ID</param>
        /// <param name="FID">父工作ID</param>
        /// <param name="paramPairs">参数</param>
        /// <returns>节点列表</returns>
        public ActionResult WorkOpt_GetToNodes(int WorkID, int NodeID, int FID, List <KeyValuePair <string, string> > wfParams = null, int singleSelect = 1)
        {
            BP.WF.Dev2Interface.Port_Login(ApplicationUser.Current.Name, "dd2f628c-3f38-4c8c-aa83-1a52ebf6a45a");
            var work = NH.Session.QueryOver <WF_GenerWorkFlow>().Where(x => x.WorkID == WorkID).List().FirstOrDefault();

            wfParams = wfParams == null ? new List <KeyValuePair <string, string> >() : wfParams;
            var nodeEntity = NH.Session.Get <WF_Node>(NodeID);

            var dic = wfParams.ToDictionary(x => x.Key, x => x.Value);
            var ht  = new Hashtable(dic);

            BP.WF.Glo.SendHTOfTemp = ht;
            var result = BP.WF.Dev2Interface.WorkOpt_GetToNodes(work.FK_Flow, NodeID, WorkID, FID);// NodeService.WorkOpt_GetToNodes(workflowNo, NODEID, WORKID, FID);

            //result = result.Where(x => x.NodeID != 0).ToList();

            var data = new List <dynamic>();

            //var trackList = FlowService.DB_GenerTrack(workflowNo, WORKID, 0).ToList();
            var userList = NH.Session.QueryOver <Auth_User>().List().ToList();

            foreach (BP.WF.Node item in result)
            {
                dynamic parent = new ExpandoObject();
                parent.FK_NODE  = "";
                parent.value    = item.NodeID.ToString();
                parent.text     = item.Name;
                parent.RUNMODEL = item.HisRunModel;

                var flow     = new BP.WF.Flow(work.FK_Flow);
                var workNode = new BP.WF.WorkNode(WorkID, NodeID);
                var toNode   = new BP.WF.WorkNode(WorkID, item.NodeID);

                FindWorker fw = new FindWorker();
                var        dt = fw.DoIt(flow, workNode, toNode);

                // var select = new BP.WF.Template.Selector(item.NodeID);
                //var wk = item.HisWork;
                //wk.OID = WORKID;
                //wk.Retrieve();
                //var ds = select.GenerDataSet(item.NodeID, null);
                var children = new List <ExpandoObject>();
                foreach (DataRow dr in dt.Rows)
                {
                    var user = userList.Where(x => x.Name == dr["No"].ToString()).FirstOrDefault();
                    if (user == null)
                    {
                        continue;
                    }
                    dynamic child = new ExpandoObject();
                    child.value  = dr["No"].ToString();
                    child.text   = user.RealName;
                    child.NODEID = item.NodeID;
                    children.Add(child);
                }
                parent.children = children;

                //var empList = new List<dynamic>();
                //var toNodeEntity = NH.Session.Get<WF_NODE>(item.NodeID.ToString());
                //if (toNodeEntity.DELIVERYWAY == 8)
                //{
                //    //指定某个环节的处理人
                //    empList = QueryService.GetData(string.Format("SELECT DISTINCT {0} AS FK_NODE, T.FK_EMP AS NO ,T.FK_EMPTEXT AS NAME FROM WF_GENERWORKERLIST t WHERE ( t.workid={1} or t.workid={2} ) AND T.FK_NODE={3}", item.NodeID, WORKID, FID, toNodeEntity.DELIVERYPARAS), null, null, true).ToList();
                //}
                //else
                //{
                //    if (nodeEntity.HISDEPTSTRS == "1")
                //    {
                //        var userName = CurrentUser.UserName;

                //        empList = QueryService.GetData(string.Format("SELECT DISTINCT TO_CHAR(NT.FK_NODE) AS FK_NODE,E.NO,E.NAME||(CASE WHEN EMP.AUTHOR IS NOT NULL THEN '(由【'||AUTHOR.NAME||'】代理)' ELSE '' END) AS NAME,E.EMPNO FROM WF_NODESTATION NT INNER JOIN PORT_EMPSTATION ES ON NT.FK_STATION=ES.FK_STATION INNER JOIN PORT_EMP E ON E.NO=ES.FK_EMP INNER JOIN PORT_EMPDEPT EP ON EP.FK_EMP=E.NO  LEFT OUTER JOIN WF_EMP EMP ON EMP.NO=E.NO LEFT OUTER JOIN PORT_EMP AUTHOR ON AUTHOR.NO=EMP.AUTHOR WHERE NT.FK_NODE='{0}' AND EP.FK_DEPT IN (SELECT FK_DEPT FROM PORT_EMPDEPT WHERE FK_EMP='{1}') ORDER BY E.EMPNO", item.NodeID, CurrentUser.UserName), null, null, true).ToList();
                //    }
                //    else
                //    {

                //        empList = QueryService.GetData(string.Format("SELECT DISTINCT TO_CHAR(NT.FK_NODE) AS FK_NODE,E.NO,E.NAME||(CASE WHEN EMP.AUTHOR IS NOT NULL THEN '(由【'||AUTHOR.NAME||'】代理)' ELSE '' END) AS NAME,E.EMPNO FROM WF_NODESTATION NT INNER JOIN PORT_EMPSTATION ES ON NT.FK_STATION=ES.FK_STATION INNER JOIN PORT_EMP E ON E.NO=ES.FK_EMP LEFT OUTER JOIN WF_EMP EMP ON EMP.NO=E.NO LEFT OUTER JOIN PORT_EMP AUTHOR ON AUTHOR.NO=EMP.AUTHOR WHERE NT.FK_NODE='{0}' ORDER BY E.EMPNO", item.NodeID), null, null, true).ToList();
                //    }
                //}
                //var test = new ExpandoObject();
                //foreach (Dictionary<string, object> emp in empList)
                //{
                //    emp.Add("RUNMODEL", item.HisRunModel);
                //}
                //data.AddRange(empList);
                data.Add(parent);
            }
            return(Json_Get(data));
        }
Exemple #12
0
        protected void Page_Load(object sender, EventArgs e)
        {
            //  BP.Sys.MapData.GenerSpanHeight(null, 2);
            BP.WF.Flow fl  = new BP.WF.Flow(this.FK_Flow);
            string     sql = "SELECT Title FROM " + fl.PTable + " WHERE OID=" + this.WorkID;

            if (this.FID != 0)
            {
                sql = "SELECT Title FROM " + fl.PTable + " WHERE OID=" + this.FID;
            }
            string title = BP.DA.DBAccess.RunSQLReturnStringIsNull(sql, null);

            if (title == null)
            {
                this.Pub1.AddFieldSet("错误", "系统出现异常,请联系管理员。");
            }

            this.Title = "工作抄送";
            this.Pub1.AddTable("width='100%' border=1");
            this.Pub1.AddCaptionLeft("请选择或者输入人员(多个人员用逗号隔开),然后点发送按钮...");
            this.Pub1.AddTR();
            //this.Pub1.AddTDTitle("接受人:");
            this.Pub1.Add("<TD style='text-align:center;' width='20%' valign='middle'><h5>接受人:</h5></TD>");

            HiddenField hidden = new HiddenField();

            hidden.ID = "HID_SelectedEmps";

            TextBox tb = new TextBox();

            tb.ID    = "TB_Accepter";
            tb.Width = 500;

            Pub1.AddTDBegin("width='530'");
            Pub1.Add(tb);
            Pub1.Add(hidden);
            Pub1.AddTDEnd();

            Button mybtn = new Button();

            mybtn.CssClass       = "Btn";
            mybtn.Text           = "选择接受人";
            mybtn.OnClientClick += "javascript:ShowIt(" + tb.ClientID + "," + hidden.ClientID + ");";
            this.Pub1.AddTD(mybtn);
            this.Pub1.AddTREnd();

            this.Pub1.AddTR();
            //this.Pub1.AddTDTitle("标题:");
            this.Pub1.Add("<TD style='text-align:center;' valign='middle'><h5>标题:</h5></TD>");
            tb       = new TextBox();
            tb.ID    = "TB_Title";
            tb.Width = 500;
            tb.Text  = title;
            this.Pub1.AddTD(" colspan=2", tb);
            //this.Pub1.AddTD();
            this.Pub1.AddTREnd();

            this.Pub1.AddTR();
            //this.Pub1.AddTDTitle("消<BR>息<BR>内<br>容");
            this.Pub1.Add("<TD style='text-align:center;' valign='middle'><h5>消<BR><BR>息<BR><BR>内<br><BR>容</h5></TD>");
            tb          = new TextBox();
            tb.ID       = "TB_Doc";
            tb.Width    = 500;
            tb.TextMode = TextBoxMode.MultiLine;
            tb.Rows     = 12;
            this.Pub1.AddTD(" colspan=2", tb);
            this.Pub1.AddTREnd();

            this.Pub1.AddTR();
            this.Pub1.AddTD("");
            Button btn = new Button();

            btn.CssClass = "Btn";
            btn.ID       = "btn";
            btn.Click   += new EventHandler(btn_Click);
            btn.Text     = "执行抄送";
            this.Pub1.AddTD(" colspan=2", btn);
            //this.Pub1.AddTD("");
            this.Pub1.AddTREnd();
            this.Pub1.AddTableEnd();
        }
Exemple #13
0
        public string GetEmpStartHistory(string userNo, string fk_flow, string[][] queryParams, int?page, int?pageSize)
        {
            UserLogin(userNo);
            BP.WF.Flow startFlow = new BP.WF.Flow(fk_flow);

            string    sql   = "SELECT * FROM " + startFlow.PTable + " WHERE FlowStarter='" + userNo + "'  and WFState not in (" + (int)BP.WF.WFState.Blank + "," + (int)BP.WF.WFState.Draft + ")";
            DataTable table = startFlow.RunSQLReturnTable(sql);

            table.Columns.Add("TitleUrl");
            table.Columns.Add("WFStateText");
            var url = "";

            foreach (DataRow row in table.Rows)
            {
                url             = BP.Sys.SystemConfig.AppSettings["BaseUrl"] + "/WF/WFRpt.aspx?WorkID=" + row["OID"] + "&FK_Flow=" + fk_flow + "&FID=" + row["FID"] + "&UserNo=" + userNo;
                row["TitleUrl"] = url;
                string text = "";
                switch (row["WFState"] + "")
                {
                case "2":
                    text = "运行中";
                    break;

                case "3":
                    text = "已完成";
                    break;

                case "4":
                    text = "挂起";
                    break;

                case "5":
                    text = "退回";
                    break;

                case "6":
                    text = "移交";
                    break;

                case "7":
                    text = "删除(逻辑)";
                    break;

                case "8":
                    text = "加签";
                    break;

                case "9":
                    text = "冻结";
                    break;

                case "10":
                    text = "批处理";
                    break;

                case "11":
                    text = "加签回复";
                    break;

                default:
                    break;
                }

                row["WFStateText"] = text;
            }


            DataTable filterTable = FilterTable(queryParams, table);

            DataTable finalTable = PageTable(page, pageSize, table);


            string xml = WriteTableToXml(finalTable, filterTable.Rows.Count);


            return(xml);
        }
Exemple #14
0
    protected void Page_Load(object sender, EventArgs e)
    {
        this.Title = "流程报表定义";
        switch (this.DoType)
        {
        case "Reset":
            BP.WF.Flow fl = new BP.WF.Flow(this.FK_Flow);
            fl.CheckRptOfReset();
            this.Response.Redirect("WFRpt.aspx?FK_MapData=" + this.FK_MapData, true);
            return;

        default:
            break;
        }

        Cash.Map_Cash.Remove(this.FK_MapData);

        MapData  md     = new MapData(this.FK_MapData);
        MapAttrs mattrs = new MapAttrs(md.No);
        int      count  = mattrs.Count;

        if (mattrs.Count == 0)
        {
            BP.WF.Flow f = new BP.WF.Flow(this.FK_Flow);
            f.CheckRpt();
            this.Response.Redirect(this.Request.RawUrl, true);
            return;
        }

        if (gfs.Count == 1)
        {
            GroupField mygf = (GroupField)gfs[0];
            if (mygf.Lab != md.Name)
            {
                mygf.Lab = md.Name;
                mygf.Update();
            }
        }

        this.Pub1.AddB(this.Title + "&nbsp;&nbsp;<a href=\"javascript:GroupFieldNew('" + md.No + "')\">字段分组</a>");
        //  this.Pub1.AddB("-<a href=\"javascript:WinOpen('/WF/Comm/Search.aspx?EnsName=" + this.MyPK + "')\">查询预览</a>");
        // this.Pub1.AddB("-<a href=\"javascript:WinOpen('/WF/Comm/Group.aspx?EnsName=" + this.MyPK + "')\">分析预览</a>");

        if (this.FK_MapData.Contains("RptDtl") == false)
        {
            this.Pub1.AddB("-<a href=\"javascript:DoReset('" + this.FK_Flow + "','" + this.FK_MapData + "')\">重设字段</a>");

            /* 说明是主表:判断它是否有从表。*/
            string sql = "SELECT COUNT(No) FROM Sys_MapDtl WHERE No LIKE 'ND" + int.Parse(this.FK_Flow) + "%'";
            if (BP.DA.DBAccess.RunSQLReturnValInt(sql) >= 1)
            {
                // this.Pub1.AddB("-<a href=\"javascript:AddDtl('" + md.No + "')\">插入从表</a>");
                //sql = "SELECT No FROM Sys_MapData WHERE No LIKE '" + this.MyPK + "Dtl%'";
                //DataTable dt = BP.DA.DBAccess.RunSQLReturnTable(sql);
                //switch (dt.Rows.Count)
                //{
                //    case 0:
                //        break;
                //    case 1:
                //        this.Pub1.AddB("-<a href='WFRpt.aspx?MyPK=" + dt.Rows[0][0].ToString() + "'>明细报表设计</a>");
                //        break;
                //    default:
                //        this.Pub1.AddB("-<a href='WFRpt.aspx?DoType=DeDtl&MyPK=" + this.MyPK + "'>明细报表设计</a>");
                //        break;
                //}
            }
        }
        else
        {
            this.Pub1.AddB("-<a href=\"WFRpt.aspx?MyPK=ND" + int.Parse(this.FK_Flow) + "Rpt\">" + "返回" + "</a>");
        }

        this.Pub1.AddHR();

        this.Pub1.AddTable("width='100%'");

        /*
         * 根据 GroupField 循环出现菜单。
         */
        foreach (GroupField gf in gfs)
        {
            string gfAttr = " onmouseover=GFOnMouseOver('" + gf.OID + "','" + rowIdx + "') onmouseout=GFOnMouseOut()";
            currGF = gf;
            this.Pub1.AddTR(gfAttr);
            if (gfs.Count == 1)
            {
                this.Pub1.AddTD("colspan=4 class=GroupField valign='top' align:left style='height: 24px;align:left' ", "<div style='text-align:left; float:left'>&nbsp;<a href=\"javascript:GroupField('" + this.FK_MapData + "','" + gf.OID + "')\" >" + gf.Lab + "</a></div><div style='text-align:right; float:right'></div>");
            }
            else
            {
                this.Pub1.AddTD("colspan=4 class=GroupField valign='top' align:left style='height: 24px;align:left' onclick=\"GroupBarClick('" + gf.Idx + "')\" ", "<div style='text-align:left; float:left'><img src='../Style/Min.gif' alert='Min' id='Img" + gf.Idx + "'   border=0 />&nbsp;<a href=\"javascript:GroupField('" + this.FK_MapData + "','" + gf.OID + "')\" >" + gf.Lab + "</a></div><div style='text-align:right; float:right'> <a href=\"javascript:GFDoUp('" + gf.OID + "')\" ><img src='./WF/Img/Btn/Up.gif' class='Arrow' border=0/></a> <a href=\"javascript:GFDoDown('" + gf.OID + "')\" ><img src='./WF/Img/Btn/Down.gif' class='Arrow' border=0/></a></div>");
            }

            this.Pub1.AddTREnd();
            int i   = -1;
            int idx = -1;
            isLeftNext = true;
            rowIdx     = 0;
            foreach (MapAttr attr in mattrs)
            {
                gfAttr = " onmouseover=GFOnMouseOver('" + gf.OID + "','" + rowIdx + "') onmouseout=GFOnMouseOut()";
                if (attr.GroupID == 0)
                {
                    attr.GroupID = gf.OID;
                    attr.Update();
                }

                if (attr.GroupID != gf.OID)
                {
                    if (gf.Idx == 0 && attr.GroupID == 0)
                    {
                    }
                    else
                    {
                        continue;
                    }
                }

                if (attr.HisAttr.IsRefAttr || attr.UIVisible == false)
                {
                    continue;
                }

                if (isLeftNext)
                {
                    if (gfs.Count == 0)
                    {
                        this.InsertObjects(false);
                    }
                    else
                    {
                        this.InsertObjects(true);
                    }
                }

                // 显示的顺序号.
                idx++;
                if (attr.IsBigDoc && attr.UIIsLine)
                {
                    if (isLeftNext == false)
                    {
                        this.Pub1.AddTD();
                        this.Pub1.AddTD();
                        this.Pub1.AddTREnd();
                    }
                    rowIdx++;
                    this.Pub1.AddTR(" ID='" + currGF.Idx + "_" + rowIdx + "'  " + gfAttr);
                    this.Pub1.Add("<TD class=FDesc colspan=4 width='100%' >");
                    this.Pub1.Add(this.GenerLab(attr, idx, 0, count));
                    TextBox mytbLine = new TextBox();
                    mytbLine.ID                  = "TB_" + attr.KeyOfEn;
                    mytbLine.TextMode            = TextBoxMode.MultiLine;
                    mytbLine.Rows                = 8;
                    mytbLine.Attributes["style"] = "width:100%;padding: 0px;margin: 0px;";
                    mytbLine.Enabled             = attr.UIIsEnable;
                    if (mytbLine.Enabled == false)
                    {
                        mytbLine.Attributes["class"] = "TBReadonly";
                    }
                    this.Pub1.Add(mytbLine);
                    this.Pub1.AddTDEnd();
                    this.Pub1.AddTREnd();
                    isLeftNext = true;
                    continue;
                }

                if (attr.IsBigDoc)
                {
                    if (isLeftNext)
                    {
                        rowIdx++;
                        this.Pub1.AddTR(" ID='" + currGF.Idx + "_" + rowIdx + "' " + gfAttr);
                    }
                    this.Pub1.Add("<TD class=FDesc colspan=2 width='50%' >");
                    this.Pub1.Add(this.GenerLab(attr, idx, 0, count));
                    TextBox mytbLine = new TextBox();
                    mytbLine.TextMode            = TextBoxMode.MultiLine;
                    mytbLine.Rows                = 8;
                    mytbLine.Attributes["style"] = "width:100%;padding: 0px;margin: 0px;";
                    mytbLine.ID = "TB_" + attr.KeyOfEn;

                    mytbLine.Enabled = attr.UIIsEnable;
                    if (mytbLine.Enabled == false)
                    {
                        mytbLine.Attributes["class"] = "TBReadonly";
                    }


                    this.Pub1.Add(mytbLine);
                    this.Pub1.AddTDEnd();
                    if (isLeftNext == false)
                    {
                        this.Pub1.AddTREnd();
                    }

                    isLeftNext = !isLeftNext;
                    continue;
                }

                //计算 colspanOfCtl .
                int colspanOfCtl = 1;
                if (attr.UIIsLine)
                {
                    colspanOfCtl = 3;
                }

                if (attr.UIIsLine)
                {
                    if (isLeftNext == false)
                    {
                        this.Pub1.AddTD();
                        this.Pub1.AddTD();
                        this.Pub1.AddTREnd();
                    }
                    isLeftNext = true;
                }

                if (isLeftNext)
                {
                    rowIdx++;
                    this.Pub1.AddTR(" ID='" + currGF.Idx + "_" + rowIdx + "' " + gfAttr);
                }

                TB tb = new TB();
                tb.Attributes["width"] = "100%";
                tb.Columns             = 60;
                tb.ID = "TB_" + attr.KeyOfEn;

                #region add contrals.
                switch (attr.LGType)
                {
                case FieldTypeS.Normal:

                    tb.Enabled = attr.UIIsEnable;
                    switch (attr.MyDataType)
                    {
                    case BP.DA.DataType.AppString:
                        this.Pub1.AddTDDesc(this.GenerLab(attr, idx, i, count));
                        tb.ShowType = TBType.TB;
                        tb.Text     = attr.DefVal;
                        if (colspanOfCtl == 3)
                        {
                            this.Pub1.AddTD(" width=80% colspan=" + colspanOfCtl, tb);
                        }
                        else
                        {
                            if (attr.IsSigan)
                            {
                                this.Pub1.AddTD("colspan=" + colspanOfCtl, "<img src='/DataUser/Siganture/" + WebUser.No + ".jpg' border=0 onerror=\"this.src='/DataUser/Siganture/UnName.jpg'\"/>");
                            }
                            else
                            {
                                this.Pub1.AddTD("width='40%' colspan=" + colspanOfCtl, tb);
                            }
                        }
                        break;

                    case BP.DA.DataType.AppDate:
                        this.Pub1.AddTDDesc(this.GenerLab(attr, idx, i, count));
                        tb.ShowType = TBType.Date;

                        tb.Text = attr.DefVal;

                        if (attr.UIIsEnable)
                        {
                            tb.Attributes["onfocus"] = "WdatePicker();";
                        }

                        this.Pub1.AddTD("width='40%' colspan=" + colspanOfCtl, tb);
                        break;

                    case BP.DA.DataType.AppDateTime:
                        this.Pub1.AddTDDesc(this.GenerLab(attr, idx, i, count));
                        tb.ShowType = TBType.DateTime;
                        tb.Text     = attr.DefVal;
                        if (attr.UIIsEnable)
                        {
                            tb.Attributes["onfocus"] = "WdatePicker({dateFmt:'yyyy-MM-dd HH:mm'});";
                        }

                        this.Pub1.AddTD("width='40%' colspan=" + colspanOfCtl, tb);
                        break;

                    case BP.DA.DataType.AppBoolean:
                        if (attr.UIIsLine)
                        {
                            this.Pub1.AddTDDesc(this.GenerLab(attr, idx, i, count));
                        }
                        else
                        {
                            this.Pub1.AddTDDesc(this.GenerLab(attr, idx, i, count));
                        }

                        CheckBox cb = new CheckBox();
                        cb.Text    = attr.Name;
                        cb.Checked = attr.DefValOfBool;
                        cb.Enabled = attr.UIIsEnable;
                        this.Pub1.AddTD("width='40%' colspan=" + colspanOfCtl, cb);
                        break;

                    case BP.DA.DataType.AppDouble:
                    case BP.DA.DataType.AppFloat:
                    case BP.DA.DataType.AppInt:
                        this.Pub1.AddTDDesc(this.GenerLab(attr, idx, i, count));
                        tb.ShowType = TBType.Num;
                        tb.Text     = attr.DefVal;
                        this.Pub1.AddTD("width='40%' colspan=" + colspanOfCtl, tb);
                        break;

                    case BP.DA.DataType.AppMoney:
                    case BP.DA.DataType.AppRate:
                        this.Pub1.AddTDDesc(this.GenerLab(attr, idx, i, count));
                        tb.ShowType = TBType.Moneny;
                        tb.Text     = attr.DefVal;
                        this.Pub1.AddTD("width='40%' colspan=" + colspanOfCtl, tb);
                        break;

                    default:
                        break;
                    }

                    tb.Attributes["width"] = "100%";
                    switch (attr.MyDataType)
                    {
                    case BP.DA.DataType.AppString:
                    case BP.DA.DataType.AppDateTime:
                    case BP.DA.DataType.AppDate:
                        if (tb.Enabled)
                        {
                            tb.Attributes["class"] = "TB";
                        }
                        else
                        {
                            tb.Attributes["class"] = "TBReadonly";
                        }
                        break;

                    default:
                        if (tb.Enabled)
                        {
                            tb.Attributes["class"] = "TBNum";
                        }
                        else
                        {
                            tb.Attributes["class"] = "TBNumReadonly";
                        }
                        break;
                    }
                    break;

                case FieldTypeS.Enum:
                    this.Pub1.AddTDDesc(this.GenerLab(attr, idx, i, count));
                    DDL ddle = new DDL();
                    ddle.ID = "DDL_" + attr.KeyOfEn;
                    ddle.BindSysEnum(attr.KeyOfEn);
                    ddle.SetSelectItem(attr.DefVal);
                    ddle.Enabled = attr.UIIsEnable;
                    this.Pub1.AddTD("colspan=" + colspanOfCtl, ddle);
                    break;

                case FieldTypeS.FK:
                    this.Pub1.AddTDDesc(this.GenerLab(attr, idx, i, count));
                    DDL ddl1 = new DDL();
                    ddl1.ID = "DDL_" + attr.KeyOfEn;
                    try
                    {
                        EntitiesNoName ens = attr.HisEntitiesNoName;
                        ens.RetrieveAll();
                        ddl1.BindEntities(ens);
                        ddl1.SetSelectItem(attr.DefVal);
                    }
                    catch
                    {
                    }
                    ddl1.Enabled = attr.UIIsEnable;
                    this.Pub1.AddTD("colspan=" + colspanOfCtl, ddl1);
                    break;

                default:
                    break;
                }
                #endregion add contrals.

                if (colspanOfCtl == 3)
                {
                    isLeftNext = true;
                    this.Pub1.AddTREnd();
                    continue;
                }

                if (isLeftNext == false)
                {
                    isLeftNext = true;
                    this.Pub1.AddTREnd();
                    continue;
                }
                isLeftNext = false;
            }
            // 最后处理补充上它。
            if (isLeftNext == false)
            {
                this.Pub1.AddTD();
                this.Pub1.AddTD();
                this.Pub1.AddTREnd();
            }
            this.InsertObjects(false);
        }
        this.Pub1.AddTableEnd();


        #region 处理异常情况。
        foreach (MapDtl dtl in dtls)
        {
            if (dtl.IsUse == false)
            {
                dtl.RowIdx  = 0;
                dtl.GroupID = 0;
                dtl.Update();
                //    this.Response.Redirect(this.Request.RawUrl, true);
            }
        }
        #endregion 处理异常情况。


        #region 处理iFrom 的自适应的问题。
        string js = "\t\n<script type='text/javascript' >";
        foreach (MapDtl dtl in dtls)
        {
            js += "\t\n window.setInterval(\"ReinitIframe('F" + dtl.No + "','TD" + dtl.No + "')\", 200);";
        }

        js += "\t\n</script>";
        this.Pub1.Add(js);
        #endregion 处理iFrom 的自适应的问题。

        #region 处理隐藏字段。
        string msg = ""; // +++++++ 编辑隐藏字段 +++++++++ <br>";
        foreach (MapAttr attr in mattrs)
        {
            if (attr.UIVisible)
            {
                continue;
            }
            switch (attr.KeyOfEn)
            {
            case "OID":
            case "FID":
            case "FK_NY":
            case "Emps":
            case "FK_Dept":
            case "WFState":
            case "RDT":
            case "MyNum":
            case "Rec":
            case "CDT":
                continue;

            default:
                break;
            }
            msg += "<a href=\"javascript:Edit('" + this.FK_MapData + "','" + attr.MyPK + "','" + attr.MyDataType + "');\">" + attr.Name + "</a> ";
        }

        if (msg.Length > 10)
        {
            this.Pub1.AddFieldSet("编辑隐藏字段");
            this.Pub1.Add(msg);
            this.Pub1.Add("<br>说明:隐藏字段是不显示在表单里面,多用于属性的计算、方向条件的设置,报表的体现。");
            this.Pub1.AddFieldSetEnd();
        }
        #endregion 处理隐藏字段。

        #region 查询条件定义
        this.Pub1.AddFieldSet("查询条件定义" + " - <a href=\"javascript:WinOpen('../Rpt/Search.aspx?FK_Flow=" + this.FK_Flow + "')\">查询预览</a>-<a href=\"javascript:WinOpen('/WF/Comm/Group.aspx?EnsName=" + this.MyPK + "')\">分析预览</a>");
        foreach (MapAttr mattr in mattrs)
        {
            if (mattr.UIContralType != UIContralType.DDL)
            {
                continue;
            }

            CheckBox cb = new CheckBox();
            cb.ID = "CB_F_" + mattr.KeyOfEn;
            if (md.RptSearchKeys.Contains("@" + mattr.KeyOfEn))
            {
                cb.Checked = true;
            }

            cb.Text = mattr.Name;
            this.Pub1.Add(cb);
        }

        this.Pub1.AddHR();
        Button btn = new Button();
        btn.CssClass = "Btn";
        btn.Text     = "保存";
        btn.ID       = "Btn_Save";
        btn.Click   += new EventHandler(btn_Click);
        this.Pub1.Add(btn);

        this.Pub1.AddFieldSetEnd();
        #endregion
    }
Exemple #15
0
        protected void Button1_Click(object sender, EventArgs e)
        {
            try
            {
                string guid = this.Request.QueryString["GUID"];
                BP.WF.CloudWS.WSSoapClient ccflowCloud = BP.WF.Cloud.Glo.GetSoap();
                DataTable dt = ccflowCloud.GetFlowTemplateByGuid(guid);


                byte[] bytes = ccflowCloud.GetFlowXML(true, guid);

                string path = BP.Sys.SystemConfig.PathOfDataUser + "CloundFlow\\Public";
                if (!System.IO.Directory.Exists(path))
                {
                    System.IO.Directory.CreateDirectory(path);
                }

                string xmlStr = System.Text.Encoding.UTF8.GetString(bytes);
                System.Xml.XmlDocument xml = new System.Xml.XmlDocument();
                xml.LoadXml(xmlStr);

                string fileName = dt.Rows[0]["NAME"].ToString() +
                                  DateTime.Now.ToString("yyyyMMddHHmmss") + ".xml";

                fileName = fileName.Replace("/", "、");
                xml.Save(path + "\\" + fileName);

                path = BP.Sys.SystemConfig.PathOfDataUser + "CloundFlow\\Public\\" + fileName;

                int SpecifiedNumber = 0;
                BP.WF.ImpFlowTempleteModel model = BP.WF.ImpFlowTempleteModel.AsNewFlow;
                //作为新流程导入(由ccbpm自动生成新的流程编号)
                if (this.RB_Import_1.Checked)
                {
                    model = BP.WF.ImpFlowTempleteModel.AsNewFlow;
                }
                //作为新流程导入(使用流程模版里面的流程编号,如果该编号已经存在系统则会提示错误)
                if (this.RB_Import_2.Checked)
                {
                    model = BP.WF.ImpFlowTempleteModel.AsTempleteFlowNo;
                }
                //作为新流程导入(使用流程模版里面的流程编号,如果该编号已经存在系统则会覆盖此流程)
                if (this.RB_Import_3.Checked)
                {
                    model = BP.WF.ImpFlowTempleteModel.OvrewaiteCurrFlowNo;
                }

                //导入并覆盖当前的流程
                if (this.RB_Import_4.Checked)
                {
                    String StrSpecifiedNumber = this.SpecifiedNumber.Text;
                    if (StrSpecifiedNumber == null)
                    {
                        this.Alert("请输入指定流程编号。");
                        return;
                    }

                    SpecifiedNumber = Convert.ToInt32(StrSpecifiedNumber);
                    model           = BP.WF.ImpFlowTempleteModel.AsSpecFlowNo;
                }

                //执行导入
                BP.WF.Flow flow = BP.WF.Flow.DoLoadFlowTemplate(this.DropDownList1.SelectedValue, path, model, SpecifiedNumber);

                if (flow.No != "")
                {
                    //调用客户端脚本, 是否在设计器中打开流程
                    ClientScript.RegisterClientScriptBlock(this.GetType(), "msg", "<script>openFlow('" + flow.DType + "','" +
                                                           flow.Name + "','" + flow.No + "','" + WebUser.No + "','" + WebUser.SID + "');</script>");

                    //导入成功禁用导入按钮
                    this.Button1.Enabled = false;
                }
                else
                {
                    this.Alert("导入失败");
                }
            }
            catch (Exception ex)
            {
                this.Response.Write("导入失败:" + ex.Message);
            }
        }
Exemple #16
0
        protected void Page_Load(object sender, EventArgs e)
        {
            BP.WF.Flow fl    = new BP.WF.Flow(this.FK_Flow);
            string     sql   = "SELECT Title FROM " + fl.PTable + " WHERE OID=" + this.WorkID;
            string     title = BP.DA.DBAccess.RunSQLReturnStringIsNull(sql, null);

            if (title == null)
            {
                this.Pub1.AddFieldSet("错误", "系统出现异常,请联系管理员。");
            }

            this.Title = "工作抄送";
            this.Pub1.AddTable("width='100%' border=1");
            this.Pub1.AddCaptionLeft("请选择或者输入人员(多个人员用逗号隔开),然后点发送按钮...");
            this.Pub1.AddTR();
            this.Pub1.AddTDTitle("接受人:");
            TextBox tb = new TextBox();

            tb.ID    = "TB_Accepter";
            tb.Width = 500;
            this.Pub1.AddTD(tb);
            Button mybtn = new Button();

            mybtn.CssClass       = "Btn";
            mybtn.Text           = "选择接受人";
            mybtn.OnClientClick += "javascript:ShowIt(" + tb.ClientID + ");";
            this.Pub1.AddTD(mybtn);
            this.Pub1.AddTREnd();

            this.Pub1.AddTR();
            this.Pub1.AddTDTitle("标题:");
            tb       = new TextBox();
            tb.ID    = "TB_Title";
            tb.Width = 500;
            tb.Text  = title;
            this.Pub1.AddTD(tb);
            this.Pub1.AddTD();
            this.Pub1.AddTREnd();

            this.Pub1.AddTR();
            this.Pub1.AddTDTitle("消<BR>息<BR>内<br>容");
            tb          = new TextBox();
            tb.ID       = "TB_Doc";
            tb.Width    = 500;
            tb.TextMode = TextBoxMode.MultiLine;
            tb.Rows     = 12;
            this.Pub1.AddTD("width='90%' colspan=2", tb);
            this.Pub1.AddTREnd();

            this.Pub1.AddTR();
            this.Pub1.AddTD("");
            Button btn = new Button();

            btn.CssClass = "Btn";
            btn.ID       = "btn";
            btn.Click   += new EventHandler(btn_Click);
            btn.Text     = "执行抄送";
            this.Pub1.AddTD(btn);
            this.Pub1.AddTD("");
            this.Pub1.AddTREnd();
            this.Pub1.AddTableEnd();
        }