Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
отчет мой.docx
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
4.46 Mб
Скачать

Задача 18. База данных "Расходы"

Напишите программу работы с базой данных Расходы. В базе данных должна фиксироваться сумма, дата и то, на что потрачены деньги (по категориям, например: еда, транспорт, образование, развлечения, прочее). Программа должна обеспечивать статистическую обработку — выводить сумму затрат за период. Базу данных в формате Paradox (таблицу rash.db) можно создать при помощи утилиты Database Desktop. Рекомендуемый вид формы программы работы с базой данных приведен на рис. 79

Рис 79

Вывод: В этом задании мы написали программу работы с базой данных Расходы.

Листинг

#include <vcl.h>

#pragma hdrstop

#include "Unit1.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)

#pragma resource "*.dfm"

TForm1 *Form1;

//---------------------------------------------------------------------------

__fastcall TForm1::TForm1(TComponent* Owner)

: TForm(Owner)

{

}

//---------------------------------------------------------------------------

void __fastcall TForm1::FormShow(TObject *Sender)

{

try {

Table1->Open();

}

catch ( EDBEngineError &e)

{

ShowMessage("Для доступа к базе данных надо создать " "псевдоним stock");

}

}

//---------------------------------------------------------------------------

void __fastcall TForm1::DataSource1StateChange(TObject *Sender)

{

if ( DataSource1->State == dsBrowse) StatusBar1->Panels->Items[1]->Text = "Просмотр";

else

StatusBar1->Panels->Items[1]->Text = "Редактирование";

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Table1AfterScroll(TDataSet *DataSet)

{

AnsiString Picture;

if ( Table1->RecNo != -1)

{

StatusBar1->Panels->Items[0]->Text = "Запись: " + IntToStr( Table1->RecNo );

try {

Picture = Table1->Database->Directory + DataSet->FieldValues["Image"];

}

catch (EVariantTypeCastError &e)

{

Image1->Visible = false;

return;

}

ShowPhoto(Picture);

}

else

{

StatusBar1->Panels->Items[0]->Text = "";

StatusBar1->Panels->Items[1]->Text = "Новаязапись";

Image1->Visible = false;

}

}

//---------------------------------------------------------------------------

void __fastcall TForm1::ShowPhoto(AnsiString Picture)

{

try

{

Image1->Picture->LoadFromFile(Picture);

}

catch ( EFOpenError &e)

{

Image1->Visible = false;

return;

}

Image1->Visible = true;

}

//---------------------------------------------------------------------------

void __fastcall TForm1::FormClose(TObject *Sender, TCloseAction &Action)

{

if (Table1->State == dsEdit )

Table1->Post();

}//---------------------------------------------------------------------------

155