コード例 #1
0
        void btn_Click(object sender, EventArgs e)
        {
            Nodes nds = new Nodes();

            nds = BP.WF.Dev2Interface.WorkOpt_GetToNodes(this.FK_Flow, this.FK_Node, this.WorkID, this.FID);

            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;
            }

            //首先去找到开始节点的发起部门编号
            string    str  = "select * from wf_generworkflow where WORKID='" + this.WorkID.ToString() + "'";
            DataTable dtl  = BP.DA.DBAccess.RunSQLReturnTable(str);
            string    emps = "";
            string    sql  = "select * from port_shipleader where FK_DEPT='" + dtl.Rows[0]["FK_DEPT"] + "'";
            DataTable dt   = BP.DA.DBAccess.RunSQLReturnTable(sql);

            foreach (DataRow row in dt.Rows)
            {
                BP.Web.Controls.RadioBtn rb = this.Pub1.GetRadioBtnByID("RB_" + row["FK_EMP"].ToString());
                if (rb.Checked == false)
                {
                    continue;
                }
                emps = row["FK_EMP"].ToString();
            }

            if (emps.Length < 2)
            {
                this.Alert("您没有选择人员。");
                return;
            }
            int toNodes = this.ToNodes;

            if (this.ToNodes == 0)
            {
                foreach (Node mynd in nds)
                {
                    toNodes = mynd.NodeID;
                }
            }
            //设置人员.
            BP.WF.Dev2Interface.WorkOpt_SetAccepter(toNodes, this.WorkID, this.FID, emps, false);
            this.DoSend();
            return;
        }
コード例 #2
0
        protected void Page_Load(object sender, EventArgs e)
        {
            //首先去找到开始节点的发起部门编号
            string    str = "select * from wf_generworkflow where WORKID='" + this.WorkID.ToString() + "'";
            DataTable dtl = BP.DA.DBAccess.RunSQLReturnTable(str);
            //根据部门编号,查询所属的分管领导
            string    sql = "select * from port_shipleader where FK_DEPT='" + dtl.Rows[0]["FK_DEPT"] + "'";
            DataTable dt  = BP.DA.DBAccess.RunSQLReturnTable(sql);

            foreach (DataRow row in dt.Rows)
            {
                this.Pub1.AddBR(); this.Pub1.AddBR();
                BP.Web.Controls.RadioBtn rb = new BP.Web.Controls.RadioBtn();
                rb                       = new BP.Web.Controls.RadioBtn();
                rb.GroupName             = "s";
                rb.Text                  = row["FK_EMPNAME"].ToString();
                rb.ID                    = "RB_" + row["FK_EMP"].ToString();
                rb.Attributes["onclick"] = "SetUnEable(this);";
                this.Pub1.Add(rb);
                this.Pub1.AddBR();
            }
            this.Pub1.AddBR();
            this.Pub1.AddBR();
            this.Pub1.Add("&nbsp;&nbsp;&nbsp;&nbsp;"); this.Pub1.Add("&nbsp;&nbsp;&nbsp;&nbsp;");
            this.Pub1.Add("&nbsp;&nbsp;&nbsp;&nbsp;"); this.Pub1.Add("&nbsp;&nbsp;&nbsp;&nbsp;");
            this.Pub1.Add("&nbsp;&nbsp;&nbsp;&nbsp;"); this.Pub1.Add("&nbsp;&nbsp;&nbsp;&nbsp;");
            this.Pub1.Add("&nbsp;&nbsp;&nbsp;&nbsp;"); this.Pub1.Add("&nbsp;&nbsp;&nbsp;&nbsp;");
            this.Pub1.Add("&nbsp;&nbsp;&nbsp;&nbsp;"); this.Pub1.Add("&nbsp;&nbsp;&nbsp;&nbsp;");
            this.Pub1.Add("&nbsp;&nbsp;&nbsp;&nbsp;"); this.Pub1.Add("&nbsp;&nbsp;&nbsp;&nbsp;");
            this.Pub1.Add("&nbsp;&nbsp;&nbsp;&nbsp;"); this.Pub1.Add("&nbsp;&nbsp;&nbsp;&nbsp;");
            this.Pub1.Add("&nbsp;&nbsp;&nbsp;&nbsp;"); this.Pub1.Add("&nbsp;&nbsp;&nbsp;&nbsp;");
            this.Pub1.Add("&nbsp;&nbsp;&nbsp;&nbsp;"); this.Pub1.Add("&nbsp;&nbsp;&nbsp;&nbsp;");
            this.Pub1.Add("&nbsp;&nbsp;&nbsp;&nbsp;"); this.Pub1.Add("&nbsp;&nbsp;&nbsp;&nbsp;");
            this.Pub1.Add("&nbsp;&nbsp;&nbsp;&nbsp;"); this.Pub1.Add("&nbsp;&nbsp;&nbsp;&nbsp;");
            Button btn = new Button();

            btn.ID   = "To";
            btn.Text = "  执 行  ";
            this.Pub1.Add(btn);
            btn.Click += new EventHandler(btn_Click);
            this.Pub1.Add("&nbsp;&nbsp;&nbsp;&nbsp;"); this.Pub1.Add("&nbsp;&nbsp;&nbsp;&nbsp;");
            btn      = new Button();
            btn.ID   = "Btn_Cancel";
            btn.Text = "取消/返回";
            this.Pub1.Add(btn);
            btn.Click += new EventHandler(btn_Click);
            this.Pub1.AddBR();
            this.Pub1.AddBR();
        }
