Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 4. Как сделать так, чтобы вас уважали и ценили? Как сделать лучше себе и другим людям Как сделать свидание интересным?


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Текст программы





 

unit Unit1;

interface

uses

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

Dialogs, Grids, Menus, StdCtrls;

type

TForm1 = class(TForm)

sg: TStringGrid;

mm: TMainMenu;

N1: TMenuItem;

N2: TMenuItem;

N3: TMenuItem;

N4: TMenuItem;

N5: TMenuItem;

N6: TMenuItem;

N7: TMenuItem;

N8: TMenuItem;

N9: TMenuItem;

N10: TMenuItem;

N11: TMenuItem;

procedure FormCreate(Sender: TObject);

procedure N2Click(Sender: TObject); //Процедура нажатия пункта в главнам меню Фаил-Сохранить

procedure N3Click(Sender: TObject); //Процедура нажатия пункта в главнам меню Фаил-Загрузить

procedure N5Click(Sender: TObject); //Процедура нажатия пункта в главнам меню Файл-Выход

procedure N7Click(Sender: TObject); //Процедура нажатия пункта в главнам меню Продавец-Добавить

procedure N8Click(Sender: TObject); //Процедура нажатия пункта в главнам меню Продавец-Удалить

procedure N9Click(Sender: TObject); //Процедура нажатия пункта в главнам меню Продавец-Редактировать

procedure N10Click(Sender: TObject); //Процедура нажатия пункта в главнам меню Отчет

procedure N11Click(Sender: TObject); //Процедура нажатия пункта в главнам меню О программе private

{ Private declarations }

public

{ Public declarations }

Procedure LoadBD; // Загрузка Базы

Procedure SaveBD; // Сохранение Базы

end;

var

Form1: TForm1;

God: integer; // Нынешний год

implementation

uses Unit2, Unit3;

{$R *.dfm}

function CalcComiss(index:integer):integer; // Подсчет комиссионных

// по номеру продавца в таблице

var year,dohod:integer;

begin

Result:=0; // Изначально комиссионные = 0

with form1.sg do

begin

year:=StrToInt(Cells[2,index]); // Узнаем год приема на работу

Dohod:=StrToInt(Cells[3,index]); // И средний доход за день

end;

if god-year>=10 then // Если продавец работает 10 лет и больше

Result:=Result+1; // Добавляем 1%

if Dohod>=1000 then // Если еще и продает на сумму 1000 или больше

Result:=Result+6 else // то добавляем 6%

Result:=Result+5; // Если же нет, то 5%

end;

 

procedure TForm1.SaveBD;

var I:integer;

s:TStringList;

begin

S:=TStringList.Create; // Создаем Список строк

for i:=1 to sg.RowCount-2 do // Проходим по всей таблице

begin

{Переносим в список данные из таблицы}

S.Add(Sg.Cells[0,i]);

S.Add(Sg.Cells[1,i]);

S.Add(Sg.Cells[2,i]);

S.Add(Sg.Cells[3,i]);

end;

S.SaveToFile('Base.txt'); // Сохраняем

S.Free; // Очищаем память

end;

 

procedure Tform1.LoadBD; // Загрузка базы

var I:integer;

s:TstringList;

begin

sg.RowCount:=2;

S:=TStringList.Create; // Создаем в памяти Список строк

S.LoadFromFile('Base.txt'); // Загружаем в него файл с базой

For i:=0 to S.Count div 4 -1 do // Организуем цикл загрузки 4х данных

// для каждого продавца

begin

sg.RowCount:=sg.RowCount+1; // Увеличиваем таблицу на 1 пункт

{Помещаем в таблицу данные}

sg.Cells[0, sg.RowCount-2]:=S[i*4];

sg.Cells[1, sg.RowCount-2]:=S[i*4+1];

sg.Cells[2, sg.RowCount-2]:=S[i*4+2];

sg.Cells[3, sg.RowCount-2]:=S[i*4+3];

sg.Cells[4, sg.RowCount-2]:=IntToStr(CalcComiss(sg.RowCount-2));

end;

S.Free; // Очищаем память от уже ненужного файла

end;

procedure TForm1.FormCreate(Sender: TObject);

begin

{Заполняем заголовок таблицы}

sg.Cells[0,0]:='Фамилия и имя продавца';

sg.Cells[1,0]:='Табельный номер';

sg.Cells[2,0]:='Год приема на работу';

sg.Cells[3,0]:='Выручка $ за день';

sg.Cells[4,0]:='% комиссионных';

God:=StrToInt(Copy(DateToStr(Date),7,4)); // Узнаем нынешний год

