Міністерство освіти України

Чернівецький державний університет

ім. Ю. Федьковича

Кафедра електронно-обчислювальних машин

7.09.15.01 “Комп’ютерні та інтелектуальні системи та мережі”

Автоматизація господарської діяльності

ВАТ «Коломийський сирзавод»

Дипломний проект

Завідуючий кафедрою ЕОМ

доктор фізико-математичних наук, профессор

__________________________З. Д. Ковалюк

______________________________________

Науковий керівник

кандидат фізико-математичних наук, доцент

__________________________ В. І. Федорук

______________________________________

Виконав студент 5-го курсу

____________________________ Лазор О. Б.

______________________________________

2000

Форма №У-9.01*

Затв. Наказом Мінвузу УРСР

Від 3 серпня 1984р. №253

Чернівецький державний університет

Факультет фізичний Кафедра електронно-обчислювальних машин

Спеціальність Комп`ютерні та інтелектуальні системи та мережі

Заверджую:

зав. кафедрою __________________

“____”_________________2000р.

Завдання на дипломний проект (роботу) студентові

Лазору Олегу Богдановичу

Тема проекту (роботи): Автоматизація господарської діяльності

ВАТ «Коломийський сирзавод».

Затверджена наказом по університету від “___”____________2000р.
№_______

Термін здачі студентом закінченого проекту (роботи)____________________

Вихідні дані до проекту (роботи): ____________________________________
________________________________________________________________________
________________________________________________________________________
______________________________________________________

Зміст розрахунково-пояснювальної записки: (перегляд питань, які слід
розробити): Теоретичні відомості з питань бухгалтерського обліку
основних фондів підприємства, опис програмного комплексу та роботи з
програмою.

Перелік графічного матеріалу (з точним зазначенням обов’язкових
кресленнь): _______________________________________________________
________________________________________________________________________
________________________________________________________________________
______________________________________________________

Консультанти по проекту (роботі) з зазначенням розділів проекту, що
стосуються їх:

Розділ Консультант Підпис, дата

Завдання видав Завдання прийняв

Дата видачі завдання:

Керівник________________________

(підпис)

Завдання прийняв до виконання __________________
”___”______2000р.

(підпис)

Календарний план.

№ п/п Найменування етапів курсової роботи Термін виконання Примітка

1 Розробка алгоритму програми

2 Введення і відладка програми

3 Оформлення ПД отримання рецензії

4 Захист дипломної роботи

Студент дипломник ________________________Лазор О.Б.

(підпис)

Керівник проекту___________________В. І. Федорук

(підпис)

Зміст

Анотація.

Специфікація.

Пояснювальна записка.

3.1. Вступ.

3.2. Призначення та область використання.

3.3. Технічні характеристики.

3.4. Опис алгоритму програми.

3.5. Опис організації вхідних та вихідних даних.

3.6. Вибір та обгрунтування апаратних та програмних засобів.

Технічне та економічне обгрунтування дипломного проекту.

Охорона праці.

Висновки.

Список використаної літератури.

Додаток 1 – Текст програмних модулів.

Додаток 2 – Приклади електронних звітів.

Додаток 3 – Блок схеми основних алгоритмів.

5

7

9

11

12

13

19

29

30

31

34

36

37

38

85

Анотація

Даний дипломний проект містить 70 сторинок друкованого тексту і 6
графічних додатків. Написаний українською мовою.

Створено програмний комплекс, що автоматизує облік основних засобів
будь-якого підприємства чи господарства, та автоматично нараховує
поквартальний знос на них, а також виводить загальні звіти по
підприємству, а також звіти по внутрішніх відділах підприємства.

Проект містить опис алгоритму, опис програми та текст програми.

Використання розробленого програмного забезпечення автоматизує працю
бухгалтера пов`язану з обліком засобів підприємства, та нарахуванням
амортизаційного зносу.

Sumary

Given degree project is kept — pages of printed text and graphic
exhibits. Written on ukrainian language.

Created programme complex, which automates an account of main fund of
some enterprise, or facilitieses, and automatically adds quarterly
deductions, as well as produces general reports on the enterprise, as
well as reports on its internal branches.

Project is kept an algorithm description,program description and text of
program.

Using developping software vastly simplifies a working an accountant is
connected with the account of funds of an enterprise, and an adding a
quarterly deduction.

Затверджено

Ф.ФФ.57071-01 93 01-1-ЛУ

Автоматизація господарської діяльності

ВАТ «Коломийський сирзавод».

Специфікація

Ф.ФФ.57071-01 93 01-1-ЛУ

Листів 2

2000

Ф.ФФ.57071-01 93 01-1-ЛУ

Позначення Найменування Примітка

Ф.ФФ.57071-01 81 01-1 Пояснювальна записка

Ф.ФФ.57071-01 13 01-1 Опис програми

Ф.ФФ.57071-01 12 01-1 Текст програми

Затверджено

Ф.ФФ.57071-01 93 01-1-ЛУ

Автоматизація господарської діяльності

ВАТ «Коломийський сирзавод».

Пояснювальна записка

Ф.ФФ.57071-01 93 01-1-ЛУ

Аркушів 28

2000

Ф.ФФ.57071-01 93 01-1 81 01-1

Зміст

Вступ

Призначення та область використання.

Традиційні методи вирішення задачі.

Технічні характеристики.

4.1. Файлова структура комплексу.

4.2. Організація основних та службових даних.

4.3. Основні функції, що реалізує комплекс.

4.4. Захист інформації від несанкціонованого доступу.

4.5. Інсталяція комплексу.

4.6. Необхідні для роботи ресурси дискової та оперативної пам‘яті.

4.7. Часові характеристики робочого циклу програми.

4.4. Можливість модернізації.

4.5. Адаптація до мережевого використання.

Опис програми.

5.1. Анотація.

5.2. Опис структури алгоритму

5.3. Вихід та індикація вдалого закінчення сеансу.

5.4. Структурні підрозділи підприємства.

5.5. Ввід даних.

5.6. Відображення інформації.

5.7. Контроль помилок.

5.8. Зміна параметрів нарахування.

5.9. Перехід на новий квартал.

5.10. Типи звітів та їх вивід на принтер.

5.11. Опис організації вхідних та вихідних даних.

5.12. Вибір та обгрунтування апаратних та програмних засобів.

5.12.1. Обгрунтування вибору програмних засобів.

5.12.2. Обгрунтування вибору апаратних засобів.

Технічне та економічне обгрунтування дипломного проекту

Охорона праці

Висновки.

9.1. Специфіка вибору методу реалізації.

9.2. Мережеве використання.

Список використаної літератури.

Додаток 1 – Текст програми.

Додаток 3 – Приклади комп‘ютерних звітів

Додаток 3 – Блок-схеми алгоритму, та основних модулів. 11

12

13

13

14

15

16

17

18

18

18

18

18

19

20

21

22

23

25

26

27

27

27

28

29

30

30

30

31

34

36

36

36

37

38

85

Вступ.

Сучасне підприємство або установа у тій, або іншій формі займається
обробкою різноманітних даних.

В сучасних умовах важливою областю стало інформаційне забезпечення,
задача якого полягає в зборі та переробці інформації, необхідної для
обгрунтованих керівних рішень.

Передача інформації про положення і діяльність підприємства на вищий
рівень керування та взаємний обмін інформацією між усіма підрозділами
фірми виконується на базі сучасної електронно-обчислювальної техніки та
інших технічних засобів зв’язку.

В діяльності комерційних структур, що є комплексами повсякденно
зв’язаних та взаємодіючих підприємств передача інформації є
першочерговим та необхідним фактором нормального функціонування даної
структури. При цьому особливе значення набуває забезпечення
оперативності та достовірності інформації.

Інформація служить основою для підготовки доповідей, звітів, пропозицій
та прийняття відповідних рішень.

До інформації ставляться деякі вимоги:

по об’єкту та якості – стислість та чіткість формулювань, вчасність
отримання;

по цілеспрямованості – задоволення конкретних вимог;

по точності та достовірності – правильний відбір первинних даних,
оптимальність систематизації та безперервність збору і обробки
інформації.

Особлива відмінність праці товарознавця, бухгалтера, економіста полягає
в тому, що він переписує дані з первинних документів у картки, журнали,
накопичувально-групувальні відомості та інші облікові регістри на папері
з подальшим їх узагальненням та перенесенням загальних результатів на
рахунки.

Всі ці операції займають велику кількість часу, досить трудомісткі, у
них достатньо великий відсоток помилок.

Один з шляхів полегшення роботи – створення автоматизованого робочого
місця (АРМ) бухгалтера, товарознавця, кладовщика.

АРМ має задовольняти наступні вимоги:

звільнення людини від рутинної праці, пов’язаної з простими операціями,
які часто повторюються;

зведення до мінімуму помилок;

доступний інтерфейс;

Дана дипломна робота орієнтована на створення АРМ бухгалтера, що
займається основними фондами підприємства.

Призначення та область використання.

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

Основні засоби підприємства.

Основні засоби підприємства – це сукупність матеріально речових
цінностей, що діють у натуральній формі протягом тривалого часу як у
сфері матеріального виробництва, так і в невиробничій сфері, термін
служби яких більше одного року і вартість з 1,01,1994 р. складає 5000
українських карбованців і більше.

До основних засобів відносяться сільськогосподарські машини і знаряддя,
будівельний механізований інструмент, робоча і продуктивна худоба, які є
основними засобами незалежно від їх вартості.

Гранична вартість предметів, що належать до основних засобів, може
змінюватись за рішенням Кабінету Міністрів України.

Основні засоби приймаються на облік на підставі Актів вводу в
експлуатацію, та актів прийомки-передачі встановленої форми.

Основні засоби підприємства відображаються в бухгалтерському обліку і
звітності за фактичними затратами на їх придбання, спорудження і
виготовлення. Ці затрати становлять іх первісну вартість. Зміни
первісної вартості основних засобів допускаються лишу у разі добудови,
дообладнання реконструкції та часткової ліквідації відповідних об`єктів,
переоцінки та індексації основних засобів за рішенням уряду.

Погашення вартості основних засобів підприємства здійснюється шляхом
віднесення зносу (амортизаційних відрахувань) за затвердженими нормами
на витрати виробництва та обсяги протягом терміну, за який первісна
вартість повністю переноситься на витрати виробництва.

Одиницею основних засобів є окремий інвентарний об`єкт. За кожним
інвентарним об`єктом закріпляється інвентарний номер.

Основні засоби як діючі, так і на консервації або в запасі, а також
закінчені капітальні вкладення в орендовані основні засоби, показують в
активі балансу за первісною та залишковою вартістю. Залишкова вартість
основних засобів по балансу визначається як різниця між первісною їх
вартістю та сумою зносу.

Облік основних засобів.

Порядок відображення у фінансовій звітності об‘єктів основнихзасобів
регулюється ПБО 7 “Основні засоби”.

Виходячи з визначення основних фондів, яке присутнє в ПБО 7, до основних
фондів належать матеріальні активи, котрі підприємство утримує з метою
використання їх у процесі виробництва, або поставки товарів і послуг,
надання в оренду іншим особам або для здійснення адміністративних і
соціально-культурних функцій, очікуваний термін використання
(експлуатації) яких більше одного року (або операційного циклу, якщо він
перевищує рік). На сьогодні ПБО дозволяє підприємству самостійно
визначити, що відносити до основних засобів, а що ні, виходячи з чого
ніхто не забороняє підприємству прийняти рішення про зарахування до
складу основних засобів саме тих видів МШП, котрі найбільш відповідають
цому поняттю з економічної точки зору.

Як і будь-який актив, основний засіб відображається в Балансі при
додержанні двох умов:

— існує імовірність одержання економічних вигод від його використання;

— оцінка основного засобу може бути достовірно визначена.

Матеріальні ресурси, готова продукція і товари, на які продажна ціна
зменшилась, або якщо вони застаріли чи частково втратили первісну
якість, відображаються в звітності на кінець звітного періоду за ціною
можливої реалізації в тих випадках, коли вона нижче від їх вартості,
коли вона нижче від їх вартості їх зарахування на баланс, з віднесенням
таких втрат на зменшення товарних надбавок, фонду поповнення власних
коштів та дооцінки товарно-матеріальн-матеріальних цінностей, а у разі
недостатності таких джерел – на фінансові результати від
позареалізаційних операцій.

Складання первинних документів про господарські операції та їх
відображення в регістрах обліку підприємства й організації проводять у
гривнях та копійках.

3. Традиційні підходи до вирішення таких задач.

Традиційно питання розв‘язувалось методом послідовного обчислення зносу
за квартал для кожного інвентарного обєкту, з наступним підрахуванням
вартості на кінець кварталу. Пізніше підбивались вручну підсумовувались
залишки по підрозділах та загальні підсумки. Результатом роботи є
квартальний звіт в який переписувались всі наявні засоби підприємства ,
з іхніми вартісними показниками.

4. Технічні характеристики

Програмний комплекс реалізовано в СУБД FoxPro 2.6 (c) 1989-1994
Microsoft Corporation. Програма працює під управлінням DOS, і тому
сумісна з переважною більшістю систем РС.

Основним елементом комплексу є інтерактивне меню – нащадок системного
меню СУБД, функції якого полягають в виклику модулів, що безпосередньо
виконують прикладні функції. При розробці модулів максимально
пропрацьована їх незалежність від інших. Наявніьсть незалежного
інтерактивного меню і ізольованих підпрограм дозволяє при некоректній
роботі оператора з одною підпрограмою, без проблем запустити іншу,
причому запуск кожної нової підпрограми передбачає закриття всіх
відкритих баз і деактивацію вікон та меню, які залишились від невдалого
закінчення роботи попередніх модулів.

Використання невеликої кількості схем колоьорів рекомендованих
розробниками СУБД полегшує сприйняття даних та роботу з комплексом, а
також виключає проблеми при роботі в монохромному режимі.

Для друку звітів необхідний широкоформатний принтер, який працює під
управлінням DOS і коректно працює з ASCII кодуванням.

4.1 Файлова структура комплексу:

!ST BAT 58 09.04.00 11:23 !ST.BAT

!ST1 BAT 40 09.04.00 11:23 !ST1.BAT

AMORTIZ DBF 25 554 21.04.00 15:55 AMORTIZ.DBF

AMORTIZ1 PRG 2 431 21.04.00 11:52 AMORTIZ1.PRG

AMORTIZ1 FXP 1 986 21.04.00 12:06 AMORTIZ1.FXP

AMORTIZ1 BAK 2 699 13.04.00 10:58 AMORTIZ1.BAK

DOVVID DBF 938 21.04.00 13:50 DOVVID.DBF

DTOP FXP
6?†????†??????????††??†††††??????‰??????????††??†††††??†????†???????????
†??††††???????‰†????????

KVARTAL1 <ПАПКА> 10.04.00 8:19 KVARTAL1

KVARTAL2 <ПАПКА> 10.04.00 8:19 KVARTAL2

KVARTAL3 <ПАПКА> 10.04.00 8:19 KVARTAL3

KVARTAL4 <ПАПКА> 10.04.00 8:19 KVARTAL4

M1_11 PRG 3 947 21.04.00 11:58 M1_11.PRG

M1_11 FXP 3 939 21.04.00 13:49 M1_11.FXP

M1_12 FXP 3 361 21.04.00 12:59 M1_12.FXP

M1_12 PRG 3 096 21.04.00 12:00 M1_12.PRG

M1_12DV IDX 2 048 21.04.00 15:55 M1_12DV.IDX

M1_14 FXP 963 20.04.00 14:00 M1_14.FXP

M1_14 PRG 797 21.04.00 12:00 M1_14.PRG

M1_15 FXP 1 224 20.04.00 15:37 M1_15.FXP

M1_15 PRG 952 21.04.00 12:01 M1_15.PRG

M1_16 PRG 1 633 21.04.00 12:02 M1_16.PRG

M12M1IND IDX 1 536 21.04.00 15:42 M12M1IND.IDX

M12PROC PRG 4 018 21.04.00 11:54 M12PROC.PRG

M12PROC FXP 4 145 21.04.00 12:06 M12PROC.FXP

M12SUM IDX 2 560 21.04.00 12:07 M12SUM.IDX

M2_1 PRG 1 369 21.04.00 12:03 M2_1.PRG

NOWKVART PRG 1 604 21.04.00 12:05 NOWKVART.PRG

NOWKVART FXP 1 687 21.04.00 12:06 NOWKVART.FXP

PERERAH PRG 516 10.04.00 14:21 PERERAH.PRG

PERERAH FXP 674 19.04.00 14:09 PERERAH.FXP

PRINTZV FXP 3 246 19.04.00 14:11 PRINTZV.FXP

PRINTZV PRG 3 414 19.04.00 14:11 PRINTZV.PRG

PRM12 IDX 4 608 21.04.00 15:42 PRM12.IDX

PRSTAT DBF 543 19.04.00 14:12 PRSTAT.DBF

REZERV PRG 1 648 13.04.00 10:56 REZERV.PRG

REZERV FXP 1 571 17.04.00 10:43 REZERV.FXP

REZERV <ПАПКА> 10.04.00 8:19 rezerv

SUMATOR DBF 203 21.04.00 12:07 SUMATOR.DBF

VIXOD PRG 1 036 10.04.00 13:08 VIXOD.PRG

VIXOD FXP 978 17.04.00 10:45 VIXOD.FXP

ZAH DBF 413 21.04.00 15:55 ZAH.DBF

57 файлів 120 196 байт

4.2. Організація основних та службових даних.

Комплекс застосовує бази даних:

AMORTIZ DBF – основна база комплексу, містить поля:

Npp – порядковий номер

Data – дата прийому на облік

Invnom – інвентарний номер засобу

Grupa – група

Nrax – обліковий рахунок

Nazva – назва засобу

Balrax – первісна вартість

Cena – вартість на початок кварталу

Oper1 – квартальний знос

Amrt – вартість на кінець кварталу (замортизована= вартість на початок
кварталу – квартальний знос)

Grp – код відділу

ZAH DBF – службова база, містити поля:

P1 – динамічна змінна, що містить текуче значення норми амортизації.

P2 – динамічна змінна, що містить текуче значення понижуючого
коефіцієнту.

Zax – індикатор протікання сеансу роботи. При нормальному закінченні
сеансу містить значення .Т. , при екстремальному закінченні сеансу – .F.
.

Kvt – динамічна змінна що містить значення текучого кварталу.

G1p1 – змінна що містить значення норми амортизаціє для першої групи.

G1p2 – змінна що містить значення понижуючого коефіцієнту для першої
групи.

G2p1 – змінна що містить значення норми амортизації для першої групи.

G2p2 – змінна що містить значення понижуючого коефіцієнту для першої
групи.

G3p1 – змінна що містить значення норми амортизації для третьої групи.

G3p2 – змінна що містить значення понижуючого коефіцієнту для третьої
групи.

DOVVID DBF – довідник відділів, база що містить поля:

KODV – код відділу

NAZVAV – назва відділу

PRSTAT DBF – службова база для організації звітування, містить поля:

Ngrp – номер групи для звіту

Nvid – код відділу для звіту

Bs,Pc,Ks,Sr1,Sr2,Sr3,Sr4,Sr5 – операнди та суми для вибраної множини
засобів

Vid – назва відділу для звіту

Grupa – назва групи для звіту

SUMATOR DBF – службова база, що містить поля

Sbalv, Scena, Soper, Samrt – підсумкові значення для звіту.

Індексні файли:

IDVID01 IDX 1 536 21.04.00 9:49 IDVID01.IDX

M1_12DV IDX 2 048 21.04.00 15:55 M1_12DV.IDX

M12M1IND IDX 1 536 21.04.00 15:42 M12M1IND.IDX

M12SUM IDX 2 560 21.04.00 12:07 M12SUM.IDX

PRM12 IDX 4 608 21.04.00 15:42 PRM12.IDX

5 файлов 12 288 байт

Програмні модулі комплексу:

AMORTIZ1 PRG 2 431 21.04.00 11:52 AMORTIZ1.PRG

DTOP PRG 496 21.04.00 13:28 DTOP.PRG

M1_11 PRG 3 947 21.04.00 11:58 M1_11.PRG

M1_12 PRG 3 096 21.04.00 12:00 M1_12.PRG

M1_14 PRG 797 21.04.00 12:00 M1_14.PRG

M1_15 PRG 952 21.04.00 12:01 M1_15.PRG

M1_16 PRG 1 633 21.04.00 12:02 M1_16.PRG

M12PROC PRG 4 018 21.04.00 11:54 M12PROC.PRG

M2_1 PRG 1 369 21.04.00 12:03 M2_1.PRG

NOWKVART PRG 1 604 21.04.00 12:05 NOWKVART.PRG

PERERAH PRG 516 10.04.00 14:21 PERERAH.PRG

PRINTZV PRG 3 414 19.04.00 14:11 PRINTZV.PRG

REZERV PRG 1 648 13.04.00 10:56 REZERV.PRG

VIXOD PRG 1 036 10.04.00 13:08 VIXOD.PRG

14 файлов 27 676 байт

4.3. Основні функциї, що реалізує програмний комплекс.

У відповідності до завдання розроблено програму, що в залежності від
приналежності інвентарного об`єкту до певної групи основних фондів, з
вартості на початок кварталу, застосовуючи коєфіцієнти для даноє групи,
нараховує знос по формулі:

Де S – знос за квартал;

X – вартість на початок кварталу;

k1 – норма амортизації для даної групи;

k2 – понижуючий коефіцієнт;

Значення зносу округляється до двох знаків після коми. Програмою
вираховується різниця між вартістю на початок кварталу і зносом
результатом якої є вартість на кінець кварталу.

Також програмою здійснюються функції:

Резервування даних;

Перевірка настання (ненастання) нового кварталу;

Оперування з довідником відділів:

— створення відділу;

— перейменування відділу;

— видалення відділу:

— з переносом ОЗ в інший відділ;

— з списанням ОЗ відділу;

Внесення ОЗ в відділ;

Списання ОЗ та корекция даних з підбиттям контрольних сум;

вибір відділу

відбір по назві

відбір по інв. номеру

відбір по даті придбання

відбір по первісній ціні

