Автоматизация расчетно-кассового обслуживания коммерческих банков.
Заказать уникальную курсовую работу- 64 64 страницы
- 15 + 15 источников
- Добавлена 12.12.2009
- Содержание
- Часть работы
- Список литературы
- Вопросы/Ответы
ВВЕДЕНИЕ
1.АНАЛИТИЧЕСКАЯ ЧАСТЬ
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-01495-9, 5-93772-087-3.
Бекаревич, Ю.Б. Самоучитель Microsoft Access 2002 / Ю.Б. Бекаревич, Н.В. Пушкина – СПб.: БХВ-Петербург, 2002. – 720 с. ISBN 5-94157-143-7.
Бобровский, С.И. Delphi 7. Учебный курс / С.И. Бобровский – СПб.: Питер, 2008. – 736 с.: ил. - ISBN 978-5-8046-0086-1.
Грабер, М. Введение в SQL / Пер. с англ. В. Ястребов – Издательство «Лори», 1996. – 380 с. – ISBN: 5-85582-010-6.
Дарахвелидзе, П.Г., Марков, Е. П. Программирование в Delphi 7 / П.Г. Дарахвелидзе, Е. П. Марков. – СПб.: БХВ-Петербург, 2003. – 784 с. - ISBN 5-94157-116-Х.
Кадлец, В. Delphi. Книга рецептов. Практические примеры, трюки и секреты / В. Кадлец – СПб.: Наука и техника, 2006. – 384 с. - ISBN 5-94387-269-8, 80-251-0017-0.
Карпов, Б. Delphi: специальный справочник / Б. Карпов – СПб.: Питер, 2002. – 688 с.: ил. - ISBN 5-272-00353-5.
Кузин, А. В. Базы данных: учеб. пособие для студ. высш. учеб. заведений / А.В. Кузин, С.В. Левонисова. — 2-е изд., стер. — М.: Издательский центр «Академия», 2008. — 320 с. I5ВN 978-5-7695-4833-8.
Кэнту, М. Delphi 7 для профессионалов / Марко Кэнту – СПб.: Питер, 2004. – 1076 с.: ил. - ISBN 5-94723-593-5.
Марков А.С., Лисовский К.Ю. Базы данных. Введение в теорию и методологию: Учебник / А.С. Марков, К.Ю. Лисовский — М.: Финансы и статистика, 2006. - 512 с: ил. — ISBN 5-279-02298-5.
Михеев Р. MS SQL Server 2005 для администраторов / Р. Михеев — СПб.: БХВ-Петербург — 544 с. — ISBN 5-94157-796-6, 978-5-94157-796-5.
Фленов, М.Е. Программирование в Delphi глазами хакера. / М.Е. Фленов – СПб.: БХВ-Петербург, 2005. – 368 с.: ил. - ISBN 5-94157-351-0.
Шпак, Ю. А. Delphi 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,'00000419'),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
49
Валюта
Код валюты
Код клиента
Код типа счета
Номер счета
Т Банковские операции
Дата операции
Номер счета
Сумма
Номер счета получателя
Наличные или безнал.
Клиент
Клиент
Операционист
Печать
Просмотр данных. Итоги работы
Клиент
Адрес
Телефон
Инн
Тип клиента
Код клиента
Тип счета
Валюта
Код типа счета
Т Счета клиентов клиентов
Спр Виды счетов Договоры клиентов
Спр Виды операций
Спр Клиенты
Спр Виды валют
Операция
% за выполнение
Сумма за выполнение
Валюта
Код операции
Поиск клиента в таблице клиентов
Клиент есть
Ввод сведений о клиенте
Счет есть
Открытие счета клиента
Выполнение операции по счету
Выдача квитанции клиенту
Выбор временного периода
Формирование отчетности
Проверка суммы на счете
нет
нет
нет
нет
Проверка суммы на счете
Просмотр файла
Выбор временного периода
Выдача квитанции клиенту
Выполнение операции по счету
Открытие счета клиента
Счет есть
Ввод сведений о клиенте
Клиент есть
Поиск клиента в списке
Просмотр операций
Вывод итогов в файл
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-01495-9, 5-93772-087-3.
4.Бекаревич, Ю.Б. Самоучитель Microsoft Access 2002 / Ю.Б. Бекаревич, Н.В. Пушкина – СПб.: БХВ-Петербург, 2002. – 720 с. ISBN 5-94157-143-7.
5.Бобровский, С.И. Delphi 7. Учебный курс / С.И. Бобровский – СПб.: Питер, 2008. – 736 с.: ил. - ISBN 978-5-8046-0086-1.
6.Грабер, М. Введение в SQL / Пер. с англ. В. Ястребов – Издательство «Лори», 1996. – 380 с. – ISBN: 5-85582-010-6.
7.Дарахвелидзе, П.Г., Марков, Е. П. Программирование в Delphi 7 / П.Г. Дарахвелидзе, Е. П. Марков. – СПб.: БХВ-Петербург, 2003. – 784 с. - ISBN 5-94157-116-Х.
8.Кадлец, В. Delphi. Книга рецептов. Практические примеры, трюки и секреты / В. Кадлец – СПб.: Наука и техника, 2006. – 384 с. - ISBN 5-94387-269-8, 80-251-0017-0.
9.Карпов, Б. Delphi: специальный справочник / Б. Карпов – СПб.: Питер, 2002. – 688 с.: ил. - ISBN 5-272-00353-5.
10.Кузин, А. В. Базы данных: учеб. пособие для студ. высш. учеб. заведений / А.В. Кузин, С.В. Левонисова. — 2-е изд., стер. — М.: Изда¬тельский центр «Академия», 2008. — 320 с. I5ВN 978-5-7695-4833-8.
11.Кэнту, М. Delphi 7 для профессионалов / Марко Кэнту – СПб.: Питер, 2004. – 1076 с.: ил. - ISBN 5-94723-593-5.
12.Марков А.С., Лисовский К.Ю. Базы данных. Введение в теорию и методологию: Учебник / А.С. Марков, К.Ю. Лисовский — М.: Финансы и статистика, 2006. - 512 с: ил. — ISBN 5-279-02298-5.
13.Михеев Р. MS SQL Server 2005 для администраторов / Р. Михеев — СПб.: БХВ-Петербург — 544 с. — ISBN 5-94157-796-6, 978-5-94157-796-5.
14.Фленов, М.Е. Программирование в Delphi глазами хакера. / М.Е. Фленов – СПб.: БХВ-Петербург, 2005. – 368 с.: ил. - ISBN 5-94157-351-0.
15.Шпак, Ю. А. Delphi 7 на примерах / Ю. А. Шпак. – М.: Юниор, 2003. – 344 с. ISBN: 966-7323-28-5.
Вопрос-ответ:
Какие виды счетов существуют в коммерческих банках?
В коммерческих банках существуют различные виды счетов, такие как текущие счета, счета до востребования, сберегательные счета, депозитные счета и другие.
Какие принципы лежат в основе расчетно кассового обслуживания коммерческих банков?
В расчетно кассовом обслуживании коммерческих банков лежат принципы оперативности, надежности и конфиденциальности. Оперативность подразумевает быстрое и точное выполнение операций, надежность - гарантию сохранности и безопасности средств клиентов, а конфиденциальность - сохранение информации о клиентах в тайне.
Какие услуги предлагаются в сфере расчетно кассового обслуживания в коммерческих банках?
В сфере расчетно кассового обслуживания коммерческих банков предлагаются услуги по открытию и ведению счетов, приему и выдаче наличных средств, проведению безналичных платежей, а также консультации и помощь в вопросах финансового управления.
Какие подразделения коммерческого банка автоматизируются в процессе автоматизации расчетно кассового обслуживания?
В процессе автоматизации расчетно кассового обслуживания коммерческого банка могут быть автоматизированы различные подразделения, такие как касса, операционное отделение, отделение по работе с клиентами, отделение по обработке платежей и другие.
Какие цели могут быть обоснованы при создании ИС для автоматизации расчетно кассового обслуживания коммерческих банков?
При создании ИС для автоматизации расчетно кассового обслуживания коммерческих банков могут быть обоснованы такие цели, как увеличение оперативности обслуживания клиентов, повышение качества и надежности проводимых операций, оптимизация бизнес-процессов и сокращение трудозатрат сотрудников.
Для чего применяется автоматизация расчетно-кассового обслуживания коммерческих банков?
Автоматизация расчетно-кассового обслуживания коммерческих банков используется для повышения эффективности работы банка, ускорения процессов обслуживания клиентов, уменьшения вероятности ошибок и обеспечения безопасности операций.
Какие виды счетов включены в расчетно-кассовое обслуживание коммерческих банков?
В расчетно-кассовое обслуживание коммерческих банков включены различные виды счетов, такие как текущие счета, депозитные счета, счета по валютным операциям и другие.
Какие услуги предоставляются в сфере расчетно-кассового обслуживания в коммерческих банках?
В сфере расчетно-кассового обслуживания в коммерческих банках предоставляются различные услуги, включающие прием и выдачу наличных денег, переводы между счетами, обслуживание пластиковых карт, выписки по счетам, консультации по финансовым вопросам и другие.