на тему рефераты
 
Главная | Карта сайта
на тему рефераты
РАЗДЕЛЫ

на тему рефераты
ПАРТНЕРЫ

на тему рефераты
АЛФАВИТ
... А Б В Г Д Е Ж З И К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Э Ю Я

на тему рефераты
ПОИСК
Введите фамилию автора:


Реферат: АРМ бухгалтера-расчетчика


BROWSE-окна

Следующая группа окон имеет ряд общих характеристик это BROWSE-окна, открывающиеся в окне размером во весь экран, кроме двух последних строк, которые предназначены для вывода дополнительной информации - статус-строка. Все поля недоступны для редактирования, при комбинации клавиш: <Ctrl+T>-выполняется процедура удаления, <Ctrl+N>-процедура дополнения, <F5>-процедура поиска. Различие состоит только в отборе данных и выводимыми полями это:

Пункт меню “КАДРЫ”-“Картотека льготников” - предъявляет только тех жильцов, которые имеют льготу и выводит следующие поля: табельный номер, фамилия, период действия льготы, улица, дом, квартира, телефон, категория, номер удостоверения.

Пункт меню “КАДРЫ”-“База жильцов” – предъявляет всех жильцов и выводит следующие поля: табельный номер, фамилия, улица, дом, квартира, телефон, категория, номер удостоверения, количество проживающих.

Пункт меню “КАДРЫ”-“Ввод данных счетчика” - предъявляет только плательщиков и выводит следующие поля: табельный номер, фамилия, улица, дом, квартира, телефон, старое и новое значение счетчика и вычисляемое поле к оплате, которое автоматически рассчитывается при изменении данных счетчика и прибавляется к общей сумме платы за квартиру.

Пункт меню “КАДРЫ”-“Ввод оплаты” - предъявляет только плательщиков и следующие поля: табельный номер, фамилия, ввод оплаты, начисленную сумму за услуги, сумму по льготе, сумму к оплате, дату оплаты, остаток (задолженность) а также вычисляемое поле льготник (см. рис 12 приложения 2 стр.12).

Пункт меню “РАСЧЕТ”-“Слияние квартплаты с льготами” – предъявляет только плательщиков и выводит следующие поля: табельный номер, фамилия, сумма начислений, сумма по льготе и сумму к оплате (см. рис 16 приложения 2 стр.16).

Пункт меню “РАСЧЕТ”-“Расчет квартплаты” - предъявляет только плательщиков и выводит следующие поля: табельный номер, фамилия и суммы начислений по каждой услуге отдельно (см. рис 14 приложения 2 стр.14).

Пункт меню “РАСЧЕТ”-“Расчет по льготам” - предъявляет только льготников с учетом периода начислений и поля аналогичные описанных выше (см. рис 15 приложения 2 стр.15).

Окно помощи (HELP)

Это окно предназначено для вывода помощи для определенных окон при работе с данными по нажатию клавиши F1, а также при выборе пункта меню “ПОМОЩЬ”-“Помощь”, где дается помощь по пунктам меню и “Справка”, где дается информация для чего предназначена программа и ее краткая характеристика. (см. рис 21 приложения 2 стр. 21).

Краткий обзор Процедурного языка - FoxPro

Программа в FoxPro – это текстовый файл, содержащий набор команд, написанных в соответствии с синтаксическими правилами языка. Программа может иметь подпрограмму (процедуры), в которых помещаются часто повторяющиеся фрагменты кода, размещаемые после основного текста программы или в отдельном файле.

В FoxPro предусмотрена широкая возможность использования процедур, которые могу быть как внешними (в виде отдельных программных файлов), так и внутренними (внутри программы).

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

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

Разберем описание процедуры, функции и процедурного файла.

Подпрограмма начинается с ключевого слова

PROCEDURE <имя процедуры>

И выполняется пока не будет выполнено одно из следующих условий:

Еще раз встретят слово PROCEDURE.

Будет обноружено команда RETURN – возращение в предыдущую программу.

