Розробка програмних засобів автоматизації валютних операцій в фінансово-кредитних установах

Страницы работы

Фрагмент текста работы

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 {Создание дочернего окна демонстрации счетов}

Похожие материалы

Информация о работе