відбір по залишку на поч. кв.

Контрольний перерахунок (видалення помилок в результатах нарахування, що
випадково виникають при корекції даних оператором, а також перерахунок
при зміні коефіцієнтів);

Зміна коефіцієнтів для кожної з груп;

Автоматизований перехід на новий квартал (з запрошенням переходу при
настанні нового, або по вибору оператора), з резервуванням минулого
кварталу.

Вивід загального звіту по всіх групах і відділах з підсумками;

Вивід звіту по вибраній групі з підсумками;

Вивід по вибраному відділу з підсумками;

Комбінації пунктів 10 та 11.

4.4. Захист інформації від несанкціонованого доступу.

Для захисту інформації від несанкціонованого доступу інсталяційний пакет
захищено паролем. Дана опція є стандартним методом захисту архівів
програми архівації даних RAR 2.05 32-bit console version. Після
інсталяції комплексу, при кожному запуску програми викликається модуль
Z1. Даний модуль робить запит паролю від користувача, по внутрішній
формулі обчислює службовий ключ, і звіряє його з ключами, що містяться в
службовій базі даних.

Таким чином забезпечується ідентифікація користувачів, організовується
протоколювання роботи користувача з програмою.

4.5. Інсталяція комплексу.

Інсталяційний пакет організовано в вигляді SFX архіву після запуску
якого програма розархівовується в папку AMORTIZ на жорсткий диск
компютера.

4.6. Необхідні для роботи ресурси дискової та оперативної пам‘яті.

Оскільки програма написана на FoxPro 2.0 вона не вимагає великих
ресурсів оперативної пам‘яті, на 4 Мb Озу програма працює цілком
задовільно.

Програма займає 720 Кбайт об‘єму пам‘яті жорсткого диску.

4.7. Часові характеристики робочого циклу програми.

Загрузка програми – 4с.

Резервування – 0,5с.

Процедури сумування – 3,5с.

Фільтрування даних – 1,5с.

4.8. Можливість модернізації.

Дана програма легко піддається модернізації, оскільки структура даних
для кожного модуля незалежна, також самі модулі пропрацьовані як
незалежні обєкти при запуску яких передається максимум один необхідний
параметр. Використання інтерактивного меню дозволяє дописати до
головного модуля AMORTIZ.PRG опис деякого нового його пункту, та назву
нового модуля що буде опрацьовувати його, в подальшому можна не
переживати про сумісну роботу програми й нової підпрограми, а сміливо
писати програмний модуль. Можна не переживати навіть про те, щоб, по
закінченні роботи нового модуля, закрити файли й дати доступ до даних
іншим підпрограмам, оскільки кожен модуль комплексу “чистить” пам‘ять і
закриває всі відкриті файли, для забезпечення гарантії нормальної роботи
і запобігання конфліктів в майбутньому.

4.9. Адаптація до мережевого використання.

Адаптація програми до мережевого використання вимагатиме суттєвого
ускладнення програмного коду у повному обємі комплексу.

Затверджено

Ф.ФФ.57071-01 93 01-1-ЛУ

Автоматизація господарської діяльності

ВАТ «Коломийський сирзавод».

Опис програми

Ф.ФФ.57106-01 13 01-1

Аркушів 29

2000

Анотація

Опис пргорами містить інформацію про функціональне призначення
програми, опис її логічної структури.

Опис логічної структури алгоритму

Початковий модуль AMORTIZ.PRG в якому визначається і активується основне
меню програми, що є нащадком від інтерактивного системного меню Foxpro.

При запуску модуля здійснюється виклик кількох підпрограм:

— rezerv.prg – здійснює резервне копіювання бази даних;

— nowkvart.prg – здійснює контроль настання /ненастання/ наступного
кварталу;

— dtop.prg – активує фонове вікно програми.

Основною функцією модуля є визначення і активізація основного меню
програми. Пункти цього меню викликають наступні підпрограми.

Модуль DTOP.PRG – створює фонове вікно програми, розроблений для того,
щоб вивести інформацію про розробника ПЗ, замовника, текучої дати, а
також для того, щоб приховати інколи не деактивовані вікна та меню
програми.

Модуль REZERV.PRG – опрацьовує змінну-індикатор робочого циклу програми
zax з допоміжної бази ZAH.DBF. В залежності від значення змінноє видає
повідомлення про нормальне закінчення роботи програми, та пропонує
створити резервну копію бази (Малюнок 1).

Малюнок 1.

В випадку ненормального переривання робочого циклу при наступному
запуску програми видаєтся попередження про імовірнисть пошкодження
структури даних в базі і пропонує відновити базу з копії створеної до
невдалого сеансу роботи (Малюнок 2.):

Малюнок 2.

Вихід з програми та індикація вдалого закінчення сеансу.

Третім і останнім пунктом головного меню програми є пункт “Вихід” при
виборі якого ініціюється меню з пунктами зображеними на малюнку 3:

Малюнок 3.

При виборі пункту “Вийти з програми ” здійснюється вихід з індикацією
нормального завершення сеансу роботи. Два наступних пункти здійснюють
доступ до системного командного вікна Foxpro – “Command”, та приховують
його. Це створено для того, щоб дати змогу програмісту мати додатковий
канал для впливу на протікання роботи програми.

Перший пункт головного меню програми «РОБОТА З ДАНИМИ» містить підменю
зображене на ілюстрації 4:

Малюнок 4.

Створення відділу.

Перший пункт підменю «СТВОРИТИ НОВИЙ ВДДІЛ» викликає модуль М1_11.PRG.
Цей модуль здійснює створення нового відділу, присвоєння йому
оригінального коду, також перевіряє чи назва нового відділу не співпадає
з назвами вже існуючих відділів, також не допускає введення відділу без
назви.

Також він містить процедури перейменування та знищення існуючих
відділів. На малюнку 5 зображено інтерфейс даного модуля:

Малюнок 5.

При вводі назви, що співпадає з назвою існуючого відділу, чи при вводі
відділу без назви видається повідомлення зображене на малюнку 6.

Малюнок 6.

При виборі пункту «перейменувати відділ» активізується меню з списком
відділів в якому можна вибрати потрібний. Після вибору відділу
активізується вікно з запрошенням ввести нову назву відділу, причому код
відділу, що перейменовується, залишається незмінним (малюнок 7):

Малюнок 7.

При виборі пункту «ЗНИЩИТИ ВІДДІЛ» знову ініціюється меню з списком
відділів, і після вибору потрібного відділу видається попередження про
знищення вибраного відділу. В програмі здійснено звязок між
базою-довідником відділів і базою обліку основних засобів через код
відділу. Тобто кожному засобу ставиться в відповіднисть код відділу до
якого він належить В випадку, якщо відділ, що містить засоби знищується,
ці засоби потрібно перенести в інший відділ, інакше засоби з кодом
неіснуючого відділу будуть недоступні в програмі.

По цій причині після підтвердження знищення відділу програма видає
запрошення перенести засоби цього відділу в інший, тобто змінити код
вищезгадуваних засобів, або знищити і їх (Малюнок 8):

Малюнок 8.

В випадку вибору кнопки «ПЕРЕНЕСТИ» активізується вікно з меню-списком
відділів і після вибору відділу код відділу засобів змінюється на код
вибраного відділу.

Модуль містить внутрішні процедури:

procedure proc1 – процедура створення нового відділу;

procedure perv – перейменування відділу;

procedure delv – процедура видалення відділу;

procedure p23 – переносить дані з відділу, що знищується в визначений
відділ.

Ввід даних.

При виборі другого пункту підменю “ВНЕСЕННЯ ОЗ В ВІДДІЛ” першого пункту
головного меню викликається модуль M1_12.PRG в функції якого входить
поповнення бази даних новими основними засобами. Перш за все програма
видає запрошення ввести групу, до якої відноситимуться засоби, та
підтвердити коєфіцієнти для даної групи (малюнок 9):

Малюнок 9.

Після цьго, за допомогою меню виводиться запрошення визначити відділ, до
якого відноситимуться нові засоби.

Після того, як група і код відділу нових засобів визначені,
відкривається вікно для вводу засобів, в якому вводяться рахунок для
засобів, інвентарний номер, назва засобу, його первісна вартість і
вартість на початок кварталу. Після введення даних програма зразу
нараховує знос і вартість на кінець кварталу.

На ілюстрації 10 діалогове вікно вводу.

Малюнок 10.

При виборі кнопки “Ще один запис” повторюється ввід засобу в ту ж групу
і відділ. Кнопка “вихід” закриває вікно введення даних.

Модуль містить внутрішні процедури:

procedure pr01 – вносить дані в вибрану групу й відділ;

procedure raxproc – додаткове інтерфейсне меню з номерами рахунків.

Відображення інформації.

Третій пункт підменю “СПИСАННЯ ТА КОРЕКЦІЯ ОЗ”, що викликається першим
пунктом головного меню активізує підменю, зображене на малюнку 11.

Малюнок 11.

Перший пункт даного підменю активізує діалогове вікно, в якому
відкривається спеціальним чином зконфігуроване BROWSE-вікно, в якому
відображаються всі засоби підприємства. Вибираючи пункти меню від 3 до
9 можна певним чином зконфігурувати фільтр, який буде застосований до
бази. При виборі пунктів 3-9 викликається модуль М12proc.prg, котрий в
залежності від пункту вносить в допоміжну базу значення параметру для
фільтра. Застосування бази для збереження параметрів відбору підвищує
функціональність модуля, тому що появляється можливість комбінувати
параметри фільтрування а також викликати модуль необмежену кількість
разів без втрати параметрів визначених при попередніх викликах. Але це
зумовлює наявність пункту “очистити фільтр”, який встановлює значення
параметрів “по замовчуванню”. При накладанні фільтру розрізняються
параметри по замовчуванню (які не застосовуються при накладанні фільтру)
і параметри, що потрібно застосувати при накладанні фільтру.

На ілюстрації 12 діалогове вікно для перегляду бази:

Малюнок 12.

В даному модулі застосовані дві клавішні функції:

При нажиманні клавіші F8 виконується стирання текучого запису.

При нажиманні клавіші F4 викликається процедура підбиття підсумків для
даних, що відображені в діалоговому вікні.

Модуль містить внутрішні процедури:

Procedure pr01 – визначення номеру рахунку, який переглядатиметься.

Procedure pr02 – визначення групи засобів.

При виборі пункту “ПЕРЕГЛЯНУТИ ВІДДІЛ” активізується меню з списком
відділів, після визначення відділу викликається модуль M1_12.PRG в
діалоговому вікні якого можна і переглянути відділ можливістю
використання клавішних функцій F4 i F8.

Модуль M1_12.PRG містить процедури:

procedure m01b1pr – визначає відідл для перегляду.

procedure browser – конфігурує і активізує Browse – вікно.

procedure sumpr – підбиття підсумків по відфільтрованих засобах.

Контроль помилок.

При виборі четвертого пункту підменю першого пункту головного меню
”Контрольний перерахунок” активізується модуль M1_4.prg, функцією якого
є перерахунок зносу і вартості на кінець кварталу для виправлення
випадкових помилок, які імовірно з`явились під час перегляду бази
користувачем, а також для перерахунку даних з новими параметрами.

Зміна параметрів.

Вибір п`ятого пункту меню “Зміна коефіцієнтів” здійснює виклик модуля
М1_5.prg, функцією якого є можливість коректування норми амортизації і
понижуючих коефіцієнтів для груп оборотної відомості по основних
засобах. Діалогове вікно активізоване доним модулем зображене на малюнку
13.

Малюнок 13.

Перерахунок для нового кварталу.

Шостим і останнім пунктом головного меню є «Перехід на новий квартал».
Даний пункт викликає модуль М1_6.prg, функцією якого є резервування
бази, як бази за минулий квартал і збереження її в папці KVARTAL1, а
також, в текучій базі, зміна вартості ОЗ на початок кварталу на кінцеву
вартість попереднього кварталу, і нарахувавши квартальний знос,
визначити залишкову вартість на кінець нового кварталу. Модуль
автоматично активізується при запуску програми, якщо текучий квартал
закінчився, але не закритий.

Під час роботи модуля активізується діалогове вікно, зображене на
малюнку14:

Малюнок 14.

Вивід звітів.

В другому пункті головного меню «Вивід звітів» реалізовано

Видрук звітів двох типів:

Комбінований звіт з можливістю визначення відділу та групи для основних
засобів.

Загальний звіт для всіх груп послідовного для всіх відділів.

Звіт 1 генерується модулем printzv.prg , який в залежності від значень
які записані в допоміжній базі PRSTAT.DBF розділяє їх на параметри по
замовчуванню, які не враховуються при відборі засобів, і на ініційовані
параментри які потрібно застосувати при відборі даних для звіту.

Конфігурування звіту організовано зручно з передбаченою властивістю
уникнення вводу помилкових параметрів. Користувачу не потрібно що-небудь
вводити. Конфігурування відбувається за допомогою спеціальних маню в
відповідних вікнах з підказками (малюнок 15(визначення групи),16
(визначення відділу)).

Малюнок 15.

Малюнок 16.

Звіти організовані за допомогою стандартного системного генератора
звітів. Приклади всіх видів звітів приведені в додатку 2.

Опис організації вхідних та вихідних даних

Ввід даних в програму може здійснюватись двома шляхами:

Рекомендований метод – вводити дані через спеціалізовану процедуру
введення даних. Викликається процедура другим пунктом підменю головного
меню “Внесення нових ОЗ”.

Існує можливість вносити дані під час перегляду бази, чи відділу, під
час роботи процедури перегляду, яка викликається з третього пункту
підменю головного меню, безпосереднім поновленням бази використовуючи
клавіші Crtl+N, що є властивістю BROWSE – вікна, використаного в даній
процедурі.

Вивід даних здійснюється одночасно на екран та принтер комп‘ютера при
запуску процедур виводу звітів.

Вибір та обгрунтування апаратних та програмних засобів

Обгрунтування вибору програмних засобів .

Для написання комплексу застосовувалась дещо застаріла СУБД Foxpro 2.0
сумісне з MSDOS. Це зумовлене тим, що на підприємстві використовуються
системи Ibm PC/AT 80386 та Ibm PC/AT 80486, для яких і була розроблена
дана програма.

Обгрунтування вибору апаратних засобів.

При постановці завдання було визначено, що даний програмний комплекс
буде використовуватись на Ibm PC/AT 80486 з принтером Epson LX-1050+

8. Технічне та економічне обгрунтування дипломного проекту

Основним завданням техніко-економічного обгрунтування дипломного
проекту являється визначення величини економічного ефекту від
використання в виробництві основних та другорядних результатів, які
одержані в даному дипломному проекті. Оцінка ефективності прийнятого
рішення повинна бути комплексною і враховувати всі його аспекти.

Проведемо оцінку затрат праці на розробку програмного продукту,
виходячи з того, що розмір початкового тексту запису алгоритму і даних в
основному визначає затрати праці t та час розробки Т програмного
продукту:

t=3.6*Nті

де Nті – кількість інструкцій в тисячах.

Загальний об`єм програми складає приблизно 1900 інструкцій.

t=3.6*1.9=6.84 (люд/міс)

продуктивність праці розробників програмного продукту:

П=1000* Nті/t

П=1000*1,9/5,9=11210 (інстр/міс)

Розрахуємо час потрібний для розробки програмного продукту:

Т=Т0+Т1+Т2+Т3+Т4+Т5

Т0 – строк розробки програмного продукту;

Т1 – коефіцієнт вірності постановки завдання;

Т2 – час розробки алгоритму;

Т3 – час відладки;

Т4 – час на підготовку тексту;

Т5 – час на розробку документації;

Т0 – 2,5* Nті^0,32

T5=0.75*T4

Де К залежить від ступені підготовки програміста. Беремо К=0,8 (стаж
роботи до двох років)

Т0=2,5*1,9^0.32=3.07 (міс)

Т1=(1900*1,2)/(720*75*0,8)=0,05 (міс)

Т2=1900/11520 =0,16 (міс)

Т3=1900/1536=1,2 (міс)

Т4=1600/10857=0,15 (міс)

Т5=0,75*0,15=0,11 (міс)

Т=3,07+0,05+0,16+1,2+0,15+0,11=4,74

Визначимо собівартість роботи комп‘ютера. Для цього розраховуються
поточні витрати на експлуатацію комп‘ютера. До їх складу включаються
витрати на електроєнергію та амортизаційні відрахування на реновацію від
вартості комп‘ютера та інше.

Витрати на електроенєргію визначаються множенням видатків
електроенергії за одну годину на вартість 1кВт/год електроенергії на час
роботи комп‘ютера за рік.

Час роботи комп‘ютера за рік визначається множенням кількості робочих
днів у році на час роботи комп‘ютера за день:

F=(365-104-6)*8=2040 (год)

Тоді видатки електроенергії складають:

Вел=0,78*0,11*2040=175 (год)

Амортизаційні відрахування визначаються множенням вартості комп‘ютера
на норму амортизаційних відрахувань:

La= 3300*0,06=198 (грн)

Річна заробітня плата обслуговуючого персоналу (економіста з місячною
посадовою ставкою 120 грн) складає:

Z=120*12=1440 (грн)

Відрахування на соціальне страхування:

Ввідр=1440*0,06=86,4 (грн)

Вартість витрачених матеріалів складає 2% від вартості обчислювальної
техніки:

Ввм=3300*0,02=66 (грн)

Утримання та ремонт приміщень, в яких знаходяться засоби обчислювальної
техніки:

Срп=3300*0,03=99 (грн)

Собівартість години роботи на комп‘ютері:

R=(Вел+LA+Z+ВВМ+Ввідр+Спр)/F

R=(175+198+1440+86.4+66+99)/2040=1.01

Рахуємо прямі витрати на виконання дипломного проекту:

ВПР=R*T*8*21

ВПР=1.01*4.74*8*21=804.3(грн)

Накладні витрати, що включають витрати на освітлення, опалення і т. п.
Приймаються в розмірі 40-50% від суми прямих витрат:

Внакл=0,4*804,3=321,72 (грн)

Загальні витрати на виконання дипломної роботи:

В= ВПР+ Внакл=804,3+321,72=1126,02(грн)

Визначення ціни на програмний продукт:

ЦПП=В(1+Р/(100*К))

Де В – витрати на виконання дипломного проекту;

Р – рівень рентабельності (Р=20)

К – коефіцієнт, що залежить від рівня науково-технічного ефекту (К=1,3)

ЦПП=1126,02(1+20/(100*1,3))=1299,25 (грн)

Річний економічний ефект визначається за формулою:

Ер=Z0*T-Zприв

Де Z0=Т1*А

Де Т1 – трудомісткість (в годинах), на складання документу, а зарплата
виконавця.

Z0=4*150=600(грн)

Zприв=t*R*T+EK*ЦПП

Де ЕК=0,15 – нормативно-галузевий коефіцієнт.

Zприв=6,84*1,01*300+0,15*1299,25=2072,52+194,89=2267,4(грн)

Враховуючи всі дані отримаємо:

Ер=600*300-2267,4=177732,6(грн)

Охорона праці

В процесі роботи здоров’ю, а також, можливо, життю людей можут
загрожувати фактори, викликані найчастіше неправильною організацією
праці або порушенням техніки безпеки.

Підвищену втомлюваність може викликати підвищений рівень шуму; високий
рівень випромінювання моніторів або низька контрастність зображення на
них може також привести до підвищеної втомлюваності або постлаблення
зору. З метою уникнення таких недоліків можливе використання захисних
екранів, забезпечення персоналу моніторами з більш низьким рівнем
радіації та нагляд за якістю зображення на них.

Безпосередню небезпеку для життя та здоров’я людей являють собою прилади
та елементи обладнання, що вимагають для своєї роботи живлення від
мережі з високою напругою.

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

При роботі з легкозаймистими, вибухонебезпечними та токсичними газами, а
також рідинами та продуктами розкладу органічних сполук, необхідна
постійна вентиляція робочих приміщень. Роботи з небезпечними речовинами
рекомендується проводити тільки в герметичних системах, або під витяжною
шафою, в добре провітрюваному приміщенні.

Ефективним засобом профілактики нещасних випадків є найбільш вдале
розміщення обладнання, використання, по можливості, приладів та
обладнання з найбільш оптимальними конструктивними рішеннями. Важливим
засобом забезпечення безпеки служить надійна ізоляція частин, що
знаходяться під напругою, кабелів, а також заземлення корпусів всіх
приладів та металічних частин обладнання.

Для забезпечення безпеки людей від враження струмом необхідно
забезпечити ізоляцію частин обладнання що знаходяться під напругою, для
чого рекомендується проведення профілактичних оглядів кабелів та всієї
проводки. Крім того необхідно забезпечити надійне заземлення. Ефективним
– є заземлення трубчастого типу з товщиною стінки 3,5 мм. Довжина труби
звичайно складає 250 см. , діаметр – 5 см. Заземлювачі розміщуються по
чотирикутному контуру з глибиною закладки близько 80 см. , причому опір
заземлення не повинен перевищувати 4 Ом. Таке заземлення допомагає
уникнути нещасних випадків навіть при виникненні аварійних ситуацій.

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

До будівель та приміщень в яких розміщується обчислювальна техніка
ставляться такі протипожежні вимоги:

Приміщення в якому розміщується обчислювальна техніка повинно бути І або
ІІ ступеня вогнетривкості.

В приміщенні повинні бути встановлені протипожежні перешкоди в якості
перегородок з негорючих матеріалів між виробничими залами.

Всі види комунікацій прокладають в металічних трубах або в
металорукавах.

Комунікації, прокладені під підлогою, або в стінах, розділяють
негорючими перегородками.

Всі кабельні силові лінії повинні бути надійно ізольовані.

В приміщенні повинні бути первинні засоби боротьби з вогнем.

Передбачені пристрої пожежної автоматики що призначені для виявлення,
оповіщення, та ліквідації пожеж, а також для захисту людей від впливу
шкідливих факторів.

Висновки:

Створено програмний комплекс, який дозволяє автоматизувати
бухгалтерсько-економічну та облікову роботу на ВАТ «Коломийський
сирзавод».

Робота пройшла адаптацію на ВАТ «Коломийський сирзавод» і отримала
високу оцінку спеціалістів підприємства.

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

В завданні на розробку програмного комплексу не було передбачено його
мережеве використання, оскільки на підприємстві не використовується
локальна мережа, а апаратна база має деякі обмеження. Тому питання
адаптації програми до роботи з багатьма користувачами не розроблене.

9.1 Специфіка вибору методу реалізації.

Для даного комплексу існує велика кількість альтернативного програмного
забезпечення, яке реалізує дану задачу в повному об`ємі, в комплексі
автоматизованого бухгалтерського обліку. Але на підприємстві більшість
завдань обліку автоматизовано ізольованими програми, написаними на СУБД
Foxpro. По цій причині підприємство в цілях економії коштів, уникаючи
закупівлі нових повномаштабних комплексів бухгалтерського обліку,
спеціалізованих під MSDOS, а також комплексів сумісних з Windows 9Х, що
вимагає модернізації апаратної частини підприємства, повважало
вигіднішим заказати ізольовану програму сумісну з існуючою апаратною
базою. Також було бажано створити програму з інтерфейсом звичним для
операторів комп‘ютерів.

