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
КАЧЕСТВО ПРОГРАММНОГО ИЗДЕЛИЯ ОСНОВНЫЕ ПОКАЗАТЕЛИ КАЧЕСТВЕННОГО ПРОГРАММНОГО ИЗДЕЛИЯ
... (САБУ), выдвигая на первый план проблему гибкости, адаптируемости и настраиваемости САБУ. Эта проблема решается например в новой появившейся программе «1С:Бухгалтерия» Гибкий универсальный модуль – основа автоматизированного бухгалтерского комплекса. [5,с.55-58] Проблема гибкости и настраиваемости в современных системах обработки учетной информации может иметь два пути решения: использование ...
... - 1, q - 1) 2, а отже кількість неприхованих повідомлень завжди не менша за 9. 5 ОХОРОНА ПРАЦІ Метою даного дипломного проекту є вибір „Аппаратно-програмного комплексу для віддаленого обслуговування клієнтів ПриватБанку”. Тому потенційною аудиторією користувачів розробленого комплексу являються як клієнти так і працівники банку, які перебувають на своїх ...
... выдают ли они требуемую информацию. Кроме того, необходимо исключить из таблиц все возможные повторения данных. Как указывалось ранее, в качестве инструментария разработки АРМ научно-технической библиотеки университета, была выбрана СУБД Microsoft Visual FoxPro. Этот выбор определяет все особенности компьютерной реализации принятых решений по организации информационного обеспечения потенциальных ...
... іями, що й облік операцій на розрахункових рахунках. Окрім того, у режимі «Відправлення документів» інформація передається в БД ОДБ з віддаленого відділення чи робочого місця за допомогою підсистеми «Клієнт-банк». Завершальною функцією модуля автоматизації розрахункових операцій є складання звітності, яка може видаватися на екран, до друку чи надходити по каналу зв’язку для передачі до НБУ. Зві ...
0 комментариев