Ejemplo n.º 1
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();
        }
Ejemplo n.º 2
0
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                FrmSubFlow frmSubFlow = new FrmSubFlow(this.FK_Node);

                //控件状态
                if (frmSubFlow.SFSta == FrmSubFlowSta.Disable)
                {
                    this.RB_Disable.Checked = true;
                }

                if (frmSubFlow.SFSta == FrmSubFlowSta.Enable)
                {
                    this.RB_Enable.Checked = true;
                }

                if (frmSubFlow.SFSta == FrmSubFlowSta.Readonly)
                {
                    this.RB_Readonly.Checked = true;
                }

                //显示方式
                if (frmSubFlow.SFShowModel == FrmWorkShowModel.Table)
                {
                    this.RB_Table.Checked = true;
                }

                if (frmSubFlow.SFShowModel == FrmWorkShowModel.Free)
                {
                    this.RB_Free.Checked = true;
                }

                this.TB_SFCaption.Text = frmSubFlow.SFCaption;
                this.TB_SFDefInfo.Text = frmSubFlow.SFDefInfo;

                //高度,宽度.
                this.SF_H.Text = frmSubFlow.SF_H.ToString();
                this.SF_W.Text = frmSubFlow.SF_W.ToString();
            }
        }
Ejemplo n.º 3
0
        /// <summary>
        /// 生成所有表单元素.
        /// </summary>
        /// <returns></returns>
        public string CCForm_AllElements_ResponseJson()
        {
            try
            {
                DataSet ds = new DataSet();

                MapData mapData = new MapData(this.FK_MapData);

                //属性.
                MapAttrs attrs = new MapAttrs(this.FK_MapData);
                attrs.Retrieve(MapAttrAttr.FK_MapData, this.FK_MapData, MapAttrAttr.UIVisible, 1);
                ds.Tables.Add(attrs.ToDataTableField("Sys_MapAttr"));

                FrmBtns btns = new FrmBtns(this.FK_MapData);
                ds.Tables.Add(btns.ToDataTableField("Sys_FrmBtn"));

                FrmRBs rbs = new FrmRBs(this.FK_MapData);
                ds.Tables.Add(rbs.ToDataTableField("Sys_FrmRB"));

                FrmLabs labs = new FrmLabs(this.FK_MapData);
                ds.Tables.Add(labs.ToDataTableField("Sys_FrmLab"));

                FrmLinks links = new FrmLinks(this.FK_MapData);
                ds.Tables.Add(links.ToDataTableField("Sys_FrmLink"));

                FrmImgs imgs = new FrmImgs(this.FK_MapData);
                ds.Tables.Add(imgs.ToDataTableField("Sys_FrmImg"));

                FrmImgAths imgAths = new FrmImgAths(this.FK_MapData);
                ds.Tables.Add(imgAths.ToDataTableField("Sys_FrmImgAth"));

                FrmAttachments aths = new FrmAttachments(this.FK_MapData);
                ds.Tables.Add(aths.ToDataTableField("Sys_FrmAttachment"));

                MapDtls dtls = new MapDtls(this.FK_MapData);
                ds.Tables.Add(dtls.ToDataTableField("Sys_MapDtl"));

                FrmLines lines = new FrmLines(this.FK_MapData);
                ds.Tables.Add(lines.ToDataTableField("Sys_FrmLine"));

                BP.Sys.FrmUI.MapFrameExts mapFrameExts = new BP.Sys.FrmUI.MapFrameExts(this.FK_MapData);
                ds.Tables.Add(mapFrameExts.ToDataTableField("Sys_MapFrame"));

                //组织节点组件信息.
                string sql = "";
                if (this.FK_Node > 100)
                {
                    sql += "select '轨迹图' AS Name,'FlowChart' AS No,FrmTrackSta Sta,FrmTrack_X X,FrmTrack_Y Y,FrmTrack_H H,FrmTrack_W  W from WF_Node WHERE nodeid=" + SystemConfig.AppCenterDBVarStr + "nodeid";
                    sql += " union select '审核组件'AS Name, 'FrmCheck'AS No,FWCSta Sta,FWC_X X,FWC_Y Y,FWC_H H, FWC_W W from WF_Node WHERE nodeid=" + SystemConfig.AppCenterDBVarStr + "nodeid";
                    sql += " union select '子流程' AS Name,'SubFlowDtl'AS  No,SFSta Sta,SF_X X,SF_Y Y,SF_H H, SF_W W from WF_Node  WHERE nodeid=" + SystemConfig.AppCenterDBVarStr + "nodeid";
                    sql += " union select '子线程' AS Name, 'ThreadDtl'AS  No,FrmThreadSta Sta,FrmThread_X X,FrmThread_Y Y,FrmThread_H H,FrmThread_W W from WF_Node WHERE nodeid=" + SystemConfig.AppCenterDBVarStr + "nodeid";
                    sql += " union select '流转自定义' AS Name,'FrmTransferCustom' AS  No,FTCSta Sta,FTC_X X,FTC_Y Y,FTC_H H,FTC_W  W FROM WF_Node WHERE nodeid=" + SystemConfig.AppCenterDBVarStr + "nodeid";
                    Paras ps = new Paras();
                    ps.SQL = sql;
                    ps.Add("nodeid", this.FK_Node);
                    DataTable dt = null;

                    try
                    {
                        dt = DBAccess.RunSQLReturnTable(ps);
                    }
                    catch (Exception ex)
                    {
                        FrmSubFlow sb = new FrmSubFlow();
                        sb.CheckPhysicsTable();

                        TransferCustom tc = new TransferCustom();
                        tc.CheckPhysicsTable();

                        FrmThread ft = new FrmThread();
                        ft.CheckPhysicsTable();

                        FrmTrack ftd = new FrmTrack();
                        ftd.CheckPhysicsTable();

                        FrmTransferCustom ftd1 = new FrmTransferCustom();
                        ftd1.CheckPhysicsTable();

                        throw ex;
                    }

                    dt.TableName = "FigureCom";

                    if (SystemConfig.AppCenterDBType == DBType.Oracle || SystemConfig.AppCenterDBType == DBType.PostgreSQL)
                    {
                        //  figureComCols = "Name,No,Sta,X,Y,H,W";
                        dt.Columns[0].ColumnName = "Name";
                        dt.Columns[1].ColumnName = "No";
                        dt.Columns[2].ColumnName = "Sta";
                        dt.Columns[3].ColumnName = "X";
                        dt.Columns[4].ColumnName = "Y";
                        dt.Columns[5].ColumnName = "H";
                        dt.Columns[6].ColumnName = "W";
                    }
                    ds.Tables.Add(dt);
                }

                return(BP.Tools.Json.ToJson(ds));
            }
            catch (Exception ex)
            {
                return("err@" + ex.Message);
            }
        }
