Зворотний зв'язок

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

Зміст

1.Анотація.

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

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

3.1. Вступ.

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

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

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

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

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

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

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

6.Висновки.

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

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

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

10. Додаток 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

Зміст

1.Вступ

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

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

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

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

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

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

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

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

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

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

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

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

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. Обгрунтування вибору апаратних засобів.

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

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

8.Висновки.

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

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

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

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

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

12.Додаток 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.Вступ.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Основні засоби підприємства – це сукупність матеріально речових цінностей, що діють у натуральній формі протягом тривалого часу як у сфері матеріального виробництва, так і в невиробничій сфері, термін служби яких більше одного року і вартість з 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 625 21.04.00 13:28 DTOP.FXP

DTOP PRG 496 21.04.00 13:28 DTOP.PRG

DTOP BAK 484 21.04.00 11:53 DTOP.BAK

IDVID01 IDX 1 536 21.04.00 9:49 IDVID01.IDX

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 – понижуючий коефіцієнт;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

12.Комбінації пунктів 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.Комбінований звіт з можливістю визначення відділу та групи для основних засобів.

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

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

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

Малюнок 15.

Малюнок 16.

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

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

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

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

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(грн)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Висновки:

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

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

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

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

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

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

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

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

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

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

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

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

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

Затверджено

Ф.ФФ.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

eraseM1_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

do dtop

return

endcase

case y=2

clear windows

do dtop

return

endcase

clear windows

do dtop

return

Лістінг модуля 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()

select b

@ 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

SELECTA

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

replace amrt with 10101

endcase

skip(1)

@ 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

use filter

select a

if c.frax!=0

set filter to a.nrax=c.frax

else

endif

set filter to between(a.data,c.fdata1,c.fdata2)

if c.fgrp!=0

set filter to grupa=c.fgrp

else

endif

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

RETURNELSE

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

procedureprmd01

parameter nv,KV

goto(nv)

KV=kodv

returnЛістінг модуля 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,zs44g2,zs81g2,zsbg3,zspg3,zskg3,zszg3,zs23g3,zs231g3,zs24g3,zs26g3,zs44g3,zs81g3,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

endifzsbs=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 w01 FROM 5,10 TO 10,60 double shadow COLOR SCHEME 1

define popup mg01 from 0,30

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

procedureprmd01

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

endifdefine 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 tor

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


Реферати!

У нас ви зможете знайти і ознайомитися з рефератами на будь-яку тему.







Не знайшли потрібний реферат ?

Замовте написання реферату на потрібну Вам тему

Замовити реферат