Смекни!
smekni.com

Разработка электронного органайзера средствами C++ Builder 6 (стр. 3 из 3)

void __fastcall TfrmAddEv:: BitBtn1Click (TObject *Sender)

{

try

{

DM->qr1->SQL->Clear ();

DM->qr1->SQL->Add ("INSERT into tbl_events (DATE1,TIME1,NAME) values (: par1,: par2,: par3)");

DM->qr1->ParamByName ("par1") - >AsDate=DateTimePicker1->Date;

DM->qr1->ParamByName ("par2") - >AsTime=DateTimePicker1->Time;

DM->qr1->ParamByName ("par3") - >AsString= (Memo1->Text);

DM->qr1->ExecSQL ();

DM->IBTransaction1->Commit ();

ShowMessage ("successfull");

}

catch (. .)

{

DM->IBTransaction1->Rollback ();

ShowMessage ("Error");

}

Она выполняет подстановку значений DateTimePicker1и Memo1 при помощи параметров в запрос qr1 для добавления новой записи в таблицу TBL_EVENTS.

2.4 3 Форма редактирования выбранного напоминания

Форма редактирования выбранного напоминания вызывается при помощи нажатия кнопки "Редактировать" на форме управления планировщиком задач.

Рис.6. Форма редактирования выбранного напоминания

Чтобы форма выводила значения компонентов DateTimePicker1и Memo1 была написана функция FormShow:

void __fastcall TfrmEditEv:: FormShow (TObject *Sender)

{

DM->IBQuery1->Close ();

DM->IBQuery1->SQL->Clear ();

DM->IBQuery1->SQL->Text = "SELECT * FROM TBL_EVENTS where id=: par";

DM->IBQuery1->ParamByName ("par") - >AsInteger=DM->qr1->FieldByName ("ID") - >AsInteger;

DM->IBQuery1->Open ();

DM->IBQuery1->FetchAll ();

// ShowMessage (DM->IBQuery1->FieldByName ("DATE1") - >AsString);

DateTimePicker1->Date = DM->IBQuery1->FieldByName ("DATE1") - >AsDateTime;

Memo1->Text = DM->IBQuery1->FieldByName ("NAME") - >AsString;

}

А процесс сохранения измененной записи описывается функцией BitBtn1Click:

void __fastcall TfrmEditEv:: BitBtn1Click (TObject *Sender)

{

// DM->IBTransaction1->StartTransaction ();

try

{

DM->qr2->Params->Clear ();

DM->qr2->Close ();

DM->qr2->SQL->Clear ();

DM->qr2->SQL->Text="UPDATE TBL_EVENTS a SET a. name=: par22,date1=: par1 where id=: par3";

DM->qr2->ParamByName ("par1") - >AsDateTime= DateTimePicker1->DateTime;

DM->qr2->ParamByName ("par22") - >AsString= Memowhat->Text;

DM->qr2->ParamByName ("par3") - >AsInteger=DM->qr1->FieldByName ("id") - >AsInteger;

DM->qr2->Prepare ();

DM->qr2->ExecSQL ();

DM->IBTransaction1->Commit ();

frmEditEv->ModalResult = mrOk;

}

catch (. .)

{

DM->IBTransaction1->Rollback ();

ShowMessage ("Ошибка при обновлении данных");

}

}

Она выполняет обновление таблицы TBL_EVENTS новыми значениями DateTimePicker1и Memo1 запросом qr2.

2.5 Адресная книга

2.5 1 Форма управления адресной книгой

Адресная книга вызывается из помощи главного меню "Файл"-"Адресная книга" или "Адресная книга"-"Просмотреть" или нажатием кнопки "Адресная книга" на главной форме.


Рис.7. Форма управления адресной книгой

Адресная книга позволяет просматривать, добавлять, удалять и редактировать записи таблицы TBL_PEOPLE.

Функции удаления, добавления и редактирования реализованы точно так же как и в форме управления планировщиком задач, за исключением того, что в запросах используется таблица TBL_PEOPLE и ее соответствующие поля.


Рис.8. Форма добавления новой записи в Адресную книгу

На формах просмотра и добавления новой записи Адресной книги имеется кнопка "Поиск", нажатие на которую вызывает форму поиска по параметрам.

2.5.2 Форма поиска по параметрам

Форма поиска по параметрам вызывается из главного меню "Адресная книга" "Найти человека" или из форм просмотра и добавления записей Адресной книги нажатием кнопки "Поиск".

Поиск человека в адресной книге можно производить по трем параметрам:

по фамилии

по дате рождения

по месту работы


Рис.9. Форма поиска по параметрам

Для каждого поиска по параметрам предусмотрена отдельная кнопка, нажатие которой выполняет функцию, реализующую выборку записей таблицы TBL_EVENTS отвечающие ключевым словам поиска.

Поиск по фамилии реализует следующая функция:

void __fastcall TfrmSearchB:: btn1Click (TObject *Sender)

{

DM->qr123->Close ();

DM->qr123->SQL->Clear ();

DM->qr123->SQL->Text="SELECT * FROM TBL_PEOPLE where FAMILIA=: par1";

DM->qr123->ParamByName ("par1") - >AsString=Edit1->Text;

DM->qr123->Open ();

DM->qr123->FetchAll ();

}

Заключение

В результате проделанной курсовой работы был создан электронный органайзер "Organizer 1.0". Кроме функций классического органайзера он может использоваться как база клиентов, программа записной книжки для хранения контактов людей и предприятий, заметок, событий, праздников, юбилеев. Электронный ежедневник содержит удобный планировщик задач с напоминалкой. Каждая персона может сопровождаться такой информацией как Ф.И. О, адрес, телефон (дом, раб, сотовый), ICQ, e-mail, дата рождения, название фирмы, должность. В приложении есть функция быстрого поиска по адресной книге по нескольким параметрам, что существенно сокращает время для поиска нужной информации. В планировщике задач есть возможность просмотра событий за определенный промежуток времени, что поможет еще лучше спланировать свой рабочий график.

В будущем, возможно, будет разработана более усовершенствованная вервия. Например, можно расширить возможности адресной книги, если реализовать загрузку фотографий для каждого контакта. А также дополнить планировщик задач загрузкой и выгрузкой документов MSOffice.

Список использованных источников

1. Архангельский А.Я. C++Builder 6. Справочное пособие. Книга 1. Язык C++. - М.: Бином-Пресс, 2002 г. - 544 с.: ил.

2. Архангельский А.Я. C++Builder 6. Справочное пособие. Книга 2. Классы и компоненты. М.: Бином-Пресс, 2002 г. - 528 с.: ил.

3. Хомоненко А.Д., Ададуров С.Е. Работа с базами данных в C++ Builder. - СПб.: БХВ-Петербург, 2006. - 496 с: ил.

4. http://it. kgsu.ru/