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

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

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

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

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

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

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

Курсовая.doc

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

        Unit5; // модуль рудактирование. добавление таблицы "Рабочие дни" 

{$R *.dfm} 

// Процедура  для блокирования некоторых кнопок 

procedure TForm6.knopka;

begin 

if  table1.recno = 1  then

begin

  Button3.Enabled:=False;

  Button5.Enabled:=False;

end else

begin

  Button3.Enabled:=true;

  Button5.Enabled:=true;

end;

if table1.recno = table1.RecordCount then

begin

  Button4.Enabled:=False;

  Button6.Enabled:=False;

end else

begin

  Button4.Enabled:=true;

  Button6.Enabled:=true;

end; 

end; 

//Процедура для  блокирование всех кнопок

procedure TForm6.Deistvie;

begin

  Table1.First;

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

  begin

  Button1.Enabled:=false;

  Button3.Enabled:=false;

  Button4.Enabled:=false;

  Button5.Enabled:=false;

  Button6.Enabled:=false;

  Button8.Enabled:=false;

  end else knopka;

end; 

//кнопка "Назад"

procedure TForm6.Button3Click(Sender: TObject);

begin

Table1.Prior;

knopka;

end; 

//кнопка "Вперед"

procedure TForm6.Button4Click(Sender: TObject);

begin

table1.Next;

knopka;

end; 

//кнопка "Начало"

procedure TForm6.Button5Click(Sender: TObject);

begin

Table1.First;

knopka;

end; 

//кнопка "Конец"

procedure TForm6.Button6Click(Sender: TObject);

begin

Table1.Last;

knopka;

end; 

//кнопка "Закрыть"

procedure TForm6.Button7Click(Sender: TObject);

begin

close;

end; 

//кнопка "Удалить"

procedure TForm6.Button1Click(Sender: TObject);

Var

   tabnom:string;

begin

if MessageDlg('Вы точно  хотите удалить?', mtConfirmation, [mbYes, mbNo], 0)=mrYes then

Tabnom:=Table1.FieldByName('Tabnom').AsString;

Table1.Delete;

Form5.vedomost(Tabnom,0);

knopka;

Deistvie; 

end; 

procedure TForm6.FormCreate(Sender: TObject);

begin

redact:=false;

knopka;

Deistvie;

end; 

//Кнопка "Добавить"

procedure TForm6.Button2Click(Sender: TObject);

begin

Form7.ComboBox1.Clear;

Form7.ComboBox2.Clear;

Form1.Table1.First;

While not Form1.Table1.Eof do

begin

//Заполнение  всех полей содержащихся в  таблице "Сотрудники"

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

  Form1.Table1.Next;

end;

Form7.ComboBox2.Items.Add('Премия');

Form7.ComboBox2.Items.Add('Кредит');

Form7.ComboBox2.Items.Add('Штраф');

Form7.ComboBox2.Items.Add('Переработка');

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

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

Form7.Caption:='Добавление в таблицу "Начисление и удержание"';

Form7.ShowModal; 
 
 

end; 

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

procedure TForm6.Button8Click(Sender: TObject);

var

  povtor :Boolean;

  i:integer;

begin

Form7.ComboBox1.Clear;

Table1.First;

While not Table1.Eof do

begin

   povtor:=false;

   for i:=0 to Form7.ComboBox1.Items.Count-1 do

   Begin

     if (Table1.FieldByName('Tabnom').AsString =  Form7.ComboBox1.Items[i]) then

     Povtor:=true;//EditForm2.EmployeeCodeComboBox.Items.Add(EstimateForm.Table2.FieldByName('Tabnom').AsString);

   end;

   if (not povtor) then

   //ддобавление  тех тебельных номеров. которые  присутстввуют в таблице "Начисление  и удержание"

   Form7.ComboBox1.Items.Add(Table1.FieldByName('Tabnom').AsString);

   Table1.Next;

end;

redact:=true;

Form7.Label3.Visible:=true;

Form7.combobox3.Visible:=true;

Form7.ComboBox1.text:='Выбрать';

Form7.ComboBox2.text:='Выбрать';

Form7.ComboBox3.text:='Выбрать';

Form7.Caption:='Редактирование таблицы "Начисление и удержание"';