Будет выдана команда CANCEL –прерывание работы программы.

Будет выдана команда QUIT- выход из СУБД.

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

Будет достигнут конец файла.

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

FUNCTION <имя функции>

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

Имеются 4 способа вызвать функцию:

Присвоить возвращаемое значение переменной. Например, следующая строка кода запоминает текущую системную дату в переменой dToday :

dToday=DATE()

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

SET DEFAULT TO GETDIR()

Напечатать возвращаемое значение в активное окно:

? TIME()

Вызвать функцию без запоминания где либо возвращаемого значения:

= SYS(2002)

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

RETURN [Expression | TO MASTER | TO ProgramName]

Который возвращает управление вызывающую программу, и в ней выполняется следующая команда после вызывающей; если указана опция TO MASTER, то управление возвращается на самый верхний уровень вызывающей программы, а эта же программа с опцией TO ProgramName передает управление в указанную программу. При использовании функции команда автоматически возвращает .Т. (истина), если не указано другое выражение на месте Expression.

RETRY

Действует подобно команде RETURN, но при возвращении управления в вызывающую программу повторяется выполнение последней команды.

Встречая обращение в процедуре, Fox Pro ищет ее в следующей последовательности:

1.в текущей процедуре;

2.в процедурном файле, если он подключен;

3.снизу вверх в старших процедурах относительно текущей, если они есть;

4.на диске в виде отельной программы.

Обращение к процедуре выполняется команды

DO <имя командного файла> [WITH <список параметров>][IN <файл>]

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

PARAMETERS <список параметров>

Процедурный файл

Множество внешних, обычно “родственных” процедур иногда удобно объединить в один процедурный файл, (также типа PRG), который вызывается (загружается в память) командой

SET PROCEDURE TO <имя процедурного файла>

Только после этого можно командой DO вызывать из него отдельные процедуры (в данной программе имя процедурного файла FUNC.PRG)

В каждый момент может быть открыт только один процедурный файл. Чтобы его закрыть, нужно использовать команду SET PROCEDURE TO без параметров.

Техническое описание работы программы

 

В приложении используются семь внешних процедур. т.е. 7 файлов типа .PRG из них один процедурный. Краткая характеристик каждого из них:

MENU.PRG-главный программный файл (приложение 1.1)

FUNC.PRG-процедурный файл (приложение 1.2)

OPEN.PRG-файл открытия БД (приложение 1.3)

BAZES.PRG-файл BROWSE-окон (приложение 1.4)

ADD_DEL.PRG-файл дополнение и изменения данных (приложение 1.5)

RAS.PRG-файл расчетов квартплаты, льгот и их слияния (приложение 1.6)

OTCHET.PRG-файл формирование отчетов (приложение 1.7)

При старте программы запускается главный файл, т.е. файл MENU.PRG, который будет запускать работу всей информационной системы, он состоит из следующих блоков:

Блок установочных команд SET определяющих параметры конфигурации рабочей среды;

Открытие баз данных и необходимых индексных файлов;

Определение глобальных переменных, массивов и их инициализация;

Определение и описание окон;

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

Закрытие баз данных и выход из СУБД.

Сейчас рассмотрим работу приложения в той последовательности, как она выполняется по шаговом выполнении каждого кода в окне трассировки. Для чего, при чтении данной главы целеобразно запустить среду FoxPro, открыть в окне трассировки файл MENU.PRG в режиме пошагового выполнения, либо обращаться к приложению 1, где прилагаются распечатки файлов программ

В первых строках файла MENU.PRG с помощью команд SET устанавливается операционная среда:

Отключение макросов

Установление даты

Запрет отображения на экране записей помеченных на удаление

Отключение статус-строки и т.д.

Далее определяются и загружаются в память цветовые схемы, которые используются для раскраски окон и некоторых областей внутри них.(SET COLOR OF SCHEME). Подключается процедурный файл (FUNC.PRG), командой ON ERROR и функцией ERROR() определяется анализ возможных ошибок в программе.

