Ejemplo n.º 1
0
        protected void PrepareForm()
        {
            RSH_BaziLogicMod m_logic = RSH_BaziLogicBll.GetInstance().GetModel(sysno);

            txtTitle.Text         = m_logic.Name;
            txtDesc.Text          = m_logic.Description;
            drpType.SelectedIndex = drpType.Items.IndexOf(drpType.Items.FindByValue(m_logic.Type.ToString()));

            string[] logic = m_logic.Logic.Split(new char[] { '_' });
            ConditionList = RSH_BaziConditionBll.GetInstance().GetListByLogic(sysno);
            ConditionList.Columns.Add("sign1");
            ConditionList.Columns.Add("sign2");
            ConditionList.Columns.Add("sign");
            ConditionList.Columns.Add("logic");
            for (int i = 0; i < logic.Length / 4; i++)
            {
                if (logic[4 * i + 1].Contains("#"))
                {
                    DataRow m_dr = ConditionList.NewRow();
                    ConditionList.Rows.InsertAt(m_dr, i);
                    ConditionList.Rows[i]["logic"] = logic[4 * i + 1].Replace("#", "");
                }
                else
                {
                    ConditionList.Rows[i]["logic"] = "";
                }
                ConditionList.Rows[i]["sign1"] = logic[4 * i];
                ConditionList.Rows[i]["sign2"] = logic[4 * i + 2];
                ConditionList.Rows[i]["sign"]  = logic[4 * i + 3];
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 保存
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void Button1_Click(object sender, EventArgs e)
        {
            #region 输入检查
            int count = 0;
            foreach (RepeaterItem item in Repeater1.Items)
            {
                if (item.ItemIndex > int.Parse(HiddenField1.Value))
                {
                    continue;
                }
                if (((TextBox)item.FindControl("txtSign1")).Text.Trim().Replace("(", "").Replace(")", "").Replace("(", "").Replace(")", "") != "")
                {
                    ltrError.Text = "输入框只可输入括号";
                    this.ClientScript.RegisterStartupScript(this.GetType(), "", "document.getElementById('errordiv').style.display='';closeforseconds();", true);
                    return;
                }
                if (((TextBox)item.FindControl("txtSign2")).Text.Trim().Replace("(", "").Replace(")", "").Replace("(", "").Replace(")", "") != "")
                {
                    ltrError.Text = "输入框只可输入括号";
                    this.ClientScript.RegisterStartupScript(this.GetType(), "", "document.getElementById('errordiv').style.display='';closeforseconds();", true);
                    return;
                }
                if (HiddenField2.Value.Contains("|" + item.ItemIndex + "|") && ((DropDownList)item.FindControl("drpLogic")).SelectedValue == "-1")
                {
                    ltrError.Text = "有逻辑选择框未选择";
                    this.ClientScript.RegisterStartupScript(this.GetType(), "", "document.getElementById('errordiv').style.display='';closeforseconds();", true);
                    return;
                }
                if (!HiddenField2.Value.Contains("|" + item.ItemIndex + "|") && ((DropDownList)item.FindControl("drpItem")).SelectedValue == "-1")
                {
                    ltrError.Text = "有主语选择框未选择";
                    this.ClientScript.RegisterStartupScript(this.GetType(), "", "document.getElementById('errordiv').style.display='';closeforseconds();", true);
                    return;
                }
                string tmpstr = ((TextBox)item.FindControl("txtSign1")).Text.Trim() + ((TextBox)item.FindControl("txtSign2")).Text.Trim();
                foreach (char c in tmpstr)
                {
                    if (c == '(' || c == '(')
                    {
                        count++;
                    }
                    if (c == ')' || c == ')')
                    {
                        count--;
                    }
                }
            }
            if (count != 0)
            {
                ltrError.Text = "括号开闭数量不对称";
                this.ClientScript.RegisterStartupScript(this.GetType(), "", "document.getElementById('errordiv').style.display='';closeforseconds();", true);
                return;
            }

            if (drpType.SelectedValue == "-1")
            {
                ltrError.Text = "请选择类型";
                this.ClientScript.RegisterStartupScript(this.GetType(), "", "document.getElementById('errordiv').style.display='';closeforseconds();", true);
                return;
            }
            if (txtTitle.Text.Trim() == "")
            {
                ltrError.Text = "请输入标题";
                this.ClientScript.RegisterStartupScript(this.GetType(), "", "document.getElementById('errordiv').style.display='';closeforseconds();", true);
                return;
            }
            if (txtDesc.Text.Trim() == "")
            {
                ltrError.Text = "请输入注释";
                this.ClientScript.RegisterStartupScript(this.GetType(), "", "document.getElementById('errordiv').style.display='';closeforseconds();", true);
                return;
            }
            #endregion


            RSH_BaziLogicMod m_logic = new RSH_BaziLogicMod();
            if (sysno == AppConst.IntNull)
            {
                m_logic.Description = txtDesc.Text.Trim();
                m_logic.DR          = (int)AppEnum.State.normal;
                m_logic.Name        = txtTitle.Text.Trim();
                m_logic.Type        = int.Parse(drpType.SelectedValue);
                m_logic.Logic       = "";
                m_logic.SysNo       = RSH_BaziLogicBll.GetInstance().Add(m_logic);
            }
            else
            {
                m_logic             = RSH_BaziLogicBll.GetInstance().GetModel(sysno);
                m_logic.Description = txtDesc.Text.Trim();
                m_logic.DR          = (int)AppEnum.State.normal;
                m_logic.Name        = txtTitle.Text.Trim();
                m_logic.Type        = int.Parse(drpType.SelectedValue);
                m_logic.Logic       = "";
                RSH_BaziConditionBll.GetInstance().DeleteConditionsByLogic(sysno);
            }
            //List<RSH_BaziConditionMod> m_condtions = new List<RSH_BaziConditionMod>();
            foreach (RepeaterItem item in Repeater1.Items)
            {
                if (item.ItemIndex > int.Parse(HiddenField1.Value))
                {
                    continue;
                }
                m_logic.Logic += ((TextBox)item.FindControl("txtSign1")).Text + "_";
                if (HiddenField2.Value.Contains("|" + item.ItemIndex + "|"))
                {
                    m_logic.Logic += "#" + ((DropDownList)item.FindControl("drpLogic")).SelectedValue + "_";
                }
                else if (((DropDownList)item.FindControl("drpItem")).Style["display"] != "none")
                {
                    RSH_BaziConditionMod tmp_c = new RSH_BaziConditionMod();
                    tmp_c.Item       = int.Parse(((DropDownList)item.FindControl("drpItem")).SelectedValue);
                    tmp_c.LogicSysNo = m_logic.SysNo;
                    tmp_c.Type       = int.Parse(((DropDownList)item.FindControl("drpType")).SelectedValue);
                    tmp_c.Condition  = int.Parse(((DropDownList)item.FindControl("drpCondition")).SelectedValue);
                    tmp_c.Target     = int.Parse(((DropDownList)item.FindControl("drpTarget")).SelectedValue);
                    tmp_c.Negative   = int.Parse(((DropDownList)item.FindControl("drpNegative")).SelectedValue);

                    tmp_c.SysNo    = RSH_BaziConditionBll.GetInstance().Add(tmp_c);
                    m_logic.Logic += "@" + tmp_c.SysNo + "_";
                }
                m_logic.Logic += ((TextBox)item.FindControl("txtSign2")).Text + "_";
                m_logic.Logic += ((DropDownList)item.FindControl("drpSign")).SelectedValue + "_";
            }
            m_logic.Logic = m_logic.Logic.Substring(0, m_logic.Logic.Length - 1);
            RSH_BaziLogicBll.GetInstance().Update(m_logic);
        }