procedure Item32Click(Sender: TObject); //Вызов формы закрытия счёта
procedure N8Click(Sender: TObject); {Подсчитывает и отображает полное содержание всех счетов (В гривнах)}
procedure Item23Click(Sender: TObject); {Вызывает форму смены процентных ставок клиентов}
private
{ Private declarations }
public
{ Public declarations }
end;
TDataBaseRecord = record {Запись для базы данных по содержанию денег на счетах}
UserFirstName: String[20];
UserLastName: String[20];
UserFatherName: String[14];
UserIdentifier: String[10];
UserMoneyHrv: Double;
UserMoneyRub: Double;
UserMoneyUSD: Double;
UserMoneyPutDate: String[20];
UserMoneyGetDate: String[20];
end;
TDocNumbersRecord = record {Запись для контроля за изменениями, вызванными связанной внешней программой кассовых операций}
InPut: LongInt;
OutPut: LongInt;
BankName: String[50];
end;
TUsersInformationRecord = record {Запись для хранения личной информации клиентов}
UserIdentifier: String[10];
UserAdressOblRayon: String[50];
UserAdressCity: String[30];
UserAdressStreet: String[20];
UserAdressHouse: String[10];
UserTel: String[20];
UserPasportNumber: String[10];
UserPasportGived: String[80];
UserIdentifierNumber: String[10];
UserPercent: Byte;
UserFirstInput: Double;
UserContractNumber: LongInt;
UserDocDate: String[10];
end;
TBankInfoRecord = record {Запись для хранения информации о банке}
BankName: String[50];
BankObl: String[30];
BankCity: String[30];
BankStreet: String[30];
BankTel: String[20];
BankCode: String[50];
UserContractNumber: LongInt;
end;
TUsersProcRecord = record {Запись для хранения процентных ставок клиентов банка}
UserIdentifier: String[10];
UserHrvProc: Byte;
UserRubProc: Byte;
UserUSDProc: Byte;
end;
var
Main: TMain;
RubKurs, USDKurs: Double;
DataBaseFile, TempDBF: file of TDataBaseRecord;
NewRecord: TDataBaseRecord;
NumbersFile: file of TDocNumbersRecord;
BankCreate, KassaInit: Boolean;
BankInfoFile: file of TBankInfoRecord;
UsersInfoFile, TempUIF: file of TUsersInformationRecord;
UsersInfoRecord: TUsersInformationRecord;
BankInfoRecord: TBankInfoRecord;
NumbRecord: TDocNumbersRecord;
UsersProcFile: file of TUsersProcRecord;
UsersProcRecord: TUsersProcRecord;
LastLaunchFile: file of TDate;
implementation
uses KursesUnitValuta, KlientsMoneyView, RachetDokum, BankChangerUnit,
UsersInfoUnit, ExchangeUnit, MoneyTypeExchangeUnit;
{$R *.dfm}
procedure TMain.N1Click(Sender: TObject); //Вывод справки «О программе»
begin
MessageBox(Handle,'Программа предназначена для автоматизации, учёта и регулирования'+#13+'валютных операций в финансово-кредитных учреждениях','О программе',0);
end;
procedure TMain.N2Click(Sender: TObject); //Вывод справки «Об авторе»
begin
MessageBox(Handle,'Эта программа была создана студентом группы П02-1Д Костюком Олегом.'+#13+
' (Froska & K'+#176+')','Об авторе',0);
end;
procedure TMain.N3Click(Sender: TObject); //Вызов формы для изменения курсов валют
begin
Kurses.Show;
end;
procedure TMain.FormCreate(Sender: TObject); {Ассоциации файлов, анализ файлов баз данных}
var
Data: TDate;
Changing: Extended;
begin
AssignFile(DataBaseFile,'MainDataBase.kne');// Файл для хранения денег на счетах
AssignFile(NumbersFile,'DocNumbers.kne');// Файл для хранения количества документов
AssignFile(BankInfoFile,'BankInformation.kne'); // Файл для хранения информации о банке
AssignFile(UsersInfoFile,'ClientsDataBase.kne');{Файл для хранения информации о клиентах}
AssignFile(TempDBF,'TemporaryFile1.tmp');{Файл для удаления записей о клиентах со счета}
AssignFile(TempUIF,'TemporaryFile2.tmp');//Файл для удаления информации о клиентах
AssignFile(UsersProcFile,'PercentsDataBase.kne');{Файл, для хранения процентных ставок клиентов}
AssignFile(LastLaunchFile,'LastLaunch.dat');{Файл для хранения последней даты открытия программы}
if not FileExists('LastLaunch.dat') then
begin
Rewrite(LastLaunchFile);
Data:=Date;
Write(LastLaunchFile,Data);
CloseFile(LastLaunchFile);
end
else
begin
Reset(LastLaunchFile);
Read(LastLaunchFile,Data);
Changing:=Date-Data;
Reset(DataBaseFile);
Reset(UsersProcFile);
while not Eof(DataBaseFile) do
begin
Read(DataBaseFile,NewRecord);
Read(UsersProcFile,UsersProcRecord);
NewRecord.UserMoneyHrv:=NewRecord.UserMoneyHrv*(Changing/365)*(UsersProcRecord.UserHrvProc/100)+NewRecord.UserMoneyHrv;
NewRecord.UserMoneyRub:=NewRecord.UserMoneyRub*(Changing/365)*(UsersProcRecord.UserRubProc/100)+NewRecord.UserMoneyRub;
NewRecord.UserMoneyUSD:=NewRecord.UserMoneyUSD*(Changing/365)*(UsersProcRecord.UserUSDProc/100)+NewRecord.UserMoneyUSD;
Seek(DataBaseFile,FilePos(DataBaseFile)-1);
Write(DataBaseFile,NewRecord);
end;
CloseFile(UsersProcFile);
CloseFile(DataBaseFile);
Write(LastLaunchFile,Data);
CloseFile(LastLaunchFile);
end;
if not FileExists('BankInformation.kne') then
begin
BankCreate:=True;
if FileExists('DocNumbers.kne') then
KassaInit:=True
else
KassaInit:=False;
end
else
begin
BankCreate:=False;
KassaInit:=False;
end;
if not FileExists('DocNumbers.kne') then
begin
if FileExists('BankInformation.kne') then
begin
Reset(BankInfoFile);
Read(BankInfoFile,BankInfoRecord);
Rewrite(NumbersFile);
NumbRecord.BankName:=BankInfoRecord.BankName;
NumbRecord.InPut:=1;
NumbRecord.OutPut:=1;
Write(NumbersFile,NumbRecord);
CloseFile(NumbersFile);
CloseFile(BankInfoFile);
end;
end
else
begin
if FileExists('BankInformation.kne') then
begin
Reset(NumbersFile);
Read(NumbersFile,NumbRecord);
CloseFile(NumbersFile);
Reset(BankInfoFile);
Read(BankInfoFile,BankInfoRecord);
CloseFile(BankInfoFile);
if NumbRecord.BankName<>BankInfoRecord.BankName then
begin
BankCreate:=True;
KassaInit:=True;
end;
end;
end;
if (not FileExists('BankInformation.kne')) and (not FileExists('NumbersFile.kne')) then
begin
BankCreate:=True;
KassaInit:=False;
end;
end;
procedure TMain.Item33Click(Sender: TObject); {Демонстрация информации о счетах клиентов}
begin
with TKassa.Create(Application) do {Создание дочернего окна демонстрации счетов}
begin
Caption:='Просмотр клентов банка';
RemoveUserButton.Visible:=False;
Panel1.Visible:=False;
end;
end;
procedure TMain.N5Click(Sender: TObject); //Вызов окна смены информации о банке
Begin
KassaInit:=False;
ChangeBankForm.Show;
end;
procedure TMain.Item22Click(Sender: TObject); //Вызов бланка открытия счёта
begin
with TForma.Create(Application) do {Создание дочернего окна открытия счетов}
begin
Reset(BankInfoFile);
Read(BankInfoFile,BankInfoRecord);
DocNumberLabel.Caption:=IntToStr(BankInfoRecord.UserContractNumber);
BankInfoRecord.UserContractNumber:=BankInfoRecord.UserContractNumber+1;
Seek(BankInfoFile,0);
Write(BankInfoFile,BankInfoRecord);
Bname.Text:=BankInfoRecord.BankName;
Bstate.Text:=BankInfoRecord.BankObl;
Btown.Text:=BankInfoRecord.BankCity;
Bstreet.Text:=BankInfoRecord.BankStreet;
Btel.Text:=BankInfoRecord.BankTel;
Bnumb.Text:=BankInfoRecord.BankCode;
DateNow.Text:=DateToStr(Date);
CloseFile(BankInfoFile);
end; end;
procedure TMain.Item12Click(Sender: TObject); //Просмотр личной информации о клиентах
begin
with TUsersInfoForm.Create(Application) do {Создание дочернего окна демонстрации личной информации о клиентах}
begin
//Initialization
end;
end;
procedure TMain.N6Click(Sender: TObject); {Вызов формы перевода с одного счёта на другой}
begin
with TExchangeForm.Create(Application) do {Создание дочернего окна перевода с одного счёта на другой}
begin
if not FileExists('MainDataBase.kne') then
begin
MessageBox(Handle,'База данных отсутствует! Перевод невозможен.','Уведомление',0);
Close;
end;
Reset(DataBaseFile);
while not Eof(DataBaseFile) do
begin
Read(DataBaseFile,NewRecord);
Giver.Items.Add (NewRecord.UserLastName + ' '+NewRecord.UserFirstName + ' ' + NewRecord.UserFatherName);
Receiver.Items.Add (NewRecord.UserLastName + ' ' + NewRecord.UserFirstName + ' ' + NewRecord.UserFatherName);
end;
CloseFile(DataBaseFile);
end;
end;
procedure TMain.N7Click(Sender: TObject); //Вызов формы перевода валют на счету
begin
with TMoneyTypeExchange.Create(Application) do{Создание дочернего окна перевода валют на счету}
begin
if not FileExists('MainDataBase.kne') then
begin
MessageBox(Handle,'База данных отсутствует! Перевод невозможен.','Уведомление',0);
Close;
end;
Reset(DataBaseFile);
while not Eof(DataBaseFile) do
begin
Read(DataBaseFile,NewRecord);
User.Items.Add(NewRecord.UserLastName + ' ' + NewRecord.UserFirstName + ' ' + NewRecord.UserFatherName);
end;
CloseFile(DataBaseFile);
end;
end;
procedure TMain.Item32Click(Sender: TObject); //Вызов формы закрытия счёта
begin
with TKassa.Create(Application) do {Создание дочернего окна демонстрации счетов}
begin
Caption:='Закрытие счёта';
RemoveUserButton.Visible:=True;
Panel1.Visible:=False;
end;
end;
procedure TMain.N8Click(Sender: TObject); {Подсчитывает и отображает полное содержание всех счетов (В гривнах)}
var
Money: Double;
begin
if not FileExists('MainDataBase.kne') then
begin
exit;
end;
Money:=0;
Reset(DataBaseFile);
while not Eof(DataBaseFile) do
begin
Read(DataBaseFile,NewRecord);
Money:=Money+(NewRecord.UserMoneyRub*RubKurs)+NewRecord.UserMoneyHrv+(NewRecord.UserMoneyUSD*USDKurs);
end;
CloseFile(DataBaseFile);
MessageBox(Handle,PAnsiChar('Общее содержание счетов: '+FloatToStr(Money)+' грн.'),'Капитал банка',0);
end;
procedure TMain.Item23Click(Sender: TObject); {Вызывает форму смены процентных ставок клиентов}
begin
with TKassa.Create(Application) do {Создание дочернего окна демонстрации счетов}
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.