Смекни!
smekni.com

АРМ для бухгалтерии ВУЗа (стр. 4 из 7)

¦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;varS: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;varR:rec; varName:string1; var N:integer; var Aon:strarr)

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