9.2. Мережеве використання.

В завданні на даний проект не обумовлювалось мережеве використання в
силу обмеженості апаратної бази. Тому адаптація для
багатокористувацького використання не проводилась.

8. Список використанї літератури:

А. А. Попов. Програмування в середовищі СУБД Foxpro 2.0, побудова систем
обробки даних. Видавництво “Калашніков и К”. Москва 1997р.

І. М. Павлюк. Рекомендації з організації і ведення бухгалтерського
обліку на підприємстві і в організаціях України. (Практичний посібник).
ВТП “Вік” Коломия 1995р.

Галицькі контракти. Дебет-Кредит лютий 2000р. HYPERLINK
http://www.dk.gs.com.ua www.dk.gs.com.ua

Щотижневик “Податки та бухгалтерський облік”.

Затверджено

Ф.ФФ.57071-01 93 01-1-ЛУ

Автоматизація господарської діяльності

ВАТ «Коломийський сирзавод».

Текст програми.

Ф.ФФ.57106-01 13 01-1

Аркушів 43

2000

10. Текст програми.

Лістінг модуля Amortiz.prg

clear

CLOSE DATABASES

CLEAR WINDOWS

set deleted on

do dtop

set century on

set clock on

use amortiz.dbf

set talk off

set message to 30 center

set century on

set date german

do rezerv.prg

use zah

replace zax with .f.

close databases

do nowkvart.prg

clear windows

do dtop

SET SYSMENU TO

SET SYSMENU AUTOMATIC

DEFINE PAD _01 OF _MSYSMENU PROMPT » Робота з даними »

DEFINE PAD _02 OF _MSYSMENU PROMPT «Вивід звітів »

DEFINE PAD _03 OF _MSYSMENU PROMPT «Вихід »

ON PAD _01 OF _MSYSMENU ACTIVATE POPUP menu1

ON PAD _02 OF _MSYSMENU ACTIVATE POPUP menu2

ON selection PAD _03 OF _MSYSMENU do vixod

DEFINE POPUP MENU12 FROM 1,0 MARGIN RELATIVE SHADOW COLOR SCHEME 4

DEFINE BAR 1 OF MENU12 PROMPT «Переглянути базу»

DEFINE BAR 2 OF MENU12 PROMPT «Переглянути відділ»

DEFINE BAR 3 OF MENU12 PROMPT «\-»

DEFINE BAR 5 OF MENU12 PROMPT «Відібрати по даті придбання»

DEFINE BAR 6 OF MENU12 PROMPT «Відібраті по групі»

DEFINE BAR 4 OF MENU12 PROMPT «Відібраті по рахунку»

DEFINE BAR 7 OF MENU12 PROMPT «Відібрати по назві»

DEFINE BAR 8 OF MENU12 PROMPT «Відібрати по бал. вартості»

DEFINE BAR 9 OF MENU12 PROMPT «Відібрати по залишку на п.кв.»

DEFINE BAR 10 OF MENU12 PROMPT «\-»

DEFINE BAR 11 OF MENU12 PROMPT «Очистити фільтр»

ON SELECTION POPUP MENU12 DO M12PROC WITH BAR()

DEFINE POPUP MENU2 FROM 1,0 MARGIN RELATIVE SHADOW COLOR SCHEME 4

DEFINE BAR 1 OF MENU2 PROMPT «Визначити групу»

DEFINE BAR 2 OF MENU2 PROMPT «Визначити віділ»

DEFINE BAR 3 OF MENU2 PROMPT «Вивести звіт»

DEFINE BAR 4 OF MENU2 PROMPT «\-»

DEFINE BAR 5 OF MENU2 PROMPT «Вивести загальний звіт»

DEFINE BAR 6 OF MENU2 PROMPT «Очистити фільтр»

ON SELECTION popup menu2 do printzv WITH BAR()

DEFINE POPUP MENU1 SHADOW COLOR SCHEME 4

DEFINE BAR 1 OF MENU1 PROMPT «Cтворити новий відділ»

DEFINE BAR 2 OF MENU1 PROMPT «Внесення ОЗ в відділ»

DEFINE BAR 3 OF MENU1 PROMPT «\-»

DEFINE BAR 4 OF MENU1 PROMPT «Списання та корекція ОЗ»

DEFINE BAR 5 OF MENU1 PROMPT «\-»

DEFINE BAR 6 OF MENU1 PROMPT «Контрольний перерахунок»

DEFINE BAR 7 OF MENU1 PROMPT «Зміна коєфіцієнтів»

DEFINE BAR 8 OF MENU1 PROMPT «\-»

DEFINE BAR 9 OF MENU1 PROMPT «Перехід на новий кватал»

ON SELECTION BAR 1 OF MENU1 DO M1_11 WITH BAR()

ON SELECTION BAR 2 OF MENU1 DO M1_12 WITH BAR()

ON SELECTION BAR 4 OF MENU1 ACTIVATE POPUP MENU12

ON SELECTION BAR 6 OF MENU1 DO M1_14 WITH BAR()

ON SELECTION BAR 7 OF MENU1 DO M1_15 WITH BAR()

ON SELECTION BAR 9 OF MENU1 DO M1_16 WITH BAR()

return

Лістінг модуля Dtop.prg

clear

CLEAR WINDOWS

clear

set talk off

set clock on

set message to 30 center

set century on

set date german

DEFINE WINDOW DTOP FROM 0,0 TO 24,79 COLOR SCHEME 1

ACTIVATE WINDOW DTOP

d=day(date())

m=month(date())

y=year(date())

@ 0,60 say ‘Сьогодні
‘+alltrim(str(d))+’,’+alltrim(str(m))+’,’+alltrim(str(y))

@ 21,3 say ‘* Облік та нарахування амортизаці• основних засобів
підприємства *’

@ 22,3 say ‘(C) 2000 ___ Зареєстровано: ВАТ «Коломийський
сирзавод»‘

return

Лістінг модуля М1_11.prg

parameter b

clear windows

close databases

set talk off

set date german

set century on

do dtop

select B

erase M1_111.idx

use dovvid

index on nazvav to M1_111.idx compact

define popup v01 prompt field nazvav from 5,5 shadow

on selection popup v01 do perv in M1_11 with recno()

define popup v02 prompt field nazvav from 5,5 shadow

on selection popup v02 do delv in M1_11 with recno()

define window p002 from 2,30 to 20,75 double shadow color scheme 1

define popup v03 prompt field nazvav from 3,5 shadow

on selection popup v03 do p23 in M1_11 with recno()

define popup p1 from 5,5 shadow

define bar 1 of p1 prompt ‘Новий відділ’

define bar 2 of p1 prompt ‘Перейменувати відділ’

define bar 3 of p1 prompt ‘\-‘

define bar 4 of p1 prompt ‘Знищити відділ’

on selection popup p1 do proc1 with bar()

activate popup p1

procedure proc1

parameter bar

do case

case bar=1

@ 2,10 say ‘*** ВНЕСЕННЯ НОВОГО ВІДДІЛУ ***’

DEFINE WINDOW w01 FROM 5,20 TO 9,65 double shadow COLOR SCHEME 1

ACTIVATE WINDOW w01

@ 0,4 say ‘Введіть назву нового відділу’

nv=’ ‘

@ 1,0 get nv

READ

NV=ALLTRIM(NV)

select b

go top

do while !eof()

if nazvav=nv

define window w02 from 7,7 to 16,70 double shadow color scheme 7

activate window w02

@ 0,8 say ‘ Такий відділ вже існує !’

@ 1,0 say ‘ Внесення даного відділу сприятиме виникненню помилок під
час’

@ 2,0 say ‘ роботи оператора, оскільки існує висока імовірність
переплу-‘

@ 3,0 say ‘ тати відділи з оинаковими назвами !’

@ 5,10 prompt ‘Внести відділ’

@ 5,40 prompt ‘Відміна’

menu to r

deactivate window w02

if r=2

return

else

endif

else

endif

skip(1)

enddo

go bottom

x=kodv

append blank

go bottom

replace kodv with (x+1)

replace nazvav with nv

@ 2,0 say ‘ Новий відділ успішно внесений !’

@ 2,33 prompt ‘ OK ‘

menu to r

deactivate window w01

case bar=2

@ 2,10 say ‘*** ПЕРЕЙМЕНУВАННЯ ВІДДІЛУ *** ‘

select b

activate popup v01

case bar=4

@ 2,10 say ‘*** ВИДАЛЕННЯ ВІДДІЛУ *** ‘

select b

activate popup v02

ENDCASE

deactivate window dtop01

close databases

do dtop

deactivate popup p1

return

procedure perv

parameter r

goto(r)

define window w03 from 5,20 to 13,65 double shadow color scheme 5

activate window w03

@ 0,7 say ‘*** ПЕРЕЙМЕНУВАННЯ ВІДДІЛУ ***’

@ 1,0 SAY ‘Стара назва відділу — ‘+nazvav

@ 2,0 say ‘Введіть нову назву відділу’

nn=’ ‘

@ 3,0 get nn

read

replace nazvav with alltrim(nn)

@ 5,0 say ‘Відділ успішно перейменовано !’

@ 5,35 prompt ‘ O K ‘

menu to r

deactivate window w03

deactivate popup v01

return

procedure delv

parameter r

goto(r)

Define window d01 from 5,10 to 11,60 double shadow color scheme 5

activate window d01

@ 0,5 say ‘УВАГА ВИКОНУЄТЬСЯ ЗНИЩЕННЯ ВІДДІЛУ !’

@ 1,0 SAY ‘ Буде знищено відділ — ‘+nazvav

@ 3,10 prompt ‘ ЗНИЩИТИ ‘

@ 3,30 prompt ‘ ВІДМІНА ‘

MENU TO y

do case

case y=1

clear

@ 0,4 say ‘Увага , ОЗ даного відділу зараз можна ‘

@ 1,4 say ‘перенести до іншого відділу, або зтерти’

@ 3,0 say ‘Що зробити з ОЗ відділу ? ‘

@ 4,4 prompt ‘ ПЕРЕНЕСТИ ‘

@ 4,20 prompt ‘ ЗНИЩИТИ ‘

