Помощь в написании студенческих работ
Антистрессовый сервис

Автоматизация расчетно-кассового обслуживания коммерческих банков

Курсовая Купить готовую Узнать стоимостьмоей работы

Разработанное клиентское приложение называется kassa.exe. Приложение может находиться в любом каталоге, временные файлы при работе приложения не организуются. Если в каталоге с приложением имеется настроечный файл с именем Kassa. ini, то имя сервера БД и имя БД берутся из него. В противном случае считается, что сервер локальный и БД называется Kassa. При загрузке приложения надо ввести имя… Читать ещё >

Автоматизация расчетно-кассового обслуживания коммерческих банков (реферат, курсовая, диплом, контрольная)

Содержание

  • 1. АНАЛИТИЧЕСКАЯ ЧАСТ
  • 1.
  • Глоссарий
    • 1. 2. Описание предметной области
      • 1. 2. 1. Виды счетов в КБ
      • 1. 2. 2. Принципы расчетно-кассового обслуживания
      • 1. 2. 3. Услуги в сфере расчетно-кассового обслуживания в КБ
    • 1. 3. Формализованное представление
    • 1. 4. Технико-экономическое обоснование
      • 1. 4. 1. Организационно-экономическая структура объекта исследования
      • 1. 4. 2. Обоснование целей создания ИС
      • 1. 4. 3. Список автоматизируемых подразделений
      • 1. 4. 4. Список автоматизируемых задач
      • 1. 4. 5. Перечь организационно — технических мероприятий
      • 1. 4. 6. Ожидаемый технико-экономический эффект от проекта
      • 1. 4. 7. Технический уровень проекта, возможности дальнейших разработки
      • 1. 4. 8. Обоснование по информационному, техническому и программному обеспечению объекта
    • 1. 5. Техническое задание
      • 1. 5. 1. Назначение и цели создания системы
      • 1. 5. 2. Общие требования к новой системе
      • 1. 5. 3. Характеристика объекта автоматизации
      • 1. 5. 4. Требования к задачам
      • 1. 5. 5. Порядок и контроль приемки
      • 1. 5. 6. Требования к составу работ по подготовке объекта к внедрению проекта
      • 1. 5. 7. Требования к документации проекта
      • 1. 5. 8. Расчет ожидаемой экономической эффективности
  • 2. ПРОЕКТНАЯ ЧАСТ
    • 2. 1. Информационная модель
    • 2. 2. Постановка задачи «Автоматизация РКО»
    • 2. 3. Разработка классификаторов
    • 2. 4. Инфологическая модель
    • 2. 5. Описание состава файлов
    • 2. 6. Определение структуры и длины записи каждого файла
    • 2. 7. Даталогическая модель
    • 2. 8. Дерево функций
    • 2. 9. Сценарий диалога с пользователем
    • 2. 10. Дерево программных модулей
    • 2. 11. Схема взаимосвязи модулей и файлов
    • 2. 12. Схема ТП решения задачи в диалоговом режиме
  • 3. РУКОВОДСТВО ПОЛЬЗОВАТЕЛЯ
  • 4. РУКОВОДСТВО ПРОГРАММИСТА
  • СПИСОК ИСПОЛЬЗУЕМОЙ ЛИТЕРАТУРЫ
  • ПРИЛОЖЕНИЯ

Разработанное клиентское приложение называется kassa.exe. Приложение может находиться в любом каталоге, временные файлы при работе приложения не организуются. Если в каталоге с приложением имеется настроечный файл с именем Kassa. ini, то имя сервера БД и имя БД берутся из него. В противном случае считается, что сервер локальный и БД называется Kassa. При загрузке приложения надо ввести имя и пароль для доступа к серверу БД.

Список используемой литературы Архангельский, А. Я. Программирование в Delphi 7 / А. Я. Архангельский — Бином-Пресс, 2003. — 1152 с. — ISBN 5−9518−0042−0.

Архангельский, А.Я. Delphi 2006

Справочное пособие. Язык Delphi, классы, функции Win32 и .NET / А. Я. Архангельский — Бином-Пресс, 2003. — 1152 с. — ISBN 5−9518−0138−9.

Бакнелл, Д. Фундаментальные алгоритмы и структуры данных в Delphi / Д. Бакнелл — СПб.: Питер, 2006. — 560 с. — ISBN 5−469−1 495−9, 5−93 772−087−3.

Бекаревич, Ю. Б. Самоучитель Microsoft Access 2002 / Ю. Б. Бекаревич, Н. В. Пушкина — СПб.: БХВ-Петербург, 2002. — 720 с. ISBN 5−94 157−143−7.

Бобровский, С.И. Delphi 7. Учебный курс / С. И. Бобровский — СПб.: Питер, 2008. — 736 с.: ил. — ISBN 978−5-8046−0086−1.

Грабер, М.

Введение

в SQL / Пер. с англ. В. Ястребов — Издательство «Лори», 1996. — 380 с. — ISBN: 5−85 582−010−6.

Дарахвелидзе, П.Г., Марков, Е. П. Программирование в Delphi 7 / П. Г. Дарахвелидзе, Е. П. Марков.

— СПб.: БХВ-Петербург, 2003. — 784 с. — ISBN 5−94 157−116-Х.

Кадлец, В. Delphi. Книга рецептов. Практические примеры, трюки и секреты / В. Кадлец — СПб.: Наука и техника, 2006. — 384 с. — ISBN 5−94 387−269−8, 80−251−0017−0.

Карпов, Б. Delphi: специальный справочник / Б. Карпов — СПб.: Питер, 2002. — 688 с.: ил. — ISBN 5−272−353−5.

Кузин, А. В. Базы данных: учеб. пособие для студ. высш. учеб. заведений / А. В. Кузин, С. В. Левонисова. —

2-е изд., стер. — М.: Издательский центр «Академия», 2008. — 320 с. I5ВN 978−5-7695−4833−8.

Кэнту, М. Delphi 7 для профессионалов / Марко Кэнту — СПб.: Питер, 2004. — 1076 с.: ил. — ISBN 5−94 723−593−5.

Марков А.С., Лисовский К. Ю. Базы данных.

Введение

в теорию и методологию: Учебник / А. С. Марков, К. Ю. Лисовский — М.: Финансы и статистика, 2006. — 512 с: ил. — ISBN 5−279−2 298−5.

Михеев Р. MS SQL Server 2005 для администраторов / Р. Михеев — СПб.: БХВ-Петербург — 544 с. — ISBN 5−94 157−796−6, 978−5-94 157−796−5.

Фленов, М. Е. Программирование в Delphi глазами хакера. / М. Е. Фленов — СПб.: БХВ-Петербург, 2005. — 368 с.: ил. — ISBN 5−94 157−351−0.

Шпак, Ю. А. D elphi 7 на примерах / Ю. А. Шпак. — М.: Юниор, 2003.

— 344 с. ISBN: 966−7323−28−5.

Приложения Приложение 1. Текст программы

unit kassa_pas;

interface

uses

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

ADODB, DBCtrls, IniFiles, DB, ComCtrls, ExtCtrls, dbcgrids, StdCtrls,

Buttons, Grids, DBGrids, Spin, Mask, ComOBJ ;

type

TForm1 = class (TForm)

ADOQuery1: TADOQuery;

ADOConnection1: TADOConnection;

PageControl1: TPageControl;

TabSheet1: TTabSheet;

TabSheet2: TTabSheet;

TabSheet3: TTabSheet;

Panel1: TPanel;

DataSource1: TDataSource;

DBCtrlGrid1: TDBCtrlGrid;

RadioGroup1: TRadioGroup;

BitBtn1: TBitBtn;

Edit1: TEdit;

Edit2: TEdit;

Edit3: TEdit;

Edit4: TEdit;

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

Label5: TLabel;

Label6: TLabel;

Label7: TLabel;

Label8: TLabel;

DBText1: TDBText;

DBText2: TDBText;

DBText3: TDBText;

DBText4: TDBText;

ADOQuery2: TADOQuery;

BitBtn2: TBitBtn;

Panel2: TPanel;

Label9: TLabel;

Label10: TLabel;

Label11: TLabel;

BitBtn3: TBitBtn;

Edit5: TEdit;

BitBtn4: TBitBtn;

ADOQuery3: TADOQuery;

DataSource2: TDataSource;

DBCtrlGrid2: TDBCtrlGrid;

Label13: TLabel;

Label14: TLabel;

Label15: TLabel;

DBText5: TDBText;

DBText6: TDBText;

DBText7: TDBText;

Panel4: TPanel;

Label21: TLabel;

BitBtn7: TBitBtn;

Edit13: TEdit;

BitBtn8: TBitBtn;

DBGrid1: TDBGrid;

DataSource3: TDataSource;

ADOQuery4: TADOQuery;

Label22: TLabel;

Edit8: TEdit;

BitBtn9: TBitBtn;

BitBtn10: TBitBtn;

DBGrid2: TDBGrid;

DataSource4: TDataSource;

ADOQuery5: TADOQuery;

SpinEdit1: TSpinEdit;

TabSheet4: TTabSheet;

ComboBox2: TComboBox;

ComboBox3: TComboBox;

ComboBox4: TComboBox;

DateTimePicker1: TDateTimePicker;

ComboBox5: TComboBox;

TabSheet5: TTabSheet;

BitBtn5: TBitBtn;

BitBtn6: TBitBtn;

ComboBox6: TComboBox;

Label17: TLabel;

Label18: TLabel;

Label19: TLabel;

DateTimePicker2: TDateTimePicker;

Label20: TLabel;

Edit6: TEdit;

CheckBox1: TCheckBox;

Label23: TLabel;

Edit7: TEdit;

SpinEdit2: TSpinEdit;

SpinEdit3: TSpinEdit;

Label24: TLabel;

Label25: TLabel;

Label26: TLabel;

Label27: TLabel;

Label28: TLabel;

ComboBox7: TComboBox;

RadioGroup2: TRadioGroup;

Panel3: TPanel;

Label29: TLabel;

DateTimePicker3: TDateTimePicker;

DateTimePicker4: TDateTimePicker;

BitBtn11: TBitBtn;

DBGrid3: TDBGrid;

ADOQuery6: TADOQuery;

DataSource5: TDataSource;

Label30: TLabel;

Edit9: TEdit;

BitBtn12: TBitBtn;

Label31: TLabel;

BitBtn13: TBitBtn;

SpinEdit4: TSpinEdit;

SpinEdit5: TSpinEdit;

Label12: TLabel;

ComboBox1: TComboBox;

procedure FormCreate (Sender: TObject);

procedure BitBtn1Click (Sender: TObject);

procedure DBCtrlGrid1DblClick (Sender: TObject);

procedure BitBtn2Click (Sender: TObject);

procedure BitBtn3Click (Sender: TObject);

procedure BitBtn4Click (Sender: TObject);

procedure BitBtn6Click (Sender: TObject);

procedure BitBtn7Click (Sender: TObject);

procedure BitBtn5Click (Sender: TObject);

procedure BitBtn11Click (Sender: TObject);

procedure BitBtn12Click (Sender: TObject);

procedure BitBtn13Click (Sender: TObject);

procedure BitBtn8Click (Sender: TObject);

procedure DBCtrlGrid2DblClick (Sender: TObject);

procedure BitBtn9Click (Sender: TObject);

procedure BitBtn10Click (Sender: TObject);

procedure RadioGroup2Click (Sender: TObject);

procedure Edit6KeyPress (Sender: TObject; var Key: Char);

procedure Edit7KeyPress (Sender: TObject; var Key: Char);

procedure ComboBox2Change (Sender: TObject);

procedure ComboBox4Change (Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1. FormCreate (Sender: TObject);

var server, bd: String;

Ini: TIniFile;

i: Integer;

Layout: array[0. KL_NAMELENGTH] of char;

begin

//из настроечного файла прочитать имя сервера и имя БД

//если нет настроечного файла, то server local, БД — kassa

Ini:=TIniFile.Create (ExtractFilePath (Application.ExeName)+'kassa.ini');

server:=Ini.ReadString ('NAME_SERVER','name','(local)');

bd:=Ini.ReadString ('NAME_BD','name','kassa');

//коннект к БД master

//ADOConnection1.LoginPrompt:=True;

ADOConnection1.ConnectionString:='Provider=SQLOLEDB.1;Persist Security Info=True;Initial Catalog=master;Data Source='+server;

try

ADOConnection1.Connected:=True;

//переход к нужной БД

ADOQuery1.SQL.Text:='use '+bd;

ADOQuery1.ExecSQL;

except

Application.MessageBox ('Нет доступа к данным! Возможно, сервер отсутствует или не запущен!','Сообщение', mb_Ok+mb_ICONINFORMATION);

halt;

end;

//переход на русскую раскладку

LoadKeyBoardLayout (StrCopy (Layout,'419'), KLF_ACTIVATE);

PageControl1.Align:=AlClient;

DBCtrlGrid1.Align:=AlClient;

ADOQuery2.SQL.Text:='select * from client';

ADOQuery2.Open;

ComboBox2.Items.Clear;

ComboBox4.Items.Clear;

while not ADOQuery2. eof do

begin

ComboBox2.Items.Add (ADOQuery2.FieldByName ('client_name').AsString);

ComboBox4.Items.Add (ADOQuery2.FieldByName ('client_name').AsString);

ADOQuery2.Next;

end;

ADOQuery3.SQL.Text:='select * from operation a order by operation';

ADOQuery3.Open;

ComboBox7.Items.Clear;

while not ADOQuery3. eof do

begin

ComboBox7.Items.Add (ADOQuery3.FieldByName ('operation').AsString);

ADOQuery3.Next;

end;

ADOQuery4.SQL.Text:='select * from currency ';

ADOQuery4.Open;

ComboBox1.Items.Clear;

while not ADOQuery4. eof do

begin

ComboBox1.Items.Add (ADOQuery4.FieldByName ('currency').AsString);

ADOQuery4.Next;

end;

ComboBox6.Items.Clear;

ADOQuery5.SQL.Text:='select * from account_type a left join currency b on a. currency_id=b.currency_id';

ADOQuery5.Open;

while not ADOQuery5. eof do

begin

ComboBox6.Items.Add (ADOQuery5.FieldByName ('type_account').AsString);

ADOQuery5.Next;

end;

ComboBox3.Items.Clear;

ComboBox5.Items.Clear;

ADOQuery1.SQL.Text:='select * from account_client ';

ADOQuery1.Open;

while not ADOQuery1. eof do

begin

ComboBox3.Items.Add (ADOQuery1.FieldByName ('account_id').AsString);

ComboBox5.Items.Add (ADOQuery1.FieldByName ('account_id').AsString);

ADOQuery1.Next;

end;

ADOQuery1.Close;

DecimalSeparator:='.';

DateTimePicker1.Date:=date;

DateTimePicker2.Time:=time;

DateTimePicker3.Date:=date;

DateTimePicker4.Date:=date;

PageControl1.ActivePage:=TabSheet4;

end;

procedure TForm1. BitBtn1Click (Sender: TObject);

begin

//процедура для добавления нового клиента

ADOQuery1.SQL.Text:='insert into client (client_name, client_address, clent_phone, client_inn, clent_type) values ('+

QuotedStr (trim (Edit1.Text))+','+

QuotedStr (trim (Edit2.Text))+','+

QuotedStr (trim (Edit3.Text))+','+

QuotedStr (trim (Edit4.Text))+','+

IntToStr (RadioGroup1.ItemIndex)+')';

try

ADOQuery1.ExecSQL;

ComboBox2.Items.Add (trim (Edit1.Text));

ComboBox4.Items.Add (trim (Edit1.Text));

Edit1.Text:='';

Edit2.Text:='';

Edit3.Text:='';

Edit4.Text:='';

RadioGroup1.ItemIndex:=-1;

ADOQuery2.Close;

ADOQuery2.Open;

except

Application.MessageBox ('Ошибка при вводе нового клиента!','Сообщение', mb_Ok+mb_ICONINFORMATION);

exit;

end;

end;

procedure TForm1. DBCtrlGrid1DblClick (Sender: TObject);

begin

//выдать информацию о клиенте

Edit1.Text:=ADOQuery2.FieldByName ('client_name').AsString;

Edit2.Text:=ADOQuery2.FieldByName ('client_address').AsString;

Edit3.Text:=ADOQuery2.FieldByName ('clent_phone').AsString;

Edit4.Text:=ADOQuery2.FieldByName ('client_inn').AsString;

RadioGroup1.ItemIndex:=ADOQuery2.FieldByName ('clent_type').AsInteger;

end;

procedure TForm1. BitBtn2Click (Sender: TObject);

begin

//изменить данные клиента

ADOQuery1.SQL.Text:='update client '+

'set client_name='+QuotedStr (trim (Edit1.Text))+','+

'client_address='+QuotedStr (trim (Edit2.Text))+','+

'clent_phone='+QuotedStr (trim (Edit3.Text))+','+

'client_inn='+QuotedStr (trim (Edit4.Text))+','+

'clent_type='+IntToStr (RadioGroup1.ItemIndex)+

'where client_id='+ADOQuery2.FieldByName ('client_id').AsString;

try

ADOQuery1.ExecSQL;

ComboBox2.Items[ComboBox2.Items.IndexOf (ADOQuery2.FieldByName ('client').AsString)]: =trim (Edit1.Text);

ComboBox4.Items[ComboBox2.Items.IndexOf (ADOQuery2.FieldByName ('client').AsString)]:=trim (Edit1.Text);

Edit1.Text:='';

Edit2.Text:='';

Edit3.Text:='';

Edit4.Text:='';

RadioGroup1.ItemIndex:=-1;

ADOQuery2.Close;

ADOQuery2.Open;

except

Application.MessageBox ('Ошибка при корректировке клиента!','Сообщение', mb_Ok+mb_ICONINFORMATION);

exit;

end;

end;

procedure TForm1. BitBtn3Click (Sender: TObject);

begin

//процедура для добавления новой операции

ADOQuery1.SQL.Text:='insert into operation (operation, procent, summa) values ('+

QuotedStr (trim (Edit5.Text))+','+

FloatToStr (SpinEdit4.Value+SpinEdit5.Value*0.01)+','+

IntToStr (SpinEdit1.Value)+')';

try

ADOQuery1.ExecSQL;

ComboBox7.Items.Add (trim (Edit5.Text));

SpinEdit4.Value:=0;

SpinEdit5.Value:=0;

SpinEdit1.Value:=0;

ComboBox1.ItemIndex:=-1;

RadioGroup1.ItemIndex:=-1;

ADOQuery3.Close;

ADOQuery3.Open;

except

Application.MessageBox ('Ошибка при вводе новой операции!','Сообщение', mb_Ok+mb_ICONINFORMATION);

exit;

end;

end;

procedure TForm1. BitBtn4Click (Sender: TObject);

var currency_id: Integer;

begin

//изменить данные операции

currency_id:=0;

ADOQuery1.SQL.Text:='select * from currency where currency='+QuotedStr (trim (ComboBox1.Items[ComboBox1.ItemIndex]));

ADOQuery1.Open;

currency_id:=ADOQuery1.FieldByName ('currency_id').AsInteger;

ADOQuery1.Close;

ADOQuery1.SQL.Text:='update operation '+

'set operation='+QuotedStr (trim (Edit5.Text))+','+

'procent='+FloatToStr (SpinEdit4.Value+SpinEdit5.Value*0.01)+','+

'summa='+IntToStr (SpinEdit1.Value)+','+

'currency_id='+IntToStr (currency_id)+

'where operation_id='+ADOQuery3.FieldByName ('operation_id').AsString;

try

ADOQuery1.ExecSQL;

ComboBox7.Items[ComboBox7.Items.IndexOf (ADOQuery3.FieldByName ('operation').AsString)]: =trim (Edit5.Text);

SpinEdit4.Value:=0;

SpinEdit5.Value:=0;

SpinEdit1.Value:=0;

ComboBox1.ItemIndex:=-1;

RadioGroup1.ItemIndex:=-1;

ADOQuery3.Close;

ADOQuery3.Open;

except

Application.MessageBox ('Ошибка при корректировке операции!','Сообщение', mb_Ok+mb_ICONINFORMATION);

exit;

end;

end;

procedure TForm1. BitBtn6Click (Sender: TObject);

var type_account_id: Integer;

begin

//процедура для открытия счета

type_account_id:=0;

ADOQuery1.SQL.Text:='select * from account_type where type_account='+QuotedStr (trim (ComboBox6.Items[ComboBox6.ItemIndex]));

ADOQuery1.Open;

type_account_id:=ADOQuery1.FieldByName ('type_account_id').AsInteger;

ADOQuery1.Close;

ADOQuery1.SQL.Text:='insert into account_client (client_id, type_account_id) values ('+

ADOQuery2.FieldByName ('client_id').AsString+','+

IntToStr (type_account_id)+');';

ADOQuery1.SQL.Text:=ADOQuery1.SQL.Text+'select @@identity as nn';

try

ADOQuery1.Open;

ComboBox6.ItemIndex:=-1;

Application.MessageBox (PChar ('Счет открыт! Его номер '+ADOQuery1.FieldByName ('nn').AsString),'Сообщение', mb_Ok+mb_ICONINFORMATION);

ADOQuery1.Close;

except

Application.MessageBox ('Ошибка при открытии счета!','Сообщение', mb_Ok+mb_ICONINFORMATION);

exit;

end;

end;

procedure TForm1. BitBtn7Click (Sender: TObject);

begin

//добавить новую валюту

ADOQuery1.SQL.Text:='insert into currency (currency) values ('+

QuotedStr (trim (Edit13.Text))+')';

try

ADOQuery1.ExecSQL;

ComboBox1.Items.Add (trim (Edit13.Text));

Edit13.Text:='';

ADOQuery4.Close;

ADOQuery4.Open;

except

Application.MessageBox ('Ошибка при вводе новой валюты!','Сообщение', mb_Ok+mb_ICONINFORMATION);

exit;

end;

end;

procedure TForm1. BitBtn5Click (Sender: TObject);

var dt: TDateTime;

operation_id: Integer;

MSExcel, WorkBook, Sheet: Variant;

begin

dt:=StrToDateTime (DateToStr (DateTimePicker1.Date)+' '+TimeToStr (DateTimePicker2.Time));

operation_id:=0;

ADOQuery1.SQL.Text:='select * from operation where operation='+QuotedStr (trim (ComboBox7.Items[ComboBox7.ItemIndex]));

ADOQuery1.Open;

operation_id:=ADOQuery1.FieldByName ('operation_id').AsInteger;

ADOQuery1.Close;

//проведение операции

ADOQuery1.SQL.Text:='insert into operation_client (operation_date, operation_id, account_id, operation_summa, account_destination, operation_form) values ('+

QuotedStr (FormatDateTime ('yyyymmdd hh: mm:ss', dt))+','+

IntToStr (operation_id)+','+

ComboBox3.Items[ComboBox3.ItemIndex]+','+

FloatToStr (0-(SpinEdit2.Value+SpinEdit3.Value*0.01))+',';

if (RadioGroup2.ItemIndex=0) then

ADOQuery1.SQL.Text:=ADOQuery1.SQL.Text+ComboBox5.Items[ComboBox5.ItemIndex]+','

else

ADOQuery1.SQL.Text:=ADOQuery1.SQL.Text+'NULL,';

if (CheckBox1.Checked) then

ADOQuery1.SQL.Text:=ADOQuery1.SQL.Text+'1);'

else

ADOQuery1.SQL.Text:=ADOQuery1.SQL.Text+'0);';

if (RadioGroup2.ItemIndex=0) then

begin

//поступление денег на другой счет

ADOQuery1.SQL.Text:=ADOQuery1.SQL.Text+'insert into operation_client (operation_date, operation_id, account_id, operation_summa, account_destination, operation_form) values ('+

QuotedStr (FormatDateTime ('yyyymmdd hh: mm:ss', dt))+','+

IntToStr (operation_id)+','+

ComboBox5.Items[ComboBox5.ItemIndex]+','+

FloatToStr (SpinEdit2.Value+SpinEdit3.Value*0.01)+','+

ComboBox3.Items[ComboBox3.ItemIndex]+',';

if (CheckBox1.Checked) then

ADOQuery1.SQL.Text:=ADOQuery1.SQL.Text+'1);'

else

ADOQuery1.SQL.Text:=ADOQuery1.SQL.Text+'0);';

end;

ADOQuery1.SQL.SaveToFile ('c:

1.txt');

try

ADOQuery1.ExecSQL;

try

MSExcel := CreateOleObject ('Excel.Application');

except

ShowMessage ('Невозможна работа с Microsoft Excel!');

exit;

end;

Screen.Cursor:=crHourGlass;

MSExcel.Workbooks.Add;

MSExcel.Workbooks[1]. WorkSheets[1].range['A1'].Select;

MSExcel.ActiveCell.ColumnWidth:=18;

MSExcel.Selection.Font.Bold:=True;

MSExcel.ActiveCell.FormulaR1C1:='Проведена операция';

MSExcel.Workbooks[1]. WorkSheets[1].range['A2'].Select;

MSExcel.ActiveCell.FormulaR1C1:='Дата операции';

MSExcel.Workbooks[1]. WorkSheets[1].range['B2'].Select;

MSExcel.ActiveCell.ColumnWidth:=25;

MSExcel.ActiveCell.FormulaR1C1:=FormatDateTime ('dd.mm.yyyy hh: mm:ss', dt);

MSExcel.Workbooks[1]. WorkSheets[1].range['A4'].Select;

MSExcel.ActiveCell.FormulaR1C1:='Вид операции';

MSExcel.Workbooks[1]. WorkSheets[1].range['B4'].Select;

MSExcel.ActiveCell.FormulaR1C1:=ComboBox7.Items[ComboBox7.ItemIndex];

MSExcel.Workbooks[1].WorkSheets[1].range['A6'].Select;

MSExcel.ActiveCell.FormulaR1C1:='Номер счета';

MSExcel.Workbooks[1]. WorkSheets[1].range['B6'].Select;

MSExcel.ActiveCell.FormulaR1C1:=ComboBox3.Items[ComboBox3.ItemIndex];

MSExcel.Workbooks[1].WorkSheets[1].range['A8'].Select;

MSExcel.ActiveCell.FormulaR1C1:='Сумма';

MSExcel.Workbooks[1].WorkSheets[1].range['B8'].Select;

MSExcel.ActiveCell.FormulaR1C1:=SpinEdit2.Value+SpinEdit3.Value*0.01;

MSExcel.Workbooks[1].WorkSheets[1].range['A10'].Select;

MSExcel.ActiveCell.FormulaR1C1:='На номер счета';

MSExcel.Workbooks[1]. WorkSheets[1].range['B10'].Select;

if (RadioGroup2.ItemIndex=0) then

MSExcel.ActiveCell.FormulaR1C1:=ComboBox5.Items[ComboBox5.ItemIndex];

MSExcel.Workbooks[1].WorkSheets[1].range['A12'].Select;

MSExcel.ActiveCell.FormulaR1C1:='Вид движения';

MSExcel.Workbooks[1]. WorkSheets[1].range['B12'].Select;

if (CheckBox1.Checked) then

MSExcel.ActiveCell.FormulaR1C1:='наличн.'

else

MSExcel.ActiveCell.FormulaR1C1:='безналичн.';

MSExcel.Workbooks[1]. WorkSheets[1].range['A14'].Select;

MSExcel.ActiveCell.FormulaR1C1:='Подпись';

MSExcel.DisplayAlerts:=False;

MSExcel.Range['A2:B12'].Select;

MSExcel.Selection.Borders[7].LineStyle:=1;

MSExcel.Selection.Borders[8].LineStyle:=1;

MSExcel.Selection.Borders[9].LineStyle:=1;

MSExcel.Selection.Borders[10].LineStyle:=1;

MSExcel.Selection.Borders[11].LineStyle:=1;

MSExcel.Selection.Borders[12].LineStyle:=1;

Screen.Cursor:=crDefault;

MSExcel.Visible:=True;

Edit6.Text:='';

Edit7.Text:='';

ComboBox2.ItemIndex:=-1;

ComboBox3.ItemIndex:=-1;

ComboBox4.ItemIndex:=-1;

ComboBox5.ItemIndex:=-1;

ComboBox7.ItemIndex:=-1;

Application.MessageBox ('Операция проведена успешно!','Сообщение', mb_Ok+mb_ICONINFORMATION);

except

Application.MessageBox ('Ошибка при проведении операции!','Сообщение', mb_Ok+mb_ICONINFORMATION);

exit;

end;

end;

procedure TForm1. BitBtn11Click (Sender: TObject);

begin

//список операций за период

DBGrid3.Visible:=True;

ADOQuery6.SQL.Text:='select *, abs (b.summa+b.procent*a.operation_summa*0.01) as pr from operation_client a '+

'left join operation b on a. operation_id=b.operation_id '+

'left join account_client c on a. account_id=c.account_id '+

'left join client d on c. client_id=d.client_id '+

'where a. operation_date between '+

QuotedStr (FormatDateTime ('yyyymmdd', DateTimePicker3. Date))+ 'and '+

QuotedStr (FormatDateTime ('yyyymmdd 23:59:59', DateTimePicker4. Date));

ADOQuery6.SQL.Savetofile ('c:

1.txt');

ADOQuery6.Open;

end;

procedure TForm1. BitBtn12Click (Sender: TObject);

begin

//сумма на счете

if (trim (Edit9.Text)='') then

begin

Application.MessageBox ('Не указан номер счета!','Сообщение', mb_Ok+mb_ICONINFORMATION);

exit;

end;

Label31.Visible:=True;

ADOQuery1.SQL.Text:='select sum (a.operation_summa) as summa from operation_client a '+

'where a. account_id='+trim (Edit9.Text);

ADOQuery1.SQL.Savetofile ('c:

1.txt');

ADOQuery1.Open;

if (ADOQuery1.RecordCount>0) then

Label31.Caption:=FormatFloat ('0.00', ADOQuery1. FieldByName ('summa').AsFloat);

ADOQuery1.Close;

end;

procedure TForm1. BitBtn13Click (Sender: TObject);

var f: system. text;

begin

//итоги по дням во внешний файл с расширением csv

ADOQuery1.SQL.Text:='select convert (varchar, a. operation_date, 104) as dat,'+

'sum (a.operation_summa) as summa,'+

'count (*) as ccount,'+

'sum (abs (e.summa+e.procent*a.operation_summa*0.01)) as pr,'+

'd.currency '+

'from operation_client a '+

'left join account_client b on a. account_id=b.account_id '+

'left join account_type c on b. type_account_id=c.type_account_id '+

'left join currency d on c. currency_id=d.currency_id '+

'left join operation e on a. operation_id=e.operation_id '+

'where a. operation_date between '+

QuotedStr (FormatDateTime ('yyyymmdd', DateTimePicker3. Date))+ 'and '+

QuotedStr (FormatDateTime ('yyyymmdd 23:59:59', DateTimePicker4. Date))+

'group by convert (varchar, a. operation_date, 104), d. currency';

ADOQuery1.SQL.Savetofile ('c:

1.txt');

ADOQuery1.Open;

DeleteFile (ExtractFilePath (Application.ExeName)+'resultat.csv');

AssignFile (f, ExtractFilePath (Application.ExeName)+'resultat.csv');

Rewrite (f);

writeln (f,'Дата;

Сумма по операциям;

Количество операций;

Доход;Валюта');

//цикл

while not ADOQuery1. eof do

begin

writeln (f, ADOQuery1. FieldByName ('dat').AsString+';'+

ADOQuery1.FieldByName ('summa').AsString+';'+

ADOQuery1.FieldByName ('ccount').AsString+';'+

ADOQuery1.FieldByName ('pr').AsString+';'+

ADOQuery1.FieldByName ('currency').AsString+';');

ADOQuery1.Next;

end;

ADOQuery1.Close;

CloseFile (f);

Application.MessageBox ('Финансовый отчет в файле resultat.csv. Его можно открыть с помощью Excel!','Сообщение', mb_Ok+mb_ICONINFORMATION);

end;

procedure TForm1. BitBtn8Click (Sender: TObject);

begin

//изменение ввденного названия валюты

ADOQuery1.SQL.Text:='update currency '+

'set currency='+QuotedStr (trim (Edit13.Text))+

'where currency_id='+ADOQuery4.FieldByName ('currency_id').AsString;

try

ADOQuery1.ExecSQL;

ComboBox1.Items[ComboBox1.Items.IndexOf (ADOQuery4.FieldByName ('currency').AsString)]: =trim (Edit13.Text);

Edit13.Text:='';

ADOQuery4.Close;

ADOQuery4.Open;

except

Application.MessageBox ('Ошибка при корректировке валюты!','Сообщение', mb_Ok+mb_ICONINFORMATION);

exit;

end;

end;

procedure TForm1. DBCtrlGrid2DblClick (Sender: TObject);

begin

//выдать информацию об операции

Edit5.Text:=ADOQuery3.FieldByName ('operation').AsString;

SpinEdit4.Value:=ADOQuery3.FieldByName ('procent').AsInteger;

SpinEdit5.Value:=round ((ADOQuery3.FieldByName ('procent').AsFloat-ADOQuery3.FieldByName ('procent').AsInteger)*100);

SpinEdit1.Value:=ADOQuery3.FieldByName ('summa').AsInteger;

ComboBox1.ItemIndex:=ComboBox1.Items.IndexOf (ADOQuery3.FieldByName ('currency').AsString);

end;

procedure TForm1. BitBtn9Click (Sender: TObject);

var currency_id: Integer;

begin

//добавить новый вид счета

currency_id:=0;

ADOQuery1.SQL.Text:='select * from currency where currency='+QuotedStr (trim (ComboBox1.Items[ComboBox1.ItemIndex]));

ADOQuery1.Open;

currency_id:=ADOQuery1.FieldByName ('currency_id').AsInteger;

ADOQuery1.Close;

ADOQuery1.SQL.Text:='insert into account_type (type_account, currency_id) values ('+

QuotedStr (trim (Edit8.Text))+','+

IntToStr (currency_id);

try

ADOQuery1.ExecSQL;

ComboBox6.Items.Add (trim (Edit8.Text));

Edit8.Text:='';

ADOQuery5.Close;

ADOQuery5.Open;

except

Application.MessageBox ('Ошибка при вводе нового вида счета!','Сообщение', mb_Ok+mb_ICONINFORMATION);

exit;

end;

end;

procedure TForm1. BitBtn10Click (Sender: TObject);

begin

//изменение введенного названия вида счета

ADOQuery1.SQL.Text:='update account_type '+

'set type_account='+QuotedStr (trim (Edit8.Text))+

'where type_account_id='+ADOQuery5.FieldByName ('type_account_id').AsString;

try

ADOQuery1.ExecSQL;

ComboBox6.Items[ComboBox6.Items.IndexOf (ADOQuery5.FieldByName ('type_account').AsString)]: =trim (Edit8.Text);

Edit8.Text:='';

ADOQuery5.Close;

ADOQuery5.Open;

except

Application.MessageBox ('Ошибка при корректировке вида счета!','Сообщение', mb_Ok+mb_ICONINFORMATION);

exit;

end;

end;

procedure TForm1. RadioGroup2Click (Sender: TObject);

begin

if (RadioGroup2.ItemIndex=0) then

begin

Label27.Visible:=True;

ComboBox5.Visible:=True;

end

else

begin

Label27.Visible:=False;

ComboBox5.Visible:=False;

end;

end;

procedure TForm1. Edit6KeyPress (Sender: TObject; var Key: Char);

begin

//поиск клиента

if (Key<>#13) then exit;

ADOQuery2.First;

ComboBox2.Items.Clear;

while not ADOQuery2. eof do

begin

If ((trim (Edit6.Text)<>'') and (pos (Edit6.Text, ADOQuery2. FieldByName ('client_name').AsString)>0)) then

ComboBox2.Items.Add (ADOQuery2.FieldByName ('client_name').AsString);

If (trim (Edit6.Text)='') then

ComboBox2.Items.Add (ADOQuery2.FieldByName ('client_name').AsString);

ADOQuery2.Next;

end;

end;

procedure TForm1. Edit7KeyPress (Sender: TObject; var Key: Char);

begin

//поиск клиента

if (Key<>#13) then exit;

ADOQuery2.First;

ComboBox4.Items.Clear;

while not ADOQuery2. eof do

begin

If ((trim (Edit7.Text)<>'') and (pos (Edit7.Text, ADOQuery2. FieldByName ('client_name').AsString)>0)) then

ComboBox4.Items.Add (ADOQuery2.FieldByName ('client_name').AsString);

If (trim (Edit7.Text)='') then

ComboBox4.Items.Add (ADOQuery2.FieldByName ('client_name').AsString);

ADOQuery2.Next;

end;

end;

procedure TForm1. ComboBox2Change (Sender: TObject);

var client_id :Integer;

begin

// изменить список счетов

ADOQuery1.SQL.Text:='select * from client where client_name='+QuotedStr (trim (ComboBox2.Items[ComboBox2.ItemIndex]));

ADOQuery1.Open;

client_id:=ADOQuery1.FieldByName ('client_id').AsInteger;

ADOQuery1.Close;

ADOQuery1.SQL.Text:='select * from account_client ';

ADOQuery1.Open;

ComboBox3.Items.Clear;

while not ADOQuery1. eof do

begin

if (ADOQuery1.FieldByName ('client_id').AsInteger=client_id) then

ComboBox3.Items.Add (ADOQuery1.FieldByName ('account_id').AsString);

ADOQuery1.Next;

end;

ADOQuery1.Close;

end;

procedure TForm1. ComboBox4Change (Sender: TObject);

var client_id :Integer;

begin

// изменить список счетов

ADOQuery1.SQL.Text:='select * from client where client_name='+QuotedStr (trim (ComboBox4.Items[ComboBox4.ItemIndex]));

ADOQuery1.Open;

client_id:=ADOQuery1.FieldByName ('client_id').AsInteger;

ADOQuery1.Close;

ADOQuery1.SQL.Text:='select * from account_client ';

ADOQuery1.Open;

ComboBox5.Items.Clear;

while not ADOQuery1. eof do

begin

if (ADOQuery1.FieldByName ('client_id').AsInteger=client_id) then

ComboBox5.Items.Add (ADOQuery1.FieldByName ('account_id').AsString);

ADOQuery1.Next;

end;

ADOQuery1.Close;

end;

end.

Бекаревич Ю., Пушкина Н. Самоучитель Microsoft Access 2002. СПб, БХВ-Петербург. 2002. с.61−65

Валюта Код валюты Код клиента Код типа счета Номер счета Т Банковские операции

Дата операции Номер счета Сумма Номер счета получателя Наличные или безнал.

Клиент

Клиент

Операционист

Печать

Просмотр данных. Итоги работы

Клиент Адрес Телефон Инн Тип клиента Код клиента Тип счета Валюта

Код типа счета

Т Счета клиентов клиентов

Спр Виды счетов Договоры клиентов

Спр Виды операций

Спр Клиенты

Спр Виды валют

Операция

% за выполнение Сумма за выполнение Валюта

Код операции Поиск клиента в таблице клиентов

Клиент есть

Ввод сведений о клиенте

Счет есть

Открытие счета клиента

Выполнение операции по счету

Выдача квитанции клиенту

Выбор временного периода

Формирование отчетности

Проверка суммы на счете

нет

нет

нет

нет

Проверка суммы на счете

Просмотр файла

Выбор временного периода

Выдача квитанции клиенту

Выполнение операции по счету

Открытие счета клиента

Счет есть

Ввод сведений о клиенте

Клиент есть

Поиск клиента в списке Просмотр операций

Вывод итогов в файл

Показать весь текст

Список литературы

  1. , А.Я. Программирование в Delphi 7 / А. Я. Архангельский — Бином-Пресс, 2003. — 1152 с. — ISBN 5−9518−0042−0.
  2. Архангельский, А.Я. Delphi 2006. Справочное пособие. Язык Delphi, классы, функции Win32 и .NET / А. Я. Архангельский — Бином-Пресс, 2003. — 1152 с. — ISBN 5−9518−0138−9.
  3. , Д. Фундаментальные алгоритмы и структуры данных в Delphi / Д. Бакнелл — СПб.: Питер, 2006. — 560 с. — ISBN 5−469−1 495−9, 5−93 772−087−3.
  4. , Ю.Б. Самоучитель Microsoft Access 2002 / Ю. Б. Бекаревич, Н. В. Пушкина — СПб.: БХВ-Петербург, 2002. — 720 с. ISBN 5−94 157−143−7.
  5. Бобровский, С.И. Delphi 7. Учебный курс / С. И. Бобровский — СПб.: Питер, 2008. — 736 с.: ил. — ISBN 978−5-8046−0086−1.
  6. , М. Введение в SQL / Пер. с англ. В. Ястребов — Издательство «Лори», 1996. — 380 с. — ISBN: 5−85 582−010−6.
  7. , П.Г., Марков, Е. П. Программирование в Delphi 7 / П. Г. Дарахвелидзе, Е. П. Марков. — СПб.: БХВ-Петербург, 2003. — 784 с. — ISBN 5−94 157−116-Х.
  8. Кадлец, В. Delphi. Книга рецептов. Практические примеры, трюки и секреты / В. Кадлец — СПб.: Наука и техника, 2006. — 384 с. — ISBN 5−94 387−269−8, 80−251−0017−0.
  9. Карпов, Б. Delphi: специальный справочник / Б. Карпов — СПб.: Питер, 2002. — 688 с.: ил. — ISBN 5−272−353−5.
  10. , А. В. Базы данных: учеб. пособие для студ. высш. учеб. заведений / А. В. Кузин, С. В. Левонисова. — 2-е изд., стер. — М.: Издательский центр «Академия», 2008. — 320 с. I5ВN 978−5-7695−4833−8.
  11. Кэнту, М. Delphi 7 для профессионалов / Марко Кэнту — СПб.: Питер, 2004. — 1076 с.: ил. — ISBN 5−94 723−593−5.
  12. А.С., Лисовский К. Ю. Базы данных. Введение в теорию и методологию: Учебник / А. С. Марков, К. Ю. Лисовский — М.: Финансы и статистика, 2006. — 512 с: ил. — ISBN 5−279−2 298−5.
  13. Михеев Р. MS SQL Server 2005 для администраторов / Р. Михеев — СПб.: БХВ-Петербург — 544 с. — ISBN 5−94 157−796−6, 978−5-94 157−796−5.
  14. , М.Е. Программирование в Delphi глазами хакера. / М. Е. Фленов — СПб.: БХВ-Петербург, 2005. — 368 с.: ил. — ISBN 5−94 157−351−0.
  15. , Ю. А. Delphi 7 на примерах / Ю. А. Шпак. — М.: Юниор, 2003. — 344 с. ISBN: 966−7323−28−5.
Заполнить форму текущей работой
Купить готовую работу

ИЛИ