LoadBD; // Загружаем базу с диска

end;

 

procedure TForm1.N5Click(Sender: TObject);

begin

close; // Выход

end;

 

procedure TForm1.N8Click(Sender: TObject);

var i, j:integer;

begin

{Удаление продавца из списка, все следующие за ним продавцы, просто поднимаются на ячейку выше}

if sg.Selection.Top<>sg.RowCount-1 then

begin

for i:=sg.Selection.Top+1 to sg.RowCount-1 do

for j:=0 to 4 do

sg.Cells[j,i-1]:=sg.Cells[j,i];

sg.RowCount:=sg.RowCount-1;

end;

end;

procedure TForm1.N2Click(Sender: TObject);

begin

LoadBd; // Загружаем базу с диска

end;

 

procedure TForm1.N3Click(Sender: TObject);

begin

SaveBD; //Сохраняем

end;

 

procedure TForm1.N10Click(Sender: TObject);

begin

Form3.ShowModal;

end;

 

procedure TForm1.N7Click(Sender: TObject);

var I:integer;

begin

{Открываем окно "Добавить" и в случае нажатия на кнопку Ok, добавляем продавца в таблицу}

Form2.Caption:='Добавить';

for i:=1 to 4 do // Цикл очистки полей ввода

TEdit(Form2.FindComponent('Edit'+IntToStr(i))).text:='';

if form2.showmodal=mrOk then

begin

sg.RowCount:=sg.RowCount+1; // Увеличиваем таблицу на 1 пункт

{Помещаем в таблицу данные}

sg.Cells[0, sg.RowCount-2]:=Form2.Edit1.Text;

sg.Cells[1, sg.RowCount-2]:=Form2.Edit2.Text;

sg.Cells[2, sg.RowCount-2]:=Form2.Edit3.Text;

sg.Cells[3, sg.RowCount-2]:=Form2.Edit4.Text;

sg.Cells[4, sg.RowCount-2]:=IntToStr(CalcComiss(sg.RowCount-2));

end;

end;

 

procedure TForm1.N9Click(Sender: TObject);

var i:integer;

begin

if sg.Selection.Top<>sg.RowCount-1 then

begin

Form2.Caption:='Редактировать';

for i:=1 to 4 do

TEdit(Form2.FindComponent('Edit'+IntToStr(i))).text:=sg.cells[i-1,sg.selection.top];

if form2.showmodal=mrOk then

begin

{Помещаем в таблицу данные}

sg.Cells[0, sg.selection.top]:=Form2.Edit1.Text;

sg.Cells[1, sg.selection.top]:=Form2.Edit2.Text;

sg.Cells[2, sg.selection.top]:=Form2.Edit3.Text;

sg.Cells[3, sg.selection.top]:=Form2.Edit4.Text;

sg.Cells[4, sg.selection.top]:=IntToStr(CalcComiss(sg.selection.top));

end;

end;

end;

 

procedure TForm1.N11Click(Sender: TObject);

var summ:integer; //Общий доход за этот месяц

kom:integer; //Комиссионные выплаты

z:integer; //Доход с вычетом комиссионных выплат

days:integer; //Дней в этом месяце

i,j,k:integer; //Вспомогательные переменные

begin

case StrToInt(copy(DateToStr(Date),4,2)) of // Проверяем какой щас месяц

1,3,5,7,8,10,12:days:=31; // если месяц 1,3,5,7,8,10,12 то дней в месяце 31

2: days:=28; // если месяц 2 то дней в месяце 28

else days:=30; // иначе в месяце 30 дней

end;

 

summ:=0; //Общим доходам за этот месяц присваеваем ноль

kom:=0; //Комиссионным выплатам присваеваем ноль

z:=0; //Доходам с вычетом комиссионных выплат присваеваем ноль

for i:=1 to sg.RowCount-2 do

begin

j:=calccomiss(i);

k:=strtoint(sg.cells[3,i])*days;

j:=Trunc((j / 100)*K); //"Trunc" - целая часть числа

kom:=kom+j; //считаем Комиссионные выплаты

z:=z+k-j; //считаем Доход с вычетом комиссионных выплат

summ:=summ+k; // считаем Общий доход за этот месяц

end;

 

showmessage('Общий доход за этот месяц: '+inttostr(summ)+#13#10+'Комиссионные выплаты: '+inttostr(kom)+#13#10+'Доход с вычетом комиссионных выплат: '+inttostr(z)+#13#10+'Дней в этом месяце: ' +inttostr(days));

end;

end.


Рисунок 1- Таблица ведения базы данных торговой фирмы

 

Date: 2015-11-14; view: 427; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.006 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию