© Сайт про Урок @""ІНФОРМАТИКА""@ WMmail.ru - сервис почтовых рассылок
   
  pc201010
  Автоматизація господарської діяльності
 

Зміст

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. Адаптація до мережевого використання.

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

 

 

 

 

 

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

Початковий модуль 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.

 

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

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

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

erase    M1_111.idx

use dovvid

index on nazvav to M1_111.idx compact

 

            define popup v01 prompt field nazvav from 5,5 shadow

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

 

            define popup v02 prompt field nazvav from 5,5 shadow

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

 

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

            define popup v03 prompt field nazvav from 3,5 shadow

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

 

define popup p1 from 5,5 shadow

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

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

define bar 3 of p1 prompt '-'

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

on selection popup p1 do proc1 with bar()

activate popup p1

 

procedure proc1

parameter bar

 

do case

            case bar=1

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

           

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

                        ACTIVATE WINDOW w01

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

                        nv='                              '

                        @ 1,0 get nv

                        READ

                       

                        NV=ALLTRIM(NV)

                        select b

                        go top

                        do while !eof()

                        if nazvav=nv

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

                        activate window w02

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

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

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

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

                                  

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

                                               @ 5,40 prompt 'Відміна'

                                               menu to r

                                               deactivate window w02

                                               if r=2

                                                           return

                                                           else

                                                           endif

                        else

                        endif                           

            skip(1)

            enddo                                                

            go bottom

            x=kodv

            append blank

            go bottom

            replace kodv with (x+1)

            replace nazvav with nv

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

            @ 2,33 prompt ' OK '

            menu to r

deactivate window w01

case bar=2

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

select b

            activate popup v01

case bar=4

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

select b

            activate popup v02

 

ENDCASE

deactivate window dtop01

close databases

do dtop

deactivate popup p1

return

 

procedure perv

parameter r

 

goto(r)

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

activate window w03

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

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

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

nn='                              '

@ 3,0 get nn

read

replace nazvav with alltrim(nn)

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

 

@ 5,35 prompt ' O K '

menu to r

deactivate window w03

deactivate popup v01

return              

 

procedure delv

parameter r

goto(r)

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

activate window d01

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

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

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

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

MENU TO y

do case

            case y=1

            clear

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

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

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

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

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

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

            MENU TO X

                                                           do case

                                                                      case x=1

                                                                      

                                                                                  activate window p002

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

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

                                                                                  activate popup v03                                                                

                                                                                  delete

                                                                                  pack

                                                                       case x=2

                                                                                  k=kodv

                                                                                  use amortiz

                                                                                   delete for grp=k

                                                                                  pack

                                                                                  clear window d01

                                                                                  close database

                                                                                  clear windows

                                                                       do dtop

                                                                                  return                                                 

                                                                       case x=3

                                                                                  clear windows

                                                                                  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

                        SELECT          A

                        go bottom

                                   lich=npp

                                   APPEND blank

                                   go bottom

                                               replace npp with (lich+1)

                                               replace GRP with KOD

                                               replace grupa with g

CLEAR

 

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

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

                           activate popup p1

 

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

 

 

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

@ 3,37 get data picture '##/##/##'

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

@ 4,37 get invnom

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

@ 5,22 get nazva

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

@ 6,37 get balrax picture '#######.##'

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

@ 7,37 get cena picture '#######.##'

read

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

replace amrt with cena-oper1

 

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

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

menu to r

if r=2

clear windows

do dtop

deACTIVATE POPUP P01

return

else

endif

enddo

clear windows

do dtop

deACTIVATE POPUP P01

return

 

procedure raxproc

parameter prmt

replace nrax with val(prmt)

deactivate popup p1

return

 

 

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

 

parameter a

set talk off

 

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

activate window www

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

 

select a

USE ZAH

 

select b

use amortiz

go top

 

do while !eof()

                        do case

                                   case grupa=1

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

                                               replace amrt with cena-oper1

                                   case grupa=2

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

                                               replace amrt with cena-oper1

                                   case grupa=3

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

                                               replace amrt with cena-oper1

                                   otherwise

                                               replace oper1 with 10101

                                               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:amortizamortiz.dbf to c:amortizkvartal1oz1.dbf

                        case kvrt=2

                                    copy file c:amortizamortiz.dbf to c:amortizkvartal2oz2.dbf                             case kvrt=3

                        copy file c:amortizamortiz.dbf to c:amortizkvartal3oz3.dbf

                        case kvrt=4

                        copy file c:amortizamortiz.dbf to c:amortizkvartal4oz4.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

RETURN

ELSE

ENDIF

DEACTIVATE WINDOW W044

RETURN                   

                       

 

 

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

 

parameter bar

set date german

set century on

set talk off

close databases

clear windows

do dtop

 

select a

use filter

 

define window w1201 from 6,10 to 10,70 double shadow color scheme 1

 

define popup r1 from 0,40

define bar 1 of r1 prompt 'Переглянути 23 рахунок'

define bar 2 of r1 prompt 'Переглянути 231 рахунок'

define bar 3 of r1 prompt 'Переглянути 24 рахунок'

define bar 4 of r1 prompt 'Переглянути 26 рахунок'

define bar 5 of r1 prompt 'Переглянути 44 рахунок'

define bar 6 of r1 prompt 'Переглянути 81 рахунок'

on selection popup r1 do pr01 with bar() in m12proc.prg

 

define popup r2 from 0,40

define bar 1 of r2 prompt 'Переглянути 1 групу'

define bar 2 of r2 prompt 'Переглянути 2 групу'

define bar 3 of r2 prompt 'Переглянути 3 групу'

on selection popup r2 do pr02 with bar() in m12proc.prg

            DO CASE 

                        CASE BAR=1

                                   do m12_2 with bar()

                        CASE BAR=2

                                   do m12_2 with bar()

                       

                        CASE BAR=4

                                   activate window w1201

                                   @ 0,1 say 'Виберіть рахунок '

                                   @ 1,1 say 'який треба переглянути'

                                   activate popup r1

                                   clear windows

                                   do dtop

                                   return

                        CASE BAR=5

define window w1202 from 6,10 to 12,70 double shadow color scheme 1

                                   activate window w1202

                                   @ 0,1 say 'Визначіть діапазон дати придбання для засобів, '     

                                   @ 1,1 say 'які треба переглянути'

                                   d1=a.fdata1

                                   d2=a.fdata2

                                   @ 3,0 say 'Введіть початкову дату ' get d1

                                   @ 4,0 say 'Введіть  кінцеву  дату ' get d2

                                   read

                                   replace fdata1 with d1

                                   replace fdata2 with d2                                    

                                   clear windows

                                   do dtop

                                   return

            CASE BAR=6

                                   define window w1203 from 6,10 to 10,70 double shadow color scheme 1                 

                                   activate window w1203

                                   @ 0,1 say 'Виберіть групу '

                                   @ 1,1 say 'яку треба переглянути'

                                   activate popup r2

                                   clear windows

                                   do dtop

                                   return

            case bar=7

                                   define window w1203 from 6,10 to 10,70 double shadow color scheme 1                 

                                   activate window w1203

                                   @ 0,1 say 'Введіть назву засобу, або перші кілька букв '

                                   @ 1,1 get a.fnazva

                                   read

            CASE BAR=8           

                                   define window w1202 from 6,10 to 12,70 double shadow color scheme 1

                                   activate window w1202

                                   @ 0,1 say 'Визначіть діапазон балансово• вартості для засобів, '          

                                   @ 1,1 say 'які треба переглянути'   

                                   @ 3,0 say 'Введіть нижню межу вартості  ' get fbalv1

                                   @ 4,0 say 'Введіть верхню межу вартості ' get fbalv2

                                   read

            CASE BAR=9

                                   define window w1206 from 6,10 to 12,70 double shadow color scheme 1

                                   activate window w1206

                                   @ 0,1 say 'Визначіть діапазон балансово• вартості для засобів, '          

                                   @ 1,1 say 'які треба переглянути'   

                                   @ 3,0 say 'Введіть нижню межу залишку  ' get fzal1

                                   @ 4,0 say 'Введіть верхню межу залишку ' get fzal2

                                   read

            case bar=11

                                   replace frax with 0                                          

                                   replace fdata1 with {01/01/1900}                                          

                                   replace fdata2 with {01/01/2200}                                          

                                   replace fgrp with 0                                         

                                   replace fnazva with 'Назва'

                                   replace fbalv1 with 0                                      

                                   replace fbalv2 with 0   

                                   replace fzal1 with 0                                        

                                   replace fzal2 with 0                                                                            

            use amortiz

            set filter to

            close databases

            OTHERWISE

                        CLEAR WINDOWS

                        DO DTOP

                        close databases

                        RETURN

 

            ENDCASE

CLEAR WINDOWS

DO DTOP

close databases

RETURN       

           

           

            procedure pr01

            parameter bar

           

            do case

                        case bar=1

                                   replace a.frax with 23

                        case bar=2

                                   replace a.frax with 231

                        case bar=3

                                   replace a.frax with 24

                        case bar=4

                                   replace a.frax with 26

                        case bar=5

                                   replace a.frax with 44

                        case bar=6

                                   replace a.frax with 81

                        otherwise

                                   deactivate popup r1

                        return

            endcase

                                   deactivate popup r1

            return

                       

                       

                       

            procedure pr02

            parameter bar

           

            do case

                        case bar=1

                                   replace a.fgrp with 1

                        case bar=2

                                   replace a.fgrp with 2

                        case bar=3

                                   replace a.fgrp with 3

                        otherwise

                                               replace a.fgrp with 0

                                   deactivate popup r2

 

                        endcase

                                   deactivate popup r2

 

            return

 

 

 

 

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

 

parameter bar

close databases

 

 

 

set talk off

set date german

clear windows

clear

do dtop

select a

use amortiz

 

select b

use dovvid

 

 

 

                                   define popup mg01 from 0,33

                                   define bar 1 of mg01 prompt '1 група'

                                   define bar 2 of mg01 prompt '2 група'

                                   define bar 3 of mg01 prompt '3 група'

                                   on selection popup mg1 do prg01 with bar() in m2_1.prg

 

 

                                   define popup zmd01 prompt field nazvav shadow

                                   on selection popup zmd01 do prmd01 with recno() in M2_1.prg

 

 

 

 

 

do case

            case bar=1

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

                                   ACTIVATE WINDOW w01

                                   @ 1,0 say ' Для яко• групи вивести звіт ?  '

                                   activate popup mg01

                                   NG=GGG()

            case bar=2

                                   select b

                                   activate popup zmd01

                                   NV=kv()

            case bar=3

                                   do prprint

            case bar=5

                                   set filter to

            otherwise

                        do dtop

                        return

endcase

                                                                                                                     

           

procedure prg01

parameter b1,GGG

do case

            case b1=1

                        GGG=1

            case b1=2

                        GGG=2

            case b1=3

                        GGG=3

            otherwise

deactivate popup mg01

clear windows

            do dtop

                        return

endcase

return

 

 

procedure        prmd01

parameter nv,KV

                        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:amortizamortiz.dbf to c:amortizkvartal1oz1.dbf

                                              case kvrt=2

                        copy file c:amortizamortiz.dbf to c:amortizkvartal2oz2.dbf             

               case kvrt=3

                        copy file c:amortizamortiz.dbf to c:amortizkvartal3oz3.dbf

              case kvrt=4

                        copy file c:amortizamortiz.dbf to c:amortizkvartal4oz4.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

                                                           endif

                                                          

                                               zsbs=zsbs+a.balrax                                        

                                               zsps=zsps+a.cena

                                               zsks=zsks+a.amrt

                                               zszs=zszs+a.oper1

                                                                       do case

                                                                                  case a.nrax=23

                                                                                              zs23s=zs23s+a.amrt

                                                                                  case a.nrax=23

                                                                                              zs231s=zs231s+a.amrt

                                                                                  case a.nrax=24

                                                                                              zs24s=zs24s+a.amrt

                                                                                  case a.nrax=26

                                                                                              zs26s=zs26s+a.amrt

                                                                                  case a.nrax=44

                                                                                              zs44s=zs44s+a.amrt

                                                                                  case a.nrax=81

                                                                                              zs81s=zs81s+a.amrt

                                                                                  otherwise

                                                                                              zspomz=zspom+a.amrt

                                                                       endcase

                       

                                                          

x=x-1

@ 3,20 say x

skip(1)

enddo 

select b

go top

 

replace b.sbg1 with zsbg1

replace b.spg1 with zspg1

replace b.skg1 with zskg1

replace b.szg1 with zszg1

replace b.s23g1 with zs23g1

replace b.s231g1 with zs231g1

replace b.s24g1 with zs24g1

replace b.s26g1 with zs26g1

replace b.s44g1 with zs44g1

replace b.s81g1 with zs81g1

 

replace b.sbg2 with zsbg2

replace b.spg2 with zspg2

replace b.skg2 with zskg2

replace b.szg2 with zszg2

replace b.s23g2 with zs23g2

replace b.s231g2 with zs231g2

replace b.s24g2 with zs24g2

replace b.s26g2 with zs26g2

replace b.s44g2 with zs44g2

replace b.s81g2 with zs81g2

 

replace b.sbg3 with zsbg3

replace b.spg3 with zspg3

replace b.skg3 with zskg3

replace b.szg3 with zszg3

replace b.s23g3 with zs23g3

replace b.s231g3 with zs231g3

replace b.s24g3 with zs24g3

replace b.s26g3 with zs26g3

replace b.s44g3 with zs44g3

replace b.s81g3 with zs81g3

 

replace b.sbs  with zsbs 

replace b.sps  with zsps 

replace b.sks  with zsks 

replace b.szs  with zszs 

replace b.s23s  with zs23s 

replace b.s231s  with zs231s 

replace b.s24s  with zs24s 

replace b.s26s  with zs26s 

replace b.s44s  with zs44s 

replace b.s81s  with zs81s 

 

report form fsum to printer

return to master

 

 

 

 

 

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

 

parameter bAR

set heading off

close databases

set talk off

set date german

clear windows

clear

do DTOP

clear

erase prm21.idx

select a

use amortiz

index on nazva to prm21.idx compact

 

erase prm22.idx

select b

use dovvid

index on nazvav to prm22.idx compact

 

select c

use prstat

 

select d

use st1

go top

stor=0

 

DEFINE WINDOW 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

 

 

 

                        procedure        prmd01

                        parameter nv

                                   select b

                                   go top

                                   goto(nv)

                                   x1kv=kodv

                                   x2nv=nazvav

                                               select c

                                               replace nvid with x1kv

                                               replace vid with x2nv

                                               deactivate popup zmd01

                        return

 

 

 

procedure print02

parameter bbb

clear windows

do dtop

select a

set filter to

 

select b

go top

 

            do while !eof()

                                                          

                                                           replace c.nvid with b.kodv

                                                           replace c.vid with b.nazvav

                                                          

                                                                                  select a

                                                                                  go top

                                                                                  set filter to grp=b.kodv

                                                                                  store 0 to x1,x2,x3,x4             

                                                                                              do while !eof()

                                                                                                          x1=x1+balrax

                                                                                                          x2=x2+cena

                                                                                                          x3=x3+oper1

                                                                                                          x4=x4+amrt

define window i001 from 8,10 to 20,71 double shadow color scheme 4

ACTIVATE WINDOW I001

@ 0,20 say 'ІНДИКАТОР ПРОЦЕСУ'

@ 1,2 SAY 'Виводиться звіт для відділу '+b.nazvav

@ 2,2 say 'По балансовій вартості - '

@ 3,2 say 'По початковій вартості - '

@ 4,2 say 'Знос - '

@ 5,2 say 'По залишковій вартості - '

                                                                                                          @ 2,30 say x1            

                                                                                                          @ 3,30 say x2            

                                                                                                          @ 4,30 say x3            

                                                                                                          @ 5,30 say x4            

                                                                                              skip(1)

                                                                                              enddo

                                                                       select c

                                                                       replace c.sr1 with x1

                                                                       replace c.sr2 with x2

                                                                       replace c.sr3 with x3

                                                                       replace c.sr4 with x4

                                                                       select a

                                                          

                                                           do p00p

                                                          

select d

stor=stor+1

replace d.st with stor

            select b

            skip(1)                                               

            enddo

do pids

return

 

 

 

procedure print01

parameter b

 

set filter to

 

if c.ngrp!=0

                        select a

                        set filter to a.grupa=c.ngrp

else

endif               

                       

if c.nvid!=0

                        select a

                        set filter to a.grp=c.nvid

else

endif

 

define window i001 from 8,10 to 20,71 double shadow color scheme 4

ACTIVATE WINDOW I001

@ 0,20 say 'ІНДИКАТОР ПРОЦЕСУ'

                                                           @ 1,2 SAY 'Виводиться звіт для відділу '+b.nazvav

                                                           @ 2,2 say 'По балансовій вартості - '

                                                           @ 3,2 say 'По початковій вартості - '

                                                           @ 4,2 say 'Знос - '

                                                           @ 5,2 say 'По залишковій вартості - '

 

                                                                                  select a

                                                                                  go top

                                                                                  store 0 to x1,x2,x3,x4             

                                                                                              do while !eof()

                                                                                                          x1=x1+balrax

                                                                                                          x2=x2+cena

                                                                                                          x3=x3+oper1

                                                                                                          x4=x4+amrt

 

                                                                                                          @ 2,30 say x1            

                                                                                                          @ 3,30 say x2            

                                                                                                          @ 4,30 say x3            

                                                                                                          @ 5,30 say x4            

                                                                                              skip(1)

                                                                                              enddo

                                                                       clear windows

                                                                       do  dtop

                                                                       select c

                                                                       replace c.sr1 with x1

                                                                       replace c.sr2 with x2

                                                                       replace c.sr3 with x3

                                                                       replace c.sr4 with x4

                                                                       select a

                                                           do p00p

return

 

procedure p00p

parameter b

clear windows

do dtop

ps=.t.

do while ps

            if printstatus()

                                   ps=.f.

            else

                        define window prer from 10,10 to 15,55 double shadow color scheme 7

                        activate window prer

                        @ 0,2 say 'ПРИНТЕР НЕ ГОТОВИЙ !'

                        @ 1,1 say 'Приведіть принтер до стану ON LINE !'

                        @ 3,3 PROMPT ' ПОВТОРИТИ '

                        @ 3,18 PROMPT ' ВІДМІНА '

                        MENU TO X

                        IF X=2

                                   clear windows

                                   do dtop

                                   RETURN

                                   ELSE

                                   ENDIF

 

            endif

enddo

 

report form f1 to printer

return

 

 

 

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

 

use zah

do case

            case zax=.t.

define window r1 from 10,10 to 17,69 double shadow color sCheme 5

                        activate window r1 

                        r=0

@ 0,0 say '                                       РЕЗЕРВУВАННЯ ДАНИХ'

@ 0,0 say '       Попередній сеанс роботи закінчено коректно !'

@ 1,0 say ' Для створення резервно• копі• натіснить <ЗАРЕЗЕРВУВАТИ> '

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

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

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

                        menu to            r

                        if r=1

                                   erase c:amortizrezervamortiz.dbf

                                   copy file c:amortizamortiz.dbf to c:amortizrezervamortiz.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:amortizamortiz.dbf  

                        copy file c:amortizrezervamortiz.dbf to c:amortizamortiz.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

 
  Сегодня были уже 4 посетителей  
 
Лаптєв Олег Володимирович © 2010 pc201010.ru.gg Этот сайт был создан бесплатно с помощью homepage-konstruktor.ru. Хотите тоже свой сайт?
Зарегистрироваться бесплатно