@ 4,35 prompt ‘ ВІДМІНА ‘

MENU TO X

do case

case x=1

activate window p002

@ 0,0 say ‘Запропоновано перелік віділів’

@ 1,0 say ‘Визначіть відділ в який перенести ОЗ’

activate popup v03

delete

pack

case x=2

k=kodv

use amortiz

delete for grp=k

pack

clear window d01

close database

clear windows

do dtop

return

case x=3

clear windows

???????????????????????????????????????????????????????????

Лістінг модуля M1_12.prg

PARAMETER BAR

SET TALK OFF

clear windows

close databases

do dtop

SELECT A

USE AMORTIZ

SELECT C

USE ZAH

SELECT B

erase M1_12dv.idx

USE DOVVID

index on nazvav to M1_12dv.idx

clear windows

do dtop

define window w033 from 5,5 to 10,75 double shadow

activate window w033

@ 0,0 say ‘*** Визначіть групу та коєфіцієнти ***’

@ 1,0 say ‘Введіть номер групи’

g=1

@ 1,37 get G range 1,3 picture ‘#’ error ‘Введіть номер групи від 1 до
3’

read

do case

case g=1

@ 2,1 say ‘Введіть норму амортизаці• ‘ get c.g1p1 picture ‘##.##’

@ 3,1 say ‘Введіть понижуючий коефіцієнт ‘ get c.g1p2 picture ‘##.##’

read

replace c.p1 with c.g1p1

replace c.p2 with c.g1p2

case g=2

@ 2,1 say ‘Введіть норму амортизаці• ‘ get c.g2p1 picture ‘##.##’

@ 3,1 say ‘Введіть понижуючий коефіцієнт ‘ get c.g2p2 picture ‘##.##’

read

replace c.p1 with c.g2p1

replace c.p2 with c.g2p2

case g=3

@ 2,1 say ‘Введіть норму амортизаці• ‘ get c.g3p1 picture ‘##.##’

@ 3,1 say ‘Введіть понижуючий коефіцієнт ‘ get c.g3p2 picture ‘##.##’

read

replace c.p1 with c.g3p1

replace c.p2 with c.g3p2

otherwise

return

endcase

clear windows

do dtop

define window newd from 3,3 to 17,75 title ‘Введення нових даних’ double
shadow

activate window newd

define popup p1 from 0,55

define bar 1 of p1 prompt ’23’

define bar 2 of p1 prompt ‘231’

define bar 3 of p1 prompt ’24’

define bar 4 of p1 prompt ’26’

define bar 5 of p1 prompt ’44’

define bar 6 of p1 prompt ’81’

on selection popup p1 do raxproc with prompt()?????

@ 0,2 SAY ‘ВИБЕРІТЬ ВІДДІЛ’

DEFINE POPUP P01 PROMPT FIELD NAZVAV FROM 1,6 SHADOW

ON SELECTION POPUP P01 DO PR01 WITH RECNO()

ACTIVATE POPUP P01

PROCEDURE PR01

PARAMETER RR

SELECT B

GO TOP

GOTO(RR)

KOD=KODV

define window newd from 3,3 to 17,75 title ‘Введення нових даних’ double
shadow

activate window newd

r=1

do while r=1

clear

SELECT A

go bottom

lich=npp

APPEND blank

go bottom

replace npp with (lich+1)

replace GRP with KOD

replace grupa with g

CLEAR

@ 0,3 say ‘Внесення ОЗ в ‘+b.nazvav+alltrim(str(G))+’ група’

@ 1,1 say ‘Введіть номер рахунку’

activate popup p1

@ 1,37 say ‘Вибрано ‘+str(nrax)

@ 3,1 say ‘Введіть дату придбання ОЗ’

@ 3,37 get data picture ‘##/##/##’

@ 4,1 say ‘Введіть інвентарний номер’

@ 4,37 get invnom

@ 5,1 say ‘Введіть назву засобу’

@ 5,22 get nazva

@ 6,1 say ‘Введіть балансову вартість’

@ 6,37 get balrax picture ‘#######.##’

@ 7,1 say ‘Введіть вартість на початок кварталу’

@ 7,37 get cena picture ‘#######.##’

read

replace oper1 with round(cena*C.P1*C.P2/100,2)

replace amrt with cena-oper1

@ 10,15 prompt ‘Ще один запис’ message ‘повторити поновлення бази ‘

@ 10,35 prompt ‘Вихід’ message ‘Вихід в основне меню’

menu to r

if r=2

clear windows

do dtop

deACTIVATE POPUP P01

return

else

endif

enddo

clear windows

do dtop

deACTIVATE POPUP P01

return

procedure raxproc

parameter prmt

replace nrax with val(prmt)

deactivate popup p1

return

Лістінг модуля M1_14.prg

parameter a

set talk off

define window www from 18,40 to 24,77 double shadow color scheme 7

activate window www

@ 0,3 say ‘*** ПРОВОДИТЬСЯ ПЕРЕРАХУНОК ***’

select a

USE ZAH

select b

use amortiz

go top

do while !eof()

do case

case grupa=1

replace oper1 with round(cena*a.g1P1*a.g1P2/100,2)

replace amrt with cena-oper1

case grupa=2

replace oper1 with round(cena*a.g2P1*a.g2P2/100,2)

replace amrt with cena-oper1

case grupa=3

replace oper1 with round(cena*a.g3P1*a.g3P2/100,2)

replace amrt with cena-oper1

otherwise

replace oper1 with 10101

repl???????????????????

@ 1,0 SAY ‘для-‘+nazva

@ 2,0 say str(cena)

@ 3,0 say str(amrt)

enddo

clear windows

do dtop

return

Лістінг модуля M1_15.prg

parameter bar

clear windows

close databases

set talk off

clear

do dtop

define window w033 from 5,5 to 19,55 double shadow

activate window w033

USE ZAH

@ 0,4 say ‘*** ПРОЦЕДУРА КОРЕКЦІ° КОЕФІЦІЄНТІВ ***’

@ 1,3 say ‘Введіть коефіцієнти для 1• групи’

@ 2,1 say ‘Введіть норму амортизаці• ‘ get g1p1 picture ‘##.##’

@ 3,1 say ‘Введіть понижуючий коефіцієнт ‘ get g1p2 picture ‘##.##’

@ 4,1 say ‘——————————————-‘

@ 5,3 say ‘Введіть коефіцієнти для 2• групи’

@ 6,1 say ‘Введіть норму амортизаці• ‘ get g2p1 picture ‘##.##’

@ 7,1 say ‘Введіть понижуючий коефіцієнт ‘ get g2p2 picture ‘##.##’

@ 8,1 say ‘——————————————-‘

@ 9,3 say ‘Введіть коефіцієнти для 3• групи’

@ 10,1 say ‘Введіть норму амортизаці• ‘ get g3p1 picture ‘##.##’

@ 11,1 say ‘Введіть понижуючий коефіцієнт ‘ get g3p2 picture ‘##.##’

read

clear windows

do dtop

return

Лістінг модуля M1_16.prg

parameter bar

clear

clear windows

close databases

do dtop

set date german

set century on

select a

use amortiz

select b

use zah

yr=year(date())

ms=month(date())

dt=date()

DO CASE

