コード例 #1
0
        private void DeleteDetail(string sDetailIndex)
        {
            if (tvComboDetail.SelectedNode == null)
            {
                return;
            }
            if (tvComboDetail.SelectedNode.Nodes.Count > 0)
            {
                MessageBox.Show("该节点有子节点,不允许删除");
                return;
            }

            string sComboValue = tvComboDetail.SelectedNode.Text.ToString();

            if (tvComboName.SelectedNode != null)
            {
                if (DoValidData(sDetailIndex, sComboValue) == true)
                {
                    MessageBox.Show("该数据已被使用,禁止删除!", "提示");
                    return;
                }
                else if (DoValidData(sDetailIndex, sComboValue) == false)
                {
                    sDetailIndex = tvComboDetail.SelectedNode.Tag.ToString();
                    if (SQLDBBase.ExecuteSql("delete from ComboDataDetail where DetailIndex =" + sDetailIndex) > 1)
                    {
                        tvComboDetail.Nodes.Remove(tvComboDetail.SelectedNode);
                    }
                    DoRefreshDetail();
                }
            }
        }
コード例 #2
0
        //加载下拉框内容
        private void CreateDetailTree()
        {
            tvComboDetail.Nodes.Clear();
            if (tvComboName.SelectedNode == null)
            {
                return;
            }
            //string slctName = tvComboName.SelectedNode.Tag.ToString();
            DataTable dt = SQLDBBase.ExecuteDataTable("select ComboDataDetail.* from ComboDataDetail,ComboData where ComboDataDetail.ComboDataIndex = ComboData.ComboDataIndex and ComboData.ComboDataIndex= '" + tvComboName.SelectedNode.Tag.ToString() + "' ORDER BY ComboDataDetail.ComboValueOrder asc");

            if (dt == null || dt.Rows.Count < 1)
            {
                return;
            }
            string sParentIndex = dt.Rows[0]["ComboParentIndex"].ToString();

            int    nDetailIndex     = Convert.ToInt16(dt.Rows[0]["DetailIndex"].ToString());
            int    nComboDataIndex  = Convert.ToInt16(dt.Rows[0]["ComboDataIndex"].ToString());
            string sComboValue      = dt.Rows[0]["ComboValue"].ToString();
            int    nComboValueOrder = Convert.ToInt16(dt.Rows[0]["ComboValueOrder"].ToString());

            //TreeNode node = tvComboDetail.Nodes.Add(sComboValue);
            //node.Tag = nDetailIndex;
            LoadSubDetail(dt, null, "0");
            tvComboDetail.CheckBoxes = false;
            //tvComboDetail.ExpandAll();
        }
コード例 #3
0
        private void tvComboName_AfterLabelEdit(object sender, NodeLabelEditEventArgs e)
        {
            tvComboName.LabelEdit = false;
            string sComboIndex = tvComboName.SelectedNode.Tag.ToString();
            string sComboName  = e.Label;

            SQLDBBase.ExecuteSql(" update ComboData set ComboName ='" + sComboName + "' where ComboDataIndex ='" + sComboIndex + "'");
        }
コード例 #4
0
        //判断当前下拉框内容是否使用过,使用过返回true(不可被删除),没使用过返回false(可以被删除)。
        private bool DoValidData(string sDetailIndex, string sComboValue)
        {
            string    sql        = "select TableName,FieldName from ComboData as c,ComboDataDetail as cd where c.ComboDataIndex = cd.ComboDataIndex and cd.DetailIndex = '" + sDetailIndex + "'";
            DataTable dt         = SQLDBBase.ExecuteDataTable(sql);
            string    sTableName = dt.Rows[0]["TableName"].ToString();
            string    sFieldName = dt.Rows[0]["FieldName"].ToString();
            string    sSQL       = "select * from " + sTableName + " where " + sFieldName + " = '" + sComboValue + "'";//

            return(SQLDBBase.RecordExists(sSQL));
        }
