Exemplo n.º 1
0
        private void MakePersonTaskGrid(PersonsTask personTask)
        {
            this.DgvMember.Rows.Clear();
            int row = 0;
            //名前順にソート→ (親チケット)を先頭にする
            var sort = new SortedDictionary <string, List <float> >(personTask.NameDic);

            foreach (var pt in sort)
            {
                string name = pt.Key;
                // 担当者
                this.DgvMember.Rows.Add(name);
                // タスク数
                this.DgvMember.Rows[row].Cells[1].Value = pt.Value.Count.ToString();
                // 進捗率
                this.DgvMember.Rows[row].Cells[2].Value = Convert.ToInt32(personTask.GetAverageProgress(name));
                row++;
            }
            this.DgvMember.SetGroupTextRowCount();
        }
Exemplo n.º 2
0
        private void CsvReader()
        {
            var rowDicList  = new List <Dictionary <int, string> >();
            var personsTask = new PersonsTask();

            this.ParentList = new List <string>();

            try {
                using (StreamReader sr = new StreamReader(this.m_ReadFile, m_Encod)) {
                    string line;
                    for (int row = 0; (line = sr.ReadLine()) != null; row++)
                    {
                        // カラム名をスキップ
                        if (row == 0)
                        {
                            if (line != this.ReadableCsvWord)
                            {
                                MessageBox.Show(
                                    "RedmineのCSVは「すべての項目」を選択したファイルを使用してください。",
                                    "エラー",
                                    MessageBoxButtons.OK,
                                    MessageBoxIcon.Error);
                                return;
                            }
                            continue;
                        }
                        string[] values = line.Split(',');
                        // 横ライン分
                        var dataDic = new Dictionary <int, string>();
                        for (int column = 0; column < values.Length; column++)
                        {
                            // 不要データの除外
                            if (UseCsv.Tbl[column] == 0)
                            {
                                continue;
                            }

                            // 本体データの取得
                            dataDic.Add(column, values[column]);

                            #region 担当者別の進捗情報の取得

                            if (column == UseCsv._PERSON_NAME)
                            {
                                string progressName = this.Nobody;
                                if (values[UseCsv._PERSON_NAME] != "\"\"")
                                {
                                    progressName = values[UseCsv._PERSON_NAME];
                                }
                                else
                                {
                                    progressName = this.Nobody;
                                }

                                int rate = Convert.ToInt32(values[UseCsv._PROGRESS_RATE]);
                                if (!personsTask.IsNewPerson(progressName, rate))
                                {
                                    personsTask.AddProgress(progressName, rate);
                                }
                            }

                            #endregion 担当者別の進捗情報の取得

                            if (column == UseCsv._PARENT)
                            {
                                this.ParentList.Add(values[UseCsv._PARENT]);
                            }
                        }

                        rowDicList.Add(dataDic);
                    }
                }
            }
            catch (IOException e) {
                MessageBox.Show("Excelで開いている場合は閉じてから使ってください\r\n" + e.Message,
                                "エラー", MessageBoxButtons.OKCancel, MessageBoxIcon.Error);
            }
            catch (Exception e) {
                MessageBox.Show("例外が発生", "エラー\r\n" + e.Message, MessageBoxButtons.OKCancel, MessageBoxIcon.Error);
            }
            MakeProgressRow(rowDicList);
            MakePersonTaskGrid(personsTask);
            MakeNoLimitTaskGrid();
        }