Далее вызывается процедура находящаяся в файле OPEN.PRG (см. прилож. 1.3 стр. 1) для открытия БД. Здесь проверяется наличие баз на диске и если их нет, то они создаются с помощью языка SQL, при этом в БД HELP, которая состоит из одного MEMO-поля, копируются текстовые файлы помощи. Если базы уже созданы ранее, то они открываются в заданных областях вместе со структурными индексами, которые содержат TAG’и для связи БД и систематизированного предъявления данных:

БД <RABOT.DBF> (База жильцов)

TAG-tab – индексирование по полю табельного номера, для связи с БД ставок (TABLE_R.DBF).

TAG-fam – индексирование по полю фамилии, для поиска командой SEEK.

TAG-n_lg – индексирование по полю номера льготы (код), для связи с БД льгот (LGOT.DBF).

TAG-date – индексирование по полям периода действия льготы (dat_c,dat_po), для расчета сумм по льготникам, рассчитываются только те льготники, у кого период входит в текущую дату и кто не имеет периода действия льготы.

TAG-lgt – индексирование по полям адреса, с условием, что предъявляться будут только жильцы, имеющие льготу.

TAG-ord – индексирование по полям адреса, с условием, что предъявляться будут только те жильцы, кто платит за квартиру.

TAG-adrr – индексирование по полям адреса и табельного номера, для связи с БД начислений (OPLATA.DBF), а также это главный TAG при просмотре данных.

БД <OPLATA.DBF (База начислений)

 TAG-tab –индексирование по полю табельного номера.

 TAG-adr – индексирование по адресу, для связи с БД жильцов (RABOT.DBF)

БД <LGOT> (БД льгот)

TAG-n_lg – индексирование по полю номера льготы (код), для связи с БД жильцов (RABOT.DBF).

БД <TABLE_R (БД ставок)

TAG-tab – индексирование по полю табельного номера, для связи с БД жильцов (RABOT.DBF).

 В том случае, если индексных файлов не обнаружено, то они создаются. Здесь также устанавливается связь между базами по ключевым полям. Связь между базами имеет структуру ОДИН КО МНОГИМ, то есть БД жильцов является родительской по отношению к другим.

Далее объявляются глобальные перемены (PUBLIC)

_PAD_OTCH - которое служит для анализа формирования отчета если ее значение .T. то отчет формируется, если ее значение .F., которая присваивается в процедуре дополнения, то при выборе формирования отчета программа просит провести слияние квартплаты со льготами, где данной переменной присваивается значение .Т.

_REC- запоминает номер текущей записи в БД

_FILTR- имеет числовое значение и в зависимости от значения устанавливает фильтр предъявления данных в окне “Работа с картотекой”.

Объявляется массив, содержащий имена месяцев и определяются переменные для хранения нормативных ставок, которые сохраняются в файле M_ZAR.MEM и в последующем загружаются в память из этого файла.

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

Команды DEFINE MENU, DEFINE POPUP и DEFINE BAR определяют и описывают расположение на экране и работу основного меню. Командой ON SELECTION PAD (BAR) определяется реакция пунктов меню при их выборе. Здесь нужно сказать, что команда ON SELECTION PAD может использоваться в виде ON PAD в этом случае, при попадании курсора на такой PAD-пункт сразу вызовет действия определенные при описании этих пунктов, а с добавлением слова SELECTION, чтобы выполнилось действие нужно непосредственно его выбрать, то есть на соответствующем пункте нажать клавишу ввода (Enter).

Последней командой в файле MENI.PRG является команда активации меню и вся дальнейшая работа приложения будет зависеть от выбора пунктов меню.

Любая система работы с базами данных предполагает наличия этих данных, поэтому работа с программой нужно начинать с дополнения БД информацией. В программе предусмотрено, что при выборе пункта меню, который предназначен для работы с данными, а база пуста появится окно с предупреждением дополнить. Рассмотрим подробней эту процедуру. (см прилож. 1.6 стр.1).

Здесь функцией RECCOUNT() проверяется наличие записей в БД и если значение равно нулю, то активируется окно VIB в котором при помощи команд ввода-вывода @…SAY…GET выводится поясняющий текст (SAY) и кнопки для выбора дальнейших действий (GET), которые активируются командой READ с опцией CYCLE, которая запрещает выход из окна по достижении курсора последнего GET-объекта . GET–объекты часто используется в программе, поэтому сейчас разберем их подробнее.

В данном случае используются кнопки меню, которые определяются в команде FUNCTION и обработка выбранной кнопки с помощью команды VALID. В процедуре INS2(), которая описана в приложении 1.2 стр. Эти объекты еще называют как средства управления в стиле WINDOWS все переменные, определенные командой GET имеют или числовые значения, тогда переменной присваивается номер объекта в порядке его расположения в команде, или символьные, тогда переменной присваивается символьное описание кнопки, а также для кнопок-переключателей и радио-кнопок возможно логическое значение переменной.

Затем в процедуре с именем определенной командой VALID или WHEN осуществляется в структуре DO CASE выбор дальнейших действий в зависимости от значения переменной. Например, в данном случае в окне определены две кнопки Дополнить и Отмена (FUNCTION ‘ * …’), которые при их выборе присваивают числовое значение переменной ins1 и которая при выборе кнопки анализируется в структуре DO CASE в процедуре INS2. Eсли выбрана кнопка Дополнить, то переменная ins1 принимает значение 1 (потому что эта кнопка описана первой в команде FUNCTION ‘* …’), выполняется условие CASE ins1=1 и следовательно выполняются команды которые следуют после этого условия (DO INS WITH 1). Если выбор не происходит вообще, то и процедура игнорируется.

Теперь еще раз пройдемся по пунктам меню, и разберем его работу с точки зрения языка программирования. Начнем с пункта “СЕРВИС”

“СЕРВИС”-“Дополнение”

 

Итак чтобы начать с дополнения БД нужно выбрать в меню “СЕРВИС”-“Дополнение” или в окне кнопку Дополнить. Выбор пункта меню или кнопки вызывает выполнение процедуры дополнения, которая определяется командой DO INS WITH 1. Здесь параметр 1 определяет что это процедура дополнения. В программе предусмотрена процедура Изменения с помощью выполнения этой же процедуры, но с параметром 2. Разберем эту процедуру. (см. прилож. 1.5 и прилож. 1.2).

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

Далее закрепляются за клавишами "F1" и "F7" действия вызова помощи и изменения кода по льготе, глобальной переменной "_PAD_OTCH" присваивается значение ".F.", определяется POPUP-меню улиц и массив элементы которого в цикле DO WHILE преобразуются в BAR-пункты меню и с помощью переменной "m" массив переопределяется, чтобы в меню не было пустых строк. Определяется окно "hp" для вывода в нем меню кодов и описания льгот их выбора и занесения номера или описания документа льготы.

Далее в структуре DO CASE анализируется номер параметра. Если параметр равен 1, то это дополнение и с помощью команды SCATTER MEMVAR BLANK создается массив, содержащий переменные аналогичные полям БД с пустыми значениями, если параметр равен 2, то это изменение и массив будет содержать переменные с данными текущей записи БД (SCATTER MEMVAR) и здесь также определяются переменные, которым присваиваются значения полей, которые имеют логический формат и отображаются на экране с помощью GET-объектов это кнопки-переключатели для определения начислений услуг, кнопка-переключатель выбора льготы и кнопка-переключатель выбора плательщика. Также здесь в переменных запоминается текущий адрес плательщика (yl_ins=yl, dom_ins=dom, k_ins=kw_ra), для анализа изменения адреса.

После того как параметр определен активируется окно INS в котором располагаются переменные из созданного массива для занесения (изменения) данных (см. рис.19 и рис 20 прилож. 2)

Схема отображения данных реализовано следующим образом: в первой строке после активации окна вызывается функция POS_CH2(), в которой содержатся SAY-объекты комментарии к GET-полям (прилож. 1.2 стр.29). Далее располагаются GET-объекты полей и выбора кнопок для большинства которых предусмотрена проверка при выходе (VALID) и входе (WHEN).

Поле-переменная фамилия – при входе выполняется функция =CAPSLOCK(.T.), для переключения ввода фамилии прописными буквами.

Поле-переменная табельный номер - здесь при выходе из поля выполняется процедура unic(), которая проверяет уникальность введенного номера (прилож. 1.2 стр. 32). То есть в структуре DO CASE определяется параметр если он равен 2 то возвращается значение .Т. и курсор входит в следующее поле, если он равен 1, то с помощью команды поиска проверяется наличие такого номера в БД и если такой номер существует, то функция возвращает значение .F., что означает, что выход из поля невозможен, а также появляется окно vib, в котором с помощью команды SAY выводится фамилия того жильца, который имеет этот табельный номер.

Поле-переменная улица - при входе выполняется функция yliz_s() (см. прилож. 1.2 стр.29), где вначале выключается клавиша CapLock, а затем проверяется условие, что записей в БД больше нуля и параметр равен 1 и если это выполняется то активируется POPUP-меню улиц, для выбора нужной (см. прилож. 1.2 стр. 29), или закрыть меню и вести улицу вручную.