コード例 #5
0
        //生成下拉框树
        private void CreateComboDataTree()
        {
            tvComboName.Nodes.Clear();
            DataTable dt = SQLDBBase.ExecuteDataTable("select * from ComboData order by ComboDataIndex asc");

            if (dt == null || dt.Rows.Count < 1)
            {
                return;
            }
            LoadComboData(dt, null, "0");
            tvComboName.CheckBoxes = false;
            tvComboName.ExpandAll();
            tvComboName.TopNode = tvComboName.Nodes[0];//第一个可见的节点是树里的第一个节点,滚动条就会上去了
        }
コード例 #6
0
        //获取ComboDataDetail表中,当前选择的下拉框的最大Order
        private int GetMaxOrder(string sComboDataIndex /*, string mxOrder*/)
        {
            string    ssql = "select Max(b.ComboValueOrder) from ComboDataDetail as b,ComboData as a where b.ComboDataIndex = a.ComboDataIndex and a.ComboDataIndex = '" + sComboDataIndex + "'";
            DataTable dt   = SQLDBBase.ExecuteDataTable(ssql);
            int       mxOrder;

            if (dt.Rows.Count <= 1)
            {
                mxOrder = '0';
            }
            else
            {
                mxOrder = Convert.ToInt16(dt.Rows[0][0].ToString());//Order最大值
            }
            return(mxOrder);
        }
コード例 #7
0
        private void ChangeDropType()
        {
            if (tvComboName.SelectedNode != null)
            {
                string sComboIndex = tvComboName.SelectedNode.Tag.ToString();
                string sComboType  = "-2";
                string ssComboType = "";

                DataTable dtCombo     = SQLDBBase.ExecuteDataTable("select * from ComboData where comboDataIndex = '" + sComboIndex + "'");
                string    ssComboName = dtCombo.Rows[0]["ComboName"].ToString();//为了实时刷新显示类型
                sComboType = dtCombo.Rows[0]["ComboType"].ToString();

                //重选类型后刷新下拉框名表内信息
                if (sComboType == "-1")
                {
                    ssComboType = "";
                }
                else if (sComboType == "0")
                {
                    ssComboType = " (单选)";
                }
                else if (sComboType == "1")
                {
                    ssComboType = " (多选)";
                }

                if (rbSing.Checked)
                {
                    sComboType = "0";
                    tvComboName.SelectedNode.Text = ssComboName + ssComboType;
                }
                else if (rbMult.Checked)
                {
                    sComboType = "1";
                    tvComboName.SelectedNode.Text = ssComboName + ssComboType;
                }

                if (sComboType != null)
                {
                    SQLDBBase.ExecuteSql("update ComboData set ComboType = '" + sComboType + "'where ComboDataIndex = '" + sComboIndex + "'");
                }
            }
        }
コード例 #8
0
        private void tvComboName_AfterSelect(object sender, TreeViewEventArgs e)
        {
            TreeNode node = tvComboName.SelectedNode;
            string   str  = node.Text.ToString();
            string   str1 = str.Remove(str.Length - 4, 4);

            if (node == null)
            {
                return;
            }
            //只有最后一层是下拉框名称 可选择单选/复选框
            if (tvComboName.SelectedNode.FirstNode == null)
            {
                rbMult.Enabled   = true;
                rbSing.Enabled   = true;
                lbComboName.Text = "当前选择的下拉框是:" + str1;
            }
            else
            {
                lbComboName.Text = "当前选择的下拉框是:";
                rbMult.Enabled   = false;
                rbMult.Checked   = false;
                rbSing.Enabled   = false;
                rbSing.Checked   = false;
            }
            //读取选中项是单选或复选的
            int       sComboDataIndex = Convert.ToInt16(node.Tag.ToString());
            DataTable dt1             = SQLDBBase.ExecuteDataTable("select ComboType from ComboData where ComboDataIndex = '" + sComboDataIndex + "'");

            //cbComboType.Text = dt1.Rows[0][0].ToString();
            if (dt1.Rows[0][0].ToString() == "0")
            {
                rbSing.Checked = true;
            }
            else if (dt1.Rows[0][0].ToString() == "1")
            {
                rbMult.Checked = true;
            }

            CreateDetailTree();
        }