コード例 #3
0
        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("&nbsp;&nbsp;&nbsp;&nbsp;");
                    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);
        }
コード例 #4
0
        void btn_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;
            }

            #region 计算出来到达的节点.


            //获得当前节点到达的节点.
            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);
            }


            //  首先到非异表单去找.
            string toNodes = "";
            foreach (Node mynd in nds)
            {
                if (mynd.HisRunModel == RunModel.SubThread &&
                    mynd.HisSubThreadType == SubThreadType.UnSameSheet)
                {
                    continue; //如果是子线程节点.
                }
                if (mynd.NodeID == 0)
                {
                    continue;
                }

                BP.Web.Controls.RadioBtn rb = this.Pub1.GetRadioBtnByID("RB_" + mynd.NodeID);
                if (rb.Checked == false)
                {
                    continue;
                }

                toNodes = mynd.NodeID.ToString();
                break;
            }

            if (toNodes == "")
            {
                // 如果在非异表单没有找到,就到异表单集合去找。 检查是否具有异表单的子线程.
                bool isHave = false;
                foreach (Node mynd in nds)
                {
                    if (mynd.NodeID == 0)
                    {
                        isHave = true;
                    }
                }

                if (isHave)
                {
                    /*增加异表单的子线程*/
                    foreach (Node mynd in nds)
                    {
                        if (mynd.HisSubThreadType != SubThreadType.UnSameSheet)
                        {
                            continue;
                        }

                        CheckBox cb = this.Pub1.GetCBByID("CB_" + mynd.NodeID);
                        if (cb == null)
                        {
                            continue;
                        }

                        if (cb.Checked == true)
                        {
                            toNodes += "," + mynd.NodeID;
                        }
                    }
                }
            }
            #endregion 计算出来选择的到达节点.

            if (toNodes == "")
            {
                this.Pub1.AddFieldSetRed("发送出现错误", "您没有选择到达的节点。");
                return;
            }

            // 执行发送.
            string msg = "";
            Node   nd  = new Node(this.FK_Node);
            Work   wk  = nd.HisWork;
            wk.OID = this.WorkID;
            wk.Retrieve();

            try
            {
                string toNodeStr = int.Parse(FK_Flow) + "01";
                //如果为开始节点
                if (toNodeStr == toNodes)
                {
                    //把参数更新到数据库里面.
                    GenerWorkFlow gwf = new GenerWorkFlow();
                    gwf.WorkID = this.WorkID;
                    gwf.RetrieveFromDBSources();
                    gwf.Paras_ToNodes = toNodes;
                    gwf.Save();

                    WorkNode firstwn = new WorkNode(wk, nd);

                    Node toNode = new Node(toNodeStr);
                    msg = firstwn.NodeSend(toNode, gwf.Starter).ToMsgOfHtml();
                }
                else
                {
                    msg = BP.WF.Dev2Interface.WorkOpt_SendToNodes(this.FK_Flow,
                                                                  this.FK_Node, this.WorkID, this.FID, toNodes).ToMsgOfHtml();
                }
            }
            catch (Exception ex)
            {
                this.Pub1.AddFieldSetRed("发送出现错误", ex.Message);
                return;
            }

            #region 处理通用的发送成功后的业务逻辑方法,此方法可能会抛出异常.
            try
            {
                //处理通用的发送成功后的业务逻辑方法,此方法可能会抛出异常.
                Glo.DealBuinessAfterSendWork(this.FK_Flow, this.WorkID, this.DoFunc, WorkIDs, this.CFlowNo, 0, null);
            }
            catch (Exception ex)
            {
                this.ToMsg(msg, ex.Message);
                return;
            }
            #endregion 处理通用的发送成功后的业务逻辑方法,此方法可能会抛出异常.


            /*处理转向问题.*/
            switch (nd.HisTurnToDeal)
            {
            case TurnToDeal.SpecUrl:
                string myurl = nd.TurnToDealDoc.Clone().ToString();
                if (myurl.Contains("&") == false)
                {
                    myurl += "?1=1";
                }
                myurl  = BP.WF.Glo.DealExp(myurl, wk, null);
                myurl += "&FromFlow=" + this.FK_Flow + "&FromNode=" + this.FK_Node + "&PWorkID=" + this.WorkID + "&UserNo=" + WebUser.No + "&SID=" + WebUser.SID;
                this.Response.Redirect(myurl, true);
                return;

            case TurnToDeal.TurnToByCond:
                TurnTos tts = new TurnTos(this.FK_Flow);
                if (tts.Count == 0)
                {
                    throw new Exception("@您没有设置节点完成后的转向条件。");
                }
                foreach (TurnTo tt in tts)
                {
                    tt.HisWork = wk;
                    if (tt.IsPassed == true)
                    {
                        string url = tt.TurnToURL.Clone().ToString();
                        if (url.Contains("&") == false)
                        {
                            url += "?1=1";
                        }
                        url  = BP.WF.Glo.DealExp(url, wk, null);
                        url += "&PFlowNo=" + this.FK_Flow + "&FromNode=" + this.FK_Node + "&PWorkID=" + this.WorkID + "&UserNo=" + WebUser.No + "&SID=" + WebUser.SID;
                        this.Response.Redirect(url, true);
                        return;
                    }
                }
#warning 为上海修改了如果找不到路径就让它按系统的信息提示。
                this.ToMsg(msg, "info");
                //throw new Exception("您定义的转向条件不成立,没有出口。");
                break;

            default:
                this.ToMsg(msg, "info");
                break;
            }
            return;
        }
