RSS    

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

После того как параметр определен активируется окно 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 (red=1), то кнопка описанная для сохранения новых данных будет иметь название “Сохранить”, а кнопка удалить будет не доступна

если параметр равен 2 (red=2), то кнопка “Сохранить” изменит свое название на “Потверждаю”.

Если переменная M.OR_R=0, то кнопки-переключатели выбора услуг будут недоступны. И наоборот M.OR_R=1, то доступны.

Если переменная M.LGOT=.F., то то кнопки-переключатели выбора услуг и поля редактирования по льготе будут недоступны. И наоборот.

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

при выборе данного пункта запускается процедура INS_LG, которая расположена в файле ADD_DEL.PRG (см. прилож. 1.5 стр. 5) и показана на рис. 17 прилож. 2.

В первых строках выбирается БД, где содержится информация по льготам, затем определяется окно для работы процедуры и обращение к помощи. Открывается окно для редактирования льгот, в окне также используются не сами поля, а их переменные, созданные командой SCATTER MEMEVAR.

После ввода в поле “Код” номера, при его выходе выполняется процедура UNIC_LG (см. прилож. 1.2 стр. 36), в которой в БД льгот ищется код с веденным кодом и если найден то переменные обновляются информацией по этому коду, и доступны для изменения или удаления, если нет то остаются пустыми и готовы к заполнению.

Так как работа происходит с переменными, то для сохранения сделанных изменений или дополнения, нужно подтвердить, нажав на кнопку “Сохранить”.

Работа кнопок осуществляется в процедуре LG_INS, где в структуре DO CASE выполняются действия в зависимости от числового значения переменной LG_INS:

LG_INS=1. Из переменной M.INFO (Категория) удаляются возможные начальные пробелы, затем ищется код-переменная в БД льгот, если найден, то это изменение и поля переносятся в БД. Если не найден то дополнение и здесь сначала добавляется запись в БД, а затем в нее переносятся поля. Так как работа на этом не заканчивается, то создаются новые поля переменные и поля обновляются.

LG_INS=2. Команда CLEAR READ завершает работу с этим окном.

LG_INS=3. Запись помечается на удаление (DELETE) и физически удаляется (PACK), после этого создаются новые поля, поля обновляются и работа продолжается.

Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16


Новости


Быстрый поиск

Группа вКонтакте: новости

Пока нет

Новости в Twitter и Facebook

                   

Новости

© 2010.