コード例 #9
0
        //检验数据是否重复录入,返回true则已存在,禁止添加;返回false则不存在,可以添加。
        private bool DoRepeat()
        {
            string sSQL = "SELECT * FROM ComboDataDetail as c, ComboData as cd WHERE c.ComboDataIndex = cd.ComboDataIndex and cd.ComboDataIndex = '" + tvComboName.SelectedNode.Tag.ToString() + "' and c.ComboValue = '" + TbComboValue.Text.Trim() + "'";

            return(SQLDBBase.RecordExists(sSQL));
        }
コード例 #10
0
        //添加下拉框内容
        private void BtnAdd_Click(object sender, EventArgs e)
        {
            if (tvComboName.SelectedNode.Nodes.Count > 0)
            {
                MessageBox.Show("请选择下拉框输入数据", "提示");
                return;
            }
            if (DoRepeat() == true)
            {
                MessageBox.Show("下拉框中已存在的数据,请重新输入!", "提示");
                return;
            }
            //tvComboDetail.SelectedNode.FirstNode;
            if (TbComboValue.Text == "" || tvComboName.SelectedNode == null)
            {
                return;
            }
            string sComboDataIndex = tvComboName.SelectedNode.Tag.ToString();
            int    ssMxOrder       = GetMaxOrder(sComboDataIndex);

            //没有选中项 则在最后一项后面添加
            if (tvComboDetail.SelectedNode == null)
            {
                SQLDBBase.FieldDataItem[] FieldItem = new SQLDBBase.FieldDataItem[15];

                int nFieldIndex = -1;

                FieldItem[++nFieldIndex] = new SQLDBBase.FieldDataItem("ComboDataIndex", sComboDataIndex, SQLDBBase.FieldDataType.Int);
                FieldItem[++nFieldIndex] = new SQLDBBase.FieldDataItem("ComboValue", TbComboValue.Text.Trim());
                FieldItem[++nFieldIndex] = new SQLDBBase.FieldDataItem("ComboValueOrder", ssMxOrder + 1, SQLDBBase.FieldDataType.Int);
                FieldItem[++nFieldIndex] = new SQLDBBase.FieldDataItem("ComboParentIndex", "0", SQLDBBase.FieldDataType.Int);//在第一层级中添加

                if (SQLDBBase.InsertRecord("ComboDataDetail", nFieldIndex + 1, FieldItem) == 1)
                {
                    //TreeNode node = tvComboDetail.SelectedNode.Nodes.Add(TbComboValue.Text.Trim());BUG 出错!!!
                    object ob = SQLDBBase.GetSingle("select * from ComboDataDetail where ComboParentIndex = '0' and ComboValue='" + TbComboValue.Text.Trim() + "'");
                    if (ob != null)
                    {
                        TbComboValue.Text = "";
                        DoRefreshDetail();
                    }
                }
            }
            else if (tvComboDetail.SelectedNode != null)//有选中项,在选中项中添加子节点
            {
                if (tvComboDetail.SelectedNode == null)
                {
                    return;
                }
                string sDetailIndex = tvComboDetail.SelectedNode.Tag.ToString();

                SQLDBBase.FieldDataItem[] FieldItem = new SQLDBBase.FieldDataItem[15];
                int nFieldIndex = -1;
                //FieldItem[++nFieldIndex] = new SQLDBBase.FieldDataItem("DetailIndex", nodeData.nDetailIndex, SQLDBBase.FieldDataType.Int);
                FieldItem[++nFieldIndex] = new SQLDBBase.FieldDataItem("ComboDataIndex", sComboDataIndex, SQLDBBase.FieldDataType.Int);
                FieldItem[++nFieldIndex] = new SQLDBBase.FieldDataItem("ComboValue", TbComboValue.Text.Trim());
                FieldItem[++nFieldIndex] = new SQLDBBase.FieldDataItem("ComboValueOrder", ssMxOrder + 1, SQLDBBase.FieldDataType.Int);
                FieldItem[++nFieldIndex] = new SQLDBBase.FieldDataItem("ComboParentIndex", sDetailIndex, SQLDBBase.FieldDataType.Int);

                if (SQLDBBase.InsertRecord("ComboDataDetail", nFieldIndex + 1, FieldItem) == 1)
                {
                    TreeNode node = tvComboDetail.SelectedNode.Nodes.Add(TbComboValue.Text.Trim());

                    TbComboValue.Text = "";
                    DoRefreshDetail();
                }
            }
        }