CASE MS<=1.AND.MS<=3 kvrt=1 CASE MS<=4.AND.MS<=6 kvrt=2 CASE MS<=7.AND.MS<=9 kvrt=3 CASE MS<=10.AND.MS<=12 kvrt=4 endcase define window nk from 5,10 to 14,67 double shadow color scheme 7 title 'Перехід на новий квартал' activate window nk @ 0,10 say 'СЬОГОДНІ '+dmy(dt) @ 1,10 say 'ПОТОЧНИЙ КВАРТАЛ '+STR(kvrt) select b if kvt=kvrt @ 2,1 say 'УВАГА перехід на новий квартал проводиться завчасно !' else endif @ 4,6 prompt ' ПРОВЕСТИ ПЕРЕРАХУНОК ДЛЯ НОВОГО КВАРТАЛУ ' @ 6,13 prompt ' ПРОДОВЖИТИ БЕЗ ПЕРЕРАХУНКУ ' menu to r do case case r=1 do case case kvrt=1 copy file c:\amortiz\amortiz.dbf to c:\amortiz\kvartal1\oz1.dbf case kvrt=2 copy file c:\amortiz\amortiz.dbf to c:\amortiz\kvartal2\oz2.dbf case kvrt=3 copy file c:\amortiz\amortiz.dbf to c:\amortiz\kvartal3\oz3.dbf case kvrt=4 copy file c:\amortiz\amortiz.dbf to c:\amortiz\kvartal4\oz4.dbf endcase select a go top do while !eof() replace cena with amrt skip(1) enddo do M1_1.prg &&виклик перерах clear window nk select b replace kvt with kvrt close databases return case r=2 clear windows do dtop return endcase clear windows do dtop return Лістінг модуля M12_2.prg parameter bar set date german set century on set talk off close databases clear windows do dtop erase prm12.idx select a use amortiz index on nazva to prm12.idx compact ERASE m12m1ind.idx select b use dovvid index ON NAZVAV TO m12m1ind.idx COMPACT select c ???????????????????????????????????????????????????????????????????????? ??????????????? if alltrim(c.fnazva)!='Назва' set filter to nazva=c.fnazva else endif if c.fbalv1!=0.and.c.fbalv2!=0 set filter to between(balrax,c.fbalv1,c.fbalv2) else endif if c.fzal1!=0.and.c.fzal2!=0 set filter to between(Amrt,c.fzal1,c.fzal2) else endif define popup m12m01 prompt field b.nazvav from 1,50 shadow on selection popup m12m01 do m01b1pr with recno() in m12_2.prg DEFINE WINDOW m12w1 FROM 2,0 TO 22,79 double shadow COLOR SCHEME 1 ACTIVATE WINDOW m12w1 @ 0,10 say '*** КОРЕКЦІЯ ТА СПИСАННЯ ОЗ ***' @ 2,2 say 'ESC-вийти, F4-підсумок F8-зписати' ON KEY LABEL F4 DO SUMPR in m12_2.prg on KEY LABEL F8 delete do case case bar=2 @ 1,2 SAY 'Визначіть відділ якій треба переглянути' select b activate popup m12m01 case bar=1 do browser in m12_2.prg otherwise return endcase procedure m01b1pr parameter recn select b go top goto(recn) DVKEY1=RECN dvkey=kodv select a set filter to grp=dvkey do browser clear windows do dtop deactivate popup m12m01 CLOSE DATABASES RETURN procedure browser parameter ddd define window w0201 from 6,1 to 21,78 DOUBLE activate window w0201 browse title 'Oсновні засоби відділу - '+b.nazvav fields invnom :h='інв.N',; grupa :h='група', nrax :h='рахунок', Nazva :h='Назва ОЗ',balrax :h='балансова вартість',; cena :h='варт.на початок кврт',; oper1 :h='Знос за кв.',amrt :h='замортизована варт' return procedure sumpr parameter k select a go top select d use sumator replace d.sbalv with 0 replace d.scena with 0 replace d.soper with 0 replace d.samrt with 0 do while !eof() select a replace d.sbalv with d.sbalv+a.balrax replace d.scena with d.scena+a.cena replace d.soper with d.soper+a.oper1 replace d.samrt with d.samrt+a.amrt skip(1) enddo define window w044 from 17,1 to 24,77 double shadow color scheme 1 title 'ПІДСУМКИ' activate window w044 @ 0,1 say 'Cумарна балансова вартість ОЗ відділу=' @ 0,40 say d.sbalv @ 1,1 say 'На початок кв.=' @ 1,17 say d.scena @ 2,1 say 'Знос за квартал=' @ 2,17 say d.soper @ 3,1 say 'Вартість на кінець кварталу=' @ 3,35 say d.samrt @ 4,35 prompt ' ДАЛІ ' MENU TO R IF R=1 DEACTIVATE WINDOW W044 select a RETURN ELSE ENDIF DEACTIVATE WINDOW W044 RETURN Лістінг модуля M12proc.prg parameter bar set date german set century on set talk off close databases clear windows do dtop select a use filter define window w1201 from 6,10 to 10,70 double shadow color scheme 1 define popup r1 from 0,40 define bar 1 of r1 prompt 'Переглянути 23 рахунок' define bar 2 of r1 prompt 'Переглянути 231 рахунок' define bar 3 of r1 prompt 'Переглянути 24 рахунок' define bar 4 of r1 prompt 'Переглянути 26 рахунок' define bar 5 of r1 prompt 'Переглянути 44 рахунок' define bar 6 of r1 prompt 'Переглянути 81 рахунок' on selection popup r1 do pr01 with bar() in m12proc.prg define popup r2 from 0,40 define bar 1 of r2 prompt 'Переглянути 1 групу' define bar 2 of r2 prompt 'Переглянути 2 групу' define bar 3 of r2 prompt 'Переглянути 3 групу' on selection popup r2 do pr02 with bar() in m12proc.prg DO CASE CASE BAR=1 do m12_2 with bar() CASE BAR=2 do m12_2 with bar() CASE BAR=4 activate window w1201 @ 0,1 say 'Виберіть рахунок ' @ 1,1 say 'який треба переглянути' activate popup r1 clear windows do dtop return CASE BAR=5 define window w1202 from 6,10 to 12,70 double shadow color scheme 1 activate window w1202 @ 0,1 say 'Визначіть діапазон дати придбання для засобів, ' @ 1,1 say 'які треба переглянути' d1=a.fdata1 d2=a.fdata2 @ 3,0 say 'Введіть початкову дату ' get d1 @ 4,0 say 'Введіть кінцеву дату ' get d2 read replace fdata1 with d1 replace fdata2 with d2 clear windows do dtop return CASE BAR=6 define window w1203 from 6,10 to 10,70 double shadow color scheme 1 activate window w1203 @ 0,1 say 'Виберіть групу ' @ 1,1 say 'яку треба переглянути' activate popup r2 clear windows do dtop return case bar=7 define window w1203 from 6,10 to 10,70 double shadow color scheme 1 activate window w1203 @ 0,1 say 'Введіть назву засобу, або перші кілька букв ' @ 1,1 get a.fnazva read CASE BAR=8 define window w1202 from 6,10 to 12,70 double shadow color scheme 1 activate window w1202 @ 0,1 say 'Визначіть діапазон балансово• вартості для засобів, ' @ 1,1 say 'які треба переглянути' @ 3,0 say 'Введіть нижню межу вартості ' get fbalv1 @ 4,0 say 'Введіть верхню межу вартості ' get fbalv2 read CASE BAR=9 define window w1206 from 6,10 to 12,70 double shadow color scheme 1 activate window w1206 @ 0,1 say 'Визначіть діапазон балансово• вартості для засобів, ' @ 1,1 say 'які треба переглянути' @ 3,0 say 'Введіть нижню межу залишку ' get fzal1 @ 4,0 say 'Введіть верхню межу залишку ' get fzal2 read case bar=11 replace frax with 0 replace fdata1 with {01/01/1900} replace fdata2 with {01/01/2200} replace fgrp with 0 replace fnazva with 'Назва' replace fbalv1 with 0 replace fbalv2 with 0 replace fzal1 with 0 replace fzal2 with 0 use amortiz set filter to close databases OTHERWISE CLEAR WINDOWS DO DTOP close databases RETURN ENDCASE CLEAR WINDOWS DO DTOP close databases RETURN procedure pr01 parameter bar do case case bar=1 replace a.frax with 23 case bar=2 replace a.frax with 231 case bar=3 replace a.frax with 24 case bar=4 replace a.frax with 26 case bar=5 replace a.frax with 44 case bar=6 replace a.frax with 81 otherwise deactivate popup r1 return endcase deactivate popup r1 return procedure pr02 parameter bar do case case bar=1 replace a.fgrp with 1 case bar=2 replace a.fgrp with 2 case bar=3 replace a.fgrp with 3 otherwise replace a.fgrp with 0 deactivate popup r2 endcase deactivate popup r2 return Лістінг модуля M2_1.prg parameter bar close databases set talk off set date german clear windows clear do dtop select a use amortiz select b use dovvid define popup mg01 from 0,33 define bar 1 of mg01 prompt '1 група' define bar 2 of mg01 prompt '2 група' define bar 3 of mg01 prompt '3 група' on selection popup mg1 do prg01 with bar() in m2_1.prg define popup zmd01 prompt field nazvav shadow on selection popup zmd01 do prmd01 with recno() in M2_1.prg do case case bar=1 DEFINE WINDOW w01 FROM 0,0 TO 24,79 COLOR SCHEME 1 ACTIVATE WINDOW w01 @ 1,0 say ' Для яко• групи вивести звіт ? ' activate popup mg01 NG=GGG() case bar=2 select b activate popup zmd01 NV=kv() case bar=3 do prprint case bar=5 set filter to otherwise do dtop return endcase procedure prg01 parameter b1,GGG do case case b1=1 GGG=1 case b1=2 GGG=2 case b1=3 GGG=3 otherwise deactivate popup mg01 clear windows do dtop return endcase return procedure prmd01 parameter nv,KV ???????????????? Лістінг модуля Nowkvart.prg close databases clear windows clear do dtop set talk off set date german set century on yr=year(date()) ms=month(date()) dt=date() DO CASE CASE MS>=1.AND.MS<=3 kvrt=1 CASE MS>=4.AND.MS<=6 kvrt=2 CASE MS>=7.AND.MS<=9 kvrt=3 CASE MS>=10.AND.MS<=12 kvrt=4 endcase use zah skv=kvt staw=p1 staw1=p2 close databases if skv!=kvrt define window nk from 3,3 to 13,65 double shadow color scheme 7 title 'Перехід на новий квартал' activate window nk @ 0,20 say 'СЬОГОДНІ '+dmy(dt) @ 1,20 say 'ПОТОЧНИЙ КВАРТАЛ '+STR(kvrt) @ 3,10 prompt ' ПРОВЕСТИ ПЕРЕРАХУНОК ДЛЯ НОВОГО КВАРТАЛУ ' @ 5,17 prompt ' ПРОДОВЖИТИ БЕЗ ПЕРЕРАХУНКУ ' menu to r do case case r=1 do case case kvrt=1 copy file c:\amortiz\amortiz.dbf to c:\amortiz\kvartal1\oz1.dbf case kvrt=2 copy file c:\amortiz\amortiz.dbf to c:\amortiz\kvartal2\oz2.dbf case kvrt=3 copy file c:\amortiz\amortiz.dbf to c:\amortiz\kvartal3\oz3.dbf case kvrt=4 copy file c:\amortiz\amortiz.dbf to c:\amortiz\kvartal4\oz4.dbf endcase use amortiz go top do while !eof() replace cena with amrt replace oper1 with round(cena*staw*staw1/100,2) replace amrt with cena-oper1 skip(1) enddo deactivate window nk use zah replace kvt with kvrt close database return case r=2 deactivate window nk return endcase else do dtop return endif do dtop return Лістінг модуля Pererah.prg select a USE ZAH select b use amortiz go top do while !eof() do case case grupa=1 replace oper1 with round(cena*a.g1P1*a.g1P2/100,2) replace amrt with cena-oper1 case grupa=2 replace oper1 with round(cena*a.g2P1*a.g2P2/100,2) replace amrt with cena-oper1 case grupa=3 replace oper1 with round(cena*a.g3P1*a.g3P2/100,2) replace amrt with cena-oper1 otherwise replace oper1 with 10101 replace amrt with 10101 endcase skip(1) enddo return Лістінг модуля Pids.prg clear windows close databases set talk off do dtop select a use amortiz select b use pids replace sbg1 with 0 replace spg1 with 0 replace skg1 with 0 replace szg1 with 0 replace s23g1 with 0 replace s231g1 with 0 replace s24g1 with 0 replace s26g1 with 0 replace s44g1 with 0 replace s81g1 with 0 replace sbg2 with 0 replace spg2 with 0 replace skg2 with 0 replace szg2 with 0 replace s23g2 with 0 replace s231g2 with 0 replace s24g2 with 0 replace s26g2 with 0 replace s44g2 with 0 replace s81g2 with 0 replace sbg3 with 0 replace spg3 with 0 replace skg3 with 0 replace szg3 with 0 replace s23g3 with 0 replace s231g3 with 0 replace s24g3 with 0 replace s26g3 with 0 replace s44g3 with 0 replace s81g3 with 0 replace sbs with 0 replace sps with 0 replace sks with 0 replace szs with 0 replace s23s with 0 replace s231s with 0 replace s24s with 0 replace s26s with 0 replace s44s with 0 replace s81s with 0 store 0 to zspom,zspomz,zsbg1,zspg1,zskg1,zszg1,zs23g1,zs231g1, zs24g1,zs26g1, zs44g1,zs81g1,zsbg2,zspg2,zskg2,zszg2,zs23g2,zs231g2,zs24g2,zs26g2,zs44g 2,zs81g2,zsbg3,zspg3,zskg3,zszg3,zs23g3,zs231g3,zs24g3,zs26g3,zs44g3,zs8 1g3,zsbs,zsps,zsks,zszs,zs23s,zs231s,zs24s,zs26s,zs44s,zs81s Define window d01 from 5,10 to 11,60 double shadow color scheme 5 activate window d01 @ 0,4 say 'Проводиться підбиття підсумків. Почекайте !' select a x=reccount() @ 2,1 say 'Всього записів ' @ 2,18 say x @ 3,1 say 'Залишилось записів ' do while !eof() if a.grupa=1 zsbg1=zsbg1+a.balrax zspg1=zspg1+a.cena zskg1=zskg1+a.amrt zszg1=zszg1+a.oper1 do case case a.nrax=23 zs23g1=zs23g1+a.amrt case a.nrax=23 zs231g1=zs231g1+a.amrt case a.nrax=24 zs24g1=zs24g1+a.amrt case a.nrax=26 zs26g1=zs26g1+a.amrt case a.nrax=44 zs44g1=zs44g1+a.amrt case a.nrax=81 zs81g1=zs81g1+a.amrt otherwise zspom=zspom+a.amrt endcase else endif if a.grupa=2 zsbg2=zsbg2+a.balrax zspg2=zspg2+a.cena zskg2=zskg2+a.amrt zszg2=zszg2+a.oper1 do case case a.nrax=23 zs23g2=zs23g2+a.amrt case a.nrax=231 zs231g2=zs231g2+a.amrt case a.nrax=24 zs24g2=zs24g2+a.amrt case a.nrax=26 zs26g2=zs26g2+a.amrt case a.nrax=44 zs44g2=zs44g2+a.amrt case a.nrax=81 zs81g2=zs81g2+a.amrt otherwise zspom=zspom+a.amrt endcase else endif if a.grupa=3 zsbg3=zsbg3+a.balrax zspg3=zspg3+a.cena zskg3=zskg3+a.amrt zszg3=zszg3+a.oper1 do case case a.nrax=23 zs23g3=zs23g3+a.amrt case a.nrax=23 zs231g3=zs231g3+a.amrt case a.nrax=24 zs24g3=zs24g3+a.amrt case a.nrax=26 zs26g3=zs26g3+a.amrt case a.nrax=44 zs44g3=zs44g3+a.amrt case a.nrax=81 zs81g3=zs81g3+a.amrt otherwise zspom=zspom+a.amrt endcase else endif zsbs=zsbs+a.balrax zsps=zsps+a.cena zsks=zsks+a.amrt zszs=zszs+a.oper1 do case case a.nrax=23 zs23s=zs23s+a.amrt case a.nrax=23 zs231s=zs231s+a.amrt case a.nrax=24 zs24s=zs24s+a.amrt case a.nrax=26 zs26s=zs26s+a.amrt case a.nrax=44 zs44s=zs44s+a.amrt case a.nrax=81 zs81s=zs81s+a.amrt otherwise zspomz=zspom+a.amrt endcase x=x-1 @ 3,20 say x skip(1) enddo select b go top replace b.sbg1 with zsbg1 replace b.spg1 with zspg1 replace b.skg1 with zskg1 replace b.szg1 with zszg1 replace b.s23g1 with zs23g1 replace b.s231g1 with zs231g1 replace b.s24g1 with zs24g1 replace b.s26g1 with zs26g1 replace b.s44g1 with zs44g1 replace b.s81g1 with zs81g1 replace b.sbg2 with zsbg2 replace b.spg2 with zspg2 replace b.skg2 with zskg2 replace b.szg2 with zszg2 replace b.s23g2 with zs23g2 replace b.s231g2 with zs231g2 replace b.s24g2 with zs24g2 replace b.s26g2 with zs26g2 replace b.s44g2 with zs44g2 replace b.s81g2 with zs81g2 replace b.sbg3 with zsbg3 replace b.spg3 with zspg3 replace b.skg3 with zskg3 replace b.szg3 with zszg3 replace b.s23g3 with zs23g3 replace b.s231g3 with zs231g3 replace b.s24g3 with zs24g3 replace b.s26g3 with zs26g3 replace b.s44g3 with zs44g3 replace b.s81g3 with zs81g3 replace b.sbs with zsbs replace b.sps with zsps replace b.sks with zsks replace b.szs with zszs replace b.s23s with zs23s replace b.s231s with zs231s replace b.s24s with zs24s replace b.s26s with zs26s replace b.s44s with zs44s replace b.s81s with zs81s report form fsum to printer return to master Лістінг модуля Printzv.prg parameter bAR set heading off close databases set talk off set date german clear windows clear do DTOP clear erase prm21.idx select a use amortiz index on nazva to prm21.idx compact erase prm22.idx select b use dovvid index on nazvav to prm22.idx compact select c use prstat select d use st1 go top stor=0 DEFINE WINDOW w0?????‰??????????????†?????????????????????? define bar 1 of mg01 prompt '1 група' define bar 2 of mg01 prompt '2 група' define bar 3 of mg01 prompt '3 група' on selection popup mg01 do prg01 with bar() in printzv.prg define popup zmd01 prompt field nazvav shadow on selection popup zmd01 do prmd01 with recno() in printzv.prg do case case bAr=1 ACTIVATE WINDOW w01 @ 1,0 say ' Для яко• групи вивести звіт ? ' activate popup mg01 case bAr=2 DEFINE WINDOW w02 FROM 5,10 TO 15,60 COLOR SCHEME 1 double shadow ACTIVATE WINDOW w02 @ 0,0 say 'Визначіть для якого відділу вивести звіт ?' select b activate popup zmd01 case bAr=3 do print01 case bAr=5 do print02 case bar=6 select a set filter to replace c.nvid with 0 replace c.ngrp with 0 replace c.grupa with ' ' replace c.vid with ' ' endcase select a set filter to clear windows do dtop close databases return procedure prg01 parameter b1 select c do case case b1=1 replace ngrp with 1 replace grupa with 'Звіт по першій групі' case b1=2 replace ngrp with 2 replace grupa with 'Звіт по другій групі' case b1=3 replace ngrp with 3 replace grupa with 'Звіт по третій групі' otherwise replace ngrp with 0 replace grupa with 'Звіт по всіх групах' endcase deactivate popup mg01 RETURN procedure prmd01 parameter nv select b go top goto(nv) x1kv=kodv x2nv=nazvav select c replace nvid with x1kv replace vid with x2nv deactivate popup zmd01 return procedure print02 parameter bbb clear windows do dtop select a set filter to select b go top do while !eof() replace c.nvid with b.kodv replace c.vid with b.nazvav select a go top set filter to grp=b.kodv store 0 to x1,x2,x3,x4 do while !eof() x1=x1+balrax x2=x2+cena x3=x3+oper1 x4=x4+amrt define window i001 from 8,10 to 20,71 double shadow color scheme 4 ACTIVATE WINDOW I001 @ 0,20 say 'ІНДИКАТОР ПРОЦЕСУ' @ 1,2 SAY 'Виводиться звіт для відділу '+b.nazvav @ 2,2 say 'По балансовій вартості - ' @ 3,2 say 'По початковій вартості - ' @ 4,2 say 'Знос - ' @ 5,2 say 'По залишковій вартості - ' @ 2,30 say x1 @ 3,30 say x2 @ 4,30 say x3 @ 5,30 say x4 skip(1) enddo select c replace c.sr1 with x1 replace c.sr2 with x2 replace c.sr3 with x3 replace c.sr4 with x4 select a do p00p select d stor=stor+1 replace d.st with stor select b skip(1) enddo do pids return procedure print01 parameter b set filter to if c.ngrp!=0 select a set filter to a.grupa=c.ngrp else endif if c.nvid!=0 select a set filter to a.grp=c.nvid else endif define window i001 from 8,10 to 20,71 double shadow color scheme 4 ACTIVATE WINDOW I001 @ 0,20 say 'ІНДИКАТОР ПРОЦЕСУ' @ 1,2 SAY 'Виводиться звіт для відділу '+b.nazvav @ 2,2 say 'По балансовій вартості - ' @ 3,2 say 'По початковій вартості - ' @ 4,2 say 'Знос - ' @ 5,2 say 'По залишковій вартості - ' select a go top store 0 to x1,x2,x3,x4 do while !eof() x1=x1+balrax x2=x2+cena x3=x3+oper1 x4=x4+amrt @ 2,30 say x1 @ 3,30 say x2 @ 4,30 say x3 @ 5,30 say x4 skip(1) enddo clear windows do dtop select c replace c.sr1 with x1 replace c.sr2 with x2 replace c.sr3 with x3 replace c.sr4 with x4 select a do p00p return procedure p00p parameter b clear windows do dtop ps=.t. do while ps if printstatus() ps=.f. else define window prer from 10,10 to 15,55 double shadow color scheme 7 activate window prer @ 0,2 say 'ПРИНТЕР НЕ ГОТОВИЙ !' @ 1,1 say 'Приведіть принтер до стану ON LINE !' @ 3,3 PROMPT ' ПОВТОРИТИ ' @ 3,18 PROMPT ' ВІДМІНА ' MENU TO X IF X=2 clear windows do dtop RETURN ELSE ENDIF endif enddo report form f1 to printer return Лістінг модуля Rezerv.prg use zah do case case zax=.t. define window r1 from 10,10 to 17,69 double shadow color sCheme 5 activate window r1 r=0 @ 0,0 say ' РЕЗЕРВУВАННЯ ДАНИХ' @ 0,0 say ' Попередній сеанс роботи закінчено коректно !' @ 1,0 say ' Для створення резервно• копі• натіснить <ЗАРЕЗЕРВУВАТИ> ‘

