Библиотека. библиотека. Задание на курсовой проект Студенту Джаборову Алламырату (фамилия, имя собственное, отчество) группа 10701121 Тема курсовой работы Электронная библиотека Сроки сдачи финальной работы 19 декабря 2022 г
Скачать 486.8 Kb.
|
frmSearch (Unit2. h) // --------------------------------------------------------------------------- #ifndef Unit2H #define Unit2H // --------------------------------------------------------------------------- #include #include #include #include // --------------------------------------------------------------------------- class TfrmSearch: public TForm { __published: // IDE-managed Components TEdit *txtUdk; TEdit *txtTitle; TEdit *txtAuthor; TEdit *txtYear; TEdit *txtNum_in_lib; TButton *btnSearch; TLabel *lblUDK; TLabel *lblTitle; TLabel *lblAuthor; TLabel *lblNum_in_lib; TLabel *lblyear; TButton *btnCleartext; void __fastcall btnSearchClick (TObject *Sender); void __fastcall btnCleartextClick (TObject *Sender); void __fastcall txtYearKeyPress (TObject *Sender, char &Key); void __fastcall txtNum_in_libKeyPress (TObject *Sender, char &Key); private: // User declarations public: // User declarations __fastcall TfrmSearch (TComponent* Owner); }; // --------------------------------------------------------------------------- extern PACKAGE TfrmSearch *frmSearch; // --------------------------------------------------------------------------- #endif frmEdit (Unit3. cpp) // --------------------------------------------------------------------------- #include #pragma hdrstop #include "Unit3. h" #include "Unit1. h" #include "UserFunctions_unit. h" // --------------------------------------------------------------------------- #pragma package (smart_init) #pragma resource "*. dfm" TfrmEdit *frmEdit; extern int frmEditState; // Объявляем общую переменную для форм frmMain, frmEdit extern bool sortedbooks; // Объявляем общую переменную для форм frmMain, frmEdit и frmSearch MyFunctions func3; // объявление объекта типа MyFunctions // --------------------------------------------------------------------------- __fastcall TfrmEdit:: TfrmEdit (TComponent* Owner) : TForm (Owner) { } // --------------------------------------------------------------------------- void __fastcall TfrmEdit:: FormShow (TObject *Sender) { if (frmEditState == 0) // Если frmEditState равняется 0 { frmEdit->Caption = "Добавление книги"; // Изменяем заголовок формы } else { frmEdit->Caption = "Редактирование книги"; // Изменяем заголовок формы btnOK->Caption = "Сохранить изменения"; // Изменяем заголовок кнопки txtUdk->Text=frmMain->DBGrid1->Fields [0] - >AsString; // заполняем текстовые txtAuthor->Text=frmMain->DBGrid1->Fields [1] - >AsString; // поля значениями из DBGrid1 txtTitle->Text=frmMain->DBGrid1->Fields [2] - >AsString; txtNum_in_lib->Text=frmMain->DBGrid1->Fields [4] - >AsString; txtYear->Text=frmMain->DBGrid1->Fields [3] - >AsString; } } // --------------------------------------------------------------------------- // Функция обработки нажатия кнопки void __fastcall TfrmEdit:: btnOKClick (TObject *Sender) { if (frmEditState == 0) // Если frmEditState равняется 0 { // Если заполнены все поля if (txtAuthor->Text! ="" && txtNum_in_lib->Text! ="" && txtTitle->Text! ="" && txtUdk->Text! ="" && txtYear->Text! ="") { // Формируем SQL запрос на добавление записи String QueryAdd = "INSERT INTO Books (num_udk, autor, title, year_print, count_in_library) VALUES ('" \ +txtUdk->Text+"', '"+txtAuthor->Text+"', '"+txtTitle->Text+"', "+txtYear->Text+", "+txtNum_in_lib->Text+"); "; // Строковая переменная, содержащая SQL запрос к базе данных try // Перехватываем возможные ошибки во время выполнения блока программного кода { frmMain->ADOCommand1->CommandText = QueryAdd; // Устанавливаем значение SQL-запроса в объект ADOCommand1 frmMain->ADOCommand1->Execute (); // активировать SQL-запрос // Обновляем список книг в DBGrid1 String TTQuery1 = "select num_udk, autor, title, year_print, count_in_library from Books"; // Строковая переменная, содержащая SQL запрос к базе данных frmMain->ADOQuery1->SQL->Clear (); // очистить SQL-запрос frmMain->ADOQuery1->SQL->Add (TTQuery1); // Устанавливаем значение SQL-запроса в объект ADOQuery1 frmMain->ADOQuery1->Open (); // активировать SQL-запрос } catch (EDatabaseError&) // Обрабатываем возможное исключение (ошибку) { Application->MessageBox ("Ошибка при работе с базой данных", "Вывод записей", MB_OK + MB_ICONINFORMATION); // Выводим сообщение } frmMain->mnuSortByYear->Caption = "Упорялочить по годам"; // Устанавливаем новые frmMain->popSortByYear->Caption = "Упорялочить по годам"; // заголовки для пунктов меню sortedbooks = false; // значение переменной - сортировка не проводилась func3. ChangeCollName (frmMain->DBGrid1); // Изменение названий столбцов frmEdit->Close (); // Закрываем форму } else ShowMessage ("Заполнены не все поля!"); // Если заполнены не все поля выводим сообщение } else if (frmEditState == 1) // Если frmEditState равняется 0 { // Формируем SQL запрос на обновление записи String QueryUpdate = "UPDATE Books SET num_udk='"+txtUdk->Text+"', autor='"+txtAuthor->Text+"', title='"+txtTitle->Text+"', year_print="+txtYear->Text+", count_in_library="+txtNum_in_lib->Text+ \ " WHERE num_udk='"+frmMain->DBGrid1->Fields [0] - >AsString+"' and autor='"+frmMain->DBGrid1->Fields [1] - >AsString+"'and title='"+frmMain->DBGrid1->Fields [2] - >AsString+"'and year_print="+frmMain->DBGrid1->Fields [3] - >AsString+" and count_in_library="+frmMain->DBGrid1->Fields [4] - >AsString; // Строковая переменная, содержащая SQL запрос к базе данных try // Перехватываем возможные ошибки во время выполнения блока программного кода { frmMain->ADOCommand1->CommandText = QueryUpdate; // Устанавливаем значение SQL-запроса в объект ADOCommand1 frmMain->ADOCommand1->Execute (); // активировать SQL-запрос // Обновляем список книг в DBGrid1 String TTQuery1 = "select num_udk, autor, title, year_print, count_in_library from Books"; // Строковая переменная, содержащая SQL запрос к базе данных frmMain->ADOQuery1->SQL->Clear (); // очистить SQL-запрос frmMain->ADOQuery1->SQL->Add (TTQuery1); // Устанавливаем значение SQL-запроса в объект ADOQuery1 frmMain->ADOQuery1->Open (); // активировать SQL-запрос } catch (EDatabaseError&) // Обрабатываем возможное исключение (ошибку) { Application->MessageBox ("Ошибка при работе с базой данных", "Вывод записей", MB_OK + MB_ICONINFORMATION); // Выводим сообщение } frmMain->mnuSortByYear->Caption = "Упорялочить по годам"; // Устанавливаем новые frmMain->popSortByYear->Caption = "Упорялочить по годам"; // заголовки для пунктов меню sortedbooks = false; // значение переменной - сортировка не проводилась func3. ChangeCollName (frmMain->DBGrid1); // Изменение названий столбцов frmEdit->Close (); // Закрываем форму } } // --------------------------------------------------------------------------- // Функция обработки ввода текста в поле txtYear void __fastcall TfrmEdit:: txtYearKeyPress (TObject *Sender, char &Key) { // разрешаем вводить только цифры if (! ( (Key >= '0' && Key <= '9') || Key == VK_BACK)) Key = 0x00; } // --------------------------------------------------------------------------- // Функция обработки ввода текста в поле txtNum void __fastcall TfrmEdit:: txtNum_in_libKeyPress (TObject *Sender, char &Key) { // разрешаем вводить только цифры if (! ( (Key >= '0' && Key <= '9') || Key == VK_BACK)) Key = 0x00; } // --------------------------------------------------------------------------- frmEdit (Unit3. h) // --------------------------------------------------------------------------- #ifndef Unit3H #define Unit3H // --------------------------------------------------------------------------- #include #include #include #include // --------------------------------------------------------------------------- class TfrmEdit: public TForm { __published: // IDE-managed Components TEdit *txtUdk; TEdit *txtTitle; TEdit *txtAuthor; TEdit *txtYear; TEdit *txtNum_in_lib; TButton *btnOK; TLabel *lblUDK; TLabel *lblTitle; TLabel *lblAuthor; TLabel *lblNum_in_lib; TLabel *lblyear; void __fastcall FormShow (TObject *Sender); void __fastcall btnOKClick (TObject *Sender); void __fastcall txtYearKeyPress (TObject *Sender, char &Key); void __fastcall txtNum_in_libKeyPress (TObject *Sender, char &Key); private: // User declarations public: // User declarations __fastcall TfrmEdit (TComponent* Owner); }; // --------------------------------------------------------------------------- extern PACKAGE TfrmEdit *frmEdit; // --------------------------------------------------------------------------- #endif frmAbout (Unit4. cpp) // --------------------------------------------------------------------------- #include #pragma hdrstop #include "Unit4. h" // --------------------------------------------------------------------------- #pragma package (smart_init) #pragma resource "*. dfm" TfrmAbout *frmAbout; // --------------------------------------------------------------------------- __fastcall TfrmAbout:: TfrmAbout (TComponent* Owner) : TForm (Owner) { Label6->Caption = "Программа осуществляет отображение\nи редактирование списка литературы \nсодержащейся в библиотеке"; } // --------------------------------------------------------------------------- void __fastcall TfrmAbout:: FormCreate (TObject *Sender) { } // --------------------------------------------------------------------------- frmAbout (Unit4. cpp) // --------------------------------------------------------------------------- #ifndef Unit4H #define Unit4H // --------------------------------------------------------------------------- #include #include #include #include // --------------------------------------------------------------------------- class TfrmAbout: public TForm { __published: // IDE-managed Components TLabel *Label1; TLabel *Label2; TLabel *Label3; TLabel *Label4; TLabel *Label5; TLabel *Label6; TLabel *Label7; private: // User declarations public: // User declarations __fastcall TfrmAbout (TComponent* Owner); }; // --------------------------------------------------------------------------- extern PACKAGE TfrmAbout *frmAbout; // --------------------------------------------------------------------------- #endif UserFunctions_unit. cpp // --------------------------------------------------------------------------- #pragma hdrstop #include "UserFunctions_unit. h" // --------------------------------------------------------------------------- #pragma package (smart_init) // Функция изменения названий столбцов void MyFunctions:: ChangeCollName (TDBGrid *DBGrid) { AnsiString colname; // строка имени колонки AnsiString collable; // строка присвоения lable колонки на русском int width = 0; for (int i = 0; i < (DBGrid->FieldCount); i++) // Осуществляем перебор всех столбцов в DBGrid1 { colname = DBGrid->Fields [i] - >FullName; // получаем имя колонки и присваиваем его переменной if (colname == "num_udk") // В слечае совпадения имени колонки в DBGrid и заданной строки { // меняем lable колонки на русские названия collable = "Номер УДК"; // Устанавливаем название колонки width=90; // Устанавливаем ширину колонки } else if (colname == "autor") // В слечае совпадения имени колонки в DBGrid и заданной строки { // меняем lable колонки на русские названия collable = "Автор"; width=220; } else if (colname == "title") // В слечае совпадения имени колонки в DBGrid и заданной строки { // меняем lable колонки на русские названия collable = "Название"; width=270; } else if (colname == "year_print") // В слечае совпадения имени колонки в DBGrid и заданной строки { // меняем lable колонки на русские названия collable = "Год издания"; width=90; } else if (colname == "count_in_library") // В слечае совпадения имени колонки в DBGrid и заданной строки { // меняем lable колонки на русские названия collable = "Количество"; width=90; } DBGrid->Fields [i] - >DisplayLabel = collable; // Меняем название столбца в DBGrid на установленное DBGrid->Columns->Items [i] - >Width = width; // Меняем ширину столбца в DBGrid на установленное DBGrid->Columns->Items [i] - >Alignment = taLeftJustify; // Меняем выравнивание в столбце DBGrid на выравнивание по левому краю } } UserFunctions_unit. h // --------------------------------------------------------------------------- #include #ifndef UserFunctions_unitH #define UserFunctions_unitH class MyFunctions { public: // User declarations void ChangeCollName (TDBGrid*); private: }; // --------------------------------------------------------------------------- #endif |