2.3 Схема модуля вычисления зарплаты.

¦

--------+-------¬

¦открыть f1,f4 ¦

¦n = fsize (f1) ¦

L-------T--------

6 ¦

-------+--------¬да 7

¦ конец файла? +-------

L------T---------

¦

-------+-----------¬

¦ считываем в маs ¦

¦ 1 запись ¦

L-----T-------------

¦

-------+--------¬

¦ww=0 xx =0 ¦

L------T---------

--------+-------¬

¦открываем файл ¦

¦начислений F2 ¦

¦ ¦

L-------T--------

¦

-------+----¬

¦ конец f2 +---------------------¬

L------T----- ¦

-------+------------T----¬ ¦

¦cчитываем из F2 rr ¦ ¦ ¦

L------T------------- ¦ ¦

-----------+---------¬ нет ¦ ¦

¦ mas.tab = rr.tab?+-------- ¦

L----------T---------- ¦

¦да¦

-----------+--------------¬ ¦

¦ inc(ww ,rr.sum)¦ ¦

L----------T--------------- ¦

¦ ¦

---------+---------T-----------------

¦открываем F3¦

¦файл взысканий ¦

L------T------------

¦

¦

-------+--------¬

¦ конец F3+-----------------¬

L------T--------- ¦

-------+------------T---¬ ¦

¦cчитываем из F3 rr ¦ ¦ ¦

L------T------------- 8 ¦

2 3

2 8 3

-----------+---------¬ нет ¦ ¦

¦ mas.tab = rr.tab?+-------- ¦

L----------T---------- ¦

¦да¦

-----------+--------------¬ ¦

¦ inc(xx,rr.sum) ¦ ¦

L----------T--------------- ¦

¦ ¦

+---------------------------

 --------+-------------¬

 ¦s.tab = mas.tab¦

 ¦s.name = mas.name ¦

 ¦s.okl = mas.oklad ¦

 ¦s.plus = ww ¦

 ¦s.minuis = xx ¦

 L--------T-------------

¦

------------+------------¬ нет

¦ есть ли декларация? +------¬

¦ dekl ¦¦

L-----------T-------------¦

¦ да ------+--------¬

¦ 4 ¦ dekl = 0 ¦

¦ ¦

L-----T---------

¦4

4

¦

 --------------+-------------¬ да -----------------------¬

 ¦dekl < 10000000 +-----+ s.pn =(s.okl+ ww - +-¬

 L-------------T-------------- L----------------------- ¦

 --------------+----------¬ ¦

 ¦ s.pn = (s.okl+ ww - ¦ ¦

 ¦ - xx -¦ ¦

 ¦ - 833333) *0.2+¦ ¦

 ¦ +100000 ¦ ¦

 L-------------T----------- ¦

¦ ¦

+---------------------------------------------

----------+--------------¬

¦s.penf = (s.okl+ ww - ¦

¦- xx)*0.01 ¦

L---------T---------------

¦

---------+-------------------¬

¦s.itog = s.okl+ww[i] -xx[i]-¦

¦-s.pn - p.penf ¦

L--------T--------------------

---------+-------------------¬

¦ запись s ¦

L-------T---------------------

 6¦

---------------

¦7

 -----------+-------¬

 ¦ конец ¦

 L-------------------

2.4 Описание mодулей и процедур программы.

---Главная программа

¦

¦

+- работа со справочниками------------------------¬

¦ ¦

+- работа с записной книжкой ---------------------¬¦

¦ ¦¦

+- вычисление заработной платы ------------------¬¦¦

 ¦¦¦¦

+- операции с расчетной ведомостью ------------¬ ¦¦¦

¦ ¦ ¦¦¦

+- работа c банковскими документами-----------¬¦ ¦¦¦

¦ ¦¦ ¦¦¦

+- работа с главной книгой-------------------¬¦¦ ¦¦¦

¦ ¦¦¦ ¦¦¦

L- работа с сальдо счетов-------------------¬¦¦¦ ¦¦¦

 ¦¦¦¦ ¦¦¦

 ¦¦¦¦ ¦¦¦

подсчет сальдо -+¦¦¦ ¦¦¦

(saldo) ¦¦¦¦ ¦¦¦

 просмотр сальдо -+¦¦¦ ¦¦¦

 global¦¦¦¦ ¦¦¦

 запись сальдо в архив -+¦¦¦ ¦¦¦

save_data_file ¦¦¦¦ ¦¦¦

чтение сальдо из архива -+¦¦¦ ¦¦¦

load_data_file ¦¦¦¦ ¦¦¦

печать сальдо --¦¦¦ ¦¦¦

printtable¦¦¦ ¦¦¦

¦¦¦ ¦¦¦

¦¦¦ ¦¦¦

добавление данных по зарплате -+¦¦ ¦¦¦

salary_great_book ¦¦¦ ¦¦¦

добавление данных по банку -+¦¦ ¦¦¦

scan_bank_for_great ¦¦¦ ¦¦¦

 просмотр главной книги --¦¦ ¦¦¦

global ¦¦ ¦¦¦

¦¦ ¦¦¦

¦¦ ¦¦¦

 ввод платежных поручений -+¦ ¦¦¦

global¦¦ ¦¦¦

ввод обьявлений на взнос -+¦ ¦¦¦

global¦¦ ¦¦¦

ввод выписок из банка --¦ ¦¦¦

global ¦ ¦¦¦

¦ ¦¦¦

¦ ¦¦¦

¦ ¦¦¦

¦ ¦¦¦

 получение ведомости -+ ¦¦¦

salary ¦ ¦¦¦

просмотр ведомости -+ ¦¦¦

global ¦ ¦¦¦

занесение в архив -+ ¦¦¦

save_data_file ¦ ¦¦¦

чтение из архива -+ ¦¦¦

loads_data_file ¦ ¦¦¦

печать ведомости - ¦¦¦

printtable ¦¦¦

¦¦¦

просмотр файла начислений -+¦¦

global ¦¦¦

просмотр файла взысканий -+¦¦

global ¦¦¦

расчет начислений -+¦¦

add ¦¦¦

расчет взысканий -¦¦  sub ¦¦

 ¦¦

ввод в записную книжку -+¦

 global¦¦

поиск в записной книжке --¦

search ¦

¦

 справочник начислений -+

global ¦

справочник налогов -+

global ¦

спроавосчник общих налогов -+

global ¦

справочник разрядов -+

global ¦

справочник минимальной зарплаты -+

read_min_salary ¦

 таблица аудита --

global

------------T-------------------------T--------------T-----------------¬

¦ Модуль ¦ Назначение¦ Вход.файл ¦ Выход.файл ¦

¦ ¦ ¦ ¦ ¦

¦ spr_work ¦ Работа со справочной ¦ salary.dat ¦ salary.dat¦

¦ ¦ информацией ¦ spr2.arm ¦ spr2.arm ¦

¦ ¦ ¦ spr3.arm ¦ spr3.arm ¦

¦ ¦ ¦ spr4.arm ¦ spr4.arm ¦

¦ ¦ ¦ spr5.arm ¦ spr5.arm ¦

¦ ¦ ¦ spr6.arm ¦ spr6.arm ¦

¦ ¦ ¦ audit.arm ¦ audit.arm ¦

¦  ¦ ¦ ¦ ¦

¦Saldo_work ¦Работа с сальдо счетов ¦ great.arm ¦ saldo.arm ¦

¦ ¦ ¦ saldo.arm ¦ saldo.ind ¦

¦ ¦ ¦ saldo.ind ¦ saldo.sav ¦

¦ ¦ ¦ saldo.sav ¦ prn ¦

¦ ¦ ¦ ¦ ¦

¦ Great ¦ Работа с главной книгой ¦ Great.arm ¦ great.arm ¦

¦ ¦ ¦ bank3.arm ¦ prn ¦

¦ ¦ ¦ sal.arm¦ ¦

¦ ¦ ¦ ¦ ¦

¦ copybook ¦ Работа с записной ¦ copybook.arm ¦copybook.arm ¦

¦ ¦ книгой бухгалтера ¦ ¦ ¦

¦ ¦ ¦ ¦ ¦

¦salary_work¦ Работа с расчетной¦ sal.arm¦ sal.arm ¦

¦ ¦ ведомостью ¦ sal.sav¦ sal.sav ¦

¦ ¦ ¦ sal.ind¦ sal.ind ¦

¦ ¦ ¦ ¦ ¦

¦ salary ¦ Создание ведомости¦ salary3.arm ¦ sal.arm ¦

¦ ¦ ¦ ¦ ¦

¦ add ¦ Расчет насчислений¦ spr1.arm ¦ salary1.arm ¦

¦ ¦ ¦ spsotr.arm ¦ ¦

¦ ¦ ¦ ¦ ¦

¦ sub ¦ Расчет вычетов ¦ spr2.arm ¦ salary2.arm ¦

¦ ¦ ¦ salary1.arm ¦ ¦

¦ ¦ ¦ ¦ ¦

¦ nalogs ¦ Вычет налогов ¦ salary2.arm ¦salary3.arm¦

¦ ¦ ¦ spnal.arm ¦ ¦

¦ search ¦ Поиск в записной книге ¦ Copybook.arm ¦ ttt.arm ¦

¦ ¦ ¦ ¦ ¦

¦ bank.arm ¦ Работа с банковскими¦ bank1.arm ¦ bank1.arm¦

¦ ¦ документами ¦ bank2.arm ¦ bank2.arm¦

¦ ¦ ¦ bank3.arm ¦ bank3.arm¦

¦cck_salary1¦ Проверка на соответствие¦ spsotr.arm ¦ ¦

¦ ¦ окладов разрядам ¦ spr6.arm ¦ ¦

¦ ¦ ¦ ¦ ¦

¦ ¦ ¦ ¦ ¦

¦chk_slalry2¦Проверка на соответствие ¦ spsotr.arm ¦ ¦

¦ ¦окладов фонду зарплаты ¦ fonds.dat ¦ ¦

¦ ¦ ¦ ¦ ¦

L-----------+-------------------------+--------------+------------------

Модуль Windenv

Процедура Savewindow(x1,y1,x2,y2:byte; var a:buffertype)

Сохраняет в оперативной памяти содержимое прямоугольной области экрана.

x1,y1,x2,y2 - Координаты области экрана. а - переменная, в которую заносится адрес области ОП. Процедура loadwindow(x1,y1,x2,y2:byte; var a:buffertype)

Восстанавливает прямоугольную область экрана, предварительно сохраненную процедурой Savewindow, и освобождает оперативную память, в которй хранилась область. Область экрана должна иметь ту же форму, но, вообще говоря, не обязательно те же координаты, что и сохраненная. x1,y1,x2,y2 - Координаты области на экране. а - адрес в оперативной памяти, где хранится область. Модуль Inter

Функция Max(a,b:integer):integer возвращает максимум из чисел a и b.

Функция Min(a,b:integer):integer

Возвращает минимум из чисел а и b.

Процедура curs_off

Делает курсор на экране невидимым.

Процедура Error(s:string);

Создает в центре экрана окно красного цвета необходимого размера и выводит в него сообщение об ошибке, после чего ждет нажатия на любую клавишу.

s - Сообщение об ошибке.

Процедура Input(x,y,l:byte;var s:string;w:settype)

Расширенная процедура ввода. Позволяет вводить строчку заданной длины, отслеживая недопустимые символы. Позволяет использовать клавиши "Влево","Вправо", Del,Backspase. Позволяет использовать строку по умолчанию, есть возможность Undo.

x,y - Координаты вводимой строки на экране.

l - Максимальная длина вводимой строки.

s - Строка по умолчанию. В ней же возвращается введенная строка. Если в течении ввода была нажата клавиша ESC, возвращается пустая строка.

w - Множество допустимых символов. Модуль Files2

Функция FOpen(FName:string;FMode:Word):Word

Открывает безтиповый файл. Возвращает заголовок файла.

В случае ошибки внутренняя переменная Fsuccess принимает значение False.

Fname - Имя файла.

Fmode - Режим (0 - только для чтения,1 - только для записи, 2 - и для чтения, и для записи.) Функция FCreate(FName:String;FAttr:Word):Word

Создает безтиповый файл. Возвращает заголовок файла.

В случае ошибки внутренняя переменная Fsuccess принимает значение False.

FName - Имя файла.

FAttr - атрибуты создаваемого файла.

Функция FRead(Handle,Segment,Offset,Bytes:Word):Word

Читает из безтипового файла блок. В случае ошибки чтения внутренняя переменная Fsuccess принимает значение False. Возвращает количество реально прочитанных байтов.

Наndle - Заголовок файла.

Segment - Сегментная часть адреса в оперативной памяти, в которую производится чтение.

Offset - Смещение этой области относительно сегмента в оперативной памяти.

Bytes - Сколько байтов необходимо прочитать.

Функция FWrite(Handle,Segment,Offset,Bytes:Word):Word

Записывает в безтиповый файл блок памяти. В случае ошибки записи внутренняя переменная Fsuccess принимает значение false. Возвращает количество реально записанных байтов. Наndle - Заголовок файла.

Segment - Сегментная часть адреса в оперативной памяти, из которой происходит чтение.

Offset - Смещение этой области относительно сегмента в оперативной памяти.

Bytes - Сколько байтов необходимо записать.

Процедура FClose(Handle:Word)

Закрывает безтиповый файл. В случае ошибки внутренняя переменная Fsuccess принимает значение False.

Наndle - Заголовок файла.

Процедура FSeek(Handle:Word; PosPnt:LongInt)

Перемещает указатель безтипового файла.

В случае ошибки внутренняя переменная Fsuccess принимает значение False.

Наndle - Заголовок файла.

PosPnt - новое положение указателя.

Функция FTell(Handle:Word):LongInt

Возвращает позицию указателя файла.

В случае ошибки внутренняя переменная Fsuccess принимает значение False.

Наndle - Заголовок файла.

Функция FSize(FName:String;FAttr:Word):LongInt

Возвращает размер файла в байтах.

В случае ошибки внутренняя переменная Fsuccess принимает значение

False.

FName - Имя файла.

FAttr - Атрибуты файла.

Модуль Field

В программе используются специальные обьекты, которые мы в дальнейшем будем именовать "Таблицами".

Они описаны ниже:

type ftype=array [1..32000] of word

fieldtype=record

field: ^ftype;

tc,tb:byte;

xmax,ymax:integer;

currentx,currenty:integer;

end;

Функция creatfield(var T:fieldtype;X,Y:integer):integer

Создает таблицу заданного размера. Возвращает признак успеха.

T - Таблица.

X - Размер по горизонтали.

Y - Размер по вертикали.

Процедура clearfield(var T:fieldtype;Beg:integer;Textc,Textb:byte)

Очищает созданную таблицу и устанавливает цвет текста и фона для выводимой информации.

T - Таблица.

Beg - Строка таблицы, начиная с которой идет очищение.

Textc - цвет текста для выводимой информации.

Textb - цвет фона для выводимой информации.

Процедура Window_To_Field(T:fieldtype;X1,Y1,X2,Y2,Xx,Yy:integer)

Сохраняет прямоугольную область экрана в таблицу. Для правильной работы процедуры необходимо, чтобы эта область умещалась в таблицу, иначе будет сохранена только часть области.

T - Таблица.

X1,Y1,X2,Y2 - координаты области на экране.

Xx,Yy - Координаты области внутри таблицы.

Процедура field_to_window(T:fieldtype;X1,Y1,X2,Y2,Xx,Yy:integer)

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

T - Таблица

X1,Y1 - Координаты левого верхнего угла области.

X2,Y2 - Координаты правого нижнего угла области.

Xx,Yy - Координаты области внутри таблицы.

Процедура put_char(T:fieldtype;X,Y:integer;Sym,Textc,Textb:byte)

Выводит в таблицу символ по заданным координатам с заданным цветом текста и цветом фона.

T - Таблица.

X,Y - Координаты в таблице.

Sym - Код символа.

Textc - Цвет текста.

Textb - Цвет фона.

Процедура deletefield(var T:fieldtype)

Удаляет таблицу,высвобождает память,занятую ей.

T - Таблица.

Модуль Data

Процедура strtotable(X,Y,L:integer;Source:arr;T:fieldtype)

Выводит в таблицу строку символов.

X,Y - координаты в таблице.

L - Максималная длина строки.

Sourсe - Массив, в котором находится строка.

T - Таблица.

Процедура numtotable(X,Y,L:integer;D:longint;T:fieldtype)

Выводит в таблицу целое число.

X,Y - координаты в таблице.

L - Максималная длина поля.

D - Выводимое число.

T - Таблица.

Процедура tabletostr(X,Y,L:integer;var S:string;T:fieldtype);

Считывает поле из таблицы.

X,Y - координаты в таблице.

L - Максималная длина поля.

S - Строка, в которую помещается поле.

T - Таблица.

Модуль Types

Описание типов

 rectype= record

 len :word;

 typ: char;

 end;

Запись, описывающая поле в базе данных.

len - длина поля в текстовом представлении.

typ - тип поля.

fileinfo= record

Name:string[20];

Size:longint;

Nf:byte;

Ptr:longint;

Names:longint;

LNames:longint;

end;

Запись, хранящая информацию о файле базы данных.

Name - Имя реального файла на диске.

Size - Его размер.

Nf - Число полей в базе.

Ptr - Ссылка на файл описания полей.

Names - Ссылка на файл имен полей.

LNames - Длина участка в файле имен полей.

schet=record

Cod:string[10];

Name:string[30];

Debet,Kredit:longint;

end;

Запись файла счетов.

Cod - Код счета.

Name - Имя счета.

Debet - Дебет счета.

Kredit - Кредит счета.

windowtype=record

X1,Y1:byte;

X2,Y2:byte;

Save:buffertype;

X,Y:integer;

NF:integer;

Currentline:integer;

currentrow:integer;

priority:longint;

end;

Запись, описывающая обьект "окно" в системе многооконного интерфейса.

X1,Y1 - Координаты левого верхнего угла окна на экране.

X2,Y2 - Координаты правого нижнего угла окна на экране.

Save - Буфер, хранящий образ окна.

X,Y - Координаты окна левого верхнего угла в таблице

NF - Номер файла базы, с которым связано окно.

Currenline - Текущая запись в файле.

Currentrow - Текущее поле в файле.

Priority - Приоритет окна.

fnw = record

Dat:Date;

F:string[25];

Tab:string[10];

Sum:longint;

Cod:string[10];

end;

Запись в файлах начислений и взысканий.

Dat - Дата начисления.

F - Фамилия сотрудника.

Tab - Табельный номер.

Sum - Сумма.

Cod - Код начисления.

sp_nal = record

Kod:string[10];

Name:string[25];

Val:string[15];

end;

Запись в файле-справочнике налогов.

Kod - Код налога.

Name - Название налога.

Val - Величина налога.

string1=string[15];

pl_p=record

Numb:longint;

D:date;

Source::string[30];

Bank1:string[30];

Cod1:string[10];

Dest:string[30];

Bank2:string[30];

Cod2:string[10];

Debet:string[10];

Credit:string[10];

Sum:longint;

Target:string[30];

end;

Запись в файле платежных поручений.

Numb - Номер платежного поручения.

D - Дата.

Source - Плательщик.

Bank1 - Банк плательщика.

Cod1 - Код плательщика.

Dest - Получатель.

Bank2 - Банк получателя.

Cod2 - Код получателя.

Debet - Дебетуемый счет.

Crtedit - Кредитуемый счет.

Sum - Сумма.

Target - Назначение.

great_book_type=record

num:longint;

target:string[30];

sum:longint;

cod1,cod2:string[15];

end;

Запись в файле главной книги.

Num - Порядковый номер.

Target - Назначение платежа.

Sum - Сумма.

Cod1 - Дебетуемый счет.

Cod2 - Кредитуемый счет.

levels=record

L:longint;

Coeff:string[15];

end;

Запись в справочнике разрядов.

L - Разряд.

Coeff - Коэффициент.

Sp_sotr= record

Tab:string[10];

Name:string[25];

Raz:longint;

Oklad:longint;

Prof:string[6];

Obosnov:string[30];

end;

Запись в справочнике сотрудников.

Tab - Табельный номер

Name - Ф.И.О.

Raz - Разряд.

Oklad - Оклад.

Prof - Членство в профсоюзе.

Obosnov - Обоснование оклада.

spr_nw=record

Kod:string[10];

Name:string[30];

end;

Запись в файле-справочнике начислений.

Кod - Код начисления.

Name - Наименование начисления.

index=record

Beg:longint;

Key:date;

Len:longint;

end;

Запись в индексном файле.

Beg - Адрес начала данных.

Кеу - Ключ для доступа.

Len - Длина данных.

Sal=record

Num:longint;

Dd:date;

Tab:string[10];

Oklad:longint;

Pn:longint;

Penf:longint;

Ost:longint;

Plus:longint;

Minus:longint;

Itog:longint;

end;

Запись в ведомости зарплаты.

Num - Номер по порядку.

Dd - Дата.

Tab - Табельный номер.

Oklad - Оклад.

Pn - Подоходный налог.

Penf - Пенсионный фонд.

Ost - Остаток.

Plus - Начисления.

Minus - Взыскания.

Itog - Итого на руки.

Модуль Main

Процедура Readfileinfo(Number:integer;var R:rec; var Name:string1; var N:integer; var Aon:strarr)

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

Name - Имя рабочего файла.

N- Количество полей в рабочем файле.

Aon - Массив, в котором хранятся имена полей рабочего файла. Массив содержит столько элементов, сколько полей в рабочем файле.

Функция Exists(Fname:string1):boolean

Функция проверяет существование файла на диске.

Возвращает True, если файл существует, и False в противном случае.

Fname - Имя файла.

Процедура Check_begin

Процедура проверяет работоспособность программы.

Вначале проверяется количество свободной памяти, потом существование необходимых внутренних файлов системы.

Функция Vmenu(Size,Current, X1,Y1,Len,Mask:byte):integer

Функция обработки вертикального меню небольшого размера.

 Используется, если все пункты меню помещаются на экране.Возвращает номер выбранного элемента.

Size - Размер меню по вертикали.

Current - Номер элемента, на котором вначале стоит указатель.

X1,Y1 - Координаты первого элемента.

Len - Длина элементов.

Mask - Переменная, показывающая, как изменять цвет фона и символа у выделенного элемента.

Процедура Translate(S:string;var Ns:string)

Процедура предназначена для расшифровывания паролей, считанных из файла паролей.

S - Зашифрованная строка.

Ns - Расшифрованная строка.

Процедура Input_key(var S:string;Ss:string;L:byte;W:settype)

Процедура создает на экране окно и считывает в нем с клавиатуры трочку. После этого процедура восстанавливает старое содержимое экрана.

S - Вводимая строка.

SS - Строка подсказки.

L - Максимальная длина строки.

W - Множество допустимых символо в строке.

Процедура Querry_parole

Запрашивает в начале работы пароли и по ним определяет статус пользователя и его полномочия.

Функция Is_number(S:string):boolean

Проверяет, является ли строка числом.

S - Проверяемая строка.

Процедура Stringtotable(S:string;X,Y:integer;T:fieldtype)

Процедура помещает произвольную строку в таблицу по заданным координатам.

S - Строка.

X,Y - Координаты строки в таблице.

T - Таблица.

Процедура Memcopy(P1,P2:pointer;L:word)

Процедура копирует участок памяти.

P1 - Адрес источника.

P2 - Адрес приемника.

L - Длина участка.

Процедура Help(Index:integer)

Процедура активизируется по нажатию клавиши F1 и выдает контекстно-ориентированный Help.

Index - Номер контекста.

Функция StrtoDate(Str:string;var D:date):integer

Переводит дату из строковой записи во внутренний формат. Возвращает 0 в случае успеха. Str - Строка, содержащая дату.

D - Запись, содержащая дату после работы процедуры.

Функция Move_file(Source,Dest:string1):integer

Копирует файл. Возвращает 0 в случае успеха, -1 в случае нехватки памяти, -2 в случае ошибки чтения или записи на диск.

Source - Название исходного файла.

Dest - Имя нового файла.

Процедура Lines(T:fieldtype,R:rec;N,N1:integer)

Процедура разделяет таблицу на шапку и графы путем внесения в таблицу символов псевдографики. Используется при печати таблиц.

T - Имя таблицы.

R - Массив, хранящий описание структуры файла базы.

N - Количество столбцов в таблице.

N1 - Количество строк в таблице.

Функция Load_data_file(Fname:string1;D:date):integer

Функция ищет в архиве файл, связанный с ключом - датой и делает этот файл текущим.

Fname - Имя файла, в который нужно поместить файл из архива. D - Ключ-дата, по которой осуществляется поиск.

Процедура Good_morning(var D:string1)

Процедура приветствует пользователя при начале работы и просит подтвердить текущую дату. У пользователя есть возможность изменить ее, если она его чем-то не устраивает. В дальнейшем эта дата используется как значение по умолчанию при вводе полей типа "Дата".

D - Текущая дата в строковом виде.

Функция Writetable(Nl,Fp:integer;R:rec;Nr:integer; Fname:string;

Reclen:integer;N:integer;T:fieldtype):integer; Функция производит запись на диск таблицы. Возвращает 0 в случае успеха.

Nl - Номер строки таблицы, с которой производится запись.

Fp - Позиция в файле, с которой производится запись.

R- Массив, хранящий описание структуры таблицы.

Nr - Размер таблицы по вертикали.

Fname - Имя файла, в который необходимо записать таблицу.

Reclen - Длина записи файла в байтах.

N- Количество столбцов в таблице.

T- Имя таблицы.

Функция Readtable(Nl,Fp:integer;R:rec;var Nr:integer;Fname:string;

Reclen:integer;N:integer;T:fieldtype;

var Eof:boolean):integer;

Функция производит чтение таблицы из файла. Возвращает 0 в случае успеха.

Nl - Номер строки таблицы, с которой производится запись.

Fp - Позиция в файле, с которой производится запись.

R- Массив, хранящий описание структуры таблицы.

Nr - Размер таблицы по вертикали.

Fname - Имя файла, в который необходимо записать таблицу.

Reclen - Длина записи файла в байтах.

N- Количество столбцов в таблице.

T- Имя таблицы.

Eof - Признак конца файла.

Функция Edittable(R:rec;Fname,D_date:string;T:fieldtype;

var Win:windowtype;Nw:integer;var Numberlines:integer;

N,Maxlines,Reclen:integer;var Filepos:longint;

Eof:boolean):integer;

Функция редактирует базу, находящуюся в таблице. При редактировании возможно изменять размеры окна, в котором происходит редактирование. По нажатию клавишы F1 происходит выдача контекстно оринтированной помощи. Функция автоматически сохраняет базу при выходе из нее. R - Массив, хранящий сведения о структуре таблицы.

Fname - Имя файла, с которым связана таблица.

D_date- Дата, использующаяся по умолчанию при вводе.

T - Имя таблицы.

Win - Запись, в которой хранятся сведения об окне, в котором находится таблица.

Nw - Номер этого окна.

Numberlines - Число информационных строк в таблице.

N - Число столбцов в таблице.

Maxlines - Максимальное число строк, которое может находиться в таблице.

Reclen- Длина записи в файле данных в байтах.

Filepos - Позиция в файле, на которой происходит редактирование.

Eof - Признак конца файла данных.

Процедура Save_data_file(Fname:string1;D:date)

Процедура записывает файл данных в архив, связывая его с ключом-датой.

Fname - Имя файла данных.

D - Дата-ключ.

Процедура Printtable(T:fieldtype;Fname:string1;N:integer)

T - Таблица.

Fname - Имя файла.

N - Длина таблицы по вертикали.

Процедура Salary(D:date)

Вычисляет зарплату за текущий месяц для каждого сотрудника, описанного в файле сотрудников, рассчитывает все начисления и взыскания и создает расчетную ведомость.

D - Текущая дата.

Функция Check_Salary2(var N:longint):integer

Проверяет в файле сотрудников соответствие окладов фонду заработной платы. Возвращает 0, если все в порядке.

N - Фонд заработной платы.

Функция Check_Salary1( var Errorline:integer):longint

Функция проверяет соответствие окладов сотрудников разрядной сетке. Если все в порядке, возвращает 0.

Errorline - Номер ошибочной записи.

Процедура Global(First:integer)

Осуществляет работу с базами. Создает таблицы и связывает их с файлами базы данных.

First - Номер в каталоге первоначального файла в каталоге.

Процедура Saldo

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

Процедура Read_min_salary

Запрашивает у пользователя значение минимальной заработной платы. В качестве значения по умолчанию используется предыдущее значение минимальной зарплаты. Если до этого минимальная зарплата не вводилась, то по умолчанию она равна 0.

Процедура Search(Tn:string1)

Осуществляет поиск в записной книжке записей о выдаче мат. помощи конкретному лицу.

Tn - Табельный номер конкретного лица.

Процедура Copy_book

Осуществляет работу с записной книжкой бухгалтера.

Процедура Great_book

Процедура осуществляет работу с Главной книгой, внесение туда своевременных изменений.

Процедура Saldo_work

Процедура подсчитывает сальдо счетов и позволяет пользователю оперативно просматривать их. Предусмотрена возможность сохранять в архиве сальдо за долгий срок.

Процедура salary_work.

Осуществляет работу с заработной платой сотрудников, то есть формирует расчетную ведомость, позволяет ее просматривать, записывать в архив и считывать из архива, печатать на принтере.

ГЛАВА 3

КАЧЕСТВО ПРОГРАММНОГО ИЗДЕЛИЯ ОСНОВНЫЕ ПОКАЗАТЕЛИ КАЧЕСТВЕННОГО ПРОГРАММНОГО ИЗДЕЛИЯ


Информация о работе «АРМ для бухгалтерии ВУЗа»
Раздел: Информатика, программирование
Количество знаков с пробелами: 68963
Количество таблиц: 0
Количество изображений: 0

Похожие работы

Скачать
31485
0
0

... (САБУ), выдвигая на первый план проблему гибкости, адаптируемости и настраиваемости САБУ. Эта проблема решается например в новой появившейся программе «1С:Бухгалтерия» Гибкий универсальный модуль – основа автоматизированного бухгалтерского комплекса. [5,с.55-58] Проблема гибкости и настраиваемости в современных системах обработки учетной информации может иметь два пути решения: использование ...

Скачать
127705
16
14

... - 1, q - 1)  2, а отже кількість неприхованих повідомлень завжди не менша за 9. 5 ОХОРОНА ПРАЦІ Метою даного дипломного проекту є вибір „Аппаратно-програмного комплексу для віддаленого обслуговування клієнтів ПриватБанку”. Тому потенційною аудиторією користувачів розробленого комплексу являються як клієнти так і працівники банку, які перебувають на своїх ...

Скачать
123826
19
0

... выдают ли они требуемую информацию. Кроме того, необходимо исключить из таблиц все возможные повторения данных. Как указывалось ранее, в качестве инструментария разработки АРМ научно-технической библиотеки университета, была выбрана СУБД Microsoft Visual FoxPro. Этот выбор определяет все особенности компьютерной реализации принятых решений по организации информационного обеспечения потенциальных ...

Скачать
26123
0
1

... іями, що й облік операцій на розрахункових рахунках. Окрім того, у режимі «Відправлення документів» інформація передається в БД ОДБ з віддаленого відділення чи робочого місця за допомогою підсистеми «Клієнт-банк». Завершальною функцією модуля автоматизації розрахункових операцій є складання звітності, яка може видаватися на екран, до друку чи надходити по каналу зв’язку для передачі до НБУ. Зві ...

0 комментариев


Наверх