Автоматизація господарської діяльності ВАТ "Коломийський сирзавод"
Зміст
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