Расчет заработной платы

Автор: Пользователь скрыл имя, 30 Октября 2011 в 21:28, курсовая работа

Описание работы

В данной работе представлено прикладное программное обеспечение, которое позволяет автоматизировать расчет заработной платы.

Данный программный продукт предназначен, прежде всего, для ведения данных:
Справочник штрафов, премий и кредитов.
Список сотрудников организации
Табель учета рабочего времени

Данная программа не является универсальной

Работа содержит 1 файл

Курсовая.doc

— 1.09 Мб (Скачать)

    begin

      Form5.ComboBox1.items.Add(Form1.Table1.FieldByName('Tabnom').AsString); 

    end;

  end;

  Form1.Table1.Next;

end;

 

if not netdb then

begin

Form5.Caption:='Добавление в таблицу "Рабочие дни"';

Form5.Combobox1.Text:='Выбрать';

Form5.ShowModal;

end

else showmessage('У всех есть рабочие дни!');

end; 

procedure TForm4.FormCreate(Sender: TObject);

begin

Deistvie;

knopka;

end; 

//Кнопка "редактирование"

procedure TForm4.Button8Click(Sender: TObject);

begin

Form5.ComboBox1.Clear;

Table1.First;

While not Table1.Eof do 

begin

  Form5.ComboBox1.items.Add(Table1.FieldByName('Tabnom').AsString);

  Table1.Next;

end;

redaktir:=true;

Form5.ComboBox1.Text:='Выбрать';

Form5.Caption:='Редактирование  таблицы "Рабочие дни"';

Form5.ShowModal;

end; 

end.

 

Код модуля Unit5 

unit Unit5;//Редактирование/добавление записи в таблице "Рабочие дни"

interface

// Подключаемые  библеотеки

uses

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

  Dialogs, StdCtrls; 

type //Описание  объектов

  TForm5 = class(TForm)

    ComboBox1: TComboBox;

    ComboBox2: TComboBox;

    Button1: TButton;

    Button2: TButton;

    Label1: TLabel;

    Label2: TLabel;

    Function vedomost(Tabnom:string; kod:integer):String;

    procedure Button2Click(Sender: TObject);

    procedure Button1Click(Sender: TObject);

    procedure FormClose(Sender: TObject; var Action: TCloseAction);

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

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

    procedure ComboBox1Change(Sender: TObject);

    procedure FormCreate(Sender: TObject);

  private

    { Private declarations }

  public

    { Public declarations }

  end; 

var

  Form5: TForm5; 

implementation 

// Подключаемые  модули

uses Unit4, // Модуль окна "Рабочие дни"

     Unit6, // Модуль окна "Начисление и удержание"

        Unit1, // Модуль окна "Сотрудники"

        Unit8; // Модуль окна "Учетная ведомость" 

{$R *.dfm} 

// Кнопка "Отмена"

procedure TForm5.Button2Click(Sender: TObject);

begin

close;

end;

 

// Функция для  расчета и составления ведомости

Function TForm5.vedomost(Tabnom:string; kod:integer):String;

var

    Yderzhan:real;

    Nachisl1:real;

    Nachisl2:real;

    Znachenie:real;

    Zarplat:real;

    oklad:real;

    name:string;

    zarplat2:real;

begin

Yderzhan:=0;

Nachisl1:=0;

Nachisl2:=0;

Znachenie:=0;

Zarplat:=0;

name:='';

oklad:=0; 

//Нахождение  рабочих дней у данного сотрудника

if kod = 0 then

begin

  Form4.Table1.First;

  While not form4.Table1.Eof do

  begin

  if tabnom = Form4.Table1.FieldByName('Tabnom').AsString then

  kod:=Form4.Table1.FieldByName('kod').AsVariant;

  Form4.Table1.Next;

  end;

end; 

// нахождение  признаков у этого табельного номера

Form6.Table1.First;

While not Form6.Table1.Eof do

begin

  if Tabnom = Form6.Table1.FieldByName('tabnom').AsString then

  begin

    if Form6.Table1.FieldByName('Znachenie').AsVariant < 0 then

    Yderzhan:=Yderzhan+ Form6.Table1.FieldByName('Znachenie').AsVariant

    else Nachisl1:=Nachisl1+Form6.Table1.FieldByName('Znachenie').AsVariant;

  end; 

Form6.Table1.Next;

end; 
 

// нахождение  оклада и ФИО

Form1.Table1.First;

While not Form1.Table1.eof do

begin

  if Tabnom =  Form1.Table1.FieldByName('Tabnom').asString then

  begin

    oklad:=Form1.Table1.FieldByName('Oklad').asVariant;

    name:= Form1.Table1.FieldByName('Fio').asstring;

  end;

Form1.Table1.Next;

end; 

Form8.Table1.First;

While not Form8.Table1.Eof do

begin

  if Form8.Table1.FieldByName('Tabnom').AsString =Tabnom then

  Form8.Table1.Delete;

  Form8.Table1.Next;

end; 

//Расчет зарплаты 

  Zarplat:=(Oklad/25)*kod;

//Расчет начислений 

  Nachisl2:=(Nachisl1)+((zarplat+Nachisl1)*0.15);

//Расчет удержаний

  zarplat2:=((((zarplat+Nachisl2)*0.13)+((zarplat+Nachisl2)*0.02)+

  ((zarplat+Nachisl2)/100))-Yderzhan); 

//Запись в  таблицу

  Form8.Table1.Insert;

  Form8.Table1.Edit;

  Form8.Table1.SetFields([nil,Tabnom,kod,name,oklad,zarplat,Nachisl2,

  zarplat2,

  ((zarplat+Nachisl2)-zarplat2)]);

  Form8.Table1.Post;

  // Если таблица "Учетная ведомость" открыта то обновляем Таблицу(Stringgrid)

  if not Form8.ShowHint then Form8.ComboBox1Change(self);

  close;

end; 

//Кнопка "Сохранить"

procedure TForm5.Button1Click(Sender: TObject);

begin

//Проверка на  заполнение полей

if (combobox1.Text = 'Выбрать') or (combobox2.Text = 'Выбрать') then

begin

  ShowMessage('Выберете все поля!');

  Exit;

end; 

// Если редактируем

if Form4.redaktir then

begin

  form4.Table1.First;

  while not Form4.Table1.Eof do

  begin

    if Form4.Table1.FieldByName('Tabnom').AsString = Combobox1.text then

    Form4.Table1.Delete;

    Form4.Table1.Next;

  end;

end; 

Form4.Table1.Insert;

Form4.Table1.Edit;

Form4.Table1.SetFields([Strtoint(combobox2.Text),combobox1.Text]);

Form4.Table1.Post;

Form4.Table1.Refresh; 

vedomost(Combobox1.Text,strtoint(ComboBox2.Text)); 

  if not Form8.ShowHint then Form8.ComboBox1Change(self);}

  close;

  end; 

procedure TForm5.FormClose(Sender: TObject; var Action: TCloseAction);

begin

Combobox2.Text:='Выбрать';

Form4.knopka;

Form4.Deistvie;

Combobox2.Enabled:=false;

Form4.redaktir:=false;

end; 

procedure TForm5.ComboBox1KeyPress(Sender: TObject; var Key: Char);

begin

key:=#0;

end;

procedure TForm5.ComboBox2KeyPress(Sender: TObject; var Key: Char);

begin

key:=#0;

end; 

procedure TForm5.ComboBox1Change(Sender: TObject);

begin

Combobox2.Enabled:=true;

//Если редактируем

if  (Combobox1.Text <> 'Выбрать') and (Form4.redaktir) then

begin

  Form4.Table1.First;

  While not Form4.Table1.Eof do

  begin

    if Form4.Table1.FieldByName('Tabnom').AsString = Combobox1.Text then

    begin

      // Высвечиваем его текущие заработный  дни в Combobox

      Combobox2.Text:=Form4.Table1.FieldByName('Kod').AsVariant;

      exit;

    end;

  Form4.Table1.Next;

  end;

end; 

end; 

procedure TForm5.FormCreate(Sender: TObject);

begin

Combobox2.Enabled:=false;

end; 

end.

 

Код модуля Unit6 

unit Unit6; // окно "Начисление и удержание" 

interface 

uses //Подключение  библеотек

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

  Dialogs, DB, DBTables, Grids, DBGrids, StdCtrls, ExtCtrls; 

type // Описание объектов

  TForm6 = class(TForm)

    Panel1: TPanel;

    Label1: TLabel;

    Button8: TButton;

    Button7: TButton;

    Button6: TButton;

    Button5: TButton;

    Button4: TButton;

    Button3: TButton;

    Button2: TButton;

    Button1: TButton;

    Button9: TButton;

    DBGrid1: TDBGrid;

    Table1: TTable;

    DataSource1: TDataSource;

    Label2: TLabel;

    procedure knopka;

    procedure Deistvie;

    procedure Button3Click(Sender: TObject);

    procedure Button4Click(Sender: TObject);

    procedure Button5Click(Sender: TObject);

    procedure Button6Click(Sender: TObject);

    procedure Button7Click(Sender: TObject);

    procedure Button1Click(Sender: TObject);

    procedure FormCreate(Sender: TObject);

    procedure Button2Click(Sender: TObject);

    procedure Button8Click(Sender: TObject);

  private

    { Private declarations }

  public

  redact:Boolean;

    { Public declarations }

  end; 

var

  Form6: TForm6; 

implementation 

//Подключаемые  модули

uses  Unit1, // модуль  окна "Сотрудники"

        Unit7, // модуль редактирование, добавление таблицы "Начисление и удержание"

        Unit4, // модуль окна "Рабочие дни"

Информация о работе Расчет заработной платы