Ejemplo n.º 4
0
        protected void BtnSave_Click(object sender, EventArgs e)
        {
            FrmSubFlow frmSubFlow = new FrmSubFlow(this.FK_Node);

            //显示方式
            if (this.RB_Table.Checked)
            {
                frmSubFlow.SFShowModel = FrmWorkShowModel.Table;
            }
            if (this.RB_Free.Checked)
            {
                frmSubFlow.SFShowModel = FrmWorkShowModel.Free;
            }

            //控件状态 禁用
            if (this.RB_Disable.Checked)
            {
                frmSubFlow.SFSta = FrmSubFlowSta.Disable;
            }

            if (this.RB_Enable.Checked)
            {
                frmSubFlow.SFSta = FrmSubFlowSta.Enable;
            }

            if (this.RB_Readonly.Checked)
            {
                frmSubFlow.SFSta = FrmSubFlowSta.Readonly;
            }

            //标题
            frmSubFlow.SFCaption = string.IsNullOrWhiteSpace(this.TB_SFCaption.Text.Trim()) ? "" : this.TB_SFCaption.Text.Trim();

            //可手工启动的子流程
            if (string.IsNullOrWhiteSpace(this.TB_SFDefInfo.Text.Trim()) == false)
            {
                string[] flows    = this.TB_SFDefInfo.Text.Trim().Split(',');
                string   errorMsg = "";
                foreach (string flowNo in flows) //101,,,,102也是错误格式
                {
                    if (string.IsNullOrEmpty(flowNo))
                    {
                        continue;
                    }

                    Flow flEn = new Flow();
                    flEn.No = flowNo;
                    if (flEn.IsExits == false)
                    {
                        errorMsg = "@流程编号[" + flowNo + "]不存在";
                    }
                }

                if (string.IsNullOrWhiteSpace(errorMsg) == false)
                {
                    BP.Sys.PubClass.Alert(errorMsg);
                    return;
                }
                frmSubFlow.SFDefInfo = this.TB_SFDefInfo.Text.Trim();
            }

            //高度.
            frmSubFlow.SF_H = float.Parse(this.SF_H.Text.Trim());
            frmSubFlow.SF_W = float.Parse(this.SF_W.Text.Trim());
            frmSubFlow.Update();
        }
