Смекни!
smekni.com

Проектирование информационной системы "Начисление заработной платы сотрудникам школы" (стр. 8 из 9)

При разработке пользовательского интерфейса для информационной системы «Начисления заработной платы сотрудникам средне-специальных учебных заведений» расчет заработной платы производился для администрации и преподавательского состава. Также производились налоговые вычеты, по каждому месяцу, были созданы отчеты за текущий месяц по всему персоналу и квитки по каждому работнику.

Данная программа была создана по просьбе бухгалтеров школы №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];