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

Тип работы:
Реферат
Предмет:
Информатика, программирование


Узнать стоимость

Детальная информация о работе

Выдержка из работы

Учет квартплати (АРМ бухгалтера-расчетчика)
Введение
Коротка характеристика предприятия
Усть-Кутская перевалочно-распределительная нафтобаза є філією ВАТ
«Иркутскнефтепродукт ».
Розташована м. Усть-Куте, Іркутської обл., березі р. Олена, у гирлі річки
Якурим.
Нафтобаза класифікується за такими признакам:
із загальної місткості і максимальному обсягу одного резервуара належить до
першої категории
по функціональному призначенню — перевалочно-распределительная
транспортними зв’язкам — змішана, автомобильно-водно-железнодорожная
за номенклатурою — нафтобаза загального хранения.
Підприємство має вісім АЗС, і навіть п’ять филиалов-нефтескладов.
Характеристика виробничої деятельности
З власного функціональному призначенню нафтобаза є перевалочним пунктом для
відправки нафтопродуктів на північні райони Іркутської області, Республіку
Саха-Якутия, Хабаровський край водним шляхом (по р. Олена) у період навігації з
1/05 по 25/10. Наявність потужного резервуарного парку дає змогу виробляти
накопичення і збереження нафтопродукту у час года.
Через наявні вісім АЗС і п’ять филиалов-нефтескладов нафтобаза покриває
потреби у нафтопродуктах у деяких районах Іркутської обл.
Мастилами, мастилами також забезпечуються підприємства Братського і Усть-Илимского
районов.
Підприємство має розвинену інфраструктуру щодо забезпечення підприємств і
громадських організацій і житлових мікрорайонів такими видами послуг:
установка телефонів, і забезпечення телефонного связью
передача електроенергії через власну подстанцию
постачання пором, холодної та гарячою водою від власних джерел (ТЕЦ,
водозабор)
перевезення нафтопродуктів автотранспортом.
Виробничі потужності та його оснащения
Щоб управляти організацією, необхідно належним чином зв’язати мети,
покупців, безліч види, виконуваної ними робіт між собою. І тому створюється
організаційну структуру управління організацією, й укладаються посадові
інструкції усім членів організації, у яких обумовлюються: права,
відповідальність й обов’язки каждого.
Схема 1
Структура управління предприятия

Схема 2

Підрозділ підприємства на цеха
Безпосередній реалізація нафтопродуктів здійснюється через такі основні
цеху, як 1 цех, 4 цех і АЗС. Обсяг реалізації нафтопродуктів цехами
розподіляється залежно від сезонних умов, тобто. у період
найбільший реалізацію нафтопродукту посідає 1 і 4 цеху, т.к. у тих
цехах виробляється відвантаження нафтопродуктів водним шляхом (танкерами).В зимовий ж
період ці цеху виробляють «затарку «резервуарів для зберігання нафтопродукту.
Прийом нафтопродукту здійснюється з вагоноцистерн через эстокады. Відвантаження
виробляється водним шляхом танкерами через причалы
Цех № 1 призначений як зберігання нафтопродукту, перевалки водним шляхом
(танкерами), забезпеченням міста Київ і філій темними і світлими нафтопродуктами.
Цех № 4предназначен для зберігання світлих нафтопродуктів та відправлення водним путем.
Лабораторія здійснює якості прийнятих і що виділяються
нафтопродуктів, і навіть періодичний контролю над станом нафтопродуктів на
резервуарах.
Тарний виробляє перевалку паливно-мастильних матеріалів через бочкатару і
поштучно (литол, циатим, тосол …).
Цех № 3, АЗС здійснюють реалізацію нафтопродуктів для населення й підприємствам
готівковим і безготівковим расчетом.
Допоміжне виробництво здійснює обслуговування основних об'єктів
нафтобази, в тому числі сусідній житловий селище (забезпечення теплом, зв’язком,
електроенергією при необходимости)
Основні виробничі фонды
Умовне розподіл обсягу реалізації нафтопродукту основними цехами

