|
||
Програмне забезпечення - це сукупність програм для реалізації розробленої системи на базі використання засобів обчислювальної техніки. Однією з складових частин програмного забезпечення є операційна система, яка призначена для розширення функціональних можливостей обчислювального обладнання, контролю і управління процесами обробки даних, автоматизації роботи програмістів. Так, зокрема, Windows 98, яка використовувалась при розробці та тестуванні комп’ютерної системи обліку і аналізу розрахунків з постачальниками і підрядниками являє собою високопродуктивну, багатозадачну і багатопотокову 32-розрядну операційну систему з зручним графічним інтерфейсом і розширеними мережевими можливостями. Операціійна система розроблена фірмою Microsoft (США). Важливою її особливістю є 32-розрядна архітектура, яка забезпечує більш високу продуктивність системи, знімає багато обмежень на системні ресурси. Захищений режим, що застосовується в Windows 9x/NT, підтримує роботу системи у випадках збою прикладної програми, що є досить вагомою перевагою над іншими ОС, захищає прикладну програму від випадкового втручання одного процесу в інший, забезпечує певну стійкість до вірусів. Розробка системи здійснена за допомогою середовища Microsoft Visual FoxPro. Незважаючи на появу нових систем управління базами даних, Visual FoxPro все ще залишається однією з найбільш популярних програм в цій області. Це, передусім, пов’язано з тим, що при створенні нових версій Microsoft зберігає сумісність з попередніми версіями. В Visual FoxPro реалізовані всі атрибути реляційних систем управління базами даних. В базі даних підтримується цілісність даних за допомогою первинних ключів і зв’язків між таблицями. Для обробки подій додавання, знищення чи зміни записів таблиць засобами самої бази даних можна використовувати тригери і процедури. Visual FoxPro – це об’єктно-орієнтована, візуально-програмована мова, що управляється по подіям, і яка в повній мірі відповідає новим вимогам, що ставляться перед сучасними засобами проектування. Visual FoxPro складається з окремих компонентів, які використовуються для зберігання інформації, її відображення і редагування. Всі дані зберігаються в базі даних, яка складається з таблиць, відношень між таблицями, індексів, тригерів і процедур. Кожна таблиця має унікальне ім’я і зберігається в окремому файлі, назва якого співпадає з назвою таблиці. Створений файл має розширення DBF. Кожна таблиця може мати декілька зв’язаних з нею індексів, які використовуються для впорядкування даних і швидкого пошуку необхідних записів. Для зберігання значення полів типу Memo і General використовуються окремі файли. Memo-поля таблиць містять текстову інформацію, а поля типу General використовуються, як правило, для зберігання двійкової інформації, даних інших програм, які працюють в середовищі Windows. В Visual FoxPro реалізовані тригери, які дозволяють централізовано обробляти події, що виникають при будь-яких змінах в базі даних. Також можуть створюватись процедури, які є частиною бази даних і можуть використовуватись при описі таблиць для перевірки введених даних, визначення значення по замовчуванню тощо. Надзвичайно зручним і корисним засобом доступу до бази даних є представлення даних. Представлення даних дозволяють об’єднати дані таблиць і відображати їх в більш зручному вигляді. Є можливість вибрати потрібні поля таблиць, об’єднати декілька полей в одне поле, обчислити підсумкові значення, задати нові імена полів таблиці. Як правило, кількість представлень в базі даних перевищує кількість таблиць. По мірі експлуатації бази даних їх кількість збільшується. В багатьох інформаційних системах доступ до даних, включаючи перегляд, добавлення і редагування, здійснюється тільки з допомогою представлень даних. Такий підхід дозволяє здійснити гнучке управління доступом до інформації. При використанні представлень для вибірки даних в формах, звітах, при створенні запитів, а також в програмах застосовуються ті ж правила, що і для таблиць. Редагування даних, даних, які включені в представлення, можливе тільки при певних умовах. Наприклад, в тому випадку, коли представлення створене на основі тільки однієї таблиці. Для відображення і редагування даних використовуються форми, звіти, запити і програми. Для створення форм, звітів і запитів використовуються конструктори. Форми і звіти є складними об’єктами, оскільки вони складаються з дрібніших об’єктів (таких, як поля, кнопки, діаграми, рамки, OLE-компоненти тощо), які називаються об’єктами інтерфейсу. Форми використовуються для перегляду чи вводу даних в таблиці. Звіти використовуються для друку інформації, яка знаходиться в базі даних. Запити є засобом вибірки даних з однієї чи декількох таблиць. В Visual FoxPro для створення запиту можна використовувати як конструктор запитів, так і спеціалізовану мову Structured Query Language (SQL). Результати виконання запита можуть відображатись в формі, виводитись у вигляді звітів і діаграм чи зберігатись у вказаній таблиці. Програми, написані на мові Visual FoxPro, є об’єктно-орієнтованими. З допомогою них обробляються події в формі, створюються об’єкти, виконуються обчислення, здійснюється управління базою даних. Для зручності роботи є можливість об’єднати програми в бібліотеки. Щоб створити форму в Visual FoxPro, можна використовувати не тільки базові класи, але й створювати власні. Класи, створені в Visual FoxPro, зберігаються в бібліотеках класів. Для об’єднання компонентів створюваної програми використовується проект, в який включаються всі перелічені компоненти. Використання проекта спрощує розробку програми і його супровід. Visual FoxPro надає можливість зберігати параметри основного вікна Visual FoxPro, налаштування таблиць, параметри вікон діалогу і панелі інструментів з допомогою файлу параметрів налаштування. Кожен компонент зберігається в окремому файлі, причому імена файлів, що містять основні компоненти, задаються користувачем, а найменування файлів, що містять об’єкти, пов’язані з таблицею, зпівпадають з ім’ям таблиці. В залежності від типу об’єкта, що міститься у файлі, Visual FoxPro автоматично присвоює кожному файлу розширення, яке допомогає в ідентифікації об’єкта. Перелік розширень файлів наведений в таблиці 32. Таблиця 32. Розширення імен файлів об’єктів Visual FoxPro | ||
Назва об’єкта |
Розширення |
|
Проект |
PRJ, FPC, CAT, PJX, PJT |
|
База даних |
DBC |
|
Таблиця Visual FoxPro |
DBF |
|
Складений індексний файл |
CDX |
|
Memo-поле і поле типу General |
FRT |
|
Форма |
SCX |
|
Запит |
QPR |
|
Звіт |
FRX, FRM |
|
Поштова наклейка |
LBX, LBL |
|
Меню |
MNX |
|
Бібліотека класу |
VCX |
|
Програма, бібліотека програм, текст меню, текст запита |
PRG, FXP, MPR, QPR |
|
Малюнок |
BMP, JPG, GIF, ICO, DIB, CUR, ANI |
|
Звукозапис |
WAV |
Загальна структура програмного забезпечення наведена в додатку 22. Його можна умовно поділити на наступні модулі:
- інтерфейс;
- блок обчислень;
- СУБД;
- блок формування звітів.
До інтерфейсу входять меню, форми (для вводу, відображення та редагування інформації) та модуль допомоги. За допомогою саме цих модулів відбувається обмін інформацією між системою і користувачем.
Блок обчислень складається з програм і процедур, за допомогою яких над даними виконуються необхідні дії, проводяться розрахунки.
Система управління базою даних (СУБД) складається з власне СУБД (спеціальні бібліотеки та інші засоби Visual FoxPro) та бази даних, яка, в свою чергу, включає в себе набір таблиць і файл бази даних. В файл бази даних входить інформація про зв’язок таблиць, процедури, представлення даних, тригери та інша додаткова інформація.
В блок формування звітів можуть входити програми, процедури, запити і звіти.
Під час роботи система використовує наступні модулі:
- модуль Startprog;
- модуль Formob;
- модуль Rozsal;
- модуль Rozsalp;
- модуль Formaz;
- модуль Formjo;
- модуль Formov;
- модуль Formop.
Модуль Startprog є головною програмою, яка керує роботою системи і в ході роботи викликає необхідні компоненти. Лістинг програми наведено в додатку 22.
Модуль Formob формує оборотну звітність за вказане число.
Модуль Rozsal розраховує сальдо на поточний період на вказане число. Лістинг програми наведено в додатку 23.
Модуль Rozsalp розраховує сальдо на початок періоду.
Модуль Formaz формує акт звірки.
Модуль Formjo формує журнал-ордер по вказаному рахунку.
Модуль Formov формує оборотну відомість.
Модуль Formop формує список операцій по партнеру.
Розроблена в даному дипломному проекті комп’ютерна система є автоматизованою системою обліку і аналізу розрахунків з постачальниками і підрядниками. Практична реалізація системи обліку і аналізу була здійснена за допомогою СУБД Microsoft Visual FoxPro.
Враховуючи сучасні напрямки та перспективи розвитку комп’ютерних технологій, можливість організації зручного діалогу користувача з комп’ютером, застосування для реалізації спроектованої системи Microsoft Visual FoxPro доцільно встановити вимогу щодо роботи програми під сучасними операційними системами типу Windows 95, Windows 98, Windows NT. Дані системи мають надзвичайно широке поширення і вже зараз використовуються на більшості комп’ютерів, які застосовуються для автоматизації управлінської діяльності.
Операційна система Windows 95 призначена для інсталяції на персональних комп’ютерах, які мають процесор типу Intel 80386DX, 80486 або Pentium. Об’єм оперативної пам’яті повинен бути не менше 4 Мбайт. Але для підвищення швидкодії роботи системи необхідно мати 486-й процесор з частотою 66 МГц і вище або Pentium. Для одночасної роботи з кількома програмами доцільно мати від 16 Мбайт оперативної пам'яті.
ОС Windows 95 займає приблизно 50 Мбайт дискового простору, при мінімальній інсталяції - приблизно 30 Мбайт. Крім того, від 10 до 30 Мбайт необхідно для організації віртуальної пам'яті.
Створена система також вимагає наявності на комп’ютері СУБД Visual FoxPro, адже виконувальний файл R60.exe при роботі використовує ресурси з бібліотеки Visual FoxPro для організації роботи з базами даних.
Узагальнюючи вимоги для розробленої системи і додавши вимоги для MS Visual FoxPro можна зробити висновок, що робоча станція, за якою працюватиме користувач з системою обліку і аналізу розрахунків з постачальниками і підрядниками повинна містити операційну систему Windows 9х/NT і мати наступну конфігурацію:
- процесор 80486 чи більш потужний (мінімум процесор 80486 з тактовою частотою 66МГц)
- мінімум 16 Мбайт оперативної пам'яті (рекомендується 16 Мбайт і більше)
- мінімум 300 Мбайт вільного місця на вінчестері
- монітор VGA або SVGA
- мишку
Стосовно професійної кваліфікації обслуговуючого персоналу, дана програма не вимагає глибоких знань в комп’ютерній галузі. Робота з системою обліку і аналізу розрахунків з постачальниками вимагає лише наявності базових навиків в роботі з ОС Microsoft Windows 95 (Microsoft Windows 98 чи Microsoft Windows NT). Оператору повинні бути знайомі наступні поняття і навики:
- використання меню “Пуск” (“Start”) для виклику програм;
- прийоми роботи з вікнами;
- робота з меню;
- використання керуючих елементів діалогу;
- стандартні діалоги;
- налаштування операційної системи Microsoft Windows 95 (Microsoft Windows 98, Microsoft Windows NT) з допомогою панелі управління.
Розглянемо дії користувача при роботі з системою. Оператор системи обліку і аналізу розрахунків з постачальниками (бухгалтер) запускає програму на виконання (виконувальний файл R60.exe), або з командної стрічки, або за допомогою ярлика, який викликає цей файл. На екрані з’являється головне вікно програми, яке представлено в додатку 25. В головному меню знаходяться два основних пункти, які також продубльовані на стандартній панелі інструментів у вигляді кнопок:
- “Партнери”;
- “Друк”.
На даній панелі інструментів також знаходяться поля редагування, з допомогою яких користувач може ввести дату початкового періоду (від неї будуть розраховуватись звіти по замовчуванню).
При натискуванні на кнопку “Партнери” з’являється форма з списком партнерів, яка наведена у додатку 26, і панель інструментів для роботи з нею. В даній формі містяться наступні елементи:
- список партнерів для вибору;
- фільтр партнерів по категоріям (фізичні або юридичні особи);
- кнопка активації фільтра;
- поле для виводу загальної інформації про партнера.
Панель інструментів складається з кнопок:
- “Добавлення нового партнера”;
- “Відкриття журналу операцій по партнерові”;
- “Картка партнера”;
- “Знищення партнера”;
- “Пошук”;
- “Перехід в початок списку”;
- “Перехід в кінець списку”;
- “Сортування записів”.
Для добавлення нового партнера натискається кнопка “Добавлення нового партнера”, яка викликає форму “Картка партнера” для вводу даних про партнера, представлену в додатку 27. Дана форма викликається також і при натисненні кнопки “Картка партнера” при необхідності перегляду або редагування даних про партнера. При цьому партнер, реквізити якого необхідно переглянути чи редагувати, повинен бути попередньо вибраний зі списку партнерів в формі “Партнери”.
Отже, при добавленні нового партнера у формі “Картка партнера” користувач поступово вводить всі реквізити партнера. Для цього форма містить наступні вкладки:
- “Дані” (містить поля для вводу загальних реквізитів, які можуть бути лише одні для кожного партнера);
- “Р/р” (містить список розрахункових рахунків партнера з реквізитами, кнопки управління записами, якими, зокрема, викликається форма для вводу реквізитів рахунку);
- “Телефони” (містить список телефонів партнера з вказанням типу зв’язку. Працює аналогічно вкладці “Р/р”);
- “Адреси” (містить список адрес партнера. Працює аналогічно вкладці “Р/р”);
- Нотатки (містить поле для вводу нотатки).
Форма “Картка партнера” також містить поле, в якому виводиться інформація про дату останньої модифікації даної картки.
Після завершення вводу, перегляду чи редагування даних натисненням кнопки “ОК” користувач повертається до форми “Партнери”.
При натисненні на кнопку “Відкриття журналу операцій по партнерові” на панелі інструментів, з’являється форма “Обороти по рахунку 60”, яка представленя в додатку 28. В ній містяться наступні об’єкти:
- поле для виводу назви обраного партнера, по якому відкрито журнал операцій;
- поля для вводу початкового сальдо по дебету і кредиту рахунка №60;
- поля для відображення обороту і кінцевого сальдо по дебету і кредиту рахунка №60;
- таблиці для перегляду інформації про здійснені операції по дебету і кредиту рахунка №60, які використовуються також для вибору операції для її редагування або знищення;
- набори кнопок для добавлення простої чи складної проводки, редагування, знищення, сортування і пошук операцій, переходу до першої або останньої операції;
- кнопки “Акт звірки”, “Проводки”, “Документи” для формування, перегляду і друку звітів;
- кнопку “Вихід” для закриття журналу операцій і повернення в форму “Партнери”.
Для добавлення операції по партнеру, який вибрано з списку партнерів в формі “Партнери” необхідно, знаходячись в формі “Обороти по рахунку 60” натиснути кнопку “Добавлення операції”. При цьому викликається форма для вводу даних про операцію, яка представлена в додатку 29. Дана форма викликається також при натисненні кнопки “Редагування операції”, коли необхідно редагувати операцію. Форма містить наступні елементи:
- поле для вводу номера рахунка, по якому проводиться операція;
- поле для вводу суми операції;
- поле для вводу дати проведення операції;
- поле для вводу номера документа, на основі якого здійснюється операція;
- кнопки “Записати” та “Відмова” для закриття форми із збереженням та без збереження змін відповідно.
Після добавлення чи редагування операції користувач повертається до форми “Обороти по рахунку 60”.
Для друкування звітів на стандартній панелі інструментів знаходиться кнопка “Друк”, натискання на яку приводить до появи форми “Друк звітів”, яка приведена в додатку 30. Форма містить список звітів і кнопки “Друк” та “Вихід”. Друк звіту здійснюється шляхом вибору необхідного звіту зі списку звітів і натиснення кнопки “Друк”. При цьому можуть з’явитись вікна для вводу додаткових параметрів і вікна налаштування друку, в яких користувач може задати параметри друку.
В дипломному проекті спроектовано систему обліку і аналізу розрахунків з постачальниками і підрядниками.
Було проведено дослідження технології ведення обліку розрахунків з постачальниками і підрядниками у ПП “Біомед”, вивчено структуру та функції оперативного управління, наявне програмне та апаратне забезпечення, комплекс задач, що вирішується ним.
Побудовано структурну схему системи, розроблено математичний апарат, інформаційне забезпечення для реалізації більш досконалого рішення даної задачі. Для досягнення цього був використаний метод аналізу існуючої системи на основі потоків даних різного рівня деталізації.
У першому розділі проекту проаналізовано роботу ПП “Біомед” та систему управління ним, розглянуто інформацію, яка циркулює в досліджуваній системі, вивчено існуючі методи збору, обробки та зберігання інформації, виявлено ряд недоліків.
Результатом другого розділу є спроектована модель системи з урахуванням недоліків. Для розробки програмного забезпечення розроблене інформаційне забезпечення, спроектовано даталогічну модель системи. В цьому ж розділі наведено математично-алгоритмічне забезпечення функціонування системи.
Розроблена в дипломному проекті інформаційна система забезпечить гнучкість процесу обліку розрахунків з постачальниками і підрядниками, надасть можливості для аналізу проведених розрахунків для прийняття оптимальних управлінських рішень.
1. Волков С.М., Романов А.М. Организация машинной обработки экономической информции.- М.: Финансы и статистика, 1988.
1. Дипломное и курсовое проектирование по машинной обработке информации.- М.: Финансы и статистика, 1985.
2. Жеребин В.М. Автоматизация проектирования экономических информационных систем.- М.: Финансы и статистика, 1988.
3. Когаловский М.Р. Технология баз данных на персональных ЭВМ.- М.: Финансы и статистика, 1992.
4. Королев М.А. и др. Теория экономических информационных систем.- М.: Финансы и статистика, 1984.
5. Коутс Р., Влейминк И. Интерфейс «Человек компьютер»: Пер. с англ.- М.:Мир, 1990.
6. Лавінський Г.В. та ін. Автоматизовані системи обробки економічної інформації.-К.: Вища школа, 1995 р.
7. Методические указания к дипломному проектированию для студентов спец. 0715 - экономическая информатика и АСУ/ Б.Е.Одинцов. - Львов: Вища школа, ЛГУ, 1990. - 67 с.
8. Одинцов Б.Е. Экономическая информатика.- Хмельницкий, 1996.
9. Омельченко Л.Н. Самоучитель Visual FoxPro 6.0. – Санкт-Петербург: BHV, 1999. – 500 с.
10. Твердохлiб М.Г. Система обробки облікової інформації на персональних ЕОМ.-К.:Техніка, 1993.
11. Твердохлеб Н.Г. Безбумажная технология в управлении производством.-К.:Техника,1991.
12. Бухгалтерський облік. – Тернопіль: Центр Європи, 1994. – 176с.
13. Економічний аналіз діяльності промислових підприємств та об’єднань. – Тернопіль: ТАНГ, 1995. – 300с.
14. З.В. Задорожний, Я. Д. Крупка, Р. О. Мельник. Бухгалтерський облік. – Київ: ІЗМН МОУ, 1996. – 414с.
15. Сопко В.С. Бухгалтерський облік в промисловості та інших галузях народного господарства. – Київ: Вища школа, 1992. – 463с.
16. Сопко В.С. Бухгалтерський облік у підприємництві. Київ: Техніка, 1995. – 259 с.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
№ пп
Серія
Найменування
Од. вим.
Кількість
Вартість митна (імп.) завода-вироб. (укр.)
Націнка %
Ціна відпускна в ГРН.
Сума відпускна в ГРН
Сума ПДВ
Сума до оплати з урах. ПДВ
(сума прописом)
в тому числі ПДВ/без ПДВ: ______________
Документ склав: _________________________________________________
(П.І.Б.)
Товар відпустив: _________________________________________________ Товар отримав: _____________________________________
(П.І.Б.) (П.І.Б.)
від «___» ______________ 200__ р.
«___» ___________ 200__ р.
Платник _________________________
Код за
ЄДРПОУ
код банку ДЕБЕТ СУМА
Банк платника
рах. №
Одержувач _______________________
Код за КРЕДИТ
ЄДРПОУ
код банку рах. №
Банк одержувача
рах. №
Сума (словами)
____________________________________________________________________________
Призначення платежу _________________________________________________________
|
Підписи платника
підпис банку
(дебет 60 кредит __)
Дата
Сума
Партнер
Коментар
|
(кредит 60 дебет __)
Дата
Сума
Партнер
Коментар
|
(загальні суми)
Включно по _______________________
Назва (партнер)
|
(загальні суми)
Включно по _______________________
Назва (партнер)
|
(на _____________________)
Назва
(партнер)
Дебет
Кредит
|
(на _____________________)
Назва
(партнер)
Дебет
Кредит
|
Сальдо на початок місяця (на ______________________________)
Дебет
Кредит
Згорнуте
Сальдо на кінець місяця (на ______________________________)
Дебет
Кредит
Згорнуте
|
Дебет
Кредит
Сума
60
60
|
«___» _________________ 200__р.
Партнер: _____________________________________
Дебет
Дата
Номер документа
|
Додаток 20 (продовження)
Parameters _rah
if parameters() = 0
howrah = 0
else
if type("_RAH") = "C"
howrah = _rah
else
howrah = alltrim(str(_rah))
endif
endif
*HOWRAH = '62'
_screen.caption = 'Рахунок'
******** SetSet
_screen.windowstate = 2
_SCREEN.CLS
clear wind all
CLOSE ALL
set dele on
set excl off
set multi on
set confirm on
set point to ','
set separator to [']
set reprocess to 5
PUSH MENU _msysmenu
hide menu _msysmenu
set dele on
SET TALK OFF
SET SAFETY OFF
SET DATE GERMAN
set escape off
set century on
************* Означення глобальних змінних
public gnpdv, znak, kurs, _YY_, _MM_, _yyarh_, _arh_, ACTIWIND, activind2, archiv, findstr, _minprcnad,
apname, findstr
public basesrahs, beforemm, beforeyear, _srtable_, _sttable_, _typeprn_
store ' ' to _sttable_, _srtable_, _tmpdt_, _tmpkt_, _typeprn_
********* Визначення базової директорії
ff = sys(16)
if 'FXP' $ FF OR 'PRG' $ FF
tt = rat('\',ff)
ff = left(ff,tt-1)
tt = rat('\',ff)
ff = left(ff,tt-1)
else
tt = rat('\',ff)
ff = left(ff,tt-1)
ENDIF
set defa to &ff
*-- Save and configure environment.
fpath = sys(5)+sys(2003)
g2 = fpath+'\sysapps;'
g3 = fpath+'\temp;'
g4 = fpath+'\datsets;'
g5 = fpath+'\reports;'
gpath = fpath+';'+ g2 +g3+g4+g5
set path to &gpath
if empty(howrah)
howrah = '60'
endif
_pathrah1 = alltrim(howrah)
hh = alltrim(howrah)
if len(hh) =2
*** добавляємо 00
_srtable_ = 'sr'+hh+'00'
else
_srtable_ = 'sr'+hh
endif
Додаток 22 (продовження)
_sttable_ ='set'+hh+'r'
g1 = fpath+'\R'+_pathrah1+';'
gpath = gpath+g1
SET PATH TO &gpath
if !file(_srtable_+'.dbf')
* create table &_srtable_ (pathfind m(4), archfind c(150), othefind c(150), basepath c(50))
* append blank
* use
* do form finddata to yy
* if empty(yy)
= messagebox("не знайдено файлу конфігурації")
close all
quit
* endif
endif
select 0
use &_srtable_
serverpath = pathFIND
_typeprn_ = typeprn
use
gpath = gpath+serverpath
SET PATH TO &gpath
SET CLASSLIB TO RAHS, diagram ADDITIVE
lcOnShutdown="ShutDown()"
ON SHUTDOWN &lcOnShutdown
ON ERROR ErrorHandler(ERROR(),PROGRAM(),LINENO())
*ON ERROR
_shell="DO Cleanup IN startprg"
apname = space(30)
findstr = space(20)
actiwind2 = .f.
public row_dos
row_dos = 63
_minprcnad = 40
findstr = space(50)
archiv = .f.
*SET PROC TO
SET PROCEDURE TO LIBRARY ADDITIVE
*ll = sysacces("0000003")
*if ll = -1
* close table all
* close data all
* ON ERROR
* ON SHUTDOWN
* retu
*endif
*-- Instantiate application object.
if !directory('temp')
md temp
endif
do setsetup
*do formclie
RELEASE goApp
PUBLIC goApp
goApp=CREATEOBJECT("cApplication")
goapp.appsoft = 0
*goapp.level = ll
*-- Configure application object.
otlb=createobject("tlbs")
*Otlb.Dock(0)
Додаток 22 (продовження)
Otlb.Show()
goApp.SetCaption('Рахунок '+alltrim(basesrahs))
goApp.cStartupMenu="MENUMENU.mpr"
do form f0000000
beforemm = _mm_
beforeyy = _yy_
*-- Show application.
goApp.Show
*-- Release application.
RELEASE goApp, otlb
*-- Restore default menu.
POP MENU _msysmenu
*-- Restore environment.
close table all
close data all
ON ERROR
ON SHUTDOWN
RETURN
*******************************************
FUNCTION ErrorHandler(nError,cMethod,nLine)
LOCAL lcErrorMsg,lcCodeLineMsg
WAIT CLEAR
lcErrorMsg=MESSAGE()+CHR(13)+CHR(13)
lcErrorMsg=lcErrorMsg+"Method: "+cMethod
lcCodeLineMsg=MESSAGE(1)
IF BETWEEN(nLine,1,10000) AND NOT lcCodeLineMsg="..."
lcErrorMsg=lcErrorMsg+CHR(13)+"Line: "+ALLTRIM(STR(nLine))
IF NOT EMPTY(lcCodeLineMsg)
lcErrorMsg=lcErrorMsg+CHR(13)+lcCodeLineMsg+chr(13)+chr(13)+'Припинити роботу?..'
ENDIF
ENDIF
IF MESSAGEBOX(lcErrorMsg,20,_screen.Caption)#6
RETURN .F.
else
QUIT
ENDIF
ENDFUNC
****************************************************
FUNCTION ShutDown
IF TYPE("goApp")=="O" AND NOT ISNULL(goApp)
RETURN goApp.OnShutDown()
ENDIF
Cleanup()
QUIT
ENDFUNC
FUNCTION Cleanup
IF CNTBAR("_msysmenu")=7
RETURN
ENDIF
ON ERROR
ON SHUTDOWN
SET CLASSLIB TO
*SET PATH TO
Додаток 22 (закінчення)
*CLEAR ALL
CLOSE ALL
close table all
close data all
POP MENU _msysmenu
RETURN
* p0000004
* Сальдо на поточний період на вказане число
local _nameorg, _ends
public fdata
lday = cdm(_mm_,_yy_)
fdata = ctod(str(lday,2)+'/'+str(_mm_,2)+'/'+str(_yy_,4))
do form getdata3 to ll
if empty(ll)
rele fdata
retu
endif
set textmerge on
set textmerge to t100004.txt noshow
set console off
public _br, ld, lk
_br = basesrahs
clrecv = ifused("recv")
clbases = ifused("bases")
clsaldos = ifused("saldos")
clclients = ifused(_clunions_)
_nameorg = recv.name
if clrecv
use in recv
endif
************************************************************************************
* Відбір даних по Д-ту вказаного рахунку
* та формування масиву відповідних рахунків
select * from bases ;
into table tdt1;
where dt = _br and month = _mm_ and year = _yy_ ;
order by codep
select * from tdt1 ;
into table tdt;
where daten <= fdata;
order by codep
public dime rds(1)
select distinct kt from tdt into array rds
ld = alen(rds)
if ld = 1 and empty(rds(1))
rds(1) = ' '
endif
dime sds(ld), zds(ld)
store 0 to sds, zds
************************************************************************************
* Відбір даних по K-ту вказаного рахунку
* та формування масиву відповідних рахунків
select * from bases ;
into table tkt1;
where kt = _br and month = _mm_ and year = _yy_;
order by codep
select * from tkt1 ;
into table tkt;
where daten <= fdata;
order by codep
public dime rks(1)
select distinct dt from tkt into array rks
lk = alen(rks)
if lk = 1 and empty(rks(1))
rks(1) = ' '
endif
dime sks(lk), zks(lk)
store 0 to sks, zks
*****************************************************
* Загальні суми
Додаток 23 (продовження)
store 0 to z_spd, z_spk, z_skd, z_skk, z_sod, z_sok
* по одному клієнту
* _spd - сальдо початкове по Д-ту
* _spk - сальдо початкове по К-ту
* _skd - сальдо кінцеве по К-ту
* _skk - сальдо кінцеве по Д-ту
* _sod - обороти по Д-ту
* _sok - обороти по К-ту
*
select (_clunions_)
do dgr_box with recc(), 'Побудова кінцевого сальдо','Pax.'+alltrim(_br)
\ <<_nameorg>>
\ Сальдо на кінець місяця по <<alltrim(_br)>> рах. Період: <<mstn(_mm_)>> <<_yy_>>p.
stor = 2
do sh00004
stor = stor +5
*set order to tag namep
npp = 0
scan
STORE 0 TO SKS, SDS
do dgr_mov
cd = codep
store 0 to _spd, _spk, _skd, _skk, _sod, _sok
select saldos
locate for codep = cd and month = _mm_ and year = _yy_ and dt = _br
if found()
_spd = sumdt
_spk = sumkt
endif
select tdt
scan for codep = cd and month = _mm_ and year = _yy_
for i = 1 to ld
if kt = rds(i)
sds(i) = sds(i) + sum &&накопичення по колонках
_sod = _sod +sum &&накопичення по рядку по Д-ту
endif
endfor
endscan
select tkt
scan for codep = cd and month = _mm_ and year = _yy_
for i = 1 to lk
if dt = rks(i)
sks(i) = sks(i) + sum &&накопичення по колонках
_sok = _sok +sum &&накопичення по рядку по K-ту
endif
endfor
endscan
_ends = _spd + _sod -(_spk + _sok)
do case
case _ends > 0
_skd = _ends
_skk = 0
case _ends < 0
_skk = (-1)*_ends
_skd = 0
endcase
*********************************************************************************
* Перевірка чи вносити рядок в TXT-файл
if empty(_sKd) and empty(_sKk) &&and empty(_sod) and empty(_sok)
* недрукуємо
else
*друкуємо
sele (_clunions_)
npp = npp+1
\<<str(npp,5)>>|<<left(namep,40)>>|
*** сальдо кінцеве
\\<<iif(empty(_skd),space(10), str(_skd,10,2))>>|
\\<<iif(empty(_skk),space(10), str(_skk,10,2))>>
**** підрахунок загальний сум
* поч.сальдо
z_spd = z_spd + _spd
Додаток 23 (продовження)
z_spk = z_spk + _spk
* Д-т
z_sod = z_sod + _sod
for i = 1 to ld
zds(i) = zds(i) + sds(i)
endfor
*К-т
z_sok = z_sok + _sok
for i = 1 to lk
zks(i) = zks(i) + sks(i)
endfor
* кін.сальдо
z_skd = z_skd + _skd
z_skk = z_skk + _skk
*******************************************
* Сторінка
stor = stor +1
if stor >=59
\<<chr(12)>>
stor = 7
do sh00004
endif
endif
select (_clunions_)
endscan
************
* Вивід загальних сум
do l00004
stor = stor +1
if stor >=59
\<<chr(12)>>
stor = 7
do sh00004
endif
\<<space(5)>>|<<padc('*** Всього ***',40,' ')>>|
*** сальдо кінцеве
\\<<iif(empty(z_skd),space(10), str(z_skd,10,2))>>|
\\<<iif(empty(z_skk),space(10), str(z_skk,10,2))>>
\ Згорнуте <<str(z_skd-z_skk,10,2))>>
\<<space(20)>>
do dgr_end
if clclients
sele (_clunions_)
use
endif
if clbases
use in bases
endif
if clsaldos
use in saldos
endif
if used("tdt")
use in tdt
endif
if used("tkt")
use in tkt
endif
if file("tdt.dbf")
erase tdt.dbf
endif
if file("tk.dbf")
erase tkt.dbf
endif
if used("tdt1")
use in tdt1
endif
if used("tkt1")
use in tkt1
endif
if file("tdt1.dbf")
erase tdt1.dbf
Додаток 23 (закінчення)
endif
if file("tkt1.dbf")
erase tkt1.dbf
endif
set textmerge to
set textmerge off
set console on
rele _nameorg, lk, ld, _br, _spd, _spk, _skd, _skk, _sod, _sok
rele z_spd, z_spk, z_skd, z_skk, z_sod, z_sok, sks, zks, sds, zds, rks, rds, fdata
**************************************
*
**************************************
PROCEDURE sh00004
* 1.
\-----+----------------------------------------+---------------------
* 2.***<<padc('П О С Т А Ч А Л Ь Н И К И
\ |<<space(40)>>|<<padc(' Сальдо на кін.місяця',21,' ')>>
* 3.
\ № +<<padc('П О С Т А Ч А Л Ь Н И К И',40,' ')>>+----------+----------
* 4.
\ |<<SPACE(40)>>+<<padc('Дебет',10,' ')>>+<<padc('Кредит',10,' ')>>
* 5.
\-----+----------------------------------------+----------+----------
RETU
**************************************
*
**************************************
PROCEDURE l00004
\-----+----------------------------------------+----------+----------
RETU
Додаток 2