Beispiel #1
0
        public void FillTree()
        {
            SaveID();

            if (!Places)
            {
                tree.BeginUpdate();
                tree.Nodes.Clear();
                tree.TableName = "Инвентаризация.dbo.ЛицаЗаказчики";
                tree.IDField   = "КодЛица";
                tree.TextField = "КраткоеНазваниеРус";

                DTreeNode rootNode = new DTreeNode(0, "Все");
                tree.Nodes.Add(rootNode);

                using (DataTable dt = GetCompanies(placeID, false))
                {
                    foreach (DataRow dr in dt.Rows)
                    {
                        var node = new DTreeNode(
                            (int)dr["КодЛица"],
                            (dr["Лицо"].ToString() != "") ? dr["Лицо"].ToString() : dr["Кличка"].ToString());
                        rootNode.Nodes.Add(node);
                    }
                    dt.Dispose();
                }

                rootNode.ExpandAll();
                tree.EndUpdate();
            }
            else
            {
                const string querySelect =
                    "SELECT " +
                    "Должности.КодДолжности," +
                    "Должности.Должность," +
                    "Должности.Подразделение," +
                    "ISNULL(Лица.Лицо,'Организация '+Convert(varchar,Должности.КодЛица)) организация," +
                    "ISNULL(U2.Сотрудник,'[вакантно]') сотрудник," +
                    "Должности.Совместитель," +
                    "Должности.Parent," +
                    "Должности.L," +
                    "Должности.R," +
                    "ISNULL(U1.ФИО,'[неизвестно]') AS Изменил," +
                    "Должности.Изменено " +
                    "FROM Инвентаризация.dbo.vwДолжности Должности";

                string queryJoin =
                    "LEFT OUTER JOIN Инвентаризация.dbo.Сотрудники U1 ON Должности.Изменил = U1.КодСотрудника " +
                    "LEFT OUTER JOIN Инвентаризация.dbo.Сотрудники U2 ON Должности.КодСотрудника = U2.КодСотрудника " +
                    "INNER JOIN " + ExternServer + ".Справочники.dbo.vwЛицаХолдинга Лица ON Должности.КодЛица = Лица.КодЛица";

                const string queryWhere = "WHERE Должности.Подразделение <> ''";

                const string queryOrderBy = "";                //"ORDER BY L";

                tree.SetQueryString(querySelect, queryJoin, queryWhere, queryOrderBy);

                tree.TableName = "Инвентаризация.dbo.vwДолжности";
                tree.IDField   = "КодДолжности";
                tree.TextField = "Подразделение";

                tree.Fill();
            }

            if (tree.Nodes.Count > 0)
            {
                tree.SelectedNode = (DTreeNode)tree.Nodes[0];
            }

            LoadID();
        }