Example #1
0
        private void генерацияФОСToolStripMenuItem_Click(object sender, EventArgs e)
        {
            TicketsProgressBar.Visible = true;
            bool a = false;
            bool b = false;

            TicketsProgressBar.Maximum = ids.Count;
            Microsoft.Office.Interop.Word.Application app = new Microsoft.Office.Interop.Word.Application();
            Document doc = app.Documents.Add(Visible: true);

            doc.PageSetup.BottomMargin = 56.9f;
            doc.PageSetup.LeftMargin   = 64.1f;
            doc.PageSetup.TopMargin    = 56.9f;
            doc.PageSetup.RightMargin  = 43.2f;
            Range r = doc.Range();

            r.InsertAfter("Оценочные материалы при формировании рабочих программ дисциплин (модулей)" + "\n");
            r.InsertAfter("Направление подготовки / специальность: " + getMajorName() + "\n");
            int majorname = getMajorName().Length;

            r.InsertAfter("Профиль / специализация: " + GetSprcName() + "\n");
            int specName = GetSprcName().Length;

            r.InsertAfter("Дисциплина: " + discipline + "\n" + "\n");
            int discip = discipline.Length;

            r.InsertAfter("Формируемые компетенции: " + GetCompetenceForDocument() + "\n" + "\n");
            r.Paragraphs.Alignment = WdParagraphAlignment.wdAlignParagraphLeft;
            r.Font.Size            = 10;
            r.Font.Name            = "Arial";
            for (int i = 0; i < ids.Count; i++)
            {
                int y = ids[i];
                switch (y)
                {
                case 1:
                {
                    if (ids[i] == 1 && a == false)
                    {
                        r.InsertAfter("1. Описание показателей, критериев и шкал оценивания компетенций." + "\n");
                        r.InsertAfter("Показатели и критерии оценивания компетенций " + GetCompetenceForDocument() + "\n");
                        a = true;
                    }
                    else
                    {
                        r.InsertAfter("Показатели и критерии оценивания компетенций " + GetCompetenceForDocument() + "\n");
                    }
                    break;
                }

                case 2:
                {
                    if (ids[i] == 2 && a == false)
                    {
                        r.InsertAfter("1. Описание показателей, критериев и шкал оценивания компетенций." + "\n");
                        r.InsertAfter("Шкалы оценивания компетенций " + GetCompetenceForDocument() + "при сдаче экзамена или зачета с оценкой" + "\n");
                        a = true;
                    }
                    else
                    {
                        r.InsertAfter("Шкалы оценивания компетенций " + GetCompetenceForDocument() + "при сдаче экзамена или зачета с оценкой" + "\n");
                    }
                    break;
                }

                case 3:
                {
                    if (ids[i] == 3 && a == false)
                    {
                        r.InsertAfter("1. Описание показателей, критериев и шкал оценивания компетенций." + "\n");
                        r.InsertAfter("Шкалы оценивания компетенций " + GetCompetenceForDocument() + "при сдаче зачета" + "\n");
                        a = true;
                    }
                    else
                    {
                        r.InsertAfter("Шкалы оценивания компетенций " + GetCompetenceForDocument() + "при сдаче зачета" + "\n");
                    }
                    break;
                }

                case 4:
                {
                    if (ids[i] == 4 && a == false)
                    {
                        r.InsertAfter("1. Описание показателей, критериев и шкал оценивания компетенций." + "\n");
                        r.InsertAfter("Шкалы оценивания компетенций " + GetCompetenceForDocument() + "при защите курсового проекта/курсовой работы" + "\n");
                        a = true;
                    }
                    else
                    {
                        r.InsertAfter("Шкалы оценивания компетенций " + GetCompetenceForDocument() + "при защите курсового проекта/курсовой работы" + "\n");
                    }
                    break;
                }

                case 5:
                {
                    if (ids[i] == 5 && a == false)
                    {
                        r.InsertAfter("1. Описание показателей, критериев и шкал оценивания компетенций." + "\n");
                        r.InsertAfter("Компетенции обучающегося оцениваются следующим образом" + "\n");
                        a = true;
                    }
                    else
                    {
                        r.InsertAfter("Компетенции обучающегося оцениваются следующим образом" + "\n");
                        a = true;
                    }
                    break;
                }

                case 6:
                {
                    if (ids[i] == 6)
                    {
                        r.InsertAfter("Соответствие между бальной системой и системой оценивания по результатам тестирования устанавли-вается посредством следующей таблицы" + "\n");
                    }
                    break;
                }

                case 7:
                {
                    if (ids[i] == 7 && b == false)
                    {
                        r.InsertAfter("4. Оценка ответа обучающегося на вопросы, задачу (задание) экзаменационного билета, зачета, курсового проектирования." + "\n");
                        r.InsertAfter("Оценка ответа обучающегося на вопросы, задачу (задание) экзаменационного билета, зачета" + "\n");
                        b = true;
                    }
                    else
                    {
                        r.InsertAfter("Оценка ответа обучающегося на вопросы, задачу (задание) экзаменационного билета, зачета" + "\n");
                    }
                    break;
                }

                case 8:
                {
                    if (ids[i] == 8 && b == false)
                    {
                        r.InsertAfter("4. Оценка ответа обучающегося на вопросы, задачу (задание) экзаменационного билета, зачета, курсо-вого проектирования." + "\n");
                        r.InsertAfter("Оценка ответа обучающегося при защите курсового работы/курсового проекта" + "\n");
                        b = true;
                    }
                    else
                    {
                        r.InsertAfter("Оценка ответа обучающегося при защите курсового работы/курсового проекта" + "\n");
                    }
                    break;
                }

                default:
                    break;
                }
                generateTable(ids[i], doc);
                r.InsertAfter("\n");
                TicketsProgressBar.PerformStep();
            }
            r.SetRange(0, 74);
            r.Font.Bold            = 1;
            r.Font.Size            = 12;
            r.Paragraphs.Alignment = WdParagraphAlignment.wdAlignParagraphCenter;
            r.SetRange(74, 113);
            r.Font.Bold = 1;
            r.Font.Size = 12;
            int p = 114 + majorname;

            r.SetRange(p, p + 25);
            r.Font.Bold = 1;
            r.Font.Size = 12;
            p           = p + 25 + specName + 1;
            r.SetRange(p, p + 12);
            r.Font.Bold = 1;
            r.Font.Size = 12;
            p           = p + 12 + discip + 1;
            r.SetRange(p, p + 25);
            r.Font.Bold = 1;
            r.Font.Size = 12;
            doc.Save();
            doc.Close();
            app.Quit();
            TicketsProgressBar.Value = 0;
            MessageBox.Show("Фос успешно сгенерирован", "Информация", MessageBoxButtons.OK, MessageBoxIcon.Information);
        }
Example #2
0
        private void GenerateTicketsButton_Click(object sender, EventArgs e)
        {
            if (SemesterComboBox.SelectedIndex == -1)
            {
                MessageBox.Show("Пожалуйста, укажите семестр", "Внимание", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
            else
            {
                if (AcademicYearComboBox.SelectedIndex == -1)
                {
                    MessageBox.Show("Пожалуйста, укажите учебный год", "Внимание", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                }
                else
                {
                    int    k;
                    Random random = new Random();
                    sql = new SqlConnection(conMod);
                    sql.Open();
                    SqlDataReader sqlReader = null;
                    SqlCommand    PlaneCode = new SqlCommand("SELECT QuestionText, QuestionType, Competence FROM Questions WHERE QuestionType='Теор.' AND Active = 'True' AND DisciplinesName='" + discipline + "'", sql);
                    try
                    {
                        sqlReader = PlaneCode.ExecuteReader();
                        while (sqlReader.Read())
                        {
                            theory.Add(sqlReader["QuestionText"].ToString() + " (" + sqlReader["Competence"].ToString() + ")");
                        }
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show(ex.Message.ToString(), ex.Source.ToString(), MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
                    finally
                    {
                        if (sqlReader != null)
                        {
                            sqlReader.Close();
                        }
                    }
                    sqlReader = null;
                    PlaneCode = new SqlCommand("SELECT QuestionText, Competence FROM Questions WHERE QuestionType='Практ.' AND Active = 'True' AND DisciplinesName='" + discipline + "'", sql);
                    try
                    {
                        sqlReader = PlaneCode.ExecuteReader();
                        while (sqlReader.Read())
                        {
                            practice.Add(sqlReader["QuestionText"].ToString() + " (" + sqlReader["Competence"].ToString() + ")");
                        }
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show(ex.Message.ToString(), ex.Source.ToString(), MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
                    finally
                    {
                        if (sqlReader != null)
                        {
                            sqlReader.Close();
                        }
                    }
                    for (int p = 0; p < theory.Count; p++)
                    {
                        theoryPerm.Add(theory[p]);
                    }
                    for (int p = 0; p < practice.Count; p++)
                    {
                        practicePerm.Add(practice[p]);
                    }
                    int TableRow = CountOfTheoryQuestions + CountOfPracticeQuestion;
                    Microsoft.Office.Interop.Word.Application app = new Microsoft.Office.Interop.Word.Application();
                    Document doc = app.Documents.Add(Visible: true);
                    doc.Paragraphs.LeftIndent = 37f;
                    Range r = doc.Range();
                    for (int i = 1; i <= CountOfTickets; i++)
                    {
                        tb = doc.Tables.Add(doc.Paragraphs[doc.Paragraphs.Count].Range, TableRow + 2, 1); /* В паметрах указывается: 1.Место,где она начинается; 2.Кол-во строк; 3.Кол-во столбцов  */
                        tb.Borders.Enable     = 1;                                                        //Делаем границы видимыми
                        tb.Rows.HeadingFormat = -1;
                        int rowcounter = 3;
                        tb.Cell(1, 0).Width      = 498.5f;
                        tb.Cell(1, 0).HeightRule = WdRowHeightRule.wdRowHeightExactly;
                        tb.Cell(1, 0).Height     = 12f;
                        tb.Cell(1, 0).Range.Text = "Дальневосточный государственный университет путей сообщения";
                        tb.Cell(1, 0).Range.Paragraphs.Alignment = WdParagraphAlignment.wdAlignParagraphCenter;
                        tb.Cell(1, 0).Range.Font.Name            = "Times New Roman";
                        tb.Cell(1, 0).Range.Font.Size            = 10;
                        tb.Cell(2, 0).Split(1, 3);
                        // ячейка первая из 3
                        tb.Cell(2, 1).Width = 147.7f;
                        tb.Cell(2, 1).Range.InsertAfter("Кафедра \"" + DepartamentTextBox.Text + "\"\n");
                        tb.Cell(2, 1).Range.InsertAfter(SemesterComboBox.Text + "-й семестр" + "\n");
                        tb.Cell(2, 1).Range.InsertAfter(AcademicYearComboBox.Text + " учебный год");
                        GetStyle(2, 1);
                        // ячейка вторая из 3
                        tb.Cell(2, 2).Width = 206.3f;
                        tb.Cell(2, 2).Range.InsertAfter("ЭКЗАМЕНАЦИОННЫЙ БИЛЕТ № " + i + "\n");
                        tb.Cell(2, 2).Range.InsertAfter("по дисциплине \"" + DisciplineNameTextBox.Text + "\"" + "\n" + " для студентов специальности " + MajorCode.Text + "\n\"" + MajorName.Text + "\"");
                        GetStyle(2, 2);
                        // ячейка третья из 3
                        tb.Cell(2, 3).Width = 144.5f;
                        tb.Cell(2, 3).Range.InsertAfter("\"Утверждаю\"" + "\n" + "Заведующий кафедрой" + "\n" + DaddyTextBox.Text + "\n" + "\"___\" __________ 20___г.");
                        tb.Cell(2, 3).Range.InsertAfter("\n" + "\n");
                        GetStyle(2, 3);
                        tb.Cell(2, 3).Range.Paragraphs.LineSpacing    = 8.5f;
                        tb.Cell(2, 3).Range.Paragraphs.LineUnitAfter  = 0.3f;
                        tb.Cell(2, 3).Range.Paragraphs.LineUnitBefore = 0.3f;
                        k = 1;
                        for (int j = 0; j < CountOfTheoryQuestions; j++)
                        {
                            if (theory.Count == 0)
                            {
                                for (int p = 0; p < theoryPerm.Count; p++)
                                {
                                    theory.Add(theoryPerm[p]);
                                }
                            }
                            switch (caseSwitch)
                            {
                            case 1:
                                tb.Cell(rowcounter, 0).Width = 498.5f;

                                temp = random.Next(0, theory.Count / 2);
                                tb.Cell(rowcounter, 0).Range.Text = k + ". " + theory[temp].ToString();
                                theory.RemoveAt(temp);
                                tb.Cell(rowcounter, 0).Range.Paragraphs.Alignment      = WdParagraphAlignment.wdAlignParagraphJustify;
                                tb.Cell(rowcounter, 0).Range.Font.Name                 = "Times New Roman";
                                tb.Cell(rowcounter, 0).Range.Font.Size                 = 10;
                                tb.Cell(rowcounter, 0).Range.Paragraphs.LineSpacing    = 8.5f;
                                tb.Cell(rowcounter, 0).Range.Paragraphs.LineUnitAfter  = 0.3f;
                                tb.Cell(rowcounter, 0).Range.Paragraphs.LineUnitBefore = 0.3f;
                                rowcounter++;
                                k++;
                                caseSwitch = 2;
                                break;

                            case 2:
                                tb.Cell(rowcounter, 0).Width = 498.5f;
                                temp = random.Next(theory.Count / 2, theory.Count);
                                tb.Cell(rowcounter, 0).Range.Text = k + ". " + theory[temp].ToString();
                                theory.RemoveAt(temp);
                                tb.Cell(rowcounter, 0).VerticalAlignment               = WdCellVerticalAlignment.wdCellAlignVerticalCenter;
                                tb.Cell(rowcounter, 0).Range.Paragraphs.Alignment      = WdParagraphAlignment.wdAlignParagraphJustify;
                                tb.Cell(rowcounter, 0).Range.Font.Name                 = "Times New Roman";
                                tb.Cell(rowcounter, 0).Range.Font.Size                 = 10;
                                tb.Cell(rowcounter, 0).Range.Paragraphs.LineSpacing    = 8.5f;
                                tb.Cell(rowcounter, 0).Range.Paragraphs.LineUnitAfter  = 0.3f;
                                tb.Cell(rowcounter, 0).Range.Paragraphs.LineUnitBefore = 0.3f;
                                rowcounter++;
                                k++;
                                caseSwitch = 1;
                                break;
                            }
                        }
                        if (CountOfPracticeQuestion != 0)
                        {
                            for (int j = 0; j < CountOfPracticeQuestion; j++)
                            {
                                if (practice.Count == 0)
                                {
                                    for (int p = 0; p < practicePerm.Count; p++)
                                    {
                                        practice.Add(practicePerm[p]);
                                    }
                                }
                                switch (caseSwitch)
                                {
                                case 1:
                                    tb.Cell(rowcounter, 0).Width = 498.5f;
                                    temp = random.Next(0, practice.Count / 2);
                                    tb.Cell(rowcounter, 0).Range.Text = k + ". " + practice[temp].ToString();
                                    practice.RemoveAt(temp);
                                    tb.Cell(rowcounter, 0).VerticalAlignment               = WdCellVerticalAlignment.wdCellAlignVerticalCenter;
                                    tb.Cell(rowcounter, 0).Range.Paragraphs.Alignment      = WdParagraphAlignment.wdAlignParagraphJustify;
                                    tb.Cell(rowcounter, 0).Range.Font.Name                 = "Times New Roman";
                                    tb.Cell(rowcounter, 0).Range.Font.Size                 = 10;
                                    tb.Cell(rowcounter, 0).Range.Paragraphs.LineSpacing    = 8.5f;
                                    tb.Cell(rowcounter, 0).Range.Paragraphs.LineUnitAfter  = 0.3f;
                                    tb.Cell(rowcounter, 0).Range.Paragraphs.LineUnitBefore = 0.3f;
                                    rowcounter++;
                                    k++;
                                    caseSwitch = 2;
                                    break;

                                case 2:
                                    tb.Cell(rowcounter, 0).Width = 498.5f;
                                    temp = random.Next(practice.Count / 2, practice.Count);
                                    tb.Cell(rowcounter, 0).Range.Text = k + ". " + practice[temp].ToString();
                                    practice.RemoveAt(temp);
                                    tb.Cell(rowcounter, 0).VerticalAlignment               = WdCellVerticalAlignment.wdCellAlignVerticalCenter;
                                    tb.Cell(rowcounter, 0).Range.Paragraphs.Alignment      = WdParagraphAlignment.wdAlignParagraphJustify;
                                    tb.Cell(rowcounter, 0).Range.Font.Name                 = "Times New Roman";
                                    tb.Cell(rowcounter, 0).Range.Font.Size                 = 10;
                                    tb.Cell(rowcounter, 0).Range.Paragraphs.LineSpacing    = 8.5f;
                                    tb.Cell(rowcounter, 0).Range.Paragraphs.LineUnitAfter  = 0.3f;
                                    tb.Cell(rowcounter, 0).Range.Paragraphs.LineUnitBefore = 0.3f;
                                    rowcounter++;
                                    k++;
                                    caseSwitch = 1;
                                    break;
                                }
                            }
                        }
                        r.InsertAfter("\n");
                        TicketsProgressBar.PerformStep();
                    }
                    doc.Save();
                    doc.Close();
                    app.Quit();
                    MessageBox.Show("Билеты сгенерированы", "Уведомление", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    TicketsProgressBar.Value = 0;
                }
            }
        }