Ejemplo n.º 5
0
        protected void Page_Load(object sender, EventArgs e)
        {
            //查询出来所有子流程的数据.
            FrmSubFlow sf = new FrmSubFlow(this.FK_Node);

            Node nd = new Node(this.FK_Node);

            this.AddTable(" width='100%' ");
            if (sf.SFCaption.Length != 0)
            {
                this.AddCaption(sf.SFCaption); //标题可以为空
            }
            if (sf.SFDefInfo.Trim().Length == 0)
            {
                return;
            }

            this.AddTR();
            this.AddTDTitleExt("标题");
            this.AddTDTitleExt("停留节点");
            this.AddTDTitleExt("状态");
            this.AddTDTitleExt("处理人");
            this.AddTDTitleExt("处理时间");
            this.AddTDTitleExt("信息");
            this.AddTREnd();

            /*有要启动的子流程, 生成启动子流程的连接.*/
            string html = "";

            string[] strs = sf.SFDefInfo.Split(',');
            foreach (string str in strs)
            {
                if (string.IsNullOrEmpty(str) == true)
                {
                    continue;
                }

                if (str.Length != 3)
                {
                    continue;
                }

                //输出标题.
                BP.WF.Flow fl = new Flow(str);

                if (sf.SFSta == FrmSubFlowSta.Enable)
                {
                    html = "<div style='float:left'><img src='../Img/Max.gif' />&nbsp;" + fl.Name + "</div> <div style='float:right'><a href=\"javascript:OpenIt('../MyFlow.aspx?FK_Flow=" + fl.No + "&PWorkID=" + this.WorkID + "&PNodeID=" + sf.NodeID + "&PFlowNo=" + nd.FK_Flow + "&PFID=" + this.FID + "')\"  >[启动流程]</a></style>";
                }

                if (sf.SFSta == FrmSubFlowSta.Readonly)
                {
                    html = "<div style='float:left'><img src='../Img/Max.gif' />&nbsp;" + fl.Name + "</div></style>";
                }

                this.AddTR();
                this.AddTD(" class=TRSum colspan=6", html);
                this.AddTREnd();

                //该流程的子流程信息.
                GenerWorkFlows gwfs = new GenerWorkFlows();
                gwfs.Retrieve(GenerWorkFlowAttr.PWorkID, this.WorkID,
                              GenerWorkFlowAttr.FK_Flow, str); //流程.

                foreach (GenerWorkFlow item in gwfs)
                {
                    if (item.WFState == WFState.Blank)
                    {
                        continue;
                    }

                    this.AddTR();
                    this.AddTD("style='word-break:break-all;'",
                               "<a href=\"javascript:OpenIt('../WFRpt.aspx?WorkID=" + item.WorkID + "&FK_Flow=" + item.FK_Flow + "')\" ><img src='../Img/Dot.png' width='9px' />&nbsp;" + item.Title + "</a>");

                    this.AddTD(item.NodeName); //到达节点名称.

                    if (item.WFState == WFState.Complete)
                    {
                        this.AddTD("已完成");
                    }
                    else
                    {
                        this.AddTD("未完成");
                    }

                    this.AddTD(item.TodoEmps);                                          //到达人员.
                    this.AddTD(BP.DA.DataType.ParseSysDate2DateTimeFriendly(item.RDT)); //日期.
                    this.AddTD(item.FlowNote);                                          //流程备注.
                    this.AddTREnd();

                    //加载他下面的子流程.
                    InsertSubFlows(item.FK_Flow, item.FK_Node, item.WorkID, 1);
                }
            }
            this.AddTableEnd();
        }