Основні кошти підприємства представлені різними видами, що відбивають
виробничу діяльність. Найбільшу питому вагу мають будівлі і
сооружения.
До складу будинків входять виробничі цеху, побудованих переважно
25−30 років і здебільшого вимагають капітального ремонту. Низка норма
зносу, проведені переоцінки значно збільшили вартість будинків, що ні
відповідає істинної ринкової стоимости.
Спорудження, переважно, представлені резервуарами, котрі з 90% немає
залишкової вартості і буде щодо терміну служби підлягають списанню. Та оскільки
зробити це можливо, слід зробити оцінку залишкової вартості цього
частини основних фондів, це дозволить отримати додаткові амортизаційні
відрахування На оновлення износа
З загальної кількості резервуарів на нафтобазі 10% вимагають негайної заміни,
іншим необхідно проведення повного обстеження, визначення залишкового
ресурсу і ремонт.
Високий рівень зносу (більш 60%) характеризує такі об'єкти основних засобів
як машини та устаткування, і транспортні засоби. Їх питому вагу загалом
обсязі становить 2%.
Практично зношеними є передавальні устрою, мають залишкову
вартість 22,7 млн руб. при відновлювальної вартості 96,2 млн руб. ,
У зв’язку з зменшенням капітальних вкладень, введення основних фондів за 1999−2000
скоротився і впливає. За 1999 р. введено основних засобів у сумі
2,9 млн. крб. Списання основних засобів 2000 р. не вироблялося. Це було пов’язано
про те, що цілком амортизовані кошти експлуатуються, а
списання основних засобів фізично зношених і эксплуатирующихся, але не
мають залишкову вартість не разрешается.
У цілому нині кошти нафтобази мають значну восстановительную
вартість 606,9 млн. крб., великий знос — 356,8 млн руб.
Для визначення істинної ринкову вартість кожного об'єкта основних фондів
необхідно провести натуральну оцінку з допомогою професійних
оцінювачів. Це позитивно позначиться визначення оподатковуваної бази щодо
визначення податку майно так збільшення амортизаційних відрахувань
на: ремонт і повний відновлення основних средств
Собівартість, прибуток і рентабельність продукции
Прибуток і рентабельність є важливі показники ефективності
производства.
Досягнення найбільших результатів при найменших видатках є незаперечним
законом господарського деятельности.
Підвищення ефективності виробництва означає як зростання продуктивності
праці, фондовіддачі й відповідне зниження собівартості продукції, а й збільшення суми
прибутків і рівня рентабельности.
На підприємстві розрізняють прибуток від продукції і на балансову прибыль.
Прибуток є частина чистого доходу, отриманого у процесі
господарську діяльність, що утворюється після відшкодування з дохідних
надходжень (виручки) витрат за собівартість продукции.
Сума прибутку змінюється під впливом інтенсивних і екстенсивних чинників.
До інтенсивних чинників зміна суми прибутку належить поліпшення
використання виробничих фондів, зростання обсягу виробництва без збільшення
кількості працюючих, підвищення продуктивність праці та подальше зниження
себестоимости.
Рентабельність — важливий узагальнюючий показник роботи підприємства. У ньому знаходить
відбиток як величена прибутків і виробничих фондів, а й
продуктивності праці, фондовіддачі, швидкості оборотності оборотних
засобів і т.д.
Розрізняють три виду рентабельности:
загальна рентабельність — ставлення суми балансового прибутку до середньорічний
вартості основних виробничих фондів і нормувальних оборотних засобів, не
про кредитованих банком;
?расчетная рентабельність — ставлення суми розрахункового прибутку до середньорічний
вартості основних виробничих фондів і нормувальних оборотних засобів за
відрахуванням основних фондів, якими не стягують плату до бюджету, і
нормувальних оборотних засобів, про кредитованих банком. Для обчислення суми
розрахункового прибутку балансовий прибуток зменшується у сумі платежів до бюджету за
виробничі основні фонди й нормируемые оборотні кошти й у сумі
сплачених відсотків користування банківським кредитом;
?рентабельность стосовно видатках — ставлення суми прибутку до витрат
як загалом по анализируемому підприємству, і на окремі види
діяльності чи видам работ.
Планування виробничо-господарської діяльності предприятия
План виробництва та реалізації продукции
Вихідним елементом організації виробничого процесу є якісно
розроблений, своєчасно доведений до цехів і підрозділів підприємства
плани і планові задания.
Планування капітального будівництва й капітального ремонту основних фондов
Основне завдання планування капітального будівництва є збільшення і
відновлення виробничих потужностей та основних фондів. Це завдання повинна
вирішуватися на сучасної науково-технічної платній основі у обсягах, необхідні
забезпечення приросту продукції та послуг, підвищення його якості, зростання
ефективності производства.
При плануванні капітального будівництва слід забезпечити
збалансованість лімітів капітальних вкладень і будівельно-монтажні роботи з
фінансовими і матеріальними ресурсами.
До основним показниками плану капітальних вкладень относится:
приріст виробничих потужностей з допомогою технічного переоснащення і
реконструкции
введення на дію виробничих потужностей, окремих об'єктів
виробничого призначення з допомогою розширення діючих і початок будівництва
нових будинків й сооружений
введення на дію об'єктів охорони природы
введення на дію основних виробничих та невиробничих фондов
Ліміт — ресурсний показник, визначальний граничну величину капітальних
вкладень, зокрема на будівельно-монтажні роботи, на запланований введення в
дію потужностей, об'єктів й створення нормативних досвіду. Замовники зобов’язані
вкладатися на відповідні ліміти капітальних вложений.
Передумови для написання приложения
Головним чинником і розробити свого докладання стало пропозицію моєї
дружини, працюючої бухгалтером у цьому підприємстві яка виконує розрахунок
квартплати. Усть-Кутская нафтобаза тримає в своєму балансі Житлове господарство
загальною площею — 22 735 кв. метрів і пишатися кількістю які проживають — 14 тисяч 420
людина. Розрахунок квартплати виробляється у бухгалтерії за даними ЖКО. При даному
розрахунку переважно фіксуються ті мешканці, із яким стягують і нараховують
квартплату за послуги. Я, під час написання докладання, було
найповніше відбити всіх що у СУБД і підходящої більше
безпосередньо для ЖКО як расчетно-информационная база всіх які проживають.
Коротка характеристика системы
Для планування діяльності будь-який фірми будь-якою етапі роботи
здійснюються деякі розрахунки для автоматизації яких зручне і раціонально
застосовувати обчислювальну техніку. У своїй дипломної роботі вирішив розробити
додаток з обліку і щодо оплати квартиру.
У цьому додатку вирішуються такі задачи:
Заповнення і збереження інформації про всіх мешканцях. Ця інформація впорядкована і
виводиться на екран, для перегляду чи редагування залежно від
гаданого дії пользователя.
Можливість вибіркового нарахування на послуги, і навіть можливо
(якщо це потрібно) встановити відсоток нарахування кожну послугу окремо
конкретної квартиронаймача (наприклад, у який то період квартирі хто б
проживает (отпуск, відрядження тощо.)) отже за якісь послуги плата
не нараховується чи нараховується в меншому розмірі (10%, 20%,…), чи наоборот.
Можливість визначення пільги на одне чи групи квартиро-съемщиков і
відсоткової ставці кожної льготы.
Формування й печатку необхідних даних для звітності та виваженості аналізу, і навіть
печатку квитанції про вироблених нарахуваннях, боргу оплаті і залишку
коштів конкретної жильца.
Можливість звернення до довідковим екранам, описывающими возмож-ные дії
цьому місці системи.
Передбачено вхідний і вихідний контроль для записів, що є
обов’язково унікальними (не повторяемость).
Опис предметної области
Організація роботи з цими одна із основних етапів створення
прикладної програми. Саме від першим етапом, справді дуже важливого
і багатьма недооцениваемого, найчастіше залежить створення всієї системи
автоматизованої обробки даних, і успіх її експлуатації у кінцевого
користувача.
Розробка програми для обліку нарахувань сплати користування послугами,
наданих Жилищно-Коммунальным господарством Усть-Кутской нефтебазы.
При розрахунку квартплати мають бути передбачені нарахування з пільг, такі
що коли громадянин є учасником ВВВ, працівником тилу, ветеран праці,
інваліди тощо., користувач може використовувати будь-які види пільги і по
ним, згідно з чинними для цієї організації. У процесі роботи, можна
змінювати, доповнювати пільги конкретної мешканця чи групи мешканців, мають
однаковий код і ставок за нею. Також передбачено нарахування пільг на
певного періоду, у разі користувач вибирає дату, з якою
починається розрахунок пільг, конкретної особи, і дату коли він закінчується.
До кожного мешканця, від якого береться квартплата, передбачити зміна
високій вартості послуг, залежно від цій ситуації нині часу
(відпустку, відрядження тощо.) чи то з типу житла (невпорядкована квартира,
привізна вода тощо.), як і меншу, і у велику бік, за умовчанням
нараховуються нормативні ставки, які у даної организации.
Після всіх розрахунків, визначається загальна сума до оплати, суми
нарахувань з усіх видів послуг та незначною сумою нарахувань з пільг в кожному
квартиросъемщику.
Після закінчення звітний період (1 місяць) формується звіти за видами оплати й
категоріям які проживають, із можливістю їх коригування вручну, і роздруківкою в
будь-яке время.
Визначення задач
Реєстрація всіх проживающих
Визначення (вказівку), використовуваних услуг
Визначення (вибір) пільги і ставок за нею
Визначення (зміна) періоду нарахування пільги (необов'язкове условие)
Визначення норм сплати кожну послугу (нормативы)
Визначення норм сплати кожну послугу, для окремого мешканця чи, загалом для
мешканців, що у одному будинку (необов'язкове условие)
Розрахунок квартплаты
Розрахунок льгот
Визначення сум до оплате
Формування й печатку квитанції оплату конкретної плательщика
Облік платежів квартиронаймачів (дата з сумою платежу, залишок чи
задолженность)
Перегляд, Доповнення і Зміна інформації про категоріях проживающих
Щомісячна підготовка звітів різноманітні начислениям
Редагування і поставив печатку звітів (у час і у будь-якому количестве)
Можливість звернутися до файлам допомоги (F1)
Можливість пошуку
Відповіді ці запитання дозволяють підійти до головного у постановці завдання —
побудові инфологической моделі докладання. У найпростішому прикладі така модель
то, можливо відображена як взаємозв'язків між компонентами і процесами
докладання, як показано малюнку 2.1. на практиці проектування такі схеми
дістали назву ER-диаграмм (Entity-relationship diagram (ERD) — діаграма
«Сущность-связь»)
Максимально формалізоване опис завдання тепер виглядати наступним
чином.
Найменування задачи:
Автоматизація роботи бухгалтера із розрахунку квартплаты.
Мета роботи бухгалтера:
Запровадження обліку, і розрахунків із населенням за надані комунальні услуги.
Функції бухгалтера:
Укладання договорів і реєстрація клієнтів в Базі Данных.
Ведення інформації з пільг вдаються і ставками по ним.
Фундаментальна обізнаність із клієнтами: встановлення пільги, встановлення тарифних ставок відмінних
від нормативних з різних причин, роз’яснювальна роботу і т.д.
Ведення розрахунків за використовувані послуги (виписка квитанції про оплате).
Бізнес — правила:
Введення інформації з урахуванням документов.
Вимоги до системе
Програма може працювати під керівництвом операційними системами DOS чи WINDOWS,
за наявності пакета FoxPro 2.6 for DOS.
Перелік введеної информации:
Прізвище, ім'я і по батькові жильца;
Табельний номер;
Рік рождения
Адрес;
Квадратні метры;
Телефон;
За наявності пільги — опис пільги, код, период;
Вибір платника, вказаної у ордере
Нормативні ставки услуги
Тарифні ставки і опис тарифа
Перелік друкованих отчетов:
Списки по начислению
Списки льготников
Списки зі свідченнями счетчика
Оплата электроэнергии
Сальдо по квартиросъемщикам
Звід на квартплату за месяц
Квитанція про оплате
Проектування бази данных
Є дуже просте поняття бази даних великого за обсягом сховища, в
яке організація поміщає усі використовувані нею дані і з яких різні
користувачі можуть дивитися їх отримувати, використовуючи різні докладання. Така єдина
база даних представляється ідеальний варіант, хоча це рішення щодо
різних причин важко досяжно. Тому найчастіше під базою даних
розуміють будь-який набір які у комп’ютері данных.
У основу проектування БД слід покласти уявлення кінцевих
користувачів організації - концептуальні вимоги до системи. Оскільки,
саме кінцевий користувач у роботі приймає рішення з урахуванням
яку за результаті доступу до бази даних інформації. Отже, від
оперативності і забезпечення якості цієї інформації залежатиме ефективності роботи
організації. Дані, вміщувані до бази даних, також надає кінцевий
пользователь.
Зблизька вимог кінцевих користувачів узято до уваги
следующее:
База даних має відповідати актуальним інформаційним потребам
організації. Одержуваний інформація повинна структурою та змісту
відповідати що розв’язуються задачам.
База даних мають забезпечувати отримання необхідних даних за прийнятне час,
тобто відповідати заданим вимогам производительности.
База даних має відповідати виявленими і знову які виникають вимогам
кінцевих пользователей.
Завантажені до бази даних коректні дані повинні залишатися корректными.
Дані до включення до базі даних будуть перевіряти на достоверность.
Доступ до даних, размещаемым базі даних, повинен мати тільки той з
відповідними полномочиями.
З вищевикладеного розглянемо етапи проектування баз даних, які
слід забезпечити необхідну незалежність даних, і виконання експлуатаційних
вимог (побажань пользователей).
Етап 1. Визначення сущностей
З завдання, описаної вище, виділимо такі сущности:
Мешканці - БД, яка містить інформацію про мешканцях (RABOT. DBF)
Нарахування — БД, яка містить інформацію про нарахуваннях (OPLATA. DBF)
Пільги — БД, що містить інформацію про пільги (LGOT. DBF)
Ставки — БД, що містить інформацію про ставках конкретної мешканця і (чи) про
мешканцях, що у одному будинку (TABLE_R. DBF)
Тарифи — БД, яка містить інформацію описи тарифів і ставок із них (TARIF. DBF)
Первинний ключ — це атрибут (чи група атрибутів), які єдиним
чином ідентифікують кожен рядок в таблице.
Альтернативний ключ — це атрибут (чи група атрибутів), несовпадающий з
первинним ключем і унікально ідентифікуючий примірник объекта.
Для кожної сутності визначимо атрибути, які будемо зберігати в БД.
Атрибути, включаемые у складі БД, наведені у таблиці 2.1. інформаційна модель
після третього етапу проектування приведено на рис. 2. 13
Таблиця 2.1. Атрибути і первинні ключі сутностей інформаційної
моделиСущностьПервичный ключАтрибуты
ЖИЛЬЦЫТабельный номер
Улица
Дом
КвартираТабельный номер
Улица
Дом
Квартира
Ф.И. О
Номер телефона
Квадратні метры
Льгота
Код льготы
№ посвідчення (по льготе)
Дата, з якою нараховуватиметься льгота
Дата закінчення нарахувань по льготе
Старе значення счетчика
Нове значення счетчика
Визначення плательщика
Кількість які проживають (в 1-ї квартире)
Дата сплати надані услуги
Залишок грошових средств
Введення оплаты
Нарахування квартплати (ЕстьНет)
Нарахування радіо (ЕстьНет)
Нарахування телефону (ЕстьНет)
Нарахування гарячої (ЕстьНет)
Нарахування холодної води (ЕстьНет)
Нарахування коммунальн. послуг (ЕстьНет)
Нарахування опалення (ЕстьНет)
Нарахування електроенергії (ЕстьНет)
ЛЬГОТАКод льготыКод льготы
Опис льготы
Відсоткову ставку по квартплате
Відсоткову ставку по радио
Відсоткову ставку по телефону
Відсоткову ставку по гарячої воде
Відсоткову ставку по холодної воде
Відсоткову ставку по кому. услугам
Відсоткову ставку по отоплению
ТАРИФ Опис тарифа
Ставка оплаты
Порядок нарахування (на 1-го чол. на 1 м2)
Вибір: на 1-го людини чи 1 м²
СущностьПервичный ключАтрибуты
СТАВКИТабельный номерТабельный номер
Опис льготы
Ставка по квартплате
Ставка по радио
Ставка по телефону
Ставка по гарячої воде
Ставка по холодної воде
Ставка по комунальним услугам
Ставка по отоплению
Ставка по электроэнергии
НАЧИСЛЕНИЯТабельный номер
Улица
Дом
КвартираТабельный номер
Улица
Дом
Квартира
Квадратні метры
Код льготы
Вибір плательщика
Кількість проживающих
Пільга (ДаНет)
Нарахування квартплати (ДаНет)
Нарахування радіо (ДаНет)
Нарахування телефону (ДаНет)
Нарахування гір. Води (ДаНет)
Нарахування хол. Води (ДаНет)
Нарахування кому. Послуг (ДаНет)
Нарахування ел. Енергії (ДаНет)
Нарахування опалення (ДаНет)
Сума нарахування квартплаты
Сума нарахування телефона
Сума нарахування радио
Сума нарахування ком. услуг
Сума нарахування отопления
Сума нарахування элэнергии
Сума нарахування гор. воды
Сума нарахування хол. воды
Поч. квартплати (по пільзі) на 1-го чел.
Нач. телефона (по пільзі) на 1-го чел.
Поч. радіо (по пільзі) на 1-го чел.
Поч. ком. услуг (по пільзі) на 1-го чел.
Поч. опалення (по пільзі) на 1-го чел.
Поч. элэнергии (по пільзі) на 1-го чел.
Поч. гор. воды (по пільзі) на 1-го чел.
Поч. хол. воды (по пільзі) на 1-го чел.
Сума поч. квартплати по льготе
Сума поч. гір. Води по льготе
Сума поч. хол. Води по льготе
Сума поч. кому. Послуг по льготе
Сума поч. опалення по льготе
Сума поч. телефону по льготе
Сума поч. радіо по льготе
Результат сум нарахувань по льготе
Результат сум начислений
Результат до оплате

Етап 4. Фізичне опис модели
Аналізуючи цей етап складемо бази даних, що у подальшому реалізовуватися в
СУБД. Призначення імен БД та його атрибутів відбито у табл. 2.2.
Таблиця 2.2. Структура, використовуваних Баз Данных. RABOT. DBF
(Жильцы)ИмяТипДлина примечание
TABN40Табельный номер
FAMC40-Ф.И. О
TELN80Номер телефона
YLC15-Улица
DOMС30Дом
KW_RAС30Квартира
KV_MN62Квадратные метры
N_LGN10Код льготы
N_YDС90Номер посвідчення (по льготе)
DAT_CD8-Дата, з якою нараховуватиметься льгота
DAT_POD8-Дата закінчення нарахувань по льготе
ELECN60Старое значення счетчика
ELEC1N60Новое значення счетчика
OR_RN10Определение плательщика
KOL_VON20Количество проживающих
D_OPLD8-Дата оплаты
OST_KN82Остаток грошових средств
OPL_TAN82Ввод оплаты
LGOTL1-Льгота (ДаНет)
RAD_LL1-Начисления радіо (ДаНет)
TEL_LL1-Начисления телефону (ДаНет)
KW_LL1-Начисления квартплати (ДаНет)
G_W_LL1-Начисления гір. води (ДаНет)
X_W_LL1-Начисления хол. води (ДаНет)
K_YS_LL1-Начисления кому. послуг (ДаНет)
EL_C_LL1-Начисления ел. енергії (ДаНет)
OTOP_LL1-Начисления опалення (ДаНет)

OPLATA. DBF (Начисления)ИмяТипДлина Примечание
TABN40Табельный номер
YLC15-Улица
DOMС30Дом
KW_RAС30Квартира
KV_MN62Квадратные метры
N_LGN10Код льготы
OR_RN10Выбор плательщика
KOL_VON20Количество проживающих
DAT_CD8-Дата, з якою нараховуватиметься льгота
DAT_POD8-Дата закінчення нарахувань по льготе
ELECN60Старое значення счетчика
ELEC1N60Новое значення счетчика
TEL_LL1-Начислениятелефона (ДаНет)
G_W_LL1-Начисления гір. Води (ДаНет)
X_W_LL1-Начисления хол. Води (ДаНет)
K_YS_LL1-Начисления кому. Послуг (ДаНет)
EL_C_LL1-Начисления ел. Енергії (ДаНет)
OTOPL_LL1-Начисления опалення (ДаНет)
KW_PLN82Сумма нарахування квартплаты
TEL_RN82Сумма нарахування телефона
RAD_RN82Сумма нарахування радио
K_YSLN82Сумма нарахування ком. услуг
OTOPLN82Сумма нарахування отопления
EL_CN82Сумма нарахування элэнергии
G_WN82Сумма нарахування гор. воды
X_WN82Сумма нарахування хол. воды
KW_PLLN82Нач. квартплати (по пільзі) на 1-го чел.
TEL_RLN82Нач. телефона (по пільзі) на 1-го чел.
RAD_RLN82Нач. радіо (по пільзі) на 1-го чел.
K_YSLLN82Нач. ком. услуг (по пільзі) на 1-го чел.
OTOPLLN82Нач. опалення (по пільзі) на 1-го чел.
EL_CLN82Нач. элэнергии (по пільзі) на 1-го чел.
G_WLN82Нач. гор. воды (по пільзі) на 1-го чел.
X_WLN82Нач. хол. воды (по пільзі) на 1-го чел.
*SUM_KWN82Сумма поч. квартплати по льготе
*SUM_GWN82Сумма поч. гір. Води по льготе
*SUM_XWN82Сумма поч. хол. Води по льготе
*SUM_KYSLN82Сумма поч. кому. Послуг по льготе
*SUM_OTN82Сумма поч. опалення по льготе
*SUM_TLN82Сумма поч. телефону по льготе
*SUM_RDN82Сумма поч. радіо по льготе
*SUM_ITN92Итог сум нарахувань по льготе
ITOG_NN92Итог сум начислений
ITOG_LN92Итог сум нарахувань по пільзі
ITOGN92Итог сум нарахувань (до оплате)

* - Сума нарахувань з пільг мешканців, що у однієї квартире
LGOT. DBF (Льготы)ИмяТипДлина Примечание
N_LGN10Код льготы
INFOC20-Описание льготы
KWP_LN42Ставка нарахувань по квартплате
RD_LN42Ставка нарахувань по радио
GW_LN42Ставка нарахувань по гарячої воде
XW_LN42Ставка нарахувань по холодної воде
K_L_LN42Ставка нарахувань по кому. Услугам
OT_LN42Ставка нарахувань по отоплению
TL_LN42Ставка нарахувань по телефону

TABLE_R. DBF (Ставки)ИмяТипДлина Примечание
TABN40Табельный номер
KWP_LN52Ставка нарахувань по квартплате
RD_LN52Ставка нарахувань по радио
GW_LN52Ставка нарахувань по гір. Воде
XW_LN52Ставка нарахувань по хол. Воде
K_L_LN52Ставка нарахувань по кому. Услугам
OT_LN52Ставка нарахувань по отоплению
EL_LN52Ставка нарахувань электроэнергии
TL_LN52Ставка нарахувань по телефону

TARIF. DBF (Тарифы)
Имя
Тип
Довжина
Примечание
INFO
C
25
-
Опис тарифа
ST_KA
N
5
2
Ставка оплаты
K_INFO
C
11
-
Допомога нарахування (на 1-го чел. на 1 кв. м)
K_CH
L
1
-
Вибір: .T. — на 1-го людини .F. — на 1 м²
HELP. DBF — БД, що містить опис помощи. ИмяТипДлина Примечание
HLPM10-Описание помощи

M_ZAR. MEM — Файл, у якому зберігаються перемінні високій вартості послуг (_*).
До того ж структурні файлы-индексы (CDX), кожної бази, створювані
програмним путем.
Підтримка бази данных
підтримка чи ведення бази даних передбачає наявність коштів доступу до даних
і коштів управління ними. У цьому робочий інтерфейс може бути максимально
«комфортним». Тут слід вирішити, що користувач буде зазвичай бачити на екрані
компьютера.
Зручно як «робочого столу», де вона прийматиме рішення, і
до дій з обробки даних, взяти не якесь меню, а відображення
самої бази даних. На екрані повинні бути і свідчення про можливі
дії користувача. Оскільки у ньому завжди бракує місця, свідчення про
деякі дії можна розмістити у развертывающиеся світлові меню. При
необхідності повинен бути передбачена контекстно-залежна допомогу (HELP
— F1).
Функції підтримки бази данных.
Для обслуговування бази необхідні такі функции.
переміщення впередназад однією запис (SKIPSKIP -1). У цьому повинні
блокуватися спроби вийти за первуюпоследнюю запис бази. Досягнення
верхнейнижней кордону бажано відображати на екрані (READ-окно).
Перехід на началоконец бази (GO TOPBOTTOM).
Позначка записів, виділені на видалення, і зняття позначки (DELETERECALL).
Доповнення бази нової записом (APPEND BLANK).
Вихід із вікна редактирования.
Пошук по ключу (SEEK, LOCATE). Що стосується невдалого пошуку покажчик записів
має повернутися на вихідну запись.
Выводпечать данных.
Упаковка даних (PACK).
Переиндексация бази (REINDEX чи INDEX).
Повна очищення бази від даних (допоміжна база oplata. dbf) (ZAP).
Кошти пред’явлення данных.
Команда BROWSECHANGE зручна тим, що дозволяє панораму даних, і не вимагає
програмування переміщення в БД. У цьому програмі команда BROWSE переважно
використовується для перегляду даних, і результатів вычислений.
Команда READ з командами @…SAY…@…GET:
@…SAY…GET…
@…SAY…
@…GET…
READ …
Ця форма пред’явлення даних є найбільш гнучкою та дає безпосередній
доступом до полях бази. Тепер крім власне редагування, поля бази даних
можна аналізувати, трансформувати, запам’ятовувати в змінних в інших
базах тощо. Найчастіше такої режим називають READ-окном, хоча використання
команд @…GET, READ не зобов’язує поміщати в спеціальне вікно — можуть
проектуватися так і безпосередньо на экран.
Усі операції над базою, предъявляемой командою READ, може бути скоєно або
після завершення команди READ, або у що викликаються процедурах.
Обидві форми (BROWSE і READ) пред’явлення даних активно використовують у программе.
Опис роботи приложения.
Управління програмою здійснюється з допомогою меню, оскільки меню є
основний формою діалогу в прикладних системах обробки даних. FoxPro має
розвиненими засобами підтримки меню і з об'ємним світловим курсором (світловим
«зайчиком»), і з котрі призначаються клавішами. З іншого боку, в FoxPro реалізовано
що й «кнопочное» (Button) меню, що означають не фізичну кнопку на
клавіатурі, а деяку область, на екрані, якої додані управляючі властивості.
«Кнопкові» меню зручно використовувати що з мышью.
У FoxPro є дві альтернативні технології побудови меню — концепція,
яка продовжує ще з попередньої версії СУДБ FoxBASE-2,1, і концепція,
запозичена з СУДБ dBASEIV.
Найважливіша «ідейний» різницю між Fox-меню і dBASE-меню можна визначити
термінами «меню-программа» і «меню-объект». Fox-меню є лише частиною
програми, де вона створюється, використовують і «вмирає». dBASE-меню після свого
визначення залишається незалежним і «живим» об'єктом, якого можна
із будь-якої місця прикладної системи.
Тому управління програмою здійснюється саме з допомогою dBASE-меню, а
й у процедурі показано використання Fox-меню.
dBASE-меню може лише виробляти перемінні для аналізу, а й
безпосередньо викликати процедури, підпрограми, команди з обробки вибору.
Воно пропонує таку архітектуру побудови систем обробки даних, коли
програма може взагалі мати єдиного ядра, а складатися з процедур, які
пов’язані одне з одним лише крізь виклики меню. З іншого боку, є неоціненна
можливість створювати меню з імен файлів і компонентів бази даних,
здійснювати множинний выбор.
У випадку до створення dBASE-меню иработы з нею слід передбачити
такі элементы:
Визначення меню. Тут описуються зміст, «гарячі» клавіші, клавіші
швидкого доступу, форма і реакції меню. Визначення меню може зроблено одного разу
на початку програми розвитку й далі лише использоваться.
Активація меню. Командыклавиши активації пред’являють меню на екрані і роблять
його чутливим у виборі пользователя.
Деактивация меню. Видаляє його з екрана, зберігаючи у пам’яті наступного
можливого использования.
Видалення меню. Це очищає пам’ять від визначення меню, і більше він
можна використовувати без нового определения.
Є два типу елементарних меню:
Вертикальне («всплывающее», чи POPUP-меню),
Горизонтальне (BAR-меню)
На основі можна будувати ієрархічні меню практично будь-якої складності
(вкладеності). Саме з такий технології побудовано меню програми розвитку й вид меню
показаний на рис. 2. 1

Малюнок 2.1 Структура меню (ZAR)
BAR-пункт «Фундаментальна обізнаність із картотекою» — під час виборів цього пункту відкривається READ-окно,
у якому представлена інформацію про квартиросъемщике. У цьому вся вікні, можливо,
змінювати нарахування послуг, змінювати тарифи для мешканців квартири або мають удома, період
пільги, кількість які проживають, можливість формування, перегляду і преси
квитанції, введення суми оплати, розрахунку квартплати, вибору фільтра відображення
мешканців (Платники, Пільговики, Усі мешканці) і пересування базі дынных.
BAR-пункт «Квартиронаймачі» — за його виборі відбиваються ті мешканці, які
оплачують квартплату. Висновок ввозяться табличній формі, де демонструються
половіючі жита із табельною номером і прізвищем, і навіть два додаткових (вычисляемых)
поля, які зберігаються базі даних. Це полі з позначкою «n», який
з’являється в тих мешканців, які сплачують за квартиру і полі з позначкою ««
з’являється в мешканців, які мають пільгу. На вільної області екрана
виводиться інша інформацію про мешканці, включаючи інформацію про вироблених
нарахуваннях. Якщо курсор переміщати, перебувають у полі з позначкою «n», то
автоматично обновлюватиметься інформація на екрані. На від інших полях, при
натисканні клавіші «Enter» з’являється Fox-меню, де можна вибрати подальші
дії.
BAR-пункт «Картотека пільговиків» — за його виборі демонструються ті мешканці які
мають пільгу. Висновок ввозяться табличній формі, де демонструються половіючі жита із
табельною номером, прізвищем, адресу, телефон, категорія пільги, номер (назва)
документа, що підтверджує пільгу. У частині екрана відображається
статус-строка, де показується додаткову інформацію, саме: якщо
пільговик є платником, то показується кількість які проживають і
кількість пільговиків, інакше прізвище і таб. № того, хто оплачує квартиру.
BAR-пункт «База мешканців» — той самий показ як і «Картотеці льготников», только
відбиваються все жильцы.
BAR-пункт «Введення лічильника» — це табличний висновок всіх платників, з цими
лічильника, при введення нових значень лічильника, сума автоматично обчислюється і
коригується сума до оплате.
BAR-пункт «Введення оплати» — це табличний висновок всіх платників, з цими про
сумах нарахувань, сумі до оплати і полем для введення суми платежу. При введення
суми платежу автоматично розраховується залишок і заноситься дата платежу,
які потім відбиваються в звіті і квитанции.
PAD-пункт «Звіти»
BAR-пункт «Списки по нарахуванню» — формується звіт про всіх вироблених
нарахувань, і відкривається вікно із конкретним висновком сум з кожної послузі, окремо сум по
кожної послузі з пільг, підсумкова сума до сплати, залишок чи задолжность, дата
платежа.
BAR-пункт «Списки з пільг» — формується звіт і відкривається вікно з
інформацією окаждом льготнике, включаючи суми з кожної послузі, і навіть
показується прізвище і таб. № того кого прив’язаний пільговик (тобто. того, хто
оплачує квартиру).
BAR-пункт «Списки з показанням лічильника» — формується звіт і відкривається вікно,
у якому зазначено прізвище, таб. №, адреса київська і дані й нового значень
счетчика.
BAR-пункт «Оплата електроенергії» — формується звіт і відкривається вікно, де у
табличній формі виводяться прізвище, таб. №, адресу, дані й нового
значень лічильника з сумою до уплате.
BAR-пункт «Сальдо по квартиронаймачам» — формується звіт і відкривається вікно,
де у табличній формі виводяться прізвище, таб. №, суми нарахування, до оплати і
остаток.
BAR-пункт «Звід із квартплати протягом місяця» — формується звіт і відкривається вікно,
де у табличній формі виводяться загальні суми з кожної послузі, окремо по
пільгам, підсумкові суми нарахувань на квартплату, з пільг та незначною сумою, яку
організація повинна щось одержати за месяц.
Після закриття будь-якого вікна зі звітом, відкривається вікно з пропозицією
распечатки.
PAD-пункт «Печатка» — складається з імен файлів, створені під час виборів
BAR-пунктов «Звіти» это:
«Списки по нарахуванню» — файл NACH-xx. TXT
«Списки з пільг» — файл LG_KW-xx. TXT
«Списки з показанням лічильника» — файл ELC_V-xx. TXT
«Оплата електроенергії» — файл EL_PL-xx. TXT
«Сальдо по квартиронаймачам» — файл SALDO-xx. TXT
«Звід із квартплати протягом місяця» — файл SVOD-xx. TXT
Де хх — це номер місяці, протягом якого сформований звіт. Якщо встановити курсор
з ім'ям відповідного файла й тицьнути на клавішу «Enter» (ВВЕДЕННЯ), то відкриється вікно
для просмотра-редактирования звіту. Якщо встановити курсор з ім'ям
відповідного файла й тицьнути на клавішу «Spacebar» (ПРОГАЛИНУ), то файл
роздрукується, за умови, якщо принтер готовий, інакше з’явиться повідомлення про
підготовці принтера.
PAD-пункт «Сервис»
BAR-пункт «Доповнення» — відкривається вікно, де можна додати мешканців
базі даних, із зазначенням пільг і услуг.
BAR-пункт «Доповнення пільг» — відкривається вікно, у якому додаються чи
змінюються код, опис пільги і по ним.
BAR-пункт «Тарифи» — відкривається вікно з dBASE-меню PAD-пункты якого
позволяют:
PAD-пункт «Перегляд» — формує POPUP-меню з полів бази з описом тарифів,
при натисканні клавіші «Enter», на обраному BAR-пункте з описом тарифу,
з’являються поля редагування даного тарифу із можливістю видалення чи
изменения.
PAD-пункт «Додати» — виводить поля для доповнення тарифа.
PAD-пункт «Вийти» — закриває вікно і меню тарифов.
BAR-пункт «Норми оплати послуг» — за його виборі відкривається вікно, у якому
слід зазначити вартість кожної послуги. Ці ставки діють до розрахунку
нарахування квартплати за умовчанням всім жильцов.
BAR-пункт «Переиндексация» — за його виборі відбувається процедура переиндексации
всіх БД.
BAR-пункт «Упаковка даних» — запускає процедуру фізичного видалення даних,
які раніше були визначені на удаление.
PAD-пункт «Расчет»
BAR-пункт «Розрахунок квартплати» -за його виборі відбувається розрахунок квартплати за
поточний місяць і після виводиться вікно, де у табличній формі показується таб. №,
прізвище і нарахування з кожної послузі, із можливістю їх редагування. У
частині екрана показується загальні суми за всі послугам і загальна підсумкова
сума, також ці суми виділяються кольором залежно від перебування курсору в
таблице.
BAR-пункт «Розрахунок з пільг» — за його виборі відбувається розрахунок тим
мешканців, які мають пільгу і задовольняють вимозі початку й кінця дії
пільги, коли ці поля у мешканця відсутні передбачається, що не має терміну
обмеження. Висновок даних, і інформація у нижній частині аналогічна як у пункті
«Розрахунок квартплаты».
BAR-пункт «Злиття квартплати з пільгами» — за його виборі відбувається розрахунок
суми до оплати тобто. «нарахування із квартплати» мінус «нарахування по пільзі».
Після цього виводиться вікно з полями: таб. №, прізвище, підсумкова сума нарахувань,
підсумкова сума нарахувань по пільзі з сумою до оплати. У частині екрана
показується адресу платника, кількість які проживають і кількість льготников.
PAD-пункт «Помощь»
BAR-пункт «Допомога» -виводить вікно з описом призначень PAD- і BAR-пунктов.
BAR-пункт «Довідка» — виводить вікно з коротким описом призначення программы.
PAD-пункт «Вихід» — дозволяє з програми.
Робота окнами.
У додатку використовуються два виду вікон это:
Вікна, призначені в обробці данных.
Вікна, призначені для вибору дії чи, або виводять додаткову
що пояснює інформацію. Такі вікна ще називають діалогові окна.
При початковому запуску докладання, коли база даних порожня, будь-який вибір пункту
меню, до роботи якої необхідний даних про мешканцях, викликає діалогове вікно з
пропозицією розпочати роботи з доповнення. Це вікно містить поясняющий і
дві кнопки і.
Вікно «Фундаментальна обізнаність із картотекою» (INS)
При виборі пункту меню «КАДРЫ"-"Работа з картотекою» відкривається вікно розміром
на повний екран, у якому розміщують вся основна інформацію про мешканці. Вікно
візуально ділиться за вертикаллю на частини, де у першій його частині (близько 23 вікна)
розташовується інформацію про мешканці, а решти, яка виділено кольором,
розташовуються кнопки для вибору певних дій. Малюнок вікна показаний на
малюнку 2 докладання 2. Розглянемо ці частини поподробней.
1 частина «Відомості про жильце»
У перших рядках розташована особиста інформація: прізвище, таб. №, адресу, телефон,
площа квартири, які недоступні для редагування, дата народження, і навіть
автоматично вычисляемая інформацію про количестволет.
Кількість які проживають і кількість пільговиків обчислюються залежно від
записів в БД у ній не зберігаються, навпаки цих полів перебуває полі з
кількістю які проживають, яке зберігається у БД і є основою
розрахунку квартплаты.
Далі йде напис «СКЛАД СІМ'Ї», яка накрита невидимою кнопкою, під час виборів
якої випадає POPUP-меню з прізвищами що у даної квартирі з
зазначенням хто неї платить і хто є пільговиками. При виборі елемента
меню, вікно оновлюється інформацією звідси жильце.
Далі йде рядок з туристичною інформацією про пільзі: код, найменування пільги, ні з
якого і з якої період вона діє. Якщо період не зазначений, то
передбачається, що пільгу немає обмеження.
Кнопки вибору нарахувань послуг ([ ]-не нараховується, [x]-начисляется)
Поясняющий текст до кнопки (для який послуги, яку потрібно выбирать)
Ставки послуг, ці написи накриті невидимими кнопками, вибір яких
відкриває вікно і меню, де можна змінити ставки для мешканців квартири (вдома).
Описание тарифів відображається з вікна залежно від вибору тарифу: то якщо ми
розрахунок послуги виробляється у залежність від кількості що у квартирі,
то відбиваються лише одну людину, якщо розраховується від
займаній житлоплощі, то, на 1 вартість квадратного метра. (див. рис. 3 прилож. № 2, і навіть
див. опис пунктів меню «Сервис"-"Тарифы»).
Демонструються суми нарахувань по услугам
Демонструються суми нарахувань про послуги з урахуванням льготы.
Заголовки столбцов.
У стовпці «Пільги» надано загальна сума нарахувань з пільг для даної
квартири і щоб одержувати інформацію про нарахуваннях по пільзі мешканця, інформація
яким представленій у вікні, призначена кнопка «[]», яка доступна
в тому разі, якщо мешканець має пільгу і їх виборі з’являється міні
вікно, де показані його нарахування по пільзі.
Під час наступної рядку представлені підсумкові суми по нарахуванню, пільг вдаються і до
оплате.
Далі дата оплати, сума сплати і залишок чи задолженность.
І останньої рядку розташовані дві кнопки «По пільгам» і «По оплаті», які
доступні у разі якщо це мешканець має пільгу чи має ордер, або й то
і другое.
«По пільзі» — у її виборі з’являється вікно, яке показано на рис. 5 прилож.
2, у якому зазначений код, ставки і опис пільги для даного мешканця. Уся
інформація може коригуватися, важливо лише пам’ятати, що все змінена
інформація стимулюватиме всіх мешканців, мають цей код.
«По оплаті» — у її виборі з’являється аналогічне вікно, описане вище, яке
показано на рис. 6 прилож. 2, де міститься інформацію про ставках
високій вартості послуг для даного мешканця. Якщо розрахунок ведеться за нормативним ставками,
то ми все поля мають нульовий значення, і навіть коли потрібно даному мешканцю встановити
нормативні ставки, потрібно обнулити відповідне полі. Після виходу з
полів редагування з’явиться предупреждение:
«Встановити всім мешканцям вдома Y/N «,
що буде чекати натискання клавіш. Якщо клавішу «Y» то ставки, які
відображались з вікна буде встановлено всім мешканцям, що у цьому будинку,
при натисканні будь-який інший клавіші ставки буде встановлено лише мешканцям даної
квартиры.
У цьому інформація у частині вікна закінчується, і перейдемо до другої
части.
2 частина «Кнопки — меню»
В другій частині розташовані кнопки, під час виборів яких виконується певні
дії з обробці даних (див. рис 2 докладання. 2 стор. 2). Розберемо їх за
порядку расположения.
Кнопко «Змінити» — у її виборі відкривається вікно, яке показано на рис 20
докладання 2 стор. 20, де можна змінити даних про мешканці. Якщо змінюється адресу
мешканця, то автоматично перераховується кількість які проживають за «старим і
новому адреси. Аби зберегти змінену інформацію необхідно вийти з вікна на
по кнопці «Підтверджую», якщо вийти по кнопці «Скасування», внесені не
сохраняются.
Кнопка «Додати» — відкривається аналогічне вікно, описане вище, яке
показано на рис 19 докладання 2 стор. 19, только все поля мають порожні значення.
Також деякі поля, при редагуванні перевіряються на коректність внесених
даних. Докладніше це завжди буде описано під час розгляду цього вікна. Вихід також
має відбуватися по кнопці «Зберегти» інакше мешканець та її дані ні
внесені до БД.
Кнопка «Видалити» — позначає на видалення мешканця, що у вікні й інформація
з вікна обновляется.
Кнопка «Печатка…» — формує квитанцію про нарахуваннях і про оплату, і це відкриває вікно,
яке показано на рис 7 докладання 2 стор. 7. Після його закриття з’явиться вікно
з проханням вибрати рішення роздруківки даного документа (рис 8 докладання 2 стор.
8).
Кнопко «Введення оплати» — відкриває вікно, яке показано на рис 4 докладання 2
стор. 4, де можливо вести суму для квартиронаймача, котра платить за
квартиру.
Наступні кнопки дозволяють фільтрувати дані для просмотра:
Кнопко «Платники» — для перегляду будуть доступні мешканці які сплачують за
квартиру;
Кнопка «Пільговики» — для перегляду будуть доступні мешканці, які мають пільгу,
незалежно від періоду действия;
Кнопка «Усі мешканці» — для перегляду будуть доступні все мешканці, крім помічених
на удаление.
У цьому під цими кнопками розташована підказка, який фільтр выбран.
Наступна група кнопок варта переміщення в БД:
Кнопко «Угору» — дозволяє перейти однією запис вгору;
Кнопка «Донизу» — дозволяє перейти однією запис вниз;
Кнопко «Початок» — дозволяє перейти на початок БД;
Кнопко «Угору» — дозволяє перейти насамкінець БД.
У цьому якщо досягнуто початок (кінець) БД, це були відповідні кнопки стають
недоступними, а правом розі вікна з’являється попередження, що досягнуть
кінець (початок) БД.
Кнопко «Вийти» — дозволяє і закрити окно.
Кнопка «Розрахунок» — дозволяє розрахувати квартплату для поточного мешканця, з урахуванням
зроблених змін, і навіть розрахунок відбувається, тоді як вікні перебуває
платник, інакше кнопка просто ігнорується.
Вікно «Квартиронаймачі» (KD)
При виборі пункту меню «КАДРЫ"-"Квартиросъемщики» відкривається BROWSE-окно з
полями: табельний номер, прізвище і двоє вычисляемых поля (див. рис 9 докладання 2
стор. 9), які показують платника і пільговиків. У цьому відбиваються
ті мешканці хто оплачує квартиру. На вільної частини екрана з боку
боку виводиться інформація по мешканцю, де міститься курсор, у своїй
вона автоматично оновлюється, якщо переміщенні курсор перебуває у полі,
яке вказує, чи є мешканець платником. При натисканні у кожному полі,
крім поля з позначкою (n), з’являється Fox-меню, де можна вибрати подальші
дії (див. рис 10 докладання 2 стр. 10):
«Постійна частина» — відкриває вікно «Фундаментальна обізнаність із картотекою», що було описано
выше
«Нарахування» — оновлюють інформацію на екрані у правій частині про те
квартиронаймача, де міститься курсор.
«Мешканці» — під час виборів цього пункту з BROWSE-окне відбиваються лише мешканці
квартири того квартиронаймача, у якому перебував курсор.
«Платники» — повертає вікно із відображення лише про тих мешканців, які
оплачують квартиру.
«Пошук» — під час виборів цього пункту активується POPUP-меню з проханням вибору
критерію пошуку (див. рис 13 докладання 2 стор. 13), це то, можливо на прізвище,
табельної номера чи адресою. Після вибору відповідного пункту, крім
пункту «Скасування», пред’являється вікно для введення ключа. У цьому якщо це з
прізвища, то може бути пошук і освоєння по неповного ключу, приміром з ключу «ПЕТРО» будуть
задовольняти пошуку прізвища: «ПЕТРОВ», «ПЕТРОВСЬКИЙ», «ПЕТРИК» тощо., коли з
адресою то пред’являються три поля заповнення вулиці, будинки і квартири. Тут
також може бути неповний ключ, тобто обов’язковим заповненим полем, має
бути, полі «вулиця» що можна редагувати вручну чи вибрати з
выпадающего списку всіх вулиць, коли курсор потрапляє у це полі, інші ж поля
може бути порожніми. І тут покажчик запис у БД встановиться на першого
мешканця в БД проживаючого у цій улице.
Цю систему пошуку викликається переважають у всіх вікнах, де міститься інформацію про
жильцах.
Інші пункти було розглянуто вище (вікно «Фундаментальна обізнаність із картотекой»).
Вікно нормативів (M_ZAR)
При виборі пункту меню «СЕРВИС"-"Нормы оплати послуг» — відкривається вікно, де
потрібно вести ставки вартості кожної послуги і прізвище того, хто займається
розрахунком і це прізвище буде підставлятися в звіти і квитанцію. Ставки,
веденные у тому вікні є базовими при розрахунку квартплати всім мешканців,
крім, кому ставки визначено окремо (див. рис 11 докладання 2 стор.
11).
Вікно доповнення пільг (INS)
При виборі пункту меню «СЕРВИС"-"Дополнение пільг» — відкривається вікно, у якому
можна додавати чи змінювати інформацію з пільгам. Перше полі яке
потрапляє курсор після відкриття вікна — це код пільги, якщо вести цифру коду,
що вже описана раннє, то інформація з вікна автоматично оновиться, то
є поля будуть заповнені залежно від веденного коду і, можливо змінити
інформацію з цьому коду. Щоб зберегти веденные зміни чи
додати пільгу потрібно натиснути кнопку «Зберегти» (див. рис 17 докладання 2 стор.
17)
Вікно тарифов
При виборі пункту меню «СЕРВИС"-"Тарифы» — відкривається вікно з меню для вибору
действий.
(див. рис 18 докладання 2 стор. 18). Пункт меню «Додати» пред’являє з вікна поля
для занесення даних із тарифу. Для зміни чи видалення вже не існуючого
тарифу треба її вибрати в POPUP-меню, яке розкривається під час виборів пункту
«Перегляд» (див. рис 22 докладання 2 стор. 22).
Вікно доповнення жильцов
При виборі пункту меню «СЕРВИС"-"Дополнение» — відкривається вікно, у якому потрібно
занести інформацію про мешканці (див. рис 19 докладання 2 стор. 19). Фундаментальна обізнаність із цим
вікном побудована так:
Коли курсор потрапляє у полі введення прізвища, то автоматично включається клавіша
CAPSLOCK, для введення прізвища прописними буквами.
Після введення табельної номери і від цього поля, перевіряється існування
такого номери як у БД і якщо такий вже зараз є, то з’являється вікно попередження з
прізвищем того мешканця, який має цей табельний номер і вихід із поля
неможливий, поки що не змінено табельний номер.
При виборі кнопки «[ ] Ордер» також перевіряється БД і якщо на цю квартиру вже
визначено платник з’являється вікно з його прізвищем і вибір цієї кнопки
отменяется.
під час виборів кнопки «[ ] Пільга» з’являється вікно і меню вибору коду. Можна вибрати
вже наявний код або запровадити нову, який додасться до бази пільг. Якщо код
нічого очікувати обраний (код=0), то вибір пільги автоматично скасовується. Після вибору
пільги стають доступні кнопки вибору послуг і горі над ставками пільги,
з’являється інформацію про номері пільги І що можливо його змінити натиснувши клавішу
F7.
Період нарахування пільги. У разі коли потрібно визначити період пільги то
потрібно заповнити половіючі жита із який і з яку дату вона діє, тут також
перевіряється коректність. Тож якщо дата по що має нараховуватися пільга,
буде набагато меншою дати початку нарахування, то вихід із поля не возможен.
Після введення усіх даних потрібно натиснути кнопку зберегти, інформація
буде занесена в БД і ниви приймуть порожні значення задля її подальшого заповнення.
BROWSE-окна
Наступна група вікон має низку загальних характеристик це BROWSE-окна,
які з вікна розміром на повний екран, окрім двох останніх рядків, які
призначені висновку додаткової інформації - статус-строка. Усі поля
недоступні для редагування, при комбінації клавіш: -виконується
процедура видалення, -процедура доповнення, -процедура пошуку.
Розбіжність лише у відборі даних, і виведеними полями это:
Пункт меню «КАДРЫ"-"Картотека пільговиків» — пред’являє лише з тих мешканців,
які мають пільгу і виводить такі поля: табельний номер, прізвище, період
дії пільги, вулиця, будинок, квартира, телефон, категорія, номер удостоверения.
Пункт меню «КАДРЫ"-"База мешканців» — пред’являє всіх мешканців і виводить такі
поля: табельний номер, прізвище, вулиця, будинок, квартира, телефон, категорія, номер
посвідчення, кількість проживающих.
Пункт меню «КАДРЫ"-"Ввод даних лічильника» — пред’являє лише платників і
виводить такі поля: табельний номер, прізвище, вулиця, будинок, квартира, телефон,
старе і винесла нове значення лічильника і вычисляемое полі до оплати, яке
автоматично розраховується за зміни даних лічильника і додається до
загальній сумі і щодо оплати квартиру.
Пункт меню «КАДРЫ"-"Ввод оплати» — пред’являє лише платників і такі
поля: табельний номер, прізвище, введення оплати, нараховану суму послуг, суму
по пільзі, суму до оплати, дату оплати, залишок (заборгованість) і навіть
вычисляемое полі пільговик (див. рис 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’и для зв’язку БД і систематизованого пред’явлення данных:
БД (База жильцов)
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 під час перегляду данных.
БД
TAG-tab -індексування полем табельної номери.
TAG-adr — індексування за адресою, для в зв’язку зі БД мешканців (RABOT. DBF)
БД (БД льгот)
TAG-n_lg — індексування полем номери пільги (код), для зв’язки Польщі з БД мешканців
(RABOT. DBF).
БД
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 (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),
після цього створюються нові поля, поля оновлюються і продолжается.
«СЕРВИС"-"Тарифы»
під час виборів цього пункту виконується процедура TARIFS_ZAR, розташована у файлі
FUNC. PRG (див. прилож. 1.2 стрю 55) і показано вікно на рис. 18 прилож. 2.
У перших рядках командою HIDE POPUP прибирається з екрана меню «СЕРВІС», потім
закріплюється за клавіш Esc процедура виходу по клавіші Esc, в перемінної _REC
запам’ятовується номер запис у БД мешканців. Вибирається активної БД тарифів і
визначається вікно до роботи даної процедури і горизонтальне меню, яке
буде лежить у цьому вікні і з її допомогою робитиметься дії з
обробці данных.
Дане меню має три PAD-пункта. :
PAD-пункт «Перегляд» — активується POPUP-меню, яке з полів БД
тарифів, і вибір будь-якого BAR-пункта виконується у процедурі INS_REC, у якому
передаються два параметра це назви тарифу (PROMPT ()-mprompt), і номер записи
в БД тарифів (RECNO ()-mrecno) (див. прилож. 1.2 стор. 56), у якій залежно
від параметра виконуються такі действия:
якщо опис порожній (empty (mprompt)), ця запис позначається на удаление.
Інакше створюються поля-переменные зміни даного запису (рис. 22 прилож. 2)
оскільки редагуються перемінні, то вікні присутні кнопки задля збереження
зроблених змін кнопка-«Сохранить» (процедура del_rec1, ras_on1=1), де
спочатку, залежно від значення перемінної M. K_CH (.T.,.F.) заповнюється
змінна M. INFO і далі перемінні переносяться в БД; виходу без зміни
кнопка «Відмова» (процедура del_rec1, ras_on1=2), де командою CLEAR READ
завершується роботу з переменными-полями без перенесення в БД; і видалення
поточної записи (процедура del_rec), поточна запис командою DELETE позначається на
удаление.
PAD-пункт «Доповнити» і PAD-пункт «Вийти» — обробляються у процедурі INS_ST, в
яку передаються параметри, містять текст-приглашение даних пунктов.
Якщо обраний пункт «Доповнити», то процедурі INS_ST створюються поля-переменные з
порожніми значеннями і з допомогою кнопок доповнюються записи.
Якщо обраний пункт «Вийти», то процедурі INS_ST закривається вікно і
деактивируется меню.
«СЕРВИС"-"Нормы оплати услуг»
Цей пункт відкриває вікно M_ZAR, де з допомогою команд @…SAY…GET (див. прилож.
1.4 стор. 4) виводяться перемінні ставок, певні на початку програми в файлі
MENI. PRG і після їх редагування вони зберігаються в файлі M_ZAR. MEM. щоб їх
зберегти необхідно вийти з вікна на по кнопці «Зберегти», яка запустить
процедуру збереження (див. прилож. 1.2 стор. 20).
«СЕРВИС"-"Упаковка данных»
Вибір цього пункту запускає процедуру фізичного видалення даних, помічених
раніше на видалення (див. прилож. 1.2 стор. 22). У перших рядках скануються
записи, позначені на видалення в БД мешканців і позначаються записи у
допоміжної БД ставок, що з основний БД полем табельної
номери (TAB). Потім знову сканується БД мешканців з єдиною метою перевірки недопущення
наявності мешканців без платника. Тут перебираються позначені записи, й у
перемінні заносяться значення адреси на допомогу пошуку, і прізвища для можливого
предупреждения.
Після цього шукається мешканці, котрі живуть за цією адресою, коли такі існують,
то шукається платник і якщо немає виводиться вікно, показане малюнку,
де потрібна вибрати 1 із 3 дій (див. прилож. 1.2 стор. 23, процедура
D_IN).
«Видалити всіх» — будуть позначені все записи у цій адресу.
«Змінити» — запустится процедура зміни, для знайденого жильца.
«Відновити» — відновити платника, раніше позначеного на видалення, то
є зніме позначку командою RECALL.
«СЕРВИС"-"Переиндексация»
У цьому команді я — не користувався командою REINDEX, а й просто видаляв все індекси і
створював нові. І це простіше й часу йде менше (див. прилож. 1.2 стор. 23). У
перших рядках закриваються все БД разом із ними структурні індекси, далі з
допомогою команди DOS видаляються все файли, мають розширення. CDX тобто
структурні індекси, оскільки інші індекси у програмі не використовуються, і
потім виконується процедура відкриття баз даних (див. прилож. 1. 3), де індекси
створюються автоматично. Тут слід сказати, що за такого підході FoxPro може
видати помилку, і висунув вимогу явно зазначити БД, яку потрібно відкрити. Ця
проблема вирішується питання з допомогою функції ON ERROR DO EROR WITH ERROR (), яка
передає код помилки у процедуру EROR як параметр (див. прилож. 1.2 стор. 53), й у
нею залежність від області відкриваються потрібні бази данных.
Пункт меню — «КАДРЫ»
Коли у базі мешканців є записи, можна працювати з процедурами,
здійснюють дії з їх опрацюванні. Ці процедури переважно перебувають у
перший пункт меню «КАДРЫ».
«КАДРЫ"-"Работа з картотекой»
При виборі даного пункту відкривається вікно, представлене як особиста картка
мешканця, у якій відображається необхідна інформація, і кошти з її обробці
(див. прилож. 1.2 стор. 1−20).
Як описувалося у розділі 2 з роботою у цьому вікні, всю інформацію,
розташована у цьому вікні ділиться на частини, тому кожну частина розберемо по
окремішності. Але спочатку розглянемо заповнення вікна інформацією та інші
об'єктами (див. прилож. 1.2 стор. 1−2 і прилож. 2 рис. 2).
Отже у перших рядках виконуються деякі технічні дії, що якраз
перевірка наявності даних, яка описувалася вище, визначення та присвоєння
змінним «e» і «b» логічних значень для аналізу кінця так і початку БД, й у
залежність від цього доступність чи недоступність кнопок переміщення, клавіші
F1 призначається процедура відкриття відповідного вікна з допомогою, клавіші F5
процедура пошуку. Після цього активується вікно INS у неї виводиться наступна
інформація: це поля БД, мають символьні і числові дані з допомогою команди
GET з опцією, що забороняє редагування. Це поля прізвища (FAM), табельної
номери (TAB), телефону (TEL), адреси (YL, DOM, KW_RA), кв. метрів (KV_M),
суми нарахованої квартплати з БД, у якій зберігаються все нарахування, і
доступні для редагування GET-поля кількості (KOL_VO), код і опис пільги
з БД пільг, періоду дії пільги (DAT_C, DAT_PO) і ниви вибору послуг, мають
логічні значення, представлені з допомогою змінних: kw (KW_L)-квартплата,
gw (G_W_L)-горячая вода, xw (X_W_L)-холодная вода, ks (K_YS_L)-коммунальные
послуги, ot (OTOP_L)-отопление, elc (EL_C_L)-електричество, tl (TEL_L)-телефон,
rd (RAD_L)-радио, які потім виводяться на екран з допомогою GET-объектов
(кнопки-переключатели). До того ж інші GET-объекты, які рассмотренны
позже.
Далі йдуть SAY-объекты, це підписи до GET-полям, і навіть результати які повертаються
функціями, які виводяться з допомогою виконання функції POS_CH1 (=POS_CH1())
(см. прилож. 1.2 стр. 3). розберемо лише виведені значення, які повертаються
функціями.
Кількість мешканців — виконується функція KOL (прилож. 1.2 стор. 19), де шляхом
сканування формується змінна k і повертається до його значення (RETURN k), так
як змінна числового типу, а команда SAY виводить лише символьний тип
даних, необхідно перетворити числової тип в символьний і перші
прогалини, що дозволяє такі команди: LTRIM (STR (KOL (0))), де KOL (0) —
отримане значення, STR — функція перетворення числових даних в символьні,
LTRIM — видалення провідних пробелов.
Кількість пільговиків — аналогічна функція, описана вища лише вважає
мешканців, якщо полі LGOT має значення істини (.Т.).
Ставки якими виробляється розрахунок для даного мешканця. (див. прилож. 1.2 стор
16−17). Тут спочатку перевіряється полі ставок БД ставок, оскільки зв’язок одна до
багатьом то, при переміщенні курсору в основний базою він може переміщається переважають у всіх
допоміжних базах і якщо полі БД одно нулю, то параметру, який
є наслідком роботи функції, присвоюється значення нормативної ставки,
інакше значення цього поля. Потім у команді SAY тип возвращаемого результату
перетворюється на символьну форму і після її висновку їх у екран вони накриваються
невидимими кнопками.
Числові поля з БД нарахувань. Тут ці дані просто перетворюються на потрібний
формат і виводяться на экран.
У цій ж процедурі раскрашиваются області всередині вікна, їхнього більш
виразності і виділення. (@ … FILL TO …).
Також необхідність заповнення вікна з допомогою виконання функції викликано тим,
що в кожному мешканцю не завжди однаковою, з вікна
передбачено переміщення БД, отже, і відновлення виведеної інформації. Це
досягається з допомогою цієї функції і опції відновлення GET-объектов SHOW
процедури>, що входить у команду READ, яка розглянута нижче.
Повернімося до вікна. Як описувалося вище (глава 2 стор. 26) вся основна
інформацію про мешканці міститься у першій його частині. Розглянемо роботу доступних
GET-объектов щодо них.
Перший GET-объект це полі кількості які проживають (@ 5,39 GET kol_vo), при зтом
ніби перевірки поруч виводиться SAY-объект кількості, розрахований
програмним шляхом (див. выше).
Далі SAY-объект «СКЛАД СІМ'Ї» накритий невидимою кнопкою (@ 6,27 GET family
FUNCTION '*I ' VALID FAMILY () …). Невидимої вона називається бо ні
формують ніяких текстових повідомлень і лише виділяються кольором, і за натисканні
клавіш Ehter/Space можуть викликати функцію через опцію VALID. Тут за натисканні
цих клавіш відбувається процедура FAMILY (прилож. 1.2 стор. 8) в которойв
перемінні заносяться даних про поточному TAG’e, і адресі, встановлюється фільтр
доступу до даних, у яких ця адреса і активується меню, з полів БД мешканців,
визначене до цього часу файле-процедуре MENI (прилож. 1. 1) і пункти якого
складаються з прізвища та двох допоміжних полів, вказують на категорію
мешканців (платник, пільговик). Вибір пункту цього меню відобразить з вікна цього
мешканця і оновиться інформація щодо цього мешканця, також залежно від
категорії мешканця перемінної _FILTR присвоюється значення 1-если мешканець є
платником, 2- якщо пільговик і трьох- якщо ні той ні другий (просто що живе).
Це треба задля здобуття права і під час процедури відновлення (SHOW) в
залежність від значення цієї перемінної, буде встановлено відповідний TAG,
впливає на пред’явлення данных.
Наступна група GET-объектов виводить поля вибору послуг з допомогою
кнопок-перек-лючателей (@ 10−17,2 GET kw (gw, xw, ks, ot, elc, tl, rd) FUNCTION '*З
'VALID KW ()(GW (), XW ()…)). Тут перемінні і ниви мають і той
ж тип даних, саме логічний й у процедурах, що викликаються коли по
опції VALID просто полю присвоюється значення перемінної (див. прилож. 1.2 стор.
17−18).
Трохи інакше виглядає справи з й радіо. Це у тому, що
передбачається, що у квартирі встановлено одна телефонний і (або) одна
радіоточка, тож коли у квартирі живуть чи більш пільговиків, які
користуються пільговими ставками для цієї послуги, то, при розрахунку обом (або як)
буде убавляться плата за цими послуг, що в разом телефон і (або)
радіо безплатно чи ЖКГ буде ще доплачувати користування цими
послугами, що зрозуміло неприпустимо, ось при цьому здійснюється контроль
вибору послуг. За вмістом процедури однакові, тому розберемо жодну з
них (див. прилож. 1.2 стор. 18).
Отже під час виборів телефону (радіо) викликається процедура TL1(RD1) у якому
передаються три параметра: 1-OR_R (OR-в процедурі), 2-LGOT (LG-в процедурі),
які мають значення полів платника (0,1) і пільги (.T.,.F.), щодо
мешканця якому вибирають послугу, 3-RECNO () (R-в процедурі), який має
значення номери запис у БД цього мешканця і 4-ORDER () (ORD-в процедурі), який
має символьне значення активного індексу (TAG'a). Далі у процедурі в
перемінні заносяться значення адреси, для включення в SCAN-условие, і навіть,
лише телефону, в умова пошуку, де шукається платник і вона
перевіряється полі й коли вона порожній, то передбачається, що телефону немає
і вибрати цю послугу неможливо.
Після цього, у структурі DO CASE аналізуються передані параметры:
CASE OR=1. AND. LG=.T. тобто коли це платник і він також пільговик. У першій
рядку активується TAG, у якому доступні все запис у БД, потім сканується
БД і всіх мешканців, мають ця адреса полю вибору телефона (радио)
присвоюється значення «Брехня» (.F.) і далі цьому мешканцю полю вибору
телефона (радио) присвоюється значення «Істина» (.Т.). тобто за цій умові
платник має пільгу має перевагу над іншими мешканцями, мають
пільгу, за вибором цих услуг.
CASE OR=1. AND. LG=.F. тобто коли це платник, яка має пільгу. Тут
просто полю вибору телефона (радио) присвоюється значення «Истина».
CASE OR=0. AND. LG=.T. тобто коли це платник, а пільговик. І тут
скануються записи, мають ця адреса і пільгу, і якщо в когось полі вибору
телефона (радио) має значення «істини», то перемінної TL (GET-объект)
присвоюється значення «Брехня» і після завершення сканування значення
перемінної присваисвается полю вибору телефона (радио).
Наступні GET-объекты, це група невидимих кнопок, які накривають області,
де виводяться значення високій вартості послуг (@ 10,28 GET tar_s FUNCTION '*I; ;;;;;;'
VALID TARIFS ()…), під час виборів яких виконується процедура TARIFS (див. прилож.
1.2 стор. 11, прилож. 2 рис. 3), де можна вибрати тарифну ставку для послуги на
якої було зроблено вибір, з наявних у БД тарифів або якщо немає, то додати.
У цьому можна встановити цю ставку всім мешканцям вдома, чи можна встановити
норматив у цій послузі мешканцю чи всій хаті. Робота, з вікна і з меню багато в чому
схожа з роботою описаної раніше, в описах «СЕРВИС"-"Тарифы». Розглянемо
відмінності. У перших рядках визначається вікно і меню до роботи процедуры.
Далі з допомогою структури DO CASE визначається який послузі було зроблено вибір,
і залежно від надання цього встановлюється обмеження на пред’явлення даних,
наприклад якщо це гаряча вода, то з’являться тарифи, що мають значення .Т. поля
K_CH, (розрахунок одну людину) і навпаки, перемінної VIB_STAVOK
присвоюється ім'я поля була в БД ставок, у тому, що у з допомогою
макропідстановки (& VIB_STAVOK) цим полях будуть надано відповідні
значення. І після цього активується вікно і меню для вибору ставки у цій
послузі, причому у правом розі з’являється системне окно-подсказка, з допомогою
команди WAIT, з текстом обраної услугой.
Пункт «Вибрати» пред’являє POPUP-меню з BAR-пунктами, які з полів БД
тарифів, і за виборі будь-якого пункту з’являється меню з встановити всім
мешканцям удома чи квартири. Після цього, у процедурі V_ST1 куди передаються
параметри номери BAR-пункта (BAR ()) і номери поточної запис у БД (RECNO ())
(див. прилож. 1.2 стр. 14−15). Тут у структурі DO CASE визначається номер
обраного BAR-пункта і всіх мешканців будинку (параметр=1(«Установить всім
мешканцям вдома») або заради даних мешканців квартири (параметр=2 «Встановити даному
мешканцю»), в скан- умови, полях БД ставок цих мешканців по обраної послузі
присвоюється значення, які у полі ST_KA в БД тарифів (REPLACE
& VIB_STAVOK WITH ST, де VIB_STAVOK-это ім'я поля була в БД ставок (див. вище)
ST-ставка з поля ST_KA в БД тарифів (ST=ST_KA))
Тут також додано повый пункт меню «Встановити норматив», під час виборів якого
з’являється POPUP-меню з цими двома BAR-пунктами «Встановити всім мешканцям вдома» і
«Встановити даному мешканцю» вибір цих пунктів ввозяться процедурі V_ST2
куди передаються параметри номери BAR-пункта (BAR ()) (див. прилож. 1.2 стр. 15).
Тут у структурі DO CASE визначається номер обраного BAR-пункта і всіх
мешканців будинку (параметр=1(«Установить всім мешканцям вдома») або заради даних мешканців
квартири (параметр=2 «Встановити даному мешканцю»), в скан- умови, полях БД
ставок цих мешканців по обраної послузі присвоюється нульові значения.
Останні GET-объекты щодо них екрана це кнопки «По пільзі» і «По оплаті»,
доступними якщо мешканець є платником («По оплаті») і (або)
пільговиком («По льготе»).
Кнопка «По пільзі» — відкриває вікно (див. прилож. 2 рис 5), де з допомогою
команди @…SAY…GET, виводяться поля з убозівської бази пільг, у тій коду, який має
даний мешканець, доступні для редагування. (див. прилож. 1.2 стор. 9).
Кнопко «По оплаті» — відкриває вікно (див. прилож. 2 стор. 6), де з допомогою
команди @…SAY…GET, виводяться поля з убозівської бази ставок для даного мешканця, доступні
для редагування (див. прилож. 1.2 стр. 10). у своїй після закриття цього вікна
чи ж після виходу з останнього (першого) GET-объекта все значення полів
заносять у перемінні, з’являється це ж вікно з туристичною інформацією про кількість
квартир у домі, за адресою якому живе платник, і з допомогою команди WAIT
запропонують встановити такі ставки всім мешканцям вдома (WAIT 'Встановити
всім мешканцям (Y/N)' TO Y) і якщо буде натиснута клавіша Y (М), те з допомогою
фільтра і сканування ці ставки будуть надано всім мешканцям, які проживають по
вулиці і будинку, інакше лише мешканцям даної квартири. Це досягається з
допомогою команди REPLACE WITH, оскільки зв’язок одна до
багатьом, то переміщення покажчика в основний БД викликає переміщення у
вспомогательной.
У плані другий цього вікна розташовані триггерные кнопки (Push Buttons), які
за її виборі виконують певні дії з обробці данных.
«Змінити», «Додати» — запускає процедуру зміни для мешканця що у
вікні, чи процедуру доповнення нового мешканця, яка описана вище (див.
«СЕРВИС"-"Добавить» стор. 36).
«Видалити» — запускає процедуру видалення поточної записи (див. прилож. 1.2 стр. 35)
тут спочатку перевіряється позначена чи запис на видалення і якщо позначена то
позначка знімається і процедуру закінчується. Це треба задля те, що у «вікнах
«База мешканців», «Картотека пільговиків» теж можна видаляти записи комбінацією
клавіш, і тієї ж комбінацією клавіш знімати позначку на видалення. Далі
йде команда перенесення змінних в БД, якщо виклик цієї процедури прийшов з
функції зміни, потім у перемінні заноситься поточний адресу, встановлюється
фільтр за цією адресою й у зміну kol заноситься кількість записів (COUNT TO
kol), після цього змінна kol зменшується однією одиницю, отриманий
результат присвоюється всім записів полем кількості мешканців, потім ця
запис позначається на видалення, і якщо виклик його з вікна INS («Фундаментальна обізнаність із
картотекою»), то інформація, і GET-объекты у тому вікні обновляются.
«Печатка …» — формує квитанцію, з цими про всіх вироблених нарахуваннях,
сумах до оплати, з пільг, дату коли оплачено і залишок (задолженность). выбор
цієї кнопки запускає процедуру PRINT1 (див. прилож. 1.2 стор. 26; прилож. 3 стор.
1; прилож. 2 рис. 7), у якій виконуються такі действия:
спочатку переопределяется призначення клавіші F1, потім відкривається альтернативний
файл, куди заноситимуться формовані дані і надалі він
збережено на диску щодо його роздруківки. У зміну «Т» заноситься майбутнє ім'я
файла ('tab'+'. '+'txt'=tab. txt), потім з’являються два масиву NACH (12,1)-для
даних із нарахуваннями, LG (9)-для даних із пільговим нарахуваннями. Після цього, у
сканується БД з вимогою лише мешканців з адресою й у перемінні і
елементи масивів заносяться необхідні дані, які занесені в файл з
допомогою команди «?», «??». по закінченні формування квитанції цей файл
буде відкрито з вікна VEDOM щодо його перегляду (редагування) (див. прилож. 2 рис.
7).и саме його закриття запропонують роздрукувати чи відмовитися (див. прилож.
2 рис. 8)
«Введення оплати» — відкриває вікно для введення оплати на одне квартиронаймача.
Виконується процедура VVV розташована у файлі BAZES. PRG (див. прилож. 1.4 стор.
5).
Спочатку переопределяется призначення клавішу допомоги, потім визначається вікно
до роботи, потім аналізується мешканець, де було виклик цієї процедури і
якщо це платник, то шукається платник квартири і покажчик записи
переходить з цього запис, і буде здійснюється з цим мешканцем. Потім
визначаються перемінні до роботи це адресу (y, d, kv), поточна дата (dat),
змінна для зберігання веденой суми (opl), погсле цього активується вікно (див.
прилож. 2 рис. 4) у неї виводяться поясняющие записи такі як прізвище,
табельний номер, сума нарахувань, сума з пільг, сума до оплати, залишок і
GET-поле для введення суми оплати, має контроль виходу (див. прилож. 1. 2
стор. 40) тут перевіряється полі OPL_TA, яка містить суму мешканцями і якщо
вона порожня, то з’явиться додаткове вікно з пунктами-кнопками «Дописати»,
«Переписати».
Вихід зі збереженням здійснюється вибором кнопки у тому вікні, яка
описано на процедурі SV3 (див. прилож. 1.2 стор. 40).
дані кнопки призначені для вибору фільтра пред’явлення даних з вікна. Їх
вибір обробляється у процедурі FILTR (див. прилож. 1.2 стор. 7), де перемінної
_FILTR присвоюються числові значення, залежно яких у процедурі
відновлення буде встановлено відповідний TAG.
«Угору», «Донизу" — дана група кнопок варта пересування БД
мешканців. У цьому після досягнення конца (начала) БД відповідні кнопки
блокуються. Обробка цих кнопок ввозяться процедурі PER (див. прилож.
1.2 стор. 6−7) з допомогою змінних «e» і «b», визначених раніше
(див. вище), запам’ятовується факт досягнення конца/начала файла. Спочатку вони
мають значення .F., якщо предпринита спроба просунутися межі БД то
а такою присвоюється значення .Т. У інших випадках вони рівні .F. це
треба задля відновлення у процедурі tb_l () активності кнопок якщо покажчик
записів перебувати не так на последней/первой записи. Також тут використовується
системна змінна _CUROBJ, що містить номер GET-объекта. Її значення
змінюється під час виборів кнопки і курсор переходить в інший об'єкт. Вона служить для
те, що б із переміщенні з допомогою клавіш Enter/Space курсор не залишав ці
кнопки.
«Початок», «Кінець» — служать до швидшого переходу в начало/конец БД, у своїй
відповідні кнопки блокируются.
«Розрахунок» — дозволяє розрахувати квартплату однієї мешканця, що у
окне. выбор цієї кнопки викликає процедуру RAS_ON_ONE (див. прилож. 1.2 стор. 53).
Тут визначаються перемінні до роботи це R-номер поточної запис у БД
мешканців, Т-табельный номер, ORD_R-активный TAG в БД мешканців, Y- вулиця, D-дом,
K-квартира.
Після цього активної вибирається БД нарахувань у ній, по табельної номера,
шукається запис, на яку робиться розрахунок (LOCATE FOR t=tab). Якщо пошук не
вдалий, то тут для БД мешканців встановлюється фільтр, у якому доступні лише
запису із поточним адресою і командою APPEND FROM FIELDS
однакових полів в БД мешканців і БД нарахувань> додаються запис у БД
нарахувань. Якщо поик вдалий, то розривається зв’язок між базами, до роботи
команди відновлення, з допомогою якої однакові поля була в БД нарахувань приймають
значення такі які в БД мешканців: UPDATE ON FROM
мешканців> REPLACE WITH.
Далі поточної вибирається БД нарахувань для неї встановлюється зв’язок
ОДНА-КО-МНОГИМ з БД ставок і БД пільг, і навіть фільтр для обробці даних
у яких лише адресу, який раніше збережено в змінних.
Далі обнуляются все поля нарахувань з пільг, це у тому, що й
з вікна змінено період або пільга скасовано, то, при розрахунку пільг ця запис
ігнорується, але старі дані розрахунку зберігаються щоб недопущення
вони обнуляются.
Після цього, у SCAN-цикле розраховується квартплата, з допомогою команди REPLACE
WITH, тобто присвоюється значення.
Тут у вираженні використовується розрахунок (REPLACE kw_pl WITH IIF (g. kwp_l=0, kv_pl,
g. kwp_l)*IIF (kw_l=.t., kv_m, 0).).
Функція IIF (,) — видає значення ,
якщо істинно, і - якщо брехливо. У нашому випадку перший
множник — це ставка, і якщо полі ставки при цьому мешканця одно нулю, то
застосовується нормативна ставка, Якщо ж він має значення, то застосовується ця
ставка. Другий множник визначає вибір цієї послуги, якщо полі здатні фіксувати
вибір послуги дорівнює .Т., тобто обрано для нарахувань, то множення йде
квадратні метры (количество людина), інакше на 0.
Після розрахунку квартплати розраховуються пільги. Тут у SCAN-цикле передбачено
умова щоб у розрахунок потрапляють ті мешканці, які мають або
є періоду дії пільги, або поточна дата лежать у проміжку між
початком і кінцем дії пільги. Розрахунок аналогічний описаного вище, відмінність
в тому, що й по послузі розрахунок йде з квадратним метрів, то але
вираховується одну людину (kv_m/kol_vo), і всі значення множаться на
(-1), щоб показати пільги з негативним знаком.
Після закінчення розрахунків сумуються все нарахування з пільг і заносять у
поля мешканця, котра платить за квартиру, для перегляду в вікнах, і розрахунку
суми до оплати. Потім розриваються всі системи зв’язку, скасовуються фільтри, виконується
процедура відкриття баз даних (див. прилож. 1.3 стор. 1), оновлюються дані в
вікні і процедуру завершается.
Вийти» — завершує роботу з цим окном.
І тепер розгляньмо процедуру відновлення вікна tb_l (), включеною до команди
READ, з допомогою опції SHOW (див. прилож. 1.2 стр. 5−6). Тут у кількох циклах
DO CASE аналізуються значення змінних, які у процесі виконання
сприймають різні значення, і залежно від цих коштів значень виконуються
певні действия.
Аналіз перемінної _FILTR — має числове значення і є для фільтра доступу
до даних за її перегляді і редагування. Значення 1 — встановлюється головним
TAG ord, у якому доступні мешканці, які сплачують за квартиру, 2 — -
встановлюється головним TAG lgt, у якому доступні мешканці, які мають
пільгу, 3 — - встановлюється головним TAG adrr, у якому доступні все мешканці.
До того ж на екран виводиться строка-подсказка з обраним фильтром
Далі аналізуються категорія мешканця, і якщо це платник чи пільговик, то
кнопки для вибору послуг — доступні для редагування, якщо просто мешканець то
недоступні, у своїй кнопки і науковотехнологічна галузь їхнього розташування виділяються цветом.
Далі також аналізуються категорія мешканця, якщо пільговик — доступна кнопка «По
пільзі», якщо платник — доступна кнопка «По оплаті» і доступні, якщо це
не виконується. Аналіз виконується у двох циклах з кожної кнопки, у тому, що
якщо платник має пільгу, йому доступні обидві кнопки. Тут також за
аналізі категорії платника виводиться різна інформація за нарахуваннями пільг
(див. прилож. 1.2 стор. 4). Це — якщо платник виконується процедура OB_NACH,
яка виводить на екран загальні (суммированные) нарахування з пільг, якщо це
мешканець то виконується процедура LG_NACH, яка виводить на екран нарахування по
пільзі для даного жильца.
І останнє це аналіз змінних «e» і «b», які є для блокування
кнопок переміщень по БД в процедурах переміщень, під час спроби вийти межі
БД, а тут раз блокуються при удовлетворяющем значениии, які
присвоюються в процедурах перемещений.
«КАДРЫ"-"Квартиросъемщики»
При виборі цього пункту виводяться дані з БД мешканців табличній формі з
допомогою команди BROWSE. Записи виводяться горизонтально з вікна певному
раніше. Формат полів може налаштовуватися з допомогою опції FIELDS, а
також мати звані вычисляемые поля. Ці поля фактично є
полями БД, але може бути їх функціями і відбиваються на екрані які з
справжніми полями.
У цьому процедурі KDR_R (див. прилож. 1.4 стор. 1) з вікна KD відкривається
BROWSE-окно з полями табельної номери (tab), прізвища (fam), вираховуваним полем
з позначкою '
вираховуваним полем з позначкою '?', який з’являється в мешканців, мають пільгу —
ці поля є функціями від фактичних полів, що їх з допомогою функції
IIF (,). Пред’явлення даних частина екрана, але в вільної
частини, виводяться на екран інформація з допомогою команд @…SAY…GET інша
яка цікавить інформація (див. прилож. 2 рис. 9), що формується у процедурі
NACH (див. прилож. 1.2 стор. 37), у своїй якщо переміщенні по БД курсор
перебуває у полі табельної номери, ця інформація автоматично оновлюється
залежно від активної записи БД, у всіх інших полях цю інформацію
необхідно вибрати з меню, що з’являється після натискання клавіші Enter в
будь-якому поле.
Ці дії досягаються шляхом включення до імена полів ключів, які виконують
контроль входу (: W), контроль виходу (: V), і навіть перевірку постійно (: F)
здесь:
Для поля табельної номери з допомогою ключа —: W=NACH () встановлено вхідний
контроль, у якому обов’язково — :F виконується процедура виведення інформації
по мешканцю (виконується процедура NACH).
Для інших полів контроль входу —: W=EN (), яка призначає вплинув на вибір клавіші
Enter виконання процедури POP_VIB і за виході з поля —: V=NE () це
скасовується (див. прилож. 1.2 стор. 38), до чого це виконується завжди — :F.
Виконання процедури POP_VIB пред’являє FOX-меню (див. відмінностей у описі меню),
яке показано на рис. 10 прилож. 2 і описано в прилож. 1.2 стор. 39.
Розглянемо ее.
Спочатку оголошується масив, елементи якого і буде пунктами меню, потім
кожному елементу присвоюється символьний тип з описом назви, яке
вказуватиметься в меню. Далі з допомогою команди READ воно активується. Після
вибрати з меню виконується дію закріплене кожним пунктом в циклі DO
CASE і це «вмирає». Усі пункти меню розглядалися выше.
«КАДРЫ"-"Картотека льготников»
Вибір зтого пункту також викликає BROWSE-окно, відкрите з вікна KD1, яке
відкривається все екран, окрім двох останніх рядків, і негайно пред’являє тих
мешканців, які мають пільгу (BROWSE FOR LGOT=.T.) Тут виводяться поля
прізвища, табельної номери, адреси, телефону, періоду дії пільги, категорії
і номери посвідчення. При вході у полі виконується процедура INFO (див. прилож.
1.2 стор. 41) з допомогою ключів —: W=INFO () і - :F. Цю процедуру виводить в нижніх
рядках таку інформацію: якщо це платник, то суми до оплати, залишку,
кількість пільговиків і кількість мешканців, інакше прізвище і табельний номер того
мешканця, хто є платником.
«КАДРЫ"-"База жильцов»
Робота процедури, під час виборів цього пункту аналогічна описаної вище, лише
пред’являються все жильцы.
«КАДРЫ"-"Ввод даних счетчика»
Відкриває з вікна KD1 BROWSE-окно з платниками і полями табельної номери,
прізвища, адреси, даними про старому і новому значеннях лічильника і полем суми
нарахованої користування електроенергією з БД нарахувань (див. прилож. 1. 4
стор. 3). Поля даних лічильника доступні до редагування, інші відкриті
лише перегляду, яка досягається включенням до імена полів ключа — :R. Також
все поля мають вхідний контроль —: W=INFO (), який описаний вище, а поля даних
лічильника і вихідний контроль —: V=R () (див. прилож. 1.2 стор. 42), де за виході
розраховується сума до оплати електроенергії і коригується підсумкові суммы.
«КАДРЫ"-"Ввод оплати»
тут у початку визначаються дві перемінні, які потрібні до роботи, це dat,
що містить поточну дату (dat=DATE ()) і opl, має нульовий значення
і є у тому, щоб у програмі був помилки при відновленні полів, тому
що використовується одна процедура відновлення полів з процедурою для введення оплати
на одне мешканця. Потім відкривається з вікна KD1 BROWSE-окно, у якому
пред’являються поля із різних баз, це табельний номер, прізвище, полі для
зберігання суми оплати (OPL_TA), полі для зберігання дати оплати (D_OPL), і полі
для зберігання остатка (задолженности) (OST_K) з БД мешканців і полі підсумковій суми
нарахувань (ITOG_N), підсумку нарахувань з пільг (SUM_IT) та незначною сумою до оплати
(ITOG) з БД нарахувань. (див. прилож. 1.4 стор. 3−4, прилож. 2 рис. 12).
Доступні до редагування є полі суми оплати що має вихідний
контроль —: V=SV3() (див. прилож. 1.2 стр. 40), у якій полю залишку
присвоюється розраховане значення (введена сума — сума до оплати), полю
дати значення перемінної dat, тобто поточна дата й тут немає ключ
—: F, це що означає, що у полі, котрій передбачено контроль виходу
(opl —: V=SV3), дані не змінювалися то процедура ігнорується, а виконується
вона в тому разі, якщо дані змінювалися. Також тут використовується інша
інформація в статус-строке: W=INFO3() (див. прилож. 1.2 стор. 42), де
показується адресу мешканця, кількість які проживають і кількість льготников.
Пункт меню «РАСЧЕТ»
«РАСЧЕТ"-"Расчет квартплаты»
При виборі цього пункту з’являється вікно, де потрібна підтвердити початок розрахунку
вибором кнопки «Прибл» (див. прилож. 1.6 с. 1). У вікні виводиться поточна дата і
рядок підказка який місяць розраховуватиметься квартплата. Назва місяці
досягається з допомогою масиву і перемінної mess, які були оголошені у файлі
MENI. PRG це масив mes (4,3), елементи якого містять назви місяця — і
змінна mess містить номер поточного місяці (=MONTH (DATE ())) і вираз
mes (mess) — виведе елемент масиву за двозначним номером, що міститься в перемінної
mess.
При підтвердженні розрахунку виконується процедура RAS1 (див. прилож. 1.2 стор.
43−44). У перших рядках деактивируется вікно, вибирається активної БД нарахувань
і з її видаляються все записи командою ZAP, потім командою APPEND FROM
мешканців> FIELDS додаються все записи з БД мешканців. Після цього
все БД закриваються (CLOSE DATABASE) й області «а» відкривається БД мешканців, для
якій буде встановлено фільтр полем OR_R тобто доступні лише платники,
у сфері «b» відкривається БД нарахувань. Після цього командою JOIN WITH
TO FOR FIELDS, створюється нова
БД-RACH. DBF що містить поля, вказаних після опції FIELDS і
кількістю рівним в БД мешканців, що виконується з допомогою умови. Іншими
словами нова БД розрахунку містить лише платників, з полями необхідні
проведення розрахунку зберігання розрахованих данных.
Далі знову закриваються всі бази даних, і у сфері «а» вже відкривається нова БД
розрахунків, на яку створюється структурний індекс для зв’язки з іншими БД. Потім
встановлюється зв’язку з БД мешканців і БД ставок і виробляється розрахунок, який
аналогічний описаного, під час розгляду кнопки «Розрахунок» з вікна «Фундаментальна обізнаність із
картотекою» («КАДРЫ"-"Работа з картотекою»). Після закінчення розрахунку, з допомогою
команди CALCULATE SUM (поле у якому храняться дані розрахунку) ТЕ
які заноситься результат роботи команди> створюються перемінні зі значеннями
загальних сум нарахувань кожної послузі, на формування статус-строки при
перегляді виконаного розрахунку. Далі з допомогою команди @ …SAY вони (перемінні)
виводяться у нижній частині екрану й з вікна KDR відкривається BROWSE-окно з цими
розрахунку прізвищем мешканців.
З допомогою ключа входу на полі -: W=INFO1() внизу змінює колір сума, яка
належить до цієї послузі (приміром якщо курсор на полі гаряча вода, то внизу
забарвлена область із загальною сумі по гарячу воду, як показано на рис. 14 прилож.
2), і з допомогою контролю виходу —: V=INFO2() колір приймає колишній колір і з
допомогою ключа — :F виконується завжди, незалежно через зміну, це загалом
треба задля ключа: V.
Робота цієї процедури показано на стор. 51 прилож. 1.2. тут у структурі DO CASE
аналізується у який полі входить курсор (INFO1), і з якого виходить (INFO2)
це досягається з допомогою застосування функції VARREAD ()-которая повертає
прописними літерами ім'я поля (переменной), і з використанням з командою
BROWSE/CHANGE повертає ім'я поля рядковими (крім першої) літерами (див. також
SYS (18)), і залежно від назви поля перед входом, забарвлюється певна
область внизу екрана, з допомогою команди @…FILL TO … та кольорової схеми 12, а при
вихід із допомогою тих самих команд цій галузі повертається колишній колір з
колірної схеми 1.
Перед відкриттям вікна перегляду за нарахуваннями, призначаються клавіші виходу з
BROWSE-окна, процедури виходу (ON KEY LABEL ESC (CTRL+W, CTRL+Q) DO vib8), де
активується вікно з кнопками «Зберегти» і «Скасування» (див. прилож. 1.2 стор. 45) і
під час виборів кнопки «Зберегти» відкривається БД нарахувань, з допомогою команди —
UPDATE FROM REPLACE WITH
, переносяться розраховані дані в БД
нарахувань. Після цього вибирається активної БД розрахунків, закривається і видаляється
з диска разом із структурним индексом.
«РАСЧЕТ"-"Расчет по льготам»
Усі дії, що їх під час виборів цього пункту аналогічні як описано вище в
розрахунку квартплати крім деяких відмінностей, які впливають на суть
розрахунку описаного вище (див. прилож. 1.2 стор. 46).
Тут наявні записи не видаляються з БД нарахувань, оскільки предпологается,
що пільг виробляється після розрахунку квартплати і всі записи які перебувають
в БД мешканців є у БД нарахувань (це досягається командою APPEND FROM
описаної выше).
Також використовується інший TAG під час створення нової БД розрахунків, саме TAG date
(див. прилож. 1.3 стор. 2) що робить доступними мешканців які мають поточна
дата потрапляє у проміжок періоду дії пільги і тих хто має період не
визначено.
При визначенні зв’язку нова БД розрахунків також має зв’язку з БД пільг, для
застосування у розрахунку встановлені відсотки пільги по кодам.
Розрахунок пільг аналогічний описаного, при розгляду розрахунку одного мешканця в
вікні «Фундаментальна обізнаність із картотекою» кнопка «Розрахунок». (див. прилож. 1.2 стр. 53)
І оскільки імена полів мають різні імена, то тут для фарбування загальних сум внизу
екрана, під час перегляду розрахунків, застосовується процедура для входу — INFO4, для
виходу — INFO5 (див. прилож. 1.2 стор. 52 і рис. 15 прилож. 2)
«РАСЧЕТ"-"Слияние квартплати з льготами»
Позаяк у програмі окремо нараховуються нарахування із квартплати і пільгам,
необхідно визначити суму до оплати, задля чого й служить цей пункт. Після
вибору кнопки «Прибл», з вікна описаному вище, виконується процедура RAS3 (див.
прилож. 1.2 стор. 49).
Тут після закриття всіх баз даних у сфері «а» відкривається БД нарахувань, в
області «b» БД мешканців, потім оголошується змінна «m», для зберігання
кількості записів в БД (m=RECCOUNT ()), що необхідне виходу з добірки.
Далі організовуються чотири циклу, із яких лише самий внутрішній
SCAN-цикл здійснює переміщення покажчика записів. Інші WHILE-циклы
контролюють задані умови, инициализируют, формують і заносять дані в поля
БД.
Перший WHILE-цикл має умова! EOF (), тобто цикл виконується до того часу поки
нічого очікувати досягнуть кінець БД. І тому служить функція EOF (), котороя приймає
значення .F. під час спроби покажчика записи вийти за межа останньої записи БД.
Наступною командою служить визначення перемінної що містить ім'я вулиці, для
роботи наступного WHILE-цикла.
Також при розрахунку для баз даних застосовуються TAG’и, що дозволяють
пред’являти запис у систематизованому вигляді за адресою, що дозволяє
використовувати WHILE-циклы, і навіть SCAN-цикл з включенням у нього WHILE-условия.
Другий WHILE-цикл пред’являє ті записи які мають вулиця збігаються з перемінної
певної у першому WHILE-цикле, тобто мешканців з однаковим вулицею, і навіть
тут визначається змінна, що містить номер вдома, до роботи наступного
WHILE-цикла.
Третій WHILE-цикл пред’являє ті записи, які мають вулиця та будинок збігаються, то
є мешканців що у одному будинку. І тут визначається змінна,
яка містить номер квартири, до роботи наступного SCAN-цикла і які змінюються
які допомагають формувати дані, числового типу, яким присвоюється значення 0.
Четвертий SCAN-цикл обробляє записи одній квартири. Всередині цієї циклу
використовуються команди управління (IF…[ELSE]…ENDIF), що дозволяють від
які відповідають умов присвоювати змінним потрібні значення й потім
переносити в поля БД. Так було в першої команді виявляється, чи є мешканець
платником і за істинному сенсі, перемінної it присвоюється значення
підсумковій суми по нарахуванню квартплати, перемінної r-номер записи, для
занесення у ній, по закінченні циклу, в поля платника потрібних результатів.
У другій команді аналізуються пільговики і з допомогою змінних (визначених у
третьому циклі) присвоюються результати сум нарахувань по льготам.
Після закінчення циклу квартирою покажчик записів встановлюється на
таку запис, яка запам’ятовується в перемінної n, потім у зміну os
заноситься сума до оплати, командою GOr покажчик переходить на запис платника
й у поля з цією записи переносяться отримані результати. Потім активної
робиться БД мешканців у ній шукається ця запис і залежно та умовами
коригуються поля по залишку і про оплату. Тож якщо оплата не здійснювалася (полі
OPL порожньо), то залишок буде розрахована сума до оплати з негативним
значенням, інакше результат залишку, отриманий при вирахуванні з внесеної суми
нарахування, розрахованої суми за оплатою. Після цього вибирається знову БД
нарахувань, перевіряється умова, у якому якщо змінна n (номер наступній
записи) більше перемінної m (кількість записів) то виконується процедура
перегляду і злиття розрахунків закінчується, інакше розрахунок триває для
наступних записів. Навіщо потрібно було це умова?
Річ у тім, що з перегляду та формування звітів целеобразно зберігати все
дані, які стосуються з нарахованих сумам за нарахуваннями квартплати і за пільгами за
записи одного мешканця, що є платником, навіщо в циклі здійснюється
перехід з цього запис. Оскільки при початку циклу у першому WHILE-цикле
визначено умова закінчення, якщо змінна !EOF () прийме значення .F., то, при
такий підхід (повернення на потрібну запис у процесі циклу) ця змінна
будь-коли прийме цього значення, оскільки він змінює свою значення не тоді
коли покажчик записи перебуває в останньої записи, а коли покажчик записи
спробує вийти межі останньої записи, ось припинення циклу і
використовується ця умова. Як-от: змінна m зберігає кількість усіх записів, а n
зберігає номер останньої записи. А якщо ж n буде більше m, це отже, що це
записи розраховані. Єдиним недоліком (на мою думку) такий підхід
і те, що змінна m ранить все записи, включаючи записи позначені на
видалення, й у зтом разі розрахунок для останньої записи виробляється стільки раз,
як у БД записів на видалення, що ні впливає результат, а на
швидкість обробки, але ці обмеження уникає мого розрахунку, у тій
причини, що позначаються лише у БД мешканців, а БД нарахувань їх
існує, оскільки БД нарахувань формується з БД мешканців, на яку
визначено ігнорування записів на видалення (SET DELETE ON).
І останнє команда, яка виконується при дійсному умови описаному вище,
це перегляд розрахунків. Він здійснюється з допомогою команди BROWSE (див. прилож. 2
рис. 16) з такими полями: прізвище, табельний номер з БД мешканців і
результати нарахувань на квартплату, пільг вдаються і сумі до оплати з БД нарахувань,
також використовуються три вычисляемых поля. Це поле-функция від полів, з позначкою
«?», показывающая мешканців, мають пільгу і ниви зі значками: «+»,
«=», що б суть розрахунку. У частині в статус-строке показується адресу
мешканця, кількість які проживають і пільговиків (див. прилож. 1.2 стор. 42). До того ж
тут перемінної _PAD_OTCH, присвоюється значення .Т., що дозволяє
формувати звіти по виконаним данным.
Функція ПОИСКА
У цьому пункти меню роботи з даними закінчуються і він розглянемо
функцію пошуку, яка виконується переважають у всіх процедурах, виділені на
обробітку грунту і перегляду даних. Цю процедуру закріплена за клавіш F5, а вікні,
яке викликається під час виборів «КАДРЫ"-"Квартиросъемщики», закріплена за пунктом
в Fox-меню «Поиск».
На виконання цієї функції используется:
меню, з пунктами визначальним за якими значенням здійснюватиметься пошук (по
прізвища, по табельної номера, за адресою і «скасування пошуку), визначене в
файлі MENI. PRG (див. прилож. 1.1 стор. 4).
Вікно для завдання критерію пошуку, з допомогою команди @…GET і перемінної «а»,
має тип, залежно від вибору пункту меню. Вікно також склала
початковому файлі (див. прилож. 1.1 стор. 2).
До того ж використовують різні процедури. Для пошуку на прізвище і табельної номера
— POISK, за адресою — PO_ADR. Це у тому, щоб за пошуку за адресою
можливо залишати порожніми значення номери вдома і (або) квартиры.
Виконання функції пошуку побудована в такий спосіб, що з натисканні клавіші
(пункту меню) активується меню пошуку (ON KEY LABEL F5 ACTIVATE POPUP POISK
(ACTIVATE POPUP POISK)), де потрібна вибрати необхідний пункт, як показано на
рис. 13 прилож. 2, де за працювати з картотекою пільговиків натиснута клавіша F5 і
обраний пункт «За адресою». Для пунктів меню POISK’a командою ON SELECTION BAR
визначено виконання процедури POISK (див. прилож. 1.2 стор. 24)
Тут у перемінної _REC запам’ятовується номер поточної записи, для повернення при
невдалому пошуку. Далі у структурі DO CASE аналізується обраний пункт.
Якщо PROMPT ()='По фамилии'('По табелю'), головним вибирається TAG fam (tab),
на допомогу пошуку з допомогою команди SEEK (), у команді @…GET визначається змінна «а»
має символьний тип (DEFAULT SPASE (25)) а табеля числової тип з чотирьох
знаків (PICTURE '9999'), пред’являється вікно POISK у якому розміщено полі GET
для занесення ключа пошуку. Після введення шуканого значення потім із нього видаляються
можливі прогалини (ALLTRIM (a)) на допомогу пошуку на прізвище, що дозволяє вести пошук
і з не повного ключу (прізвища). Також значення перемінної «а» запам’ятовується в
перемінної «d», а табельної номери змінна «а» перетворюється на
символьний тип (d=STR (a, 4)), необхідна для включення ключа пошуку
повідомлення WAIT про невдалому пошуку. Сам пошук здійснюється по закінченні
команди DO CASE у команді IF… ENDIF — IF BAR ()#4. AND. !EMPTY (a). AND. !SEEK (a) —
якщо пункт не скасування і якщо змінна «а» не порожня і вишукування невдалий, то
виводиться системне вікно з допомогою команди WAIT-WAIT 'Поиск'+PROMPT+': '+d+'
НЕВДАЛИЙ' WINDOW — яке показано на рисунке:
Яке потім видаляється натисканням будь-який клавіші, і покажчик записів повертається
на (GO _REC) старе місце. Потім відбувається повернення у команду з якої було
виклик. Якщо результаті пошуку було знайдено потрібна запис, то команді BROWSE,
курсор стоятиме у ньому, тоді як команді READ, він перехід з цього запис
і відновлення інформації та GET-объектов з цією записи.
Якщо PROMPT ()='По адресою', то виконується процедура PO_ADR (див. прилож. 1.2 стор.
25). Тут спочатку визначається меню, масив і які змінюються з допомогою що у
WHILE-цикле формуватимуться BAR-пункты з назв вулиць. Потім масив
переопределяется та її елементи — це пункти меню, яке активується при
вході у полі для введення вулиці та її вибір ввозяться процедурі YLIZ (див.
прилож. 1.2 стор. 29), де перемінної m. yl присвоюється значення
параметра-mprompt. (ON SELECTION POPUP YL DO YLIZ WITH PROMPT ()), де
рухаючись параметр (PROMPT ()) цю назву BAR-пункта, тобто назва
вулиці. Фундаментальна обізнаність із вікном POISK здійснюється з допомогою змінних полів адреси,
які створюються з допомогою команди — SCATTER FIELDS yl, dom, kw_ra MEMVAR
BLANK. Після заповнення полів і натисканні клавіші Enter (розпочати пошук) у структурі
DO CASE аналізується скільки полів заповнене і з допомогою команди LOCATE з FOR
умовою ведеться пошук. Якщо він вдалий то здійснюється перехід на знайдену
запис, і якщо це READ-окно то інформацію про мешканці оновлюється, інакше покажчик
записи повертається старою запись.
Пункт меню «ОТЧЕТЫ»
Підготовка та оформлення звітних даних безперечно є кульмінацією
будь-якого ділового докладання. Отож докласти зусиль у тому, щоб усе
розмаїття даних, записаних в БД докладання, знайшло гідне відображення в
звітах, надрукованих на принтере.
FoxPro має потужні кошти побудови звітів висновку даних в бажаному
для користувача вигляді на принтер, екран чи текстовий файл, але у своїй
дипломної роботі я — не користувався цими засобами, а спробував
програмуванням вручну створити потрібні виведені дані. Це з тим,
що не переслідував комерційної мети, створюючи додаток, і навіть у тому,
що краще освоїти мову програмування і задіяти якнайбільше
команд і державних функцій FoxPro.
Усі звіти формовані з допомогою даних баз побудовано за схемою, тож
розберу жодну докладніше, а інших лише коротко дам описание.
«ОТЧЕТЫ"-"Списки по нарахуванню»
При виборі цього пункту формується звіт кожному за мешканця з сумами
нарахувань з кожної послузі і окремо нарахування з пільг, показується
скільки оплачено і залишок якщо залишок позитивний, це суму необхідно
заплатити платникові користування послугами, якщо негативний ця сума
повинна перейти наступного року місяць рахунок будующих платежів послуг. Також у
шапці в кожному мешканцю виводиться дата оплати, кількість які проживають, їх
кількість пільговиків, зайнята площа. (див. прилож. 3 с. 1). формування
звіту виконується у процедурі SP_NACH (див. прилож. 1.7 стор. 1). У перших
рядках прибирається меню звітів з екрана (HIDE POPUP VIEV), потім перевіряється
значення перемінної _PAD_OTCH, вона повинна мати значення «Істини» (.T.), коли його
значення «Брехня» (.F.), отже виконувалася процедура «ДополненияИзменения» і
з’явиться системне вікно, з проханням зробити злиття розрахунків. (див. вище).
Потім переопределяется клавіша F1 відкриття з вікна допомогу підказку у цій
процедурі, в зміну «і» заноситься номер поточного місяці (MONTH (DATE ())), для
включення їх у ім'я файла, щоб потім було легко впізнати дані файла
з його імені. Наприклад в перемінної формується ім'я за березень місяць
(T='NACH-'+ALLTRIM (STR (i)))+'. '+'txt', де «і» це цифра три і цього
вийде файл NACH-3. TXT, що означає звіт за березень (3) за нарахуваннями (NACH).
Ця змінна потрібна щоб після формування звіту його, з допомогою
макропідстановки (EVALUATE ('T')или (& T)), можна було відкрити з вікна для
перегляду і (або) редагування. Нижче визначається це немовбито вікно, він визначається
заздалегідь, щоб його було закрити з допомогою миші, клацнувши у лівій
розі по прямокутнику (Опції «SYSTEM CLOSE»).
Далі з допомогою команди SET ALTERNATE TO створюється альтернативний
файл і командою SET ALTERNATE ON він відкривається внесення до нього даних,
одночасно командою SET CONSOLE OFF видача на екран формованих даних не
виробляється.
Формування звіту виконується з допомогою циклів, бо як деякі дані
зберігаються лише у полях платника, то використовуються перемінні для зберігання
даних які виводиться в файл і які змінюються дозволяють організувати
цикли это:
Визначаються два масиву і які змінюються висновку даних в файл:
NACH (12,1)-для зберігання сум нарахувань на квартплату кожної послузі, підсумкових
сум та рівної оплати, LG (9) — для зберігання сум за нарахуваннями з пільг кожної
послузі, PL- містить кількість мешканців, L — кількість пільговиків, FM-фамилия
платника, OS-значение поля-OST_K (залишку), TB-табельный номер платника,
KV_MET — значення поля KV_M (квадратні метри), DAT_OP — значення поля D_OPL
(дата оплаты).
У циклах визначаються перемінні для систематизованого пред’явлення данных:
Y-значение поля YL (вулиці), D-значение поля DOM (вдома) і K- значення поля KW_RA
(квартира).
Процедури використовуються чотири циклу, аналогічних описаним у процедурі злиття
квартплати з пільгами. Тобто використовуються чотири циклу, де перший WHILE-цикл
визначає, що цикли працюватимуть поки що не спроби вийти за останню
запис в БД (DO WHILE! EOF ()). Другий пред’являє записи мешканців, які живуть на
однієї вулиці (DO WHILE y=yl). Третій пред’являє записи мешканців (DO WHILE y=yl
AND d=dom). І четвертий SCAN-цикл пред’являє мешканців однієї квартири (SCAN WHILE
yl=y. and. dom=d. and. kw_ra=k), у якому, з допомогою команди управління
IF… ENDIF залежно від категорії мешканців, змінним присвоюються
відповідні значення, які потім за допомогою команди ???
[[PICTURE][FUNCTION
данных> ]][АТ][,]…]
заповнюють відкритий альтернативний файл.
Після опрацювання всіх записів БД висновок в альтернативний файл забороняється (SET
ALTERNATE OFF) і він закривається (SET ALTERNATE TO). І створений файл відкривається
з вікна VEDOM для просмотра (редактирования) (MODIFY COMMAND EVALUATE ('T') WINDOW
vedom).
Після закриття вікна перегляду звіту з’являється вікно з пропозицією відправити
документ на печатку. Що стосується згоди (кнопка «Так») тестується готовність
принтера (PRITSTATUS=.T.) і документ роздруковується (TYPE (T) TO PRINT) інакше
(кнопка «Ні») робота процедури завершується і печатку звіту можлива із
меню «Печать».
«ОТЧЕТ"-"Списки по льготам»
Формує звіт по пільговикам незалежно від періоду дії пільги (див.
прилож. 1.7 стор 3). Тут перемінні майже використовуються, в перемінні
заноситься лише прізвище і табельний номер платника і які змінюються для
пред’явлення даних в циклах. Дані виводяться з допомогою полів пільговиків в БД
мешканців і БД нарахувань, де зберігаються потрібні дані. Роздруківка звіту показано
в прилож. 3 стор. 4.
«ОТЧЕТ"-"Оплата ээнергии»
Формується звіт про оплату електроенергію, спираючись на дані лічильника (див.
прилож 1.7 стор. 5). Тут використовуються перемінні лише систематизованого
пред’явлення даних в циклах. Дані виводяться з полів платників, оскільки
пільга у цій послузі не передбачена. Роздруківка показано прилож. 3 стор. 5.
«ОТЧЕТ"-"Сальдо по квартиросъемщикам»
Формується звіт щодо платників із зазначенням суми нарахувань із квартплати,
сумі до оплати та незначною сумою залишку (см. прилож. 1.7 стор. 7). Тут також використовуються
перемінні лише систематизованого пред’явлення даних в циклах.
Роздруківка показано прилож. 3 стор. 6.
«ОТЧЕТ"-"Свод на квартплату за месяц»
Формується звіт по загальним сумам всіх нарахувань з кожної послузі і підсумкові
суми протягом місяця (див. прилож. 1.7 стор. 8). У цьому процедурі не використовуються цикли.
Дані виходять з допомогою команди математичного опрацювання БД: CALCULATE
[][WHILE][FOR][TO /TO
ARRAY ]. У цю команду дозволяє вести математичні розрахунки в БД.
може містити будь-яку комбінацію внутрішніх для даної
команди функцій, які теж виконують матаматическую обробку (AVG (),
CNT (), MAX (), MIN (), STD (), SUM (), VAR (), NPV (…)).
Тут приведено повний перелік змогу даної команди, а жирним шрифтом
виділено опції, які у процедурі. Так перша команда CALCULATE
подчитывает загальні нарахування із квартплати (SUM
квартплати по послузі>), друга загальні нарахування з пільг (SUM
нарахувань пільги по послузі>) й оприлюднювати отримані результати заносять у перемінні.
Потім у перемінні заносяться загальні суми нарахувань щоб одержати організацією
за надання з квартиронаймачам протягом місяця. Вони розраховується шляхом
відрахування із нарахувань квартплати про послуги нарахування пільг щодо послугам і
отримані результати виводяться в файл. Роздруківка показано прилож. 3 стор. 7).
Пункт меню «ПЕЧАТЬ»
При виборі даного пункту активується POPUP-меню описане з опцією PROMPT
FILES [LIKE] - елементами якого буде назви файлів, обмежених
маскою (DEFINE POPUP prin_t FROM 1,31 PROMPT FILES LIKE *-1. TXT см. прилож. 1. 1
стр. 3), що формує меню з імен файлів, створених за виборі
відповідного пункту «ЗВІТУ» й визначення реакції меню виконується в
процедурі print3 (ON SELECTION POPUP prin_t DO print3 WITH PROMPT (), LASTKEY ()),
куди передаються два параметра это-имя файла (vv — PROMPT ()) і код натискання
клавіші (lk — LASTKEY ()).
Процедури (див. прилож. 1.2 стор. 28) у структурі DO CASE аналізуються
передані параметри. Якщо натиснута клавиша"Enter» (ВВЕДЕННЯ), то код 13 (CASE lk=13)
здійснюється виклик відповідного текстового файла у вікно VEDOM для
перегляду із можливістю редагування (MODIFY COMMAND (vv) WINDOW VEDOM).
Якщо натиснута клавіша «Spacebar» (ПРОГАЛИНУ), тол код 32 (CASE lk=32), відбувається
опитування готовності принтера (PRINTSTATUS ()) і коли він готовий, файл друкується (TYPE
(vv) TO PRINT), якщо ні - видається відповідне повідомлення. Нижче наводяться
міна файлів:
файл LG_KW-xx. TXT"Списки по льготам»
файл EL_PL-xx. TXT"Оплата электроэнергии»
файл SVOD-xx. TXT"Свод із квартплати за месяц»
Де хх — це номер місяці, протягом якого сформований звіт.
Пункт меню «ПОМОЩЬ»
Усі файли допомоги зберігаються у базі даних HELP. DBF, має лише одна
MEMO-поле. І за вмовчанням має вісім, заповнених інформацією, полів.
«ПОМОЩЬ"-"Помощь»
під час виборів цього пункту командою ON SELECTION … DO HELP WIHT 6 виконується
процедура, у якій з вікна відкривається текст підказки записаній в 6-ї записи
MEMO-поля. Тут описується допомогу з пунктах меню. (див прилож. 2 рис. 21)
«ПОМОЩЬ"-"Справка»
під час виборів цього пункту командою ON SELECTION … DO HELP WIHT 3 виконується
процедура, у якій з вікна відкривається текст підказки записаній в 3-ей записи
MEMO-поля. Тут описується загальне призначення та характеристика приложения.
Робота процедури допомоги розглянуть ниже.
Створення контексно-зависимой екранної подсказки.
Кожне MEMO-поле в БД допомоги (HELP. DBF), містить конкретне опис допомоги по
працювати з окремими вікнами. На початку роботи програми, коли баз даних ще немає,
опис допомоги зберігається в текстових файлах. І за першому запуску докладання, з
допомогою мови SQL (див. прилож. 1.3 стор. 2), вони створюються та в БД допомоги
послідовний у MEMO-поля переносяться вміст текстових файлів (APPEND MEMO
HLP FROM HELP1. TXT).
Для екрана допомоги визначається вікно і з ім'ям HELP, аклавиша F1 і двоє
пункту даного меню закріплюються за процедурою безпосередньо з ім'ям HELP, у якому
передається один параметр До (ON KEY LABEL f1 DO help WITH k)
Цей параметр надалі вказувати номер запис у файлі HELP. DBF, де
міститься потрібна підказка. У самій процедурі (див. прилож. 1.2 стор. 21)
здійснюється переклад покажчика записів у сфері I (у якій відкрита БД
допомоги) на запис номер До.
Але тут визначається вікно HELP, у якому з допомогою команди MODIFY MEMO I. HLP
WINDOW HELP NOEDIT виводиться текст підказки. Щоб виключити випадкову
можливість псування вмісту HELP користувачем, можливість редагування
виключена опцією NOEDIT.
У процедурах роботи із фотографією спочатку переопределяется клавіша F1 для
відкриття відповідної підказки (ON KEY LABEL f1 DO help WITH 1(2,4,5,7,8)),
а, по завершенні роботи із кожним вікном клавіші F1 визначається параметр 6 (…WITH
6). Це дозволяє із будь-якої місця програми можна викликати свої послуги натисканням
клавіші F1. Доступ до потрібної запис у файлі допомоги відбувається дуже швидко,
бо її не припадати шукати. Треба лише у місцях
програми робити присвоєння перемінної До, тобто вказувати номер потрібної записи
з файла HELP. DBF. У процедурах, де допомогу не передбачена, перемінної До
задається значення 6, висновку загальної допомоги за програмою, що також
закріплена за пунктом меню «Помощь».
Пункт меню «Выход»
Для коректного закриття БД і роботи необхідно проконтролювати
запитом спробу користувача вийти з програми. Ця функція міститиме
звичайний запит на підтвердження виходу, і за позитивному відповіді (кнопка «Так»)
здійснить закриття всіх активних файлів БД, збереже в файлі M_ZAR. MEM все
перемінні які з символу «_» (SAVE TO m_zar ALL LIKE _*). У додатку
зти перемінні визначено як глобальні і які змінюються нормативних ставок і після
цього відбувається вихід із докладання (QUIT). При виборі кнопки «Ні» відбувається
повернення у приложение.
Заключение
У процесі роботи над дипломним проектом створили комплекс програмних засобів
задля забезпечення роботи бухгалтера-расчетчика. З іншого боку розробили
концепція проектування інформаційно — довідкових систем із застосуванням функцій
екранного інтерфейсу, розроблених у межах дипломного проекту. Застосування
спеціалізованих функцій дозволило скоротити час розробки основного модуля
програми розвитку й забезпечило вивільнення часу створення процедур обробки
даних. У дипломному проекті представлений одне із безлічі підходів до
проектування програмного забезпечення інформаційної плану, дає
можливість на ранніх етапах розробки врахувати всі можливі нюанси майбутньої програми,
необхідний набір функцій, склад парламенту й структуру баз даних, що у
виключає необхідність переробки вже написаних компонентів програми.
Цей дипломний проект розроблявся ні з комерційної метою, і з метою
показати можливості СУБД FoxPro, використовуючи при застосуванні якнайбільше команд
та зняття функцій даної СУБД. Тому робота докладання коштів збереження та
перегляду раннє зроблених розрахунків й робота відбувається лише з поточним
місяцем.
Хоча принцип роботи докладання і естонську мови програмування Андрійовича не виключають і
комерційне поширення. Варто лише додати модулі збереження даних
під час переходу наступного року місяць і перегляду з архівів цих данных.


ПоказатьСвернуть
Заполнить форму текущей работой