@ 2,0 say ‘ В випадку відмови натисніть <ВІДМІНА>‘

@ 4,10 prompt ‘ ЗАРЕЗЕРВУВАТИ ‘ shadow

@ 4,32 prompt ‘ ВІДМІНА ‘ shadow

menu to r

if r=1

erase c:\amortiz\rezerv\amortiz.dbf

copy file c:\amortiz\amortiz.dbf to c:\amortiz\rezerv\amortiz.dbf

clear window r1

return

else

clear window w1

replace zax with .f.

close database

return

endif

return

case zax=.f.

define window er from 10,5 to 16,73 double shadow color scheme 7

activate window er

@ 0,0 say ‘ НЕВДАЛЕ ЗАКІНЧЕННЯ СЕАНСУ РОБОТИ !’ @
1,0 say ‘ Попередній сеанс роботи програми закінчився некоректно
!’

@ 3,15 prompt ‘ Відновити базу ‘ message ‘Дані внесені під час
останнього сеансу будуть втрачені’

@ 3,35 prompt ‘ Не відновлювати ‘ message ‘В випадку якщо база
пошкоджена, програма не працюватиме’

menu to r

do case

case r=1

ERASE c:\amortiz\amortiz.dbf

copy file c:\amortiz\rezerv\amortiz.dbf to c:\amortiz\amortiz.dbf

clear window ER

replace zax with .f.

close database

return

case r=2

clear window ER

replace zax with .f.

close database

return

endcase

endcase

replace zax with .f.

close database

return

Лістінг модуля Vixod.prg

CLOSE DATABASES

define popup vp01 from 1,50 shadow

define bar 1 of vp01 prompt ‘Вийти з програми’

define bar 2 of vp01 prompt ‘\-‘

define bar 3 of vp01 prompt ‘Командний режим’

define bar 4 of vp01 prompt ‘Назад в програму’

on selection popup vp01 do p01 with bar() in vixod.prg

activate popup vp01

procedure p01

parameter bar

do case

case bar=1

DEFINE WINDOW EXITW FROM 10,30 TO 13,50 DOUBLE SHADOW COLOR SCHEME 7

ACTIVATE WINDOW EXITW

@ 0,0 SAY ‘Вийти з програми ?’

@ 1,3 prompt ‘ ТАК ‘ SHADOW

@ 1,9 prompt ‘ НІ ‘ SHADOW

MENU TO X

do case

case X=1

USE ZAH

replace zax with .t.

close database

quit

case X=2

clear windows

do dtop

return

otherwise

return

endcase

deactivate popup vp01

case bar=3

clear windows

deactivate popup vp01

case bar=4

DEFINE WINDOW DTOP FROM 0,0 TO 24,79 COLOR SCHEME 1

ACTIVATE WINDOW DTOP

deactivate popup vp01

otherwise

return

endcase

return

RETURN

PAGE

PAGE 37

PAGE 1

Похожие записи