Переменная or1 - имеет числовое значение и соответствует полю OR_R: 1 – если выбрана ([x], 0 – не выбрана ([ ]) и служит для выбора жильца плательщиком. Здесь также предусмотрена проверка при выходе. (см. прилож. 1.2 стр. 31 FUNC O_R()) в структуре DO CASE анализируется выбор кнопки, если она выбрана, то сначала объявляются переменные из полей-переменных с удалением из них пробелов, затем ведется поиск в базе жильцов с таким адресом и имеющих поле OR_R со значением 1. Если поиск удачный и это не текущая запись (например при изменении), то появляется окно-предупреждение с фамилией жильца, который уже определен плательщиком за эту квартиру. Переменной or1 присваивается значение 0 и GET-объект обновляется. Если при выборе кнопки (or1=1) поиск неудачный, то полю-переменной M.OR_R присваивается значение 1 и становятся доступными кнопки выбора услуг.

Переменная lg_ta – имеет логическое значение и соответствует полю LGOT: .F.- если не выбрана ([ ]), .T.- если выбрана [x]. Здесь при выходе, если кнопка выбрана, что проверяется в структуре DO CASE (см. прилож. 2 стр. 30 FUNC VIB_LG), то активируется окно с полями-переменными кода льготы (M.N_LG) и описанием (номером) документа (M.N_YD), при этом курсор попадает в поле с выбором кода, для которого предусмотрено проверка входа, то есть при входе в это поле выполняется функция LG1 (см. прилож 1.2 стр. 29), в которой определяется наличие данных в БД льгот и если они имеются определяется и активируется меню из полей БД льгот. Можно выбрать имеющиеся льготы или добавить новую. Если при выходе поле кода льготы будет иметь нулевое значение, то переменной lg_ta и M.LGOT присваивается значение .F., иначе становятся доступные для редактирования поля с периодом, ставками и описанием льготы, а также становятся доступными кнопки выбора услуг.

Переменные kw, gw, ks, ot, elc, tl, rd – все эти поля имеют логический тип и соответствуют полям базы выбора для начисления по услугам. Если это процедура изменения то они имеют значения этих полей, как описано выше, если дополнение то все имеют значение .F..При этом они доступны для редактирования, только в том случае, если жилец является (выбран) плательщиком или (и) льготником. При выходе выполняется процедура <имя переменной>_INS (см. прилож. 1.2 стр. 30-31), где полю-переменной присваивается значение переменной.

Период льготы, ставки и ее описание – данная группа полей выделена цветом в зависимости от того доступны, (M.LGOT=.T.) или не доступны (M.LGOT=.F.) для редактирования. Здесь контроль данных проверяется только в поле-переменной, по какую дату должна начисляться льгота (M.DAT_PO) то есть она должна быть больше даты начала даты начисления (см. прилож. 1.5 стр. 2), остальные поля – это поля БД льгот.

Следующей командой определяющие кнопки, которые имеют числовое значение, в зависимости их расположения, при описании. 1-“Сохранить\Подтверждаю”, 2-“Выход”, 3-“Удалить”. Обработка выбора этих кнопок осуществляется в процедуре ad_in() (см. прилож. 1.2 стр. 32-35). В первых строках выполняются действия по удалению возможных начальных пробелов (LTRIM()) в полях фамилии и адреса, далее определяется категория жильца и если это не квартиросъемщик, то удаляется не нужная информация (телефон и кв. метры), и наоборот. После этого определяется номер выбранной кнопки (pod) и номер параметра входа в это окно.

Кнопка “Сохранить”, параметр 1 (pod=1, red=1) – добавляется новая запись (APPEND BLANK) и все поля-переменные переносятся в эту запись (GATHER MEMVAR). Далее выполняются действия по заполнению поля с количеством жильцов. Ищется первая запись в БД с адресом нового жильца, в любом случае поиск будет удачным, но это может быть либо добавленная запись, либо другая. Если кроме новой записи больше не обнаружено, то полю количества жильцов (KOL_VO), присваивается значение 1, иначе значение найденной записи, и в этом случае сканируется записи с этим адресом, чтобы увеличить поле-количество на 1. Затем открывается БД, в которой хранятся информация о ставках по услугам для каждого жильца (TABLE_R) и в нее добавляется новая запись с копированием табельного номера новой записи из БД жильцов. Затем ищется в БД жильцов запись с одинаковым адресом и если такая найдена, то копируются в переменные значения полей из БД ставок (TABLE_R), которые затем копируются в поля БД ставок новой записи, иначе они имеют нулевые значения. После этого командой SCATTER MEMVAR BLANK создаются новые переменные полей, переменным для выбора услуг присваиваются значения .F. GET-поля обновляются и можно редактировать следующую новую запись.

Кнопка “Подтверждаю”, параметр 2 (pod=1, red=2) – первой командой переменные переносятся в БД. После этого проверяется изменялся ли адрес, с помощью переменных определенных ранее (см. выше yl_ins ,dom_ins, k_ins). Если адрес не изменился, то процедура заканчивается и возвращается в окно изменения, иначе устанавливается фильтр работы только с жильцами, имеющими текущий (измененный) адрес, и корректируется поле-количество. Затем аналогичная операция происходит с жильцами старого адреса.

Кнопка “Выход” – завершает работу процедуры, и выполняются команды следующие за командой READ, это закрытие окна, переиндексация данных и выход с процедуры.

Кнопка “Удалить” – доступна только в том случае, если это процедура изменения (см. прилож. 1.2 стр. 35) и будет рассмотрена ниже.

Теперь рассмотрим последнюю команду обновления GET-объектов – это команда-опция SHOW red(), входящая в команду READ. Она выполняется всегда если в какой-либо процедуре встретится выражение SHOW GETS, в данном случае в процедурах, вызываемых в окне Дополнения\Изменения данных, если встречается это выражение выполняется процедура red() (см. прилож. 1.5 стр.3). здесь в структуре DO CASE анализируются переменные и в зависимости от их значения выполняются следующие действия:

Страницы: 1, 2, 3, 4, 5, 6


на тему рефераты
НОВОСТИ на тему рефераты
на тему рефераты
ВХОД на тему рефераты
Логин:
Пароль:
регистрация
забыли пароль?

на тему рефераты    
на тему рефераты
ТЕГИ на тему рефераты

Рефераты бесплатно, реферат бесплатно, курсовые работы, реферат, доклады, рефераты, рефераты скачать, рефераты на тему, сочинения, курсовые, дипломы, научные работы и многое другое.


Copyright © 2012 г.
При использовании материалов - ссылка на сайт обязательна.