Сумма
|
Дата
сдачи
|
5000
|
23.12.2012
|
5000
|
25.12.2012
|
4. Описание технологии и алгоритмов решения
задачи и их математических реализаций
Вся область программы предназначена для
использования её в однопользовательском режиме. Все действия в программе
выполняет одно лицо, работающее с данной программой.
Всю программу по сути можно разделить на две
части:
Область справочников;
- Область Выдачи;
Область справочников предназначена для
введения и поиска информации в справочниках, создании отчётов по критериям.
Область поставки представляет собой отчёты по
поставленным товарам за определённый период. Область выдачи представляет собой
соединенные между собой справочники, что позволяет начислить подарки детям
сотрудников сразу всем детям сотрудника так же это можно сделать и только
конкретному ребенку.
5. Разработка диалогов приложения пользователя
На главной форме осуществляется выбор действия с
помощью меню 5.1
Рисунок 5.1 - Главная форма
На рисунке 5.2 показано форма управления
справочником групп
.
Рисунок 5.2 - Управление справочником групп
Рисунок 5.3 на данной форме представлено управление
справочником учащихся
.
Рисунок 5.3 - Управление справочником учащихся
На рисунке 5.4 ввод периода для отчета
Рисунок 5.4 - Отчет за период
Рисунок 5.5 Сформированный отчет за период
Рисунок 5.6 - Отчет за год
6. Руководство пользователя
Разобьём программу на две части:
Справочники;
- Ведомость;
Рассмотрим работу со справочниками. В программе
имеются справочники сотрудников, детей. Для корректной работы программы
изначально необходимо заполнить все справочники данными.
Для добавления записи в справочник необходимо
заполнить все поля и нажать кнопку добавить. Для изменения необходимо внести в
поле или в несколько полей изменения и нажать кнопку изменить. Для удаления
записи необходимо выбрать из таблицы нужную запись и нажать кнопку удалить.
Поиск по справочникам осуществляется вводом в сроку поиска символа или
несколько символов искомой комбинации после чего в таблице сразу отобразятся
поля с совпадающими символами, для того что бы все поля содержащие таблицу
отобразились необходимо просто очистить поле поиска.
Работа с ведомостью осуществляется путем выбора
группы после чего устанавливаем дату сдачи после чего вводим или выбираем дату
из списка и нажмите кнопку выплатить. Поиск осуществляется так же как и в
справочниках.
Формирование отчет за год производиться образом
из системной даты сервера отнимается год и по году группируется все выплаты.
Отчет за период формируется таким образом что вам необходимо выбрать начальную
дату и конечную при этом начальная дата не может быть больше конечной и так же
больше системной (существующей) после чего как даты выбраны необходимо нажать
кнопку сформировать и после этого на экране появиться отчет по конкретному
периоду времени.
Заключение
В процессе выполнения курсового проекта была
разработана программа автоматизации учёта выплат учащимися профсоюзных взносов.
Программный продукт разработан в соответствии со
всеми требованиями норм и качества и является:
выполненным в соответствии с
техническим заданием;
универсальным, так как подойдёт на
системы с низкими техническими характеристиками;
надёжным, обеспечивается правильное
функционирование;
простым в использовании, так как
программой довольно просто управлять.
Данную задачу считаю выполненной в соответствии
с техническим заданием, однако программа может быть доработана с целью
повышения её эффективности и добавления новых возможностей.
Список использованных источников
1. Ашарчук Л.М. - Информационные
системы в управлении, 2009.
. Норенков, И.П. - Основы
автоматизированного проектирования: Учеб. Для вузов. - М.: Изд-во МГТУ им. Н.
Э. Баумана, 2000. - 360 с.
. Астафьева В.А., Ковальчук Е.В. -
Технологии автоматизированной обработки, 2006.
. Прохорова Т.В. - Автоматизация
учета в системе «1С Предприятие 7.7» для Республики Беларусь, 2006.
. Гетц К. - Программирование в
Microsoft Office, 2000.
. Бухгалтерия 7.7. Руководство по
ведению учета, 2000.
. Алан Р. Саймон. Стратегические
технологии баз данных. - М.: «Финансы и статистика», 2001
. Архангельский А.Я., Тагин М.А. -
Программирование в C++ Builder 6 и 2006.- 224 с.: ил.
. Дьюхерт С. C++. Священные знания.
- Пер. с анл. - СПб.: Символ-Плюс, 2012. - 240 с., ил.
. Динман М.И. С++. Освой на
примерах. - СПб.: БЧИ-Петербург, 2006. - 348 с.: ил.
11. Послед
Б.С.
- Borland C++ Builder 6. Разработка приложений баз данных -
2003. - 200 с.: ил.
. Фаронов В. Программирование на
языке высокого уровня: Учебник для вузов / В. Фаронов. - Санкт-Петербург: ООО
«Питер Пресс»,2009. - 640с.
Приложение А
Unit1;.Windows, Winapi.Messages,
System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,.Controls,
Vcl.Forms, Vcl.Dialogs, Vcl.Menus, Vcl.XPMan, Data.DB,.Win.ADODB, Vcl.StdCtrls,
frxClass, frxDBSet;= class(TForm): TMainMenu;: TMenuItem;: TMenuItem;:
TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;:
TMenuItem;: TXPManifest;: TADOConnection;: TLabel;: TMenuItem;: TMenuItem;:
TfrxDBDataset;N5Click(Sender: TObject);FormCreate(Sender:
TObject);N3Click(Sender: TObject);N8Click(Sender: TObject);N9Click(Sender:
TObject);N11Click(Sender: TObject);N6Click(Sender: TObject);N7Click(Sender:
TObject);FormCloseQuery(Sender: TObject; var CanClose: Boolean);FormClose(Sender:
TObject; var Action: TCloseAction);
{ Private declarations }
{ Public declarations };:
TForm1;_i:TextFile;_b:string;: Integer;:Boolean;: TDateTime;, myMonth, myDay:
Word;
{$R *.dfm}Unit2, Unit3, Unit4,
Unit5, Unit6, Unit7;TForm1.FormClose(Sender: TObject; var Action:
TCloseAction);.ADOConnection1.Connected:=false;;TForm1.FormCloseQuery(Sender:
TObject; var CanClose:
Boolean);.ADOConnection1.Connected:=false;;TForm1.FormCreate(Sender:
TObject);(file_i,'conf.txt');(file_i);(file_i, file_b);.ADOConnection1.ConnectionString:=file_b;.ADOConnection1.Connected:=True;(file_i);.ADOConnection1.Connected:=false;(file_i);:=
MessageDlg('База не
подключена,
Настройте
конфигурацию
с
БД,
либо
выйдите',mtError,
mbOKCancel, 0);buttonSelected = mrOK then Form1.Show;buttonSelected = mrCancel
then Application.Terminate;;
(Form1.ADOConnection1.Connected=true)
then
Form1.Label1.Caption:='База данных
подключена'.Label1.Caption:='База данных не подключена';
еnd;
TForm1.N11Click(Sender:
TObject);.ShowModal;;TForm1.N3Click(Sender: TObject);.ShowModal;;
TForm1.N5Click(Sender:
TObject);.Terminate;;
TForm1.N7Click(Sender:
TObject);.ShowModal;;
TForm1.N8Click(Sender:
TObject);.ShowModal;;
TForm1.N9Click(Sender:
TObject);.ShowModal;;.Windows, Winapi.Messages, System.SysUtils,
System.Variants, System.Classes, Vcl.Graphics,.Controls, Vcl.Forms,
Vcl.Dialogs, Vcl.StdCtrls;= class(TForm): TLabel;: TEdit;: TLabel;: TEdit;:
TCheckBox;: TButton;CheckBox1Click(Sender: TObject);FormCreate(Sender: TObject);Button1Click(Sender:
TObject);
{ Private declarations }
{ Public declarations };
: TForm2;
{$R
*.dfm}Unit1;TForm2.Button1Click(Sender: TObject);
if(form2.Edit1.Text<>'')
and(Form2.Edit2.Text<>'') and(Form2.Edit1.Text<>'
')and(Form2.Edit2.Text<>' ') then
begin(Form1.ADOConnection1.Connected=false) then
begin.ADOConnection1.Connected:=false;.ADOConnection1.ConnectionString:='Provider=SQLOLEDB.1;Integrated
Security=SSPI;Persist Security Info=False;Initial
Catalog='+Form2.Edit2.Text+';Data Source='+Form2.Edit1.Text+';Use Procedure for
Prepare=1;Auto Translate=True;Packet Size=4096;Workstation ID=ADMINKA;Use
Encryption for Data=False;Tag with column collation when
possible=False;';.ADOConnection1.Connected:=True;:=true;
except:=false;('Имя сервера или название бд
неверные');
Form2.Edit1.Clear;.Edit2.Clear;;
(ler=true) then
begin_b:=Form1.ADOConnection1.ConnectionString;(file_i, 'conf.txt'); // Связь
переменной
с
файлом.(file_i);
// Создания
нового
файла(file_i,file_b);
// Запись
строки
в
файл.(file_i);('База
Подключена');.Label1.Caption:='База
данных
подключена';.Close;;else
begin(Form1.ADOConnection1.Connected=false) then begin
Form1.Label1.Caption:='База данных не
подключена';
Form1.Label1.Font.Color:=clRed;.Label1.Color:=clRed;.Cursor:=crAppStart;.Label1.Caption:='База
данных
подключена';.Label1.Color:=clGreen;.Edit1.Clear;.Edit2.Clear;('База
Подключена');.Close;;
('Вы
не
ввели
все
данные');;
TForm2.CheckBox1Click(Sender:
TObject);(Form2.CheckBox1.Checked=true) then
begin.Edit2.Enabled:=false;.Edit2.Text:='sveta';begin.Edit2.Enabled:=true;.Edit2.Clear;;;TForm2.FormCreate(Sender:
TObject);.Edit2.Text:='sveta';.Edit2.Enabled:=false;;.Unit2;.Windows, Winapi.Messages,
System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,.Controls,
Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls;= class(TForm): TLabel;: TEdit;: TLabel;:
TEdit;: TCheckBox;: TButton;CheckBox1Click(Sender: TObject);FormCreate(Sender:
TObject);Button1Click(Sender: TObject);
{ Private declarations }
{ Public declarations };
: TForm2;
{$R *.dfm}Unit1;
TForm2.Button1Click(Sender:
TObject);
if(form2.Edit1.Text<>'')
and(Form2.Edit2.Text<>'') and(Form2.Edit1.Text<>'
')and(Form2.Edit2.Text<>' ') then begin(Form1.ADOConnection1.Connected=false)
then
begin.ADOConnection1.Connected:=false;.ADOConnection1.ConnectionString:='Provider=SQLOLEDB.1;Integrated
Security=SSPI;Persist Security Info=False;Initial
Catalog='+Form2.Edit2.Text+';Data Source='+Form2.Edit1.Text+';Use Procedure for
Prepare=1;Auto Translate=True;Packet Size=4096;Workstation ID=ADMINKA;Use
Encryption for Data=False;Tag with column collation when
possible=False;';.ADOConnection1.Connected:=True;:=true;
except:=false;('Имя сервера или название бд неверные');
Form2.Edit1.Clear;.Edit2.Clear;;
(ler=true) then
begin_b:=Form1.ADOConnection1.ConnectionString;(file_i, 'conf.txt'); // Связь
переменной
с
файлом.(file_i);
// Создания
нового
файла(file_i,file_b);
// Запись
строки
в
файл.(file_i);('База
Подключена');.Label1.Caption:='База
данных
подключена';.Close;;else
begin(Form1.ADOConnection1.Connected=false) then begin
Form1.Label1.Caption:='База данных не
подключена';
Form1.Label1.Font.Color:=clRed;.Label1.Color:=clRed;.Cursor:=crAppStart;.Label1.Caption:='База
данных
подключена';.Label1.Color:=clGreen;.Edit1.Clear;.Edit2.Clear;('База
Подключена');.Close;;
('Вы
не
ввели
все
данные');;
TForm2.CheckBox1Click(Sender:
TObject);(Form2.CheckBox1.Checked=true) then
begin.Edit2.Enabled:=false;.Edit2.Text:='sveta';begin.Edit2.Enabled:=true;.Edit2.Clear;;
TForm2.FormCreate(Sender:
TObject);.Edit2.Text:='sveta';.Edit2.Enabled:=false;;Unit2;.Windows,
Winapi.Messages, System.SysUtils, System.Variants, System.Classes,
Vcl.Graphics,.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls;= class(TForm):
TLabel;: TEdit;: TLabel;: TEdit;: TCheckBox;: TButton;CheckBox1Click(Sender:
TObject);FormCreate(Sender: TObject);Button1Click(Sender: TObject);
{ Private declarations }
{ Public declarations };
: TForm2;
{$R *.dfm}Unit1;TForm2.Button1Click(Sender:
TObject);(form2.Edit1.Text<>'') and(Form2.Edit2.Text<>'')
and(Form2.Edit1.Text<>' ') and(Form2.Edit2.Text<>' ') then
begin(Form1.ADOConnection1.Connected=false) then
begin.ADOConnection1.Connected:=false;.ADOConnection1.ConnectionString:='Provider=SQLOLEDB.1;Integrated
Security=SSPI;Persist Security Info=False;Initial
Catalog='+Form2.Edit2.Text+';Data Source='+Form2.Edit1.Text+';Use Procedure for
Prepare=1;Auto Translate=True;Packet Size=4096;Workstation ID=ADMINKA;Use
Encryption for Data=False;Tag with column collation when
possible=False;';.ADOConnection1.Connected:=True;:=true;
except:=false;('Имя сервера или название бд
неверные');
Form2.Edit1.Clear;.Edit2.Clear;;
(ler=true) then
begin_b:=Form1.ADOConnection1.ConnectionString;(file_i, 'conf.txt'); // Связь
переменной
с
файлом.(file_i);
// Создания
нового
файла(file_i,file_b);
// Запись
строки
в
файл.(file_i);('База
Подключена');.Label1.Caption:='База
данных
подключена';.Close;;else
begin(Form1.ADOConnection1.Connected=false) then begin
Form1.Label1.Caption:='База данных не
подключена';
Form1.Label1.Font.Color:=clRed;.Label1.Color:=clRed;.Cursor:=crAppStart;.Label1.Caption:='База
данных
подключена';.Label1.Color:=clGreen;.Edit1.Clear;.Edit2.Clear;('База
Подключена');.Close;;
ShowMessage('Вы не ввели все данные');
end;TForm2.CheckBox1Click(Sender:
TObject);(Form2.CheckBox1.Checked=true) then
begin.Edit2.Enabled:=false;.Edit2.Text:='sveta';begin.Edit2.Enabled:=true;.Edit2.Clear;;
TForm2.FormCreate(Sender:
TObject);.Edit2.Text:='sveta';.Edit2.Enabled:=false;;
. unit Unit5;.Windows,
Winapi.Messages, System.SysUtils, System.Variants, System.Classes,
Vcl.Graphics,.Controls, Vcl.Forms, Vcl.Dialogs, Data.DB, Data.Win.ADODB,
Vcl.StdCtrls,.ComCtrls, Vcl.DBCtrls, Vcl.Grids, Vcl.DBGrids, Vcl.ExtCtrls;=
class(TForm): TPanel;: TDBGrid;: TDBGrid;: TLabel;: TEdit;: TDBLookupComboBox;:
TDateTimePicker;: TComboBox;: TLabel;: TLabel;: TLabel;: TButton;: TADOQuery;:
TDataSource;: TDataSource;id_vedom: TAutoIncField;id_stud: TIntegerField;data:
TWideStringField;summa: TIntegerField;: TADOQuery;id_stud:
TAutoIncField;id_grup: TIntegerField;fio_stud: TStringField;id_grup_1:
TAutoIncField;name_grup: TStringField;Edit1Change(Sender:
TObject);ADOQuery1AfterScroll(DataSet: TDataSet);DBLookupComboBox1Click(Sender:
TObject);Button1Click(Sender: TObject);FormCreate(Sender: TObject);
{ Private declarations }
{ Public declarations };
: TForm5;: TDateTime;:
TDateTime;:Integer;:integer;, myMonth, myDay: Word;
{$R *.dfm}Unit1,
Unit3;TForm5.ADOQuery1AfterScroll(DataSet: TDataSet);.ADOQuery2.Filtered:=False;.ADOQuery2.Filter:='id_stud
='+IntToStr(ADOQuery1.FieldByName('id_stud').AsInteger);.ADOQuery2.Filtered:=True;;
TForm5.Button1Click(Sender:
TObject);:=now;:=Form5.DateTimePicker1.Date;(myDate<=tmDate) then('Введена
дата
больше
существующей');.DateTimePicker1.Date:=now;
exit;;
//проверка оплады группы за месяц
if(Form5.DBLookupComboBox1.Text<>'')and(Form5.ComboBox1.Text<>'')and(Form5.ADOQuery1.RecordCount>0)
then begin:=Form5.DateTimePicker1.Date;(myDate,myYear, myMonth,
myDay);.ADOQuery1.First;:=Form5.ADOQuery1.RecordCount;i:=1 to kol do
begin.ADOQuery2.Insert;.ADOQuery2.FieldByName('id_stud').
AsInteger:=Form5.ADOQuery1.FieldByName('id_stud').AsInteger;.ADOQuery2.FieldByName('summa').AsInteger:
=StrToInt(Form5.ComboBox1.text);.ADOQuery2.FieldByName('data').
AsDateTime:=EncodeDate(myYear,
myMonth,myDay);;.ADOQuery2.Post;.ADOQuery1.Next;;('Не
все
заполнено!!!');;
TForm5.DBLookupComboBox1Click(Sender:
TObject);.ADOQuery1.Active:=false;.ADOQuery1.SQL.Text:='select * from grup,stud
where grup.id_grup=stud.id_grup and
grup.id_grup='+IntToStr(Form5.DBLookupComboBox1.KeyValue);.ADOQuery1.Active:=true;;
TForm5.Edit1Change(Sender:
TObject);.ADOQuery1.Close();.ADOQuery1.SQL.text:='select * from grup,stud where
grup.id_grup=stud.id_grup and
grup.id_grup='+IntToStr(Form5.DBLookupComboBox1.KeyValue)+' and stud.fio_stud
like ''%' + Form5.Edit1.Text +'%''';.ADOQuery1.Open();;
TForm5.FormCreate(Sender:
TObject);.ComboBox1.ItemIndex:=0;.ADOQuery2.Active:=true;;
.Unit6;.Windows, Winapi.Messages,
System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,.Controls,
Vcl.Forms, Vcl.Dialogs, Data.DB, Data.Win.ADODB, Vcl.StdCtrls,.ComCtrls,
Vcl.DBCtrls, frxClass, frxDBSet;= class(TForm): TLabel;: TLabel;: TLabel;:
TLabel;: TDBLookupComboBox;: TDateTimePicker;: TDateTimePicker;: TButton;:
TADOQuery;: TfrxDBDataset;: TDataSource;:
TfrxReport;DBLookupComboBox1Click(Sender: TObject);Button1Click(Sender:
TObject);DateTimePicker1Change(Sender: TObject);DateTimePicker2Change(Sender:
TObject);FormCreate(Sender: TObject);Button2Click(Sender: TObject);
{ Private declarations }
{ Public declarations };
: TForm6;: TDateTime;: TDateTime;,
myMonth, myDay: Word;, tmMonth, tmDay: Word;:TDateTime;, gupMonth, gupDay:
Word;
{$R *.dfm}Unit1, Unit4,
Unit3;TForm6.Button1Click(Sender:
TObject);(Form6.DBLookupComboBox1.Text<>'') then
begin:=Form6.DateTimePicker1.Date;:=Form6.DateTimePicker2.Date;.ADOQuery1.Active:=False;(myDate,myYear,
myMonth, myDay);(tmDate,tmYear, tmMonth, tmDay);.ADOQuery1.Parameters.ParamByName('D1').Value:=EncodeDate(myYear,myMonth,01);.ADOQuery1.Parameters.ParamByName('D2').Value:=EncodeDate(tmYear,
tmMonth,tmDay);.ADOQuery1.Active:=true;.frxReport1.ShowReport;
ShowMessage('Вы
не ввели группу');
end;
TForm6.Button2Click(Sender:
TObject);.frxReport1.ShowReport;;
TForm6.DateTimePicker1Change(Sender:
TObject);:=now;:=Form6.DateTimePicker1.Date;(myDate, myYear, myMonth,
myDay);(gupDate,gupYear, gupMonth, gupDay);(myDate<tmDate) then('Введена
дата
больше
существующей');.DateTimePicker1.Date:=now;;;
TForm6.DateTimePicker2Change(Sender:
TObject);:=now;:=Form6.DateTimePicker2.Date;(myDate, myYear, myMonth,
myDay);(gupDate,gupYear, gupMonth, gupDay);(myDate<tmDate) then('Введена
дата
больше
существующей');.DateTimePicker2.Date:=now;;;TForm6.DBLookupComboBox1Click(Sender:
TObject);.ADOQuery1.Parameters.ParamByName('d').Value:=Form6.DBLookupComboBox1.KeyValue;;
TForm6.FormCreate(Sender:
TObject);.ADOQuery1.Active:=true;
end;