Ejemplo n.º 1
0
        /// <summary>
        /// Открыть файл и добавить его в таблицу
        /// </summary>
        /// <param name="grid">Таблица</param>
        /// <param name="path">Путь к файлу</param>
        /// <param name="type">
        /// <list type="table">
        /// <listheader>Тип таблицы:</listheader>
        /// <item>false - средний взвешенный балл</item>
        /// <item>true - средний балл</item>
        /// </list>
        /// </param>
        public void OpenFile(DataGridView grid, string path, bool type)
        {
            string     json;
            StructFile table = null;

            json = File.ReadAllText(path);

            try
            {
                table = JsonConvert.DeserializeObject <StructFile>(json);
            }
            catch
            {
                MessageBox.Show("Таблица не была загружена.\nПроверьте целостность файла.", "Ошибка чтения файла", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }

            if (table != null)
            {
                if (table.typeGrid != type)
                {
                    MessageBox.Show("Не совпадают настройки типа вычисления баллов!\rПоменяйте в вкладке тип на средний балл/средний взвешенный бал.", "Ошибка несовместимости", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                }
                else
                {
                    MarksTable drawTable;

                    if (!type)
                    {
                        drawTable = new MarksTableAverageMass
                        {
                            marks = grid
                        };

                        drawTable.marks.Rows.Clear();
                        drawTable.marks.Columns.Clear();

                        drawTable.DrawGrid((table.columnCount - 2) / 2, table.nameLess);
                    }
                    else
                    {
                        drawTable = new MarksTableAverage
                        {
                            marks = grid
                        };

                        drawTable.marks.Rows.Clear();
                        drawTable.marks.Columns.Clear();

                        drawTable.DrawGrid(table.columnCount - 2, table.nameLess);
                    }

                    int posRow = 0, posColumn = 1;

                    for (int i = 0; i < table.marks.Count; i++)
                    {
                        for (int j = 0; j < table.marks[i].Count; j++)
                        {
                            drawTable.marks[posColumn, posRow].Value = table.marks[i][j];
                            posColumn++;
                        }

                        posRow++;
                        posColumn = 1;
                    }
                }
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Открыть файл и добавить его в таблицу
        /// </summary>
        /// <param name="grid">Таблица</param>
        /// <param name="startEdit">Начат редактироваться таблица</param>
        /// <param name="fileOpen">Открыт файл</param>
        /// <param name="type">
        /// <list type="table">
        /// <listheader>Тип таблицы:</listheader>
        /// <item>false - средний взвешенный балл</item>
        /// <item>true - средний балл</item>
        /// </list>
        /// </param>
        public void OpenFile(DataGridView grid, bool startEdit, bool fileOpen, bool type)
        {
            if (startEdit)
            {
                DialogResult result = MessageBox.Show("Сохранить таблицу перед открытием файла?", "Сохранить?", MessageBoxButtons.YesNo, MessageBoxIcon.Question);

                if (result == DialogResult.Yes)
                {
                    SaveFile(grid, startEdit, type, "");
                }
            }

            using OpenFileDialog loadFileDialog = new OpenFileDialog
                  {
                      Filter           = "dnv Файл (*.dnv)|*.dnv|txt Файл (*.txt)|*.txt",
                      RestoreDirectory = true
                  };

            string     json;
            StructFile table = null;

            if (loadFileDialog.ShowDialog() == DialogResult.OK)
            {
                string fname = loadFileDialog.FileName;
                //directory = loadFileDialog.FileName;

                json = File.ReadAllText(fname);

                try
                {
                    table    = JsonConvert.DeserializeObject <StructFile>(json);
                    fileOpen = true;
                }
                catch
                {
                    MessageBox.Show("Таблица не была загружена.\nПроверьте целостность файла.", "Ошибка чтения файла", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }

            if (table != null)
            {
                if (table.typeGrid != type)
                {
                    MessageBox.Show("Не совпадают настройки типа вычисления баллов!\rПоменяйте в вкладке тип на средний балл/средний взвешенный бал.", "Ошибка несовместимости", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                }
                else
                {
                    MarksTable drawTable;

                    if (!type)
                    {
                        drawTable = new MarksTableAverageMass
                        {
                            marks = grid
                        };

                        drawTable.marks.Rows.Clear();
                        drawTable.marks.Columns.Clear();

                        drawTable.DrawGrid((table.columnCount - 2) / 2, table.nameLess);
                    }
                    else
                    {
                        drawTable = new MarksTableAverage
                        {
                            marks = grid
                        };

                        drawTable.marks.Rows.Clear();
                        drawTable.marks.Columns.Clear();

                        drawTable.DrawGrid(table.columnCount - 2, table.nameLess);
                    }

                    int posRow = 0, posColumn = 1;

                    for (int i = 0; i < table.marks.Count; i++)
                    {
                        for (int j = 0; j < table.marks[i].Count; j++)
                        {
                            drawTable.marks[posColumn, posRow].Value = table.marks[i][j];
                            posColumn++;
                        }

                        posRow++;
                        posColumn = 1;
                    }
                }
            }
        }