private void FilterCheckBox_CheckedChanged(object sender, EventArgs e)
private void FilterCheckBox_CheckedChanged(object sender, EventArgs e) { //если установлен флажок и выбрана фамилия if (FilterCheckBox. Checked & & FamComboBox. Text! = " " ) { //получить выбранную фамилию string fio = FamComboBox. SelectedItem. ToString(); //составить условие для поиска нужного человека //в таблице Contacts string str = " Fam='" + fio + " '"; //найти нужного человека в таблице Contacts DataRow[] contacts = dataSet1. Contacts. Select(str); //составить условие для фильтра str = " ContactId=" + contacts[0][" id" ]; //применить фильтр phonesBindingSource. Filter = str; } else //отменить фильтрацию phonesBindingSource. Filter = " "; }
В начале работы метода проверяется, установил ли пользователь флажок фильтрации и задал ли требуемую фамилию. Так как фильтрация будет задаваться для таблицы Phones, а поле «фамилия» находится в таблице Contacts, необходимо получить идентификатор (порядковый номер) требуемой фамилии, чтобы потом найти его в таблице телефонов. Получить выбранную фамилию из выпадающего списка можно методом SelectedItem, а отобрать запись с этой фамилией из таблицы Contacts – методом Select(). Далее из полученной записи выделяется значение поля id, на основе которого задается условие для фильтрации: ContactId = < значение поля id>. Сформированный фильтр применяется к компоненту phonesBindingSource с помощью свойства Filter. Этот компонент генерируется автоматически при добавлении адаптеров доступа к базе данных. Если флажок FilterCheckBox не отмечен или в списке не выбрана фамилия, свойству Filter присваивается значение пустой строки, т. е. фильтрация отменяется.
6 Задание для самостоятельной работы
Добавить в приложение, разработанное в предыдущем задании на контрольную работу, возможность добавления, редактирования и удаления записей базы данных, а также фильтрацию по двум (любым) полям. При этом хотя бы один фильтр должен использовать связи между таблицами (фильтрация осуществляется в одной таблице, а поле для фильтра берется из другой).
ЗАДАНИЕ № 3. Разработка бизнес-приложений с использованием объектной модели Word 1 Цель задания Изучить принципы работы объектной модели Word. Получить навыки работы с пространствами имен, классами, методами, используемыми для автоматической генерации и настройки документов. 2 Порядок выполнения работы Получить задание на выполнение задания к контрольной работе (раздел 4). Разработать и отладить доработанное приложение.
4 Пример выполнения работы Дополним функциональность приложения «Телефонный справочник» возможностью генерации различных документов. Предположим, что программа должна формировать в Word приглашение на какое-то событие (день рождения, свадьбу и т. п. ) для выбранного из БД человека. Чтобы использовать объектную модель Word, в приложение нужно добавить соответствующие ссылки. Выделите в окне Обозреватель решений папку References и выберите в контекстном меню пункт Добавить ссылку… (рисунок 3. 1). Переключитесь на вкладку COM и выберите в ней Microsoft Word 14. 0 Object Library (или другую версию).
Рисунок 3. 1 – Добавление ссылки на объектную модель Word
В качестве шаблона, на основе которого будет формироваться документ, будет использоваться файл «приглашение. docx», внешний вид которого приведен на рисунке 3. 2. Создайте этот файл и поместите его в папку docs в каталоге, где находится. exe-файл приложения (папку docs нужно создать самим). Рисунок 3. 2 – Внешний вид шаблона документа
Как видно, данный шаблон содержит в себе так называемые метки, заключенные в угловые скобки (< FIO>, < Holiday> и др. ). В дальнейшем при формировании документа эти метки будут заменяться конкретными значениями. Значение метки < FIO> будет браться из базы данных, т. е. приглашение будет формироваться для выбранного в таблице человека. А данные для всех остальных меток (наименование, дата, время и место проведения мероприятия) должны вводиться в программе отдельно. Это будет делаться в отдельном окне. Добавьте в проект новую форму Form2. Ее внешний вид показан на рисунке 3. 3.
Рисунок 3. 3 – Форма ввода исходных данных для приглашения
Для ввода даты проведения мероприятия использован компонент DateTimePicker, а для ввода времени – компонент MaskedTextBox с настроенным свойством Mask. Для кнопок OK и Отмена установлено свойство DialogResult в значения OK и Cancel соответственно. После этого никаких дополнительных обработчиков для этих кнопок писать не требуется. Всем компонентам для ввода данных нужно задать свойство Modifiers как Public, чтобы их значения можно было передавать в главную форму, где и будет формироваться документ.
Дальнейшая работа будет производиться с главной формой программы. Подключите в нее пространство имен Microsoft. Office. Interop. Word, содержащее в себе ядро объектной модели Word:
Воспользуйтесь поиском по сайту: ![]() ©2015 - 2025 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|