コード例 #5
0
        protected void Page_Load(object sender, EventArgs e)
        {
            FindWorkerRole en = new FindWorkerRole();

            en.OID = this.RefOID;
            if (en.OID != 0)
            {
                en.Retrieve();
            }

            if (this.RefOID != 0 && this.S1 == null)
            {
                if (en.SortVal1 != "0")
                {
                    this.Response.Redirect("Leader.aspx?S1=" + en.SortVal1 + "&RefOID=" + this.RefOID + "&FK_Flow=" + this.FK_Flow + "&FK_Node=" + this.FK_Node, true);
                    return;
                }
            }

            #region 1级
            this.UCS1.AddFieldSet("人员范围其它参数");
            BP.Web.Controls.DDL ddl = new BP.Web.Controls.DDL();
            ddl.ID           = "DDL_S1"; // 第一纬度.
            ddl.AutoPostBack = true;
            ddl.Items.Add(new ListItem("当前提交人", "0"));
            ddl.Items.Add(new ListItem("指定节点的提交人", "1"));
            ddl.Items.Add(new ListItem("按表单字段指定的提交人", "2"));
            if (this.S1 != null)
            {
                ddl.SetSelectItem(this.S1);
            }
            else
            {
                ddl.SetSelectItem(en.SortVal1);
            }

            ddl.SelectedIndexChanged += new EventHandler(ddl_SelectedIndexChanged);
            this.UCS1.Add("选择人员");
            this.UCS1.Add(ddl);
            #endregion 2级

            #region 2级
            if (this.S1 == "1")
            {
                this.UCS2.AddFieldSet("您需要指定一个节点.");
                this.UCS2.Add("选择节点");
                ddl    = new BP.Web.Controls.DDL();
                ddl.ID = "DDL_V1"; // 第一个纬度的参数.
                ddl.BindSQL("SELECT NodeID AS No, Name FROM WF_Node WHERE FK_Flow='" + this.FK_Flow + "' ORDER BY NODEID ",
                            "No", "Name", "20");
                this.UCS2.Add(ddl);
                ddl.SetSelectItem(en.TagVal1); // 第一纬度的参数.
                this.UCS2.AddFieldSetEnd();
            }

            if (this.S1 == "2")
            {
                this.UCS2.AddFieldSet("选择表单字段");
                ddl    = new BP.Web.Controls.DDL();
                ddl.ID = "DDL_V1";  //第一个纬度的参数
                ddl.BindSQL("SELECT KeyOfEn as No, KeyOfEn+' - '+Name as Name FROM Sys_MapAttr WHERE FK_MapData='ND" + int.Parse(this.FK_Flow) + "Rpt' AND MyDataType=1 ",
                            "No", "Name", "20");

                this.UCS2.Add("选择一个字段");
                this.UCS2.Add(ddl);
                ddl.SetSelectItem(en.TagVal1); // 第一纬度的参数.
                this.UCS2.AddFieldSetEnd();
            }
            #endregion 2级

            #region 绑定后半部分.
            this.UCS3.AddFieldSet("人员范围其它参数");
            // 其他的配置信息.
            BP.Web.Controls.RadioBtn rb = new BP.Web.Controls.RadioBtn();
            rb.GroupName = "s";
            rb.ID        = "RB_0";
            rb.Text      = "直接主管";
            if (en.SortVal2 == "0")
            {
                rb.Checked = true;
            }

            this.UCS3.Add(rb);
            this.UCS3.AddHR();

            //特定职务级别的主管
            rb           = new BP.Web.Controls.RadioBtn();
            rb.GroupName = "s";
            rb.ID        = "RB_1";
            rb.Text      = "特定职务级别的主管";
            if (en.SortVal2 == "1")
            {
                rb.Checked = true;
            }

            this.UCS3.Add(rb);
            ddl    = new BP.Web.Controls.DDL();
            ddl.ID = "DDL_DutyLevel";
            ddl.BindSQL("SELECT distinct DutyLevel AS No, DutyLevel as Name FROM Port_DeptEmp WHERE DutyLevel IS NOT NULL",
                        "No", "Name", "20");
            this.UCS3.Add(ddl);
            ddl.SetSelectItem(en.TagVal2);
            this.UCS3.AddHR();

            // 特定职务的领导
            rb           = new BP.Web.Controls.RadioBtn();
            rb.GroupName = "s";
            rb.ID        = "RB_2";
            rb.Text      = "特定职务的领导";

            if (en.SortVal2 == "2")
            {
                rb.Checked = true;
            }

            this.UCS3.Add(rb);
            ddl = new BP.Web.Controls.DDL();
            ddl.BindSQL("SELECT No, Name FROM Port_Duty ", "No", "Name", "20");
            ddl.SetSelectItem(en.TagVal2);
            ddl.ID = "DDL_Duty";

            this.UCS3.Add(ddl);
            this.UCS3.AddHR();

            // 特定岗位
            rb           = new BP.Web.Controls.RadioBtn();
            rb.GroupName = "s";
            rb.ID        = "RB_3";
            rb.Text      = "特定岗位";
            this.UCS3.Add(rb);
            if (en.SortVal2 == "3")
            {
                rb.Checked = true;
            }
            ddl = new BP.Web.Controls.DDL();
            ddl.BindSQL("SELECT No, Name FROM Port_Station ", "No", "Name", "20");
            ddl.SetSelectItem(en.TagVal2);
            ddl.ID = "DDL_Station";
            this.UCS3.Add(ddl);
            this.UCS3.AddFieldSetEnd();
            #endregion 绑定后半部分.

            Button btn = new Button();
            btn.ID     = "Btn_Save";
            btn.Text   = " Save ";
            btn.Click += new EventHandler(btn_Click);
            this.UCS3.Add(btn);
        }
コード例 #6
0
        protected void Page_Load(object sender, EventArgs e)
        {
            string   rpt   = "ND" + int.Parse(this.FK_Flow) + "Rpt";
            MapAttrs attrs = new MapAttrs(rpt);

            Flow fl = new Flow(this.FK_Flow);

            fl.RetrieveFromDBSources();

            fl.No = this.FK_Flow;
            if (string.IsNullOrEmpty(this.TableName) == true)
            {
                this.Pub1.AddFieldSet("配置错误", "请关闭该窗口,在流程属性里配置业务表名,然后点保存按钮,之后打开该功能界面。");
                return;
            }

            //获得数据表列.
            SFDBSrc   src = new SFDBSrc(this.FK_DBSrc);
            DataTable dt  = src.GetColumns(this.TableName);

            foreach (DataRow dr in dt.Rows)
            {
                string fType = dr["DBType"].ToString();
                string desc  = dr["Name"].ToString();

                dr["Name"] = dr["No"] + " " + dr["DBType"] + "(" + dr["DBLength"] + ") " + dr["Name"];
            }

            this.Pub1.AddTable();
            this.Pub1.AddCaptionLeft("请设置流程字段与业务表字段的同步映射");
            this.Pub1.AddTR();

            string textCenter = " style='text-align:center;'";

            this.Pub1.AddTDTitle(textCenter, "序");
            this.Pub1.AddTDTitle(textCenter, "是否同步");
            this.Pub1.AddTDTitle(textCenter, "类型");
            this.Pub1.AddTDTitle(textCenter, "业务表(" + fl.DTSBTable + ")");
            this.Pub1.AddTREnd();

            int       idx = 0;
            Hashtable ht  = new Hashtable();

            if (string.IsNullOrEmpty(fl.DTSFields))
            {
                fl.DTSFields = "@";
            }

            string[] fieldArr = fl.DTSFields.Split('@');
            string[] lcArr    = fieldArr[0].Split(',');
            string[] ywArr    = fieldArr[1].Split(',');

            for (int i = 0; i < lcArr.Length; i++)
            {
                ht.Add(lcArr[i], ywArr[i]);
            }


            #region 锁定workid 在第一行上.

            //guid workid必须选择一项
            BP.Web.Controls.RadioBtn rb_workId = new BP.Web.Controls.RadioBtn();
            rb_workId.ID        = "rb_workId";
            rb_workId.GroupName = "RB_KEY";
            rb_workId.Text      = "OID - WorkID";

            BP.Web.Controls.RadioBtn rb_guid = new BP.Web.Controls.RadioBtn();
            rb_guid.ID        = "rb_guid";
            rb_guid.GroupName = "RB_KEY";
            rb_guid.Text      = "GUID";

            foreach (DictionaryEntry de in ht)
            {
                if (de.Key.ToString().ToUpper() == "OID")
                {
                    rb_workId.Checked = true;
                }
                else
                {
                    rb_guid.Checked = true;
                }
            }

            this.Pub1.AddTR();
            this.Pub1.AddTDIdx("1");

            this.Pub1.AddTDBegin();
            this.Pub1.Add(rb_workId);
            this.Pub1.Add(rb_guid);
            this.Pub1.AddTDEnd();

            this.Pub1.AddTD("主键<img src='../../Img/PRI/2.png' border=0/>");

            BP.Web.Controls.DDL ddl = new BP.Web.Controls.DDL();
            ddl.Width = 250;
            ddl.ID    = "DDL_OID";

            ddl.Bind(dt, dt.Columns["No"].ToString(), dt.Columns["Name"].ToString());
            ddl.SetSelectItem(fl.DTSBTablePK);

            this.Pub1.AddTD(textCenter, ddl);
            this.Pub1.AddTREnd();
            #endregion 锁定workid 在第一行上.


            bool is1 = false;
            foreach (MapAttr attr in attrs)
            {
                if (attr.KeyOfEn.ToUpper() == "OID" || attr.KeyOfEn.ToUpper() == "GUID")
                {
                    continue;
                }

                idx++;

                is1 = this.Pub1.AddTR(is1);

                this.Pub1.AddTDIdx(idx);

                CheckBox cb = new CheckBox();
                cb.ID   = "CB_" + attr.KeyOfEn;
                cb.Text = attr.KeyOfEn + " - " + attr.Name;

                foreach (DictionaryEntry de in ht)
                {
                    if (attr.KeyOfEn == de.Key.ToString())
                    {
                        cb.Checked = true;
                    }
                }

                this.Pub1.AddTD(cb);
                this.Pub1.AddTD(attr.MyDataTypeStr);

                ddl       = new BP.Web.Controls.DDL();
                ddl.ID    = "DDL_" + attr.KeyOfEn;
                ddl.Width = 250;

                ddl.Bind(dt, dt.Columns["No"].ToString(), dt.Columns["Name"].ToString());

                if (cb.Checked == true)
                {
                    try
                    {
                        ddl.SetSelectItem(ht[attr.KeyOfEn].ToString());
                    }
                    catch
                    {
                    }
                }

                //类似的默认选中  区分大小写  方法if(ddl.SetSelectItem(attr.KeyOfEn)){cb.Checked = true;}不适用
                foreach (DataRow dr in dt.Rows)
                {
                    if (attr.KeyOfEn.ToUpper() == dr[0].ToString().ToUpper())
                    {
                        ddl.SetSelectItem(dr[0].ToString());
                        cb.Checked = true;
                        break;
                    }
                }

                this.Pub1.AddTD(textCenter, ddl);
                this.Pub1.AddTREnd();
            }


            this.Pub1.AddTableEnd();

            this.Pub1.AddBR();
            this.Pub1.AddBR();

            Button btn = new Button();
            btn.ID   = "Btn_Save";
            btn.Text = "保存";

            btn.Click += new EventHandler(btn_Save_Click);

            Button btnClose = new Button();
            btnClose.ID     = "Btn_Close";
            btnClose.Text   = "取消";
            btnClose.Click += new EventHandler(btnClose_Click);

            this.Pub1.Add(btn);
            this.Pub1.Add(btnClose);

            this.Pub1.AddBR();
            this.Pub1.AddBR();
            this.Pub1.AddBR();
        }
コード例 #7
0
        /// <summary>
        /// 执行数据的保存操作
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        void btn_Save_Click(object sender, EventArgs e)
        {
            try
            {
                string   rpt   = "ND" + int.Parse(this.FK_Flow) + "Rpt";
                Flow     fl    = new Flow(this.FK_Flow);
                MapAttrs attrs = new MapAttrs(rpt);

                #region 求业务表的主键。
                string pk = this.Pub1.GetDDLByID("DDL_OID").SelectedItemStringVal;
                if (string.IsNullOrEmpty(pk) == true)
                {
                    BP.Sys.PubClass.Alert("@必须设置业务表的主键,否则无法同步。");
                    return;
                }
                #endregion 求业务表的主键。

                string lcStr = ""; //要同步的流程字段
                string ywStr = ""; //第三方字段
                string err   = "";
                foreach (MapAttr attr in attrs)
                {
                    CheckBox cb = this.Pub1.GetCBByID("CB_" + attr.KeyOfEn);
                    if (cb == null || cb.Checked == false)
                    {
                        continue;
                    }

                    BP.Web.Controls.DDL ddl = this.Pub1.GetDDLByID("DDL_" + attr.KeyOfEn);


                    //如果选中的业务字段重复,抛出异常
                    if (ywStr.Contains("@" + ddl.SelectedItemStringVal + "@"))
                    {
                        err += "@配置【" + attr.KeyOfEn + " - " + attr.Name +
                               "】错误, 请确保选中业务字段的唯一性,该业务字段已经被其他字段所使用。";
                    }
                    lcStr += "@" + attr.KeyOfEn + "@,";
                    ywStr += "@" + ddl.SelectedItemStringVal + "@,";
                }

                BP.Web.Controls.RadioBtn rb = this.Pub1.GetRadioBtnByID("rb_workId");

                BP.Web.Controls.DDL ddl_key = this.Pub1.GetDDLByID("DDL_OID");
                if (rb.Checked)
                {
                    if (ywStr.Contains("@" + ddl_key.SelectedItemStringVal + "@"))
                    {
                        err += "@请确保选中业务字段的唯一性,该业务字段【" + ddl_key.SelectedItemStringVal +
                               "】已经被其他字段所使用。";
                    }
                    lcStr = "@OID@," + lcStr;
                    ywStr = "@" + ddl_key.SelectedItemStringVal + "@," + ywStr;
                }
                else
                {
                    if (ywStr.Contains("@" + ddl_key.SelectedItemStringVal + "@"))
                    {
                        err += "@请确保选中业务字段的唯一性,该业务字段【" + ddl_key.SelectedItemStringVal +
                               "】已经被其他字段所使用。";
                    }
                    lcStr = "@GUID@," + lcStr;
                    ywStr = "@" + ddl_key.SelectedItemStringVal + "@," + ywStr;
                }

                if (err != "")
                {
                    BP.Sys.PubClass.Alert(err);
                    return;
                }

                lcStr = lcStr.Replace("@", "");
                ywStr = ywStr.Replace("@", "");


                //去除最后一个字符的操作
                if (string.IsNullOrEmpty(lcStr) || string.IsNullOrEmpty(ywStr))
                {
                    BP.Sys.PubClass.Alert("要配置的内容为空...");
                    return;
                }
                lcStr = lcStr.Substring(0, lcStr.Length - 1);
                ywStr = ywStr.Substring(0, ywStr.Length - 1);


                //数据存储格式   a,b,c@a_1,b_1,c_1
                fl.DTSFields   = lcStr + "@" + ywStr;
                fl.DTSBTablePK = pk;
                fl.Update();

                // System.Web.HttpContext.Current.Response.Write("<script language='JavaScript'>if (confirm('操作成功,是否关闭配置页面?'))" +
                //"{window.parent.closeTab('设置字段匹配');}</script> ");

                System.Web.HttpContext.Current.Response.Write("<script language='JavaScript'>if (confirm('操作成功,是否关闭配置页面?'))" +
                                                              "{try{window.parent.closeTab('设置字段匹配');}catch{}}</script> ");
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }