При разработке пользовательского интерфейса для информационной системы «Начисления заработной платы сотрудникам средне-специальных учебных заведений» расчет заработной платы производился для администрации и преподавательского состава. Также производились налоговые вычеты, по каждому месяцу, были созданы отчеты за текущий месяц по всему персоналу и квитки по каждому работнику.
Данная программа была создана по просьбе бухгалтеров школы №31, так как программа «1С – бухгалтерия» предназначена для различных сфер применения, и для того чтобы ее освоить необходимо очень много времени, сил и средств. Очень не многие бухгалтера могут освоить программу «1С - бухгалтерия», и поэтому они прибегают к другим способам расчета заработной платы к таким как бумажный способ или расчет заработной платы с помощью электронных таблиц Excel. В данном случае расчеты производятся в ручную по каждому сотруднику индивидуально. Это очень трудоемкий процесс и занимает очень много времени и ресурсов компьютера.
Созданная программа очень проста в применении и дополнительных знаний она не потребует. Данная программа удовлетворяет всем требованиям пожеланиям и замечаниям бухгалтеров школы №39 г. Усть-Каменогорска.
СПИСОК ЛИТЕРАТУРЫ
1. Симонович С. Специальная информатика /С. Симонович, Г. Евсеев, А. Алексеев. – М.: АСТпресс, 2001. – 478с.
2. Бакаревич Ю. Самоучитель MicrosoftAccess 2002 /Ю. Бакаревич, Н. Пушкина. - СПб.: БХВ – Петербург, 2004. – 720 с.
3. Бобровский С. Delphi7 учебный курс /С. Бобровский. – СПб.: Питер, 2004. – 834с.
4. Фаронов В. Система программирования Delphi /В. Фаронов. – СПб.: БХВ-Петербург, 2004. – 888с.
5. Родостовец В.П. Бухгалтерский учет для предприятий /В.П. Родостовец. – Алматы: Каржы – Каражат, 2002. – 978с.
6. Смурыгина И. Бюллетень бухгалтера: В помощь бухгалтеру /И. Смурыгина, К. Жанбыршиева // БИКО – 2005. - №6. – с.6-9
7. Гончаров А.Ю. Access 2003 /А.Ю. Гончаров. – М.: Кудиц – Образ, 2004. – 964с.
8. Михеева В. MicrosoftAccess 2002 / В. Михеева, И. Харитонова. - СПб.: БХВ – Петербург, 2003. – 1040с.
9. Фаронов В. Программирование баз данных в Delphi /В. Фаронов. – СПб.: Питер, 2004. – 759с.
10. Гофман В. Работа с базами данных в Delphi /В. Гофман. – СПб.: БХВ – Петербург, 2003. – 958с.
11. Роб П. Системы баз данных: проектирование, реализация и управление /П. Роб. - СПб.: БХВ – Петербург, 2004. – 1018с.
12. Гофман В. Работа с базами данных в Delphi /В. Гофман, А. Хомоненко. - СПб.: БХВ – Петербург, 2003. – 624с.
13. Драхвелидзе П. Программирование в Delphi 7 /П. Драхвелидзе, Е. Марков. - СПб.: БХВ – Петербург, 2004. – 784 с.
14. Хомоненко А. Самоучитель Delphi /А. Хомоненко, В. Гофман. - СПб.: БХВ – Петербург, 2003. – 576с.
15. Михеев С.Л. Access 2000 /С.Л. Михеев.– М.: Кудиц – Образ, 2000. – 964с.
16. Роббинс Д. Отладка приложений /Д. Робинс. – СПб.: БХВ – Петербург, 2003. – 512с.
17. Бекаревич Ю. Самоучитель MicrosoftAccess 2000 /Ю. Бекаревич, Н. Пушкина.- СПб.: БХВ – Петербург, 2000. – 480с.
18. Бекаревич Ю. MicrosoftAccess 2000 за 30 занятий / Ю. Бекаревич, Н. Пушкина.- СПб.: БХВ – Петербург, 2000. – 480с.
19. Мамаев Е. MS SQL Server: проектирование и реализация баз данных /Е. Мамаев.- СПб.: БХВ – Петербург, 2003. – 496с.
20. Понамарев В. COM и ActiveX в Delphi /В. Понамарев.- СПб.: БХВ – Петербург, 2000. – 320с.
21. Тихомиров Ю. MicrosoftSQLServer /Ю. Тихомиров.- СПб.: БХВ – Петербург, 2000. – 320с.
22. Долженков В. Microsoft Excel 2002 /В. Долженков, Ю. Колесников.- СПб.: БХВ – Петербург, 2000. – 1072с.
23. Андерсен В. Разработка приложений в Access 97 /В. Андерсен.- СПб.: БХВ – Петербург, 2000. – 320с.
24. Гарнаев А. Microsoft Excel: разработка приложений /А. Гарнаев.- СПб.: БХВ – Петербург, 2000. – 320 с.
25. Родостовец В.П. Бухгалтерский учет: учебный курс /В.П. Родостовец. – Алматы: Каржы – Каражат, 2002. – 978с.
26. Фаронов В. Система программирования Delphi /В. Фаронов. – СПб.: БХВ-Петербург, 2004. – 888с.
27. Гофман В. Работа с базами данных в Delphi /В. Гофман, А. Хомоненко. - СПб.: БХВ – Петербург, 2003. – 624с.
28. Понамарев В. Механизм доступа ActiveX в Delphi /В. Понамарев.- СПб.: БХВ – Петербург, 2000. – 320с.
29. Бекаревич Ю. MicrosoftAccess 2000: Экспресс-курс /Ю. Бекаревич, Н. Пушкина.- СПб.: БХВ – Петербург, 2000. – 480с.
30. Погорелов В. Delphi: Быстрый старт /В. Погорелов.- СПб.: БХВ – Петербург, 2000. – 320с.
ПРИЛОЖЕНИЕ А
Листинг главной формы программы
unit UnMainForm;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, menu, jpeg, StdCtrls, Buttons;
var
MainForm: TMainForm;
implementation
uses menu_ras, dmPayU, prjBase, grid_Year;
{$R *.dfm}
procedure TMainForm.FormCreate(Sender: TObject);
begin
SpeedButton1.Hint:='Выход';
SpeedButton2.Hint:='Справка';
SpeedButton3.Hint:='РасчетЗП';
SpeedButton4.Hint:='Данныезапрошедшиегода';
SpeedButton5.Hint:='Ввод\редактирование '+chr(13)+ 'данных о работниках';
end;
procedure TMainForm.Label2Click(Sender: TObject);
begin
MainForm.Visible:=false;
frm_menu.ShowModal;
end;
procedure TMainForm.Label5Click(Sender: TObject);
begin
winhelp(MainForm.Handle,'HLP1.HLP',HELP_CONTEXT, 1);
end;
procedure TMainForm.Label3Click(Sender: TObject);
begin
MainForm.Visible:=false;
menu2.ShowModal;
end;
procedure TMainForm.Label7Click(Sender: TObject);
begin
TabYear.ShowModal;
end;
procedure TMainForm.SpeedButton1Click(Sender: TObject);
begin
mainform.Close;
end;
procedure TMainForm.SpeedButton5Click(Sender: TObject);
begin
MainForm.Visible:=false;
frm_menu.ShowModal;
end;
procedure TMainForm.SpeedButton3Click(Sender: TObject);
begin
MainForm.Visible:=false;
menu2.ShowModal;
end;
procedure TMainForm.SpeedButton4Click(Sender: TObject);
begin
TabYear.ShowModal;
end;
procedure TMainForm.SpeedButton2Click(Sender: TObject);
begin
winhelp(MainForm.Handle,'HLP1.HLP',HELP_CONTEXT, 1); end;
ПРИЛОЖЕНИЕ Б
Листинг модуля данных
unit dmPayU;
interface
uses
SysUtils, Classes, DB, ADODB, DdeMan, OleServer, ExcelXP;
procedure moveCalcFields(DataSet: TDataSet);
procedure personCalcFields(DataSet: TDataSet);
procedure yearCalcFields(DataSet: TDataSet);
var
dmPay: TdmPay;
implementation
{$R *.dfm}
procedure TdmPay.moveCalcFields(DataSet: TDataSet);
begin
//ставка для расчета
with dmPay.move do
fields[33].AsCurrency:=fields[3].AsFloat*person.Fields[4].AsCurrency;
//недельный час (1-4)классах
if dmpay.move.Fields[28].AsBoolean=true then
with dmpay.move do
fields[34].AsCurrency:=fields[33].AsCurrency/coff.Fields[1].AsFloat
else
with dmpay.move do
fields[34].AsCurrency:=0;
//недельный час (5-11)классах
if dmpay.move.Fields[28].AsBoolean=true then
with dmpay.move do
fields[35].AsCurrency:=fields[33].AsCurrency/coff.Fields[2].AsFloat
else
with dmpay.move do
fields[35].AsCurrency:=0;
//разовый час (1-4)
if dmpay.move.Fields[28].AsBoolean=true then
with dmpay.move do
fields[36].AsCurrency:=fields[33].AsCurrency/coff.Fields[3].AsFloat
else
with dmpay.move do
fields[36].AsCurrency:=0;
//разовый час (5-11)
if dmpay.move.Fields[28].AsBoolean=true then
with dmpay.move do
fields[37].AsCurrency:=fields[33].AsCurrency/coff.Fields[4].AsFloat
else
with dmpay.move do
fields[37].AsCurrency:=0;
//Экология
if dmpay.move.Fields[28].AsBoolean=true then
with dmPay.move do
fields[39].AsFloat:=coff.Fields[5].AsFloat*person.fields[9].AsFloat/person.fields[7].AsFloat
else dmpay.move.fields[39].AsCurrency:=0;
//ЗП
with dmpay.move do
fields[40].AsCurrency:=((fields[5].AsFloat+fields[6].AsFloat+fields[9].AsFloat+fields[10].AsFloat+fields[13].AsFloat+fields[14].AsFloat)*fields[34].AsFloat+(fields[7].AsFloat+fields[8].AsFloat+fields[11].AsFloat+fields[12].AsFloat+fields[15].AsFloat+fields[16].AsFloat)*fields[35].AsFloat)*person.Fields[9].AsInteger/person.Fields[7].AsInteger;
// Проверка тетрадей
if (dmPay.move.FieldByName('Предмет').AsString='начальные классы') then
begin
with dmpay.move do
fields[41].AsCurrency:=dmpay.person.Fields[4].AsCurrency*fields[25].AsFloat* person.Fields[9].AsInteger/person.Fields[7].AsInteger
end else
with dmpay.move do
if fields[29].AsBoolean=true then
begin
fields[41].AsCurrency:=((fields[5].AsFloat+fields[6].AsFloat+(fields[9].AsFloat+ fields[10].AsFloat+fields[13].AsFloat+fields[14].AsFloat)/2)*fields[25].AsFloat/ coff.Fields[1].AsFloat+((fields[7].AsFloat+(fields[11].AsFloat+fields[15].AsFloat) /2)*fields[26].AsFloat+(fields[8].AsFloat+(fields[12].AsFloat+fields[16].AsFloat)/2)*fields[27].AsFloat/coff.Fields[2].AsFloat)*person.Fields[4].AsCurrency* person.Fields[9].AsInteger/person.Fields[7].AsInteger
end else
with dmpay.move do
fields[41].AsCurrency:=((fields[5].AsFloat+fields[6].AsFloat)*fields[25].AsFloat/ coff.Fields[1].AsFloat+(fields[7].AsFloat*fields[26].AsFloat+fields[8].AsFloat* fields[27].AsFloat/coff.Fields[2].AsFloat)*person.Fields[4].AsCurrency* person.Fields[9].AsInteger/person.Fields[7].AsInteger;
// Замена
with dmpay.move do
fields[42].AsCurrency:= (fields[17].AsFloat+ fields[18].AsFloat) * fields[36].AsFloat + ( fields[19].AsFloat+ fields[20].AsFloat)* fields[37].AsFloat;
// Углубленное изучение
withdmpay.movedo
fields[43].AsCurrency:=((fields[5].AsFloat+fields[6].AsFloat+fields[9].AsFloat+ fields[10].AsFloat+fields[13].AsFloat+fields[14].AsFloat)/coff.Fields[1].AsFloat+ (fields[7].AsFloat+fields[11].AsFloat+fields[15].AsFloat+fields[8].AsFloat+ fields[12].AsFloat+fields[16].AsFloat)/coff.Fields[2].AsFloat)* person.Fields[4].AsCurrency*fields[22].AsFloat*person.Fields[9].AsInteger/ person.Fields[7].AsInteger;
// Замена углубленного изучения
withdmpay.movedo
fields[44].AsCurrency:=((fields[17].AsFloat+fields[18].AsFloat)/coff.Fields[3].AsFloat + (fields[19].AsFloat+fields[20].AsFloat) / coff.Fields[4].AsFloat) * fields[22].AsFloat*person.Fields[4].AsFloat;
//Оплата ставки
with dmpay.move do
fields[45].AsCurrency:=fields[30].AsFloat*fields[33].AsFloat*person.Fields[9].AsInteger / person.Fields[7].AsInteger;
//Классное руководство
withdmpay.movedo
fields[46].AsCurrency:=person.Fields[4].AsFloat*fields[21].AsFloat* person.Fields[9].AsInteger / person.Fields[7].AsInteger;
//Вредность
with dmpay.move do
fields[47].AsCurrency:=person.Fields[4].AsFloat*fields[23].AsFloat* person.Fields[9].AsInteger/person.Fields[7].AsInteger;
// Внеклассная работа
with dmpay.move do
fields[48].AsCurrency:=person.Fields[4].AsFloat*fields[24].AsFloat* person.Fields[9].AsInteger/person.Fields[7].AsInteger;
//Итого
with dmpay.move do
fields[49].AsCurrency:=fields[47].AsCurrency+fields[46].AsCurrency+ fields[45].AsCurrency+fields[44].AsCurrency+fields[42].AsCurrency+ fields[41].AsCurrency+fields[40].AsCurrency+fields[39].AsCurrency+ fields[48].AsCurrency+fields[43].AsCurrency;
//Обязательные пенсионные взносы
withdmpay.movedo
fields[53].AsCurrency:=fields[54].AsFloat*fields[49].AsFloat;
end;
procedure TdmPay.personCalcFields(DataSet: TDataSet);
begin
with dmPay.person do
fields[9].AsFloat:=fields[7].AsFloat-fields[8].AsFloat;
end;
Листингокнапоиска:
procedure Tfff.SpeedButton2Click(Sender: TObject);
var LO:TLocateOptions;
begin
LO:=[];
if CheckBox1.Checked then LO:=LO+[loCaseInsensitive];
if Checkbox2.Checked then LO:=[loPartialKey];
dmPay.person.Locate('P_Name',edit1.Text,LO);
fff.Close;
end;
end.
ПРИЛОЖЕНИЕ В
Листинг окна программы «Сумма ИПН»
unit ipn;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, DBCtrls, Mask, ExtCtrls, ExcelXP, OleServer, Menus;
var
frm_ipn: Tfrm_ipn;
implementation
uses dmPayU, sum_soc, soc, prjBase, tabTime, frm_tim, frm_kl_ruk, frm_propusk, PropD, frm_vnekl, frm_vred, frm_ekolg, Zam, frm_kn;
{$R *.dfm}
procedure Tfrm_ipn.Button1Click(Sender: TObject);
var n:OleVariant;
begin
n:='C:\ЗарПлата\nal.xls';
excelapplication1.Workbooks.Open(n,emptyParam,emptyParam,emptyParam,emptyParam,emptyParam,emptyParam,emptyParam,emptyParam,emptyParam,emptyParam,emptyParam,emptyParam,emptyParam,emptyParam,0);
ExcelWorkbook1.ConnectTo(ExcelApplication1.ActiveWorkbook);
ExcelApplication1.Cells.Item[13,11].value:=DBedit2.Text;
ExcelWorkbook1.Save;
// обменданными
edit39.Text:=excelapplication1.Cells.Item[13,10];
edit40.Text:=excelapplication1.Cells.Item[14,10];
edit41.Text:=excelapplication1.Cells.Item[15,10];
edit42.Text:=excelapplication1.Cells.Item[16,10];
edit43.Text:=excelapplication1.Cells.Item[17,10];
edit44.Text:=excelapplication1.Cells.Item[18,10];
edit45.Text:=excelapplication1.Cells.Item[19,10];
edit46.Text:=excelapplication1.Cells.Item[20,10];
edit47.Text:=excelapplication1.Cells.Item[21,10];
edit48.Text:=excelapplication1.Cells.Item[22,10];
edit49.Text:=excelapplication1.Cells.Item[23,10];
edit50.Text:=excelapplication1.Cells.Item[24,10];
edit52.Text:=excelapplication1.Cells.Item[25,10];
edit27.Text:=excelapplication1.Cells.Item[13,12];
edit28.Text:=excelapplication1.Cells.Item[14,12];