private void LoadListData(string keyword, string itemNumber)
        {
            DataTable table;

            string sqlString = @"
            SELECT t1.FNumber,
                   --t1.FLevel,
                   --t1.FAccessory,
                   t1.FName,
                   --t1.FShortNumber,
                   t1.FFullName,
                   t1.FItemID
                   --t1.FUseSign,
                   --t1.FChkUserID,
                   --T888.FName AS FChkUserName,
                    --t1.FDetail,
                   --t1.FDeleteD,
                   --t3.FModel
            FROM   dbo.t_Item t1
                   LEFT JOIN t_ICItem t3
                        ON  t1.FItemID = t3.FItemID
                   LEFT JOIN t_User T888
                        ON  t1.FChkUserID = T888.FUserID
            WHERE  t1.FItemID IN (SELECT t1.FItemID
                                  FROM   t_Item t1 WITH(INDEX(uk_Item2))
                                         LEFT JOIN t_ICItem x2
                                              ON  t1.FItemID = x2.FItemID
                                  WHERE  FItemClassID = {0}
                                         AND t1.FDetail = 1";

            sqlString = string.Format(sqlString, ICClassTypeID.ToString());
            if (!string.IsNullOrEmpty(itemNumber))
            {
                sqlString = sqlString + "\n" + "AND (t1.FNumber LIKE '{0}.%') AND t1.FDeleteD = 0)";
                sqlString = string.Format(sqlString, itemNumber);
            }
            if (!string.IsNullOrEmpty(keyword))
            {
                sqlString = sqlString + "AND (t1.FName like '%{0}%' OR t1.FNumber like '%{0}%'))";
                sqlString = string.Format(sqlString, keyword);
            }
            DBUnitInstances.Run(sqlString, out table);

            dataGridViewMain.DataSource = table;
        }
        private void initTree()
        {
            DataTable table;

            DBUnitInstances.Run(@"SELECT  t1.FItemID,t1.FParentID,t1.FNumber,t1.FName,t1.FDetail,t1.FShortNumber 
                                    From t_item t1  WHERE  FItemClassID = {0} AND t1.FDeleteD=0  AND (  t1.FDetail=0  and t1.FParentID =  0)", out table, ICClassTypeID.ToString());
            TreeNode root = new TreeNode()
            {
                Name = "root",
                Text = "基础资料",
                Tag  = new ItemEntity()
                {
                    ItemID = 0,
                    Name   = "root",
                    Number = "0"
                },
            };

            root.Expand();

            for (int rowIndex = 0; rowIndex < table.Rows.Count; rowIndex++)
            {
                var item  = table.Rows[rowIndex];
                var child = new TreeNode()
                {
                    Name = item["FNumber"].ToString(),
                    Text = item["FName"].ToString(),
                    Tag  = new ItemEntity()
                    {
                        ItemID = Convert.ToInt32(item["FItemID"]),
                        Name   = item["FName"].ToString(),
                        Number = item["FNumber"].ToString()
                    },
                };
                child.Nodes.Add(new TreeNode());
                root.Nodes.Add(child);
            }

            treeViewMain.Nodes.Add(root);
        }
        private void treeViewMain_BeforeExpand(object sender, TreeViewCancelEventArgs e)
        {
            ItemEntity itemEntity = (ItemEntity)e.Node.Tag;

            if (itemEntity.ItemID == 0)
            {
                return;
            }

            if (e.Node.Nodes.Count != 0 && (e.Node.Nodes[0].Tag as ItemEntity) != null)
            {
                return;
            }

            DataTable table;

            DBUnitInstances.Run(@"SELECT  t1.FItemID,t1.FParentID,t1.FNumber,t1.FName,t1.FDetail,t1.FShortNumber 
                                    From t_item t1  WHERE  FItemClassID = {0} AND t1.FDeleteD=0  AND (  t1.FDetail=0  and t1.FParentID = {1} )", out table, ICClassTypeID.ToString(), itemEntity.ItemID.ToString());
            e.Node.Nodes.Clear();
            for (int rowIndex = 0; rowIndex < table.Rows.Count; rowIndex++)
            {
                var item  = table.Rows[rowIndex];
                var child = new TreeNode()
                {
                    Name = item["FNumber"].ToString(),
                    Text = item["FName"].ToString(),
                    Tag  = new ItemEntity()
                    {
                        ItemID = Convert.ToInt32(item["FItemID"].ToString()),
                        Name   = item["FName"].ToString(),
                        Number = item["FNumber"].ToString()
                    }
                };
                child.Nodes.Add(new TreeNode());
                e.Node.Nodes.Add(child);
            }
        }