Private void InvitationButton_Click(object sender, EventArgs e)
{
//если выбран человек для формирования приглашения
if (dataGridView1.SelectedRows.Count != 0)
{
//создаем форму для ввода доп. информации
Form3 form = new Form3();
//если мы ввели данные и нажали ОК, то формируем документ
if (form.ShowDialog() == DialogResult.OK)
{
//создаем новый документ на основе шаблона
OpenDocument("приглашение.doc");
//получаем из БД строку с выбранным человеком
DataRow row = dataSet11.Contacts.Rows[RowId];
//получаем его имя и фамилию
string FIO = row["Name"].ToString() + " " + row["Fam"].ToString();
//заменяем метки в шаблоне конкретными значениями
ReplaceText("<FIO>", FIO);
ReplaceText("<Holiday>", form.textBox1.Text);
ReplaceText("<Date>", form.dateTimePicker1.Value.ToLongDateString());
ReplaceText("<Time>", form.maskedTextBox1.Text);
ReplaceText("<Place>", @form.textBox2.Text);
//делаем приложение Word видимым
wordApp.Visible = true;
}
}
Else
MessageBox.Show("Выберите человека", "Ошибка");
}
Внешний вид сформированного программой приглашения будет выглядеть примерно так (рис. 4.4):
Рисунок 4.4 – Внешний вид сформированного в Word документа
Далее создадим документ, позволяющий передавать в Word информацию о людях, имеющих более одного номера телефона. Данные должны будут отображаться в виде таблицы из трех столбцов: порядковый номер строки, ФИО человека, номер его телефона.
Файл шаблона для этого задания называется «список.doc» и выглядит следующим образом (рис. 4.5):
Рисунок 4.5 – Шаблон документа «список.doc»
В данном шаблоне метка <Today> будет заменена на дату формирования документа, а метка <Table> представляет собой место вставки в документ таблицы.
На главной форме программы создается еще одна кнопка для формирования данного документа. Ее обработчик с комментариями приведен ниже: