示例#1
0
        private string GetPID(AssetsData dr, GroupInfoQueue lstGroupInfo, int index)
        {
            string result = GlobalInfo.TreeRootID;

            for (int i = 0; i <= index; i++)
            {
                GroupInfo item       = lstGroupInfo[i];
                string    fieldValue = GetID(dr, item);
                if (!string.IsNullOrEmpty(result))
                {
                    result += "_";
                }
                result += fieldValue;
            }

            return(result);
        }
示例#2
0
        public List <IEntityData> GetLstEntityData(GroupInfoQueue lstGroupInfo, List <AssetsData> lstRows)
        {
            Dictionary <string, IEntityData> dictAll = new Dictionary <string, IEntityData>();

            //详细的追加已有序的数据行
            foreach (AssetsData dr in lstRows)
            {
                if (dictAll.ContainsKey(dr.ID))
                {
                    continue;
                }

                dr.PID = GetPID(dr, lstGroupInfo);
                dictAll.Add(dr.ID, dr);
            }

            return(dictAll.Values.ToList <IEntityData>());
        }
示例#3
0
        //将分组及数据,组织成IP、PID、Text的接口队列
        public List <IEntityData> GetLstEntityDataForTree(GroupInfoQueue lstGroupInfo, List <AssetsData> lstRows)
        {
            Dictionary <string, IEntityData> dictAll = new Dictionary <string, IEntityData>();

            //先遍历层级,并升降排序
            for (int i = 0; i < lstGroupInfo.Count; i++)
            {
                GroupInfo item = lstGroupInfo[i];

                #region 获取每一级的内容

                Dictionary <string, IEntityData> dictLevel = new Dictionary <string, IEntityData>();
                foreach (AssetsData dr in lstRows)
                {
                    //当前的层级的PID
                    string    level_PID = GetPID(dr, lstGroupInfo, i - 1);
                    GroupData td        = new GroupData();
                    td.SortType = item.Type;
                    td.PID      = level_PID;

                    //当前的层级的值
                    string fieldValue = GetID(dr, item);

                    //当前的层级的PID
                    string level_ID = null;

                    //组装PID
                    if (!string.IsNullOrEmpty(level_PID))
                    {
                        level_ID = level_PID + "_";
                    }
                    level_ID += fieldValue;
                    //如果已经包含此键
                    if (dictLevel.ContainsKey(level_ID))
                    {
                        continue;
                    }

                    td.ID   = level_ID;
                    td.Text = fieldValue;
                    dictLevel.Add(level_ID, td);
                }

                #endregion

                //对每一级内容进行排序
                if (item.Asc)
                {
                    dictLevel = dictLevel.OrderBy(o => o.Key).ToDictionary(o => o.Key, p => p.Value);
                }
                else
                {
                    dictLevel = dictLevel.OrderByDescending(o => o.Key).ToDictionary(o => o.Key, p => p.Value);
                }

                //追加到主队列中
                Append(dictAll, dictLevel);
            }

            //详细的追加已有序的数据行
            foreach (AssetsData dr in lstRows)
            {
                if (dictAll.ContainsKey(dr.ID))
                {
                    continue;
                }

                dr.PID = GetPID(dr, lstGroupInfo);
                dictAll.Add(dr.ID, dr);
            }

            return(dictAll.Values.ToList <IEntityData>());
        }
示例#4
0
 private string GetPID(AssetsData dr, GroupInfoQueue lstGroupInfo)
 {
     return(GetPID(dr, lstGroupInfo, lstGroupInfo.Count - 1));
 }
示例#5
0
 private void button1_Click(object sender, EventArgs e)
 {
     groupInfoQueue    = uctSort1.GetLstSortInfo <GroupInfo, GroupInfoQueue>();
     this.DialogResult = System.Windows.Forms.DialogResult.OK;
 }
示例#6
0
 public FrmAssetsGroup(GroupInfoQueue groupInfoQueue)
 {
     InitializeComponent();
     this.groupInfoQueue = groupInfoQueue;
 }