Практична робота 3. Семестр 2

 

         Метою даної практичної роботи буде навчитися формувати документи в ворді. Почнемо ми з формування заяви на звільнення. Отже як підключити ворд, Ви вже знаєте з минулої практичної роботи, тому тут про підключення ми нічого приводити не будемо.

         Отже, почнемо. Нам потрібно перед формуванням заяви, уточнити у користувача деяку службову інформацію, тому використаємо форму з текстовими полями, щоб користувач міг змінити дані перед формуванням заяви, ті поля які можна взяти з таблиць, ми будемо поміщати в текстові поля автоматично, але користувач буде мати право їх змінювати.

         Ми розглянемо формування заяви на прикладі форми співробітників. Почати формування заяви можна буде натиснувши праву кнопку миші по сітці з даними. Створимо елемент контекстного меню:

         Тепер опишемо код обробника даного пункту меню:

private void сформуватиЗаявуНаЗвільненняToolStripMenuItem_Click(object sender, EventArgs e)

 {

  //зберігаємо в змінну імя

  string person=dataGridView1.Rows[dataGridView1.CurrentRow.Index].Cells["name"].Value+"";

  //зберігаємо в змінну телефон

  string phone = dataGridView1.Rows[dataGridView1.CurrentRow.Index].Cells["phone"].Value+"";

  //створюємо форму і передаємо в конструктор

  //імя директора, імя співробітника, посаду

  //причину звільнення, телефон та назву підприємства

  Form2 f2 = new Form2("Іванов Іван Іванович",person,"Старший зам. молодшого",

  "за власним бажанням, буду жити в своє задоволення",phone,"ТОВ Роги-копита");

  //показуємо форму формування заяву

  f2.ShowDialog();

 }

         Зверніть увагу на те, що спочатку потрібно додати нову форму до проекту де і будуть базуватися наші основні функції роботи, якщо ви спочатку додасте цей обробник не описавши форми отримаєте помилку.

Форма заяви на звільнення буде мати вигляд:

         Якщо вам потрібно ще які-небудь поля вводу, можете їх створити, саму ж структуру таблиці в базі – не змінюйте.

         І так тепер опишемо код форми:

using Microsoft.Office.Core;//тут містяться оголошення службових структур офісу

using word=Microsoft.Office.Interop.Word;//підключення функцій контролю над вордом

 

namespace WindowsFormsApplication1 //Тут має бути простір Вашого додатка

{

    public partial class Form2 : Form

    {

        //додамо до конструктору форми деякі параметри

        public Form2(string boss="",string personal="",string pos="",

            string expl="",string phone="",string org="")

        {

            //  Параметри конструктора

            //boss - імя директора

            //personal - імя співробітника

            //pos - назва посади

            //expl - причина звільнення

            //phone - телефон

            //org - назва організації

            InitializeComponent(); //Ініціалізація компонент форми

            textBox1.Text = boss; //Заповнення директора

            textBox2.Text = personal; //Заповнення співробітника

            textBox3.Text = pos; //Заповнення посади

            textBox4.Text = phone; //Заповнення телефону

            textBox5.Text = org; //Заповнення назви організації

            richTextBox1.Text = expl; //Заповнення причини звільнення

        }

 

        private void button2_Click(object sender, EventArgs e) //Кнопка відмінити

        {

            Hide(); //ховаємо форму

        }

 

        private void button1_Click(object sender, EventArgs e) //кнопка сформувати

        {

            word.Application wa = new word.Application();//створюємо звязок з вордом

            wa.Visible = true;//показуємо ворд на екрані

            wa.Documents.Add();//створюємо новий документ

            wa.Selection.Font.Size = 12;//встановлюємо розмір шришту 12

            wa.Selection.Font.Name = "Times New Roman";//задаємо назву шрифту

            wa.Selection.Paragraphs.Alignment = word.WdParagraphAlignment.wdAlignParagraphRight;//вирівнювання по правому краю

            wa.Selection.TypeText("Директору "+textBox5.Text);//переносимо назву організації

            wa.Selection.TypeParagraph();//переходимо на новий рядок

            wa.Selection.TypeText(textBox1.Text);//виводимо імя директора

            wa.Selection.TypeParagraph();//переходимо на новий рядок

            wa.Selection.TypeText("від "+textBox3.Text);//виводимо посаду

            wa.Selection.TypeParagraph();//переходимо на новий рядок

            wa.Selection.TypeText(textBox2.Text);//виводимо імя працівника

            wa.Selection.TypeParagraph();//переходимо на новий рядок

            wa.Selection.TypeText("тел.: "+textBox4.Text);//виводимо телефон

            wa.Selection.TypeParagraph();//переходимо на новий рядок

            wa.Selection.TypeParagraph();//переходимо на новий рядок

            wa.Selection.TypeParagraph();//переходимо на новий рядок

            wa.Selection.TypeParagraph();//переходимо на новий рядок

            wa.Selection.Font.Size = 24;//змінюємо розмір шрифта

            wa.Selection.Font.Bold = 1;//жирний нарис шрифта

            wa.Selection.Paragraphs.Alignment = word.WdParagraphAlignment.wdAlignParagraphCenter;//вирівнювання по центру

            wa.Selection.TypeText("Заява");

            wa.Selection.Font.Bold = 0;//вимикаємо жирний нарис

            wa.Selection.TypeParagraph();//переходимо на новий рядок

            wa.Selection.Font.Size = 14;//задаємо розмір шрифту 14

            wa.Selection.Paragraphs.Alignment = word.WdParagraphAlignment.wdAlignParagraphJustify;//вирівнування тексту по ширині

            wa.Selection.Paragraphs.FirstLineIndent = 40;//Створення абзацу на 40 одиниць

            wa.Selection.TypeText("Прошу звільнити мене "+richTextBox1.Text+" з "+dateTimePicker1.Value.ToShortDateString()+".");

            //заповнюємо тіло заяви

            wa.Selection.TypeParagraph();//переходимо на новий рядок

            wa.Selection.TypeParagraph();//переходимо на новий рядок

            wa.Selection.Paragraphs.Alignment = word.WdParagraphAlignment.wdAlignParagraphLeft;

            //вирівнювання тексту по лівому краю

            wa.Selection.TypeText(DateTime.Now.ToShortDateString());//ставимо на заяві дату

            button2_Click(this,new EventArgs());//натискаемо на кнопку відміни, для закриття форми

        }

    }

}

 

         Тепер, якщо все зроблено правильно, після натискання кнопки сформувати, маємо отримати щось схоже на:

         Для успішної здачі лабораторної роботи Вам буде потрібно сформувати ще одну заяву самостійно. Заяву на надання відпустки. Вона також має формуватися на формі співробітників, але форма яка буде уточнювати дані у користувача мусить бути іншою. Заява має наступний вигляд:

Описание: Картинки по запросу заява зразок студента

        

Всі потрібні дані які містяться в таблиці співробітників мають передаватися автоматично, тих даних, яких не має, користувач має сам вводити на формі. Також на формі має бути два поля вводу дат початок відпустки, та кінець. Дата самої заяви може бути поточною. Поле для вводу типу відпустки і поля для формуванні шапки, такі ж як і в заяві на звільнення.