Example #1
0
File: Form1.cs Project: viticm/pap2
        public Form1(string tblname, string catfield, Class1 cls, SqlConnection conn, bool isReadOnly) 
        {
            InitializeComponent();

            TblName = tblname;
            CatField = catfield;
            MyParentClass = cls;
            Conn = conn;
            buttonItemID.Checked = DisplayID;
            buttonItemLevel.Checked = DisplayLevel;
            TblLock = new TableLock(Conn, TblName);
            TblLock.UnLock();
            OrderLock = new TableLock(Conn, orderTable);
            OrderLock.UnLock();
            LastVer = TblLock.GetServerLastVersion();
            LastOrderVer = OrderLock.GetServerLastVersion();
            this.m_isReadOnly = isReadOnly;
        }
Example #2
0
File: Form1.cs Project: viticm/pap2
        // 填充树结点
        public TreeView ReloadTree()
        {
            htQuestIdTreeNode = new Hashtable();
            htQuestIdTreeNode.Clear();
            theTree.Nodes.Clear();
            TblLock = new TableLock(Conn, TblName);
            OrderLock = new TableLock(Conn, orderTable);

            if (!Logic.ReInit(SelectSql, Conn))
            {
                return null;                
            }
            Tbl = Logic.QuestTable;

            // 默认值结点
            TreeNode newNode = theTree.Nodes.Add("<默认值>");
            object[] keys = new object[1];
            keys[0] = "-1";
            newNode.Tag = keys;

            // 构造tree
            // 分类结点
            string sql = string.Format("SELECT {0} FROM {1} GROUP BY {2}", CatField, TblName, CatField);
            DataTable tblCats = Helper.GetDataTable(sql, Conn);
            foreach (DataRow row in tblCats.Rows)
            {
                string catname = row[0].ToString().Trim();
                TreeNode catnode = theTree.Nodes.Add(catname);
                object[] catkeys = new object[1];
                catkeys[0] = "-2";
                catnode.Tag = catkeys;
                catnode.ForeColor = ColorNodeCat;
                catnode.ImageIndex = ImageCat;
                catnode.SelectedImageIndex = ImageSelectedCat;
            }

            treeData.CheckIDCompare(Conn); // 自动检测匹配tbl_quests与sys_quests_order表的questID字段            
          
            // 默认行
            defaultRow = Tbl.Rows[0];

            // StartID 初始化
            StartIDs = new object[Tbl.PrimaryKey.Length];
            for (int i = 0; i < StartIDs.Length; i++)
            {
                string field = Tbl.PrimaryKey[i].ColumnName;
                string sQl = string.Format("SELECT * FROM sys_id_pool WHERE tablename='{0}' AND fieldname='{1}'", TblName, field);
                DataTable t = Helper.GetDataTable(sQl, Conn);
                if (t.Rows.Count > 0)
                    StartIDs[i] = Convert.ToInt32(t.Rows[0]["lastid"]);
                else
                    StartIDs[i] = 1;
            }

            // 记录结点
            foreach (DataRow row in Tbl.Rows)
            {
                string quest_name = row["QuestName"].ToString().Trim();
                int quest_id = Convert.ToInt32(row["QuestID"]);

                // 跳过默认值
                if (quest_id == 0)
                    continue;

                FindingIDList = new ArrayList();
                FindingIDList.Add(quest_id);
                try
                { 
                    newNode = AddQuestNode(quest_id);
                }
                catch (Exception ex)
                {
                    if (showError) // 是否显示错误信息
                    {
                        string err = string.Format("未能添加 {0} 号任务。" +
                            "\r\n\r\n错误信息为:{1}。\n\n是否在这次初始化树结点时忽略此类信息?", quest_id, ex.Message);
                        DialogResult result = MessageBox.Show(err, "添加结点时发生错误", MessageBoxButtons.YesNo);
                        if (result == DialogResult.Yes)
                        {
                            showError = false;
                        }
                    }
                }       
                FindingIDList.Clear();
            }

            treeData.InitTreeOrder(Conn, theTree); // 初始化树结点序号

            htQuestIdTreeNode.Clear();
            htQuestIdTreeNode = null;            
            return theTree;
        }