Form7.ShowModal;

end; 

end.

 

Код модуля Unit7 

unit Unit7; // окно редактирование/добавление в таблицу "Начисление и удержание" 

interface 

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

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

  Dialogs, StdCtrls, ExtCtrls; 

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

  TForm7 = class(TForm)

    ComboBox1: TComboBox;

    ComboBox2: TComboBox;

    LabeledEdit1: TLabeledEdit;

    Label1: TLabel;

    Label2: TLabel;

    Button1: TButton;

    Button2: TButton;

    ComboBox3: TComboBox;

    Label3: TLabel;

    procedure ComboBox1Change(Sender: TObject);

    procedure Button1Click(Sender: TObject);

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

    procedure Button2Click(Sender: TObject);

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

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

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

  private

    { Private declarations }

  public

    { Public declarations }

  end; 

var

  Form7: TForm7; 

implementation 

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

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

        Unit2, //модуль окна добавления в таблицу "Сотрудники"

        Unit5; //модуль редактирование/добавление в таблицу "Рабочие дни" 

{$R *.dfm} 
 

procedure TForm7.ComboBox1Change(Sender: TObject);

var

  i:integer;

begin

//Если редактирование

if Form6.redact then begin

i:=0;

ComboBox2.Clear;

Form6.Table1.First;

While not Form6.Table1.Eof do

begin

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

      begin

      inc(i);

        //Добавление в Combobox существующих у сотрудника признаков

      ComboBox2.Items.Add(Form6.Table1.FieldByName('Priznaki').AsString);

      end;

Form6.Table1.Next;

end;

if i = 1 then Combobox2.Text:=Combobox2.Items[0]

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

end; 
 

end; 
 

procedure TForm7.Button1Click(Sender: TObject);

var

    priznak:string;

begin

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

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

begin

ShowMessage('Заполните все поля!');

Exit;

end;

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

if Form6.redact then

begin

  if Combobox3.Text = 'Выбрать' then priznak:=Combobox2.text

  else begin

         Form6.Table1.First;

         While not Form6.Table1.Eof do

         begin

           if (combobox3.Text = Form6.Table1.FieldByName('Priznaki').AsString) and

           (combobox1.Text = Form6.Table1.FieldByName('Tabnom').AsString)

           then

             if MessageDlg('Данный признак уже содержится у этого табельного номера'

             +#13#10+'хотите заменить его?', mtConfirmation, [mbYes, mbNo], 0)=mrYes then

             begin

               priznak:=Combobox3.Text;

               Form6.Table1.Delete;

             end else exit;

         Form6.Table1.Next;

         end;

       end;

Form6.Table1.Insert;

Form6.Table1.Edit;

Form6.Table1.SetFields([nil,Combobox1.Text,priznak,strtofloat(Labelededit1.Text)]);

Form6.Table1.Post;

Form6.Table1.Refresh; 

end else begin 
 
 

Form6.Table1.First;

While not Form6.Table1.Eof do

begin

//проверка на  такой же табельный номер и  признак

  if (Combobox1.Text = Form6.Table1.FieldByName('Tabnom').Asstring) and

  (Combobox2.Text = Form6.Table1.FieldByName('Priznaki').AsString) then

  Begin

    ShowMessage('Данный признак уже содержится у этого табельного номера');

    Exit;

  end;

  Form6.Table1.Next;

end; 

Form6.Table1.Insert;

Form6.Table1.Edit;

Form6.Table1.SetFields([nil,Combobox1.Text,Combobox2.Text,strtofloat(Labelededit1.Text)]);

Form6.Table1.Post;

Form6.Table1.Refresh; 
 

end;

//вызываем функцию  ведомость, для занесение изменившихся  данных

form5.vedomost(combobox1.Text,0);

close;

end; 

procedure TForm7.LabeledEdit1KeyPress(Sender: TObject; var Key: Char);

begin

Form2.controlMoney(key,Labelededit1.Text);

end; 

procedure TForm7.Button2Click(Sender: TObject);

begin

Labelededit1.Clear;

close;

end; 

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

begin

Labelededit1.Clear;

form6.redact:=false;

Label3.Visible:=false;

combobox3.Visible:=false;

Form6.knopka;

//Form6.Deistvie;

end; 

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