Створення інформаційної системи обліку медичних препаратів ТОВ "Аптека 36,6"
Проектування бази даних ТОВ "Аптека 36,6". Загальна характеристика об'єкту, модель бізнес-процесу; стан комп'ютеризації. Розробка інформаційної системи: опис бази даних на інфологічному і даталогічному рівнях; забезпечення пошуку та фільтрування даних.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | украинский |
Дата добавления | 29.03.2012 |
Размер файла | 4,0 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Размещено на http://www.allbest.ru/
Міністерство освіти і науки України
Рівненський державний гуманітарний університет
Факультет документальних комунікацій та менеджменту
Кафедра економічної кібернетики
Спеціальність “Економічна кібернетика”
Курсова робота з дисципліни
Програмування обробки економічної інформації
на тему:
Створення інформаційної системи обліку медичних препаратів
ТОВ «Аптека 36,6»
Виконав: студент IІІ курсу
групи ЕК-31
Гаврилюк Віталій Вікторович
Науковий керівник:
в. Денищук Павло Миколайович
Рівне - 2010
ЗМІСТ
ВСТУП
РОЗДІЛ 1. ЗАГАЛЬНА ХАРАКТЕРИСТИКА ОБ'ЄКТУ
1.1 Опис основної діяльності підприємства
1.2 Організаційно-функціональна структура
1.3 Модель бізнес-процесів підприємств
РОЗДІЛ 2. ВИКОРИСТАННЯ КОМП'ЮТЕРНИХ ТЕХНОЛОГІЙ НА ПІДПРИЄМСТВІ
2.1 Стан комп'ютеризації підприємства
2.2 Інформаційні системи та технології в галузі та на підприємстві
2.3 Обґрунтування необхідності автоматизації процесів на підприємстві
РОЗДІЛ 3. РОЗРОБКА ІНФОРМАЦІЙНОЇ СИСТЕМИ
3.1 Вимоги підприємства до бази даних
3.2 Опис бази даних на інфологічному рівні
3.3 Опис бази даних на даталогічному рівні
РОЗДІЛ 4. РОЗРОБКА ТА ОПИС ІНФОРМАЦІЙНОЇ СИСТЕМИ
4.1 Основні вимоги підприємства до інформаційної системи
4.2 Опис інтерфейсу інформаційної системи
4.3 Алгоритми відображення форм, додавання нових даних, їх редагування та видалення
4.4 Алгоритми пошуку, фільтрування та сортування даних на формах
4.5 Алгоритми експорту даних у MS Excel і MS Word
РОЗДІЛ 5. НЕРЕАЛІЗОВАНІ МОЖЛИВОСТІ ТА ШЛЯХИ ВДОСКОНАЛЕННЯ ІНФОРМАЦІЙНОЇ СИСТЕМ
ВИСНОВКИ
СПИСОК ВИКОРИСТАНОЇ ЛІТЕРАТУРИ
ВСТУП
Актуальність теми роботи. Інформаційні системи автоматизації роботи різноманітних фірм та підприємств з'явилися порівняно недавно, проте за останні кілька років процес розвитку комп'ютерної техніки, а зим і прикладного програмного, забезпечення досяг значних висот. Сьогодні комп'ютерна техніка стала звичним «знаряддям праці», оскільки допомагає ефективно обробляти необхідну інформацію, наприклад, про надання послуг, кількість клієнтів, реалізацію товарів тощо.
Так, інформаційні системи автоматизації роботи застосовуються й в аптечних установах. Зокрема, у ТОВ «Аптека 36,6» такі системи призначені для того, аби максимально полегшити діяльність працівників аптеки. Адже ефективно обробляти данi про клієнтів та постачальників, інформацію про співробітників, вести облік медичних препаратів та їх цін, оперативно аналiзувати прибутки вiд діяльності ТОВ «Аптека 36,6» загалом неможливо без використання обчислювальної технiки. Аналогічні інформаційні системи розроблялися і раніше, проте постійне введення нових препаратів, збільшення кількості працівників, поява нової комп'ютерної техніки зумовлюють створення нових унiверсальних систем автоматизацiї дiяльностi аптеки.
Функціонування бази даних ТОВ «Аптека 36,6» та відповідних інформаційних систем допомагає здійснювати ефективну роботу установи, контролювати її діяльність, забезпечувати надійний захист даних, сприяє вдосконаленню діяльності аптеки загалом та підвищенню якості обслуговування населення.
Мета роботи - полягає у створенні інформаційної системи автоматизації роботи ТОВ «Аптека 36,6» шляхом використання різноманітних інформаційних об'єктів Delphi 7 і MySQL, що дасть змогу повніше і швидше аналізувати і перетворювати вхідну інформацію у вихідну.
Завдання роботи випливають з поставленої мети:
- проаналiзувати предметну область, наявнi вхiднi та вихiднi документи та здiйснити проектування на зовнiшньому рiвнi інформаційної системи ТОВ «Аптека 36,6»;
- використовуючи результати проектування на зовнiшньому рiвнi, виконати проектування інформаційної системи аптеки на iнфологiчному рiвнi;
- створити інформаційну систему ТОВ «Аптека 36,6» за допомогою MySQL і BorlandDelphi7, охарактеризувати структуру розроблених таблиць, обгрунтувати параметри кожного встановленого структурного зв'язка мiж таблицями;
- розробити форми для забезпечення редагування даних таблиць бази даних;
- створити у формах засоби для забезпечення ефективного пошуку та фiльтрування даних;
- органiзувати ефективне централiзоване управлiння вiзуальними об'єктами системи за допомогою головної форми. Оснастити створенi форми необхiдними кнопками та iншими засобами автоматизації.
- визначити шляхи подальшого вдосконалення розробленої інформаційної системи, навести рекомендацiї стосовно її експлуатацiї.
Об'єктом дослідження даної курсової роботи є проектування бази даних та створення інформаційної системи ТОВ «Аптека 36,6».
Предметом дослідження є діяльність ТОВ «Аптека 36,6».
Методи дослідження обумовленні об'єктом і предметом аналізу курсової роботи:
- для визначення актуальності теми застосовано системно-дiяльнiсний пiдхiд як загальнонауковий принцип дослідження;
- при опрацюваннi вхiдної, вихiдної та нормативно-довiдкової iнформації були використанi загальнонаукові методи аналiзу, синтезу, абстрагування та узагальнення;
- в процесi проектування на зовнiшньому рiвнi та пiд час написання курсової роботи були використанi методи якiсного та кiлькiсного аналiзу, елементи контент-аналiзу;
- при створеннi iнфологiчної моделi та в процесi виконання проектування бази даних на даталогiчному рiвнi був використаний метод моделювання.
Теоретична та практична цiннiсть курсової роботи полягає у тому, що створення нормалiзованої iнформацiйно-логiчної моделi бази даних облiку роботи ТОВ «Аптека 36,6» дозволяє розробити дiєздатну інформаційну систему автоматизацiї діяльності обраної предметної областi. Також виконання курсової роботи сприяє поглибленню теоретичних знань автора з проектування бази даних, дозволяє отримати практичнi навики розробки коректної структури бази даних та вiдповiдної інформаційної системи, навчитися логiчно та чiтко описувати етапи створення системи, аналiзувати її недолiки та переваги.
Структура роботи зумовлена вiдповiдною послiдовністю проектування бази даних та розробки вiдповiдної інформаційної системи. Дана робота передбачає наявність вступу, який окреслює загальний зміст роботи, трьох розділів, що містять основну характеристику об'єкту дослідження та опис методики розробки інформаційної системи, і висновків, які узагальнюють досягнуті результати дослідження i висвітлюють подальші тенденції розробки теми.
РОЗДІЛ 1. ЗАГАЛЬНА ХАРАКТЕРИСТИКА ОБ'ЄКТУ
1.1 Опис основної діяльності підприємства
ТОВ «Аптека 36,6» створено відповідно до Цивільного та Господарського кодексів України, Законів України «Про господарські Товариства», «Про підприємництво», «Про власність», шляхом об'єднання часток майна та грошових коштів засновників. Уся робота ТОВ «Аптека 36,6» здійснюється відповідно до його Статуту та законодавчих актів, які регламентують його діяльність, а саме: Законів України «Про лікарські засоби», «Про захист прав споживачів», «Про забезпечення санітарного та епідемічного благополуччя населення», «Про ліцензування окремих видів господарської діяльності», «Про рекламу», Указу Президента «Концепція розвитку охорони здоров'я населення України», а також відповідних Постанов Кабінету Міністрів України та Наказів Міністерства охорони здоров'я України.
ТОВ «Аптека 36,6» створено з метою здійснення виробничо-господарської, комерційної та інших видів діяльності. Предметом діяльності ТОВ «Аптека 36,6» згідно його Статуту є:
- виготовлення ліків в умовах аптеки;
- виготовлення ліків в асептичних умовах аптеки;
- фасування виготовлених ліків та фасування медикаментів, виробів медичного призначення заводського виробництва;
- виробництво, роздрібний продаж населенню, лікувально-профілактичним закладам та іншим організаціям лікарських засобів та препаратів;
- проведення науково-практичних семінарів, виставок та інших заходів з питань застосування лікарських та медичних препаратів;
- медичні послуги, створення лікувальних установ, оздоровчих центрів, пунктів охорони здоров'я;
- виробництво і роздрібна реалізація медичної техніки, оптики, предметів санітарії та гігієни вітчизняного й іноземного виробництва, сумішей дитячого харчування;
- виробництво і роздрібна реалізація косметичних засобів, біологічно-активних добавок;
- організація навчання та підвищення кваліфікації за фахом;
- виробництво та реалізація рекламної продукції тощо.
Також відповідно до Статуту ТОВ «Аптека 36,6» займається господарською та фінансовою діяльністю. Господарська діяльність Товариства ґрунтується на принципах самоокупності і самофінансування в національній та іноземній валютах. Відносини Товариства з іншими організаціями і громадянами в усіх сферах господарської діяльності здійснюються на основі договорів. Товариство несе у встановленій законодавством та договорами формі і порядку відповідальність за невиконання своїх обов'язків перед державою, учасниками, постачальниками, споживачами, підрядчиками та іншими особами.
ТОВ «Аптека 36,6» з моменту його державної реєстрації є юридичною особою, створеною за законодавством України, і має право здійснювати будь-які дії та займатися будь-якою діяльністю, якщо такі дії або така діяльність не заборонені законодавством.
1.2 Організаційно-функціональна структура
Організаційно-функціональна структура ТОВ «Аптека 36,6» має вигляд схематично зображений на Рис. 1.1.
Згідно Статуту ТОВ «Аптека 36,6» органами управління даного Товариства є загальні Збори його учасників. Загальні Збори Товариства своїм рішенням створюють виконавчий орган Товариства. Згідно Статуту виконавчим органом ТОВ «Аптека 36,6» є Директор, який є посадовою особою Товариства та одноосібно здійснює функції по управлінню Товариством, а також Дирекція, до складу якої входять Директор, керівники структурних підрозділів Товариства, його спеціалісти.
Рис. 1.1 Організаційно-функціональна структура ТОВ «Аптека 36,6»
Директор заключає договори з постачальниками на аптечну і промислову роботу. Внутрішній контроль за господарською та фінансовою діяльністю ТОВ «Аптека 36,6» здійснює Ревізійна комісія.
Персонал ТОВ «Аптека 36,6», згідно Статуту, становлять усі громадяни, які своєю працею беруть участь в його діяльності на основі трудового договору (контракту, угоди), а також інших форм, що регулюють трудові відносини.
1.3 Модель бізнес-процесів підприємства
Загальна структура бізнес-процесів, що функціонують у товаристві зображена на Рис. 1.2:
Дана схема демонструє внутрішню структуру ТОВ «Аптека 36,6», взаємодію структурних підрозділів Товариства на внутрішньому рівні, а також основні процеси зовнішньої діяльності Товариства.
Рис. 1.2 Загальна структура бізнес-процесів ТОВ «Аптека 36,6»
Як бачимо з Рис. 1.2, на зовнішньому рівні ТОВ «Аптека 36,6» співпрацює з Фірмою постачальником, яка виконує замовлення Товариства на сировину та медикаменти, а також з Клієнтом, який може придбати у Рецептурному або Безрецептурному відділі ТОВ «Аптека 36,6» готові медичні препарати, предмети гігієни та санітарії, косметичні засоби, біологічно-активні добавки.
Основну роботу з вхідною та вихідною документацією ТОВ «Аптека 36,6» здійснює Бухгалтерія. Як показано на Рис. 1.2, Бухгалтерія обробляє документацію Фірми постачальника, відомості про виконане замовлення від Асистентської кімнати, встановлює ціну на виготовлений препарат. Оброблену документацію Бухгалтерія передає до Рецептурного та Безрецептурного відділів.
Виготовлення препаратів з отриманої від Фірми постачальника сировини здійснюють працівники Асистентської кімнати. За збереження сировини та готових препаратів відповідає персонал Матеріальної кімнати.
Рецептурний та Безрецептурний відділи, до яких надходять готові препарати, предмети гігієни та санітарії, косметичні засоби, біологічно-активні добавки з Матеріальної кімнати, співпрацюють безпосередньо з Клієнтом. Рецептурний та Безрецептурний відділи здійснюють роздрібний продаж населенню, лікувально-профілактичним закладам та іншим організаціям лікарських засобів та препаратів, надають консультаційні та інформаційні послуги клієнтам, приймають замовлення на відсутній препарат.
Метою діяльності ТОВ «Аптека 36,6» є виробництво та роздрібна реалізація медикаментів, засобів санітарії і гігієни, косметичних засобів, біологічно-активних добавок.
Модель бізнес-процесів ТОВ «Аптека 36,6» будується відповідно до основних принципів методології SADT. SADT-модель дає повний і точний опис системи, що має конкретне призначення.
SADT-модель вказаного підприємства має вигляд (Див. Рис. 1.3):
Рис. 1.3 Загальна SADT- діаграма бізнес-процесу ТОВ «Аптека 36,6»
На вході системи, як бачимо з рисунка 1.3, знаходиться сировина, яка поступає для виготовлення препаратів, медикаменти для продажу, а також клієнти, які здійснюють замовлення на відсутній препарат.
Виготовлення та реалізація медичних препаратів, засобів гігієни та санітарії, косметичних засобів здійснюється на основі законодавства України про лікарські засоби та охорону здоров'я, якими керується у своїй діяльності ТОВ «Аптека 36,6» (Закони України, Укази Президента, Постанови Кабінету Міністрів України, Накази МОЗ України).
Відповідно на виході системи після ефективної, взаємозлагодженої роботи структурних підрозділів ТОВ «Аптека 36,6» знаходиться клієнт, який отримав необхідний лікарський засіб з відповідною гарантією якості.
Після декомпозиції загальної моделі бізнес-процесу ТОВ «Аптека 36,6» утворюється чотири окремі діаграми, побудованих відповідно до основних принципів методології SADT.
Перша схема (Див. Рис. 1.4) відображає загальну схему послідовності подій здійснення діяльності ТОВ «Аптека 36,6».
Рис.1.4 Діаграма загальної схеми діяльності ТОВ «Аптека 36,6»
Дана діаграма відображає чотири основні функції, які ілюструють послідовність взаємодії Товариство - Клієнт: блок 1 - прийом замовлення від клієнта, блок 2 - процес виготовлення препарату, блок 3 - передача готового лікарського засобу клієнту фармацевтом, блок 4 - контроль якості за всіма попередніми процесами.
При деталізації кожного блоку діаграми утворюється три SADT- моделі, які забезпечують покроковий опис етапів взаємодії Товариство - Клієнт.
Прийом замовлення від Клієнта проводиться персоналом ТОВ «Аптека 36,6» і передбачає:
- реєстрація даних про Клієнта у списку замовлень;
- вибір необхідних препаратів;
- оформлення замовлення. (Див. Рис. 1.5)
Рис. 1.5 Прийом замовлення від Клієнта
Таким чином на даному етапі здійснюється прийом та обробка замовлення на певний препарат від Клієнта. Даний процес регулюється Положенням законодавства України про лікарські засоби та охорону здоров'я, МІС та відповідною довідковою літературою.
Наступним кроком взаємодії Товариство - Клієнт є процес безпосереднього виготовлення препарату, який передбачає:
- перегляд здійсненого замовлення;
- складання плану виконання даного замовлення;
- виконання поставлених завдань;
- передачу виконаного замовлення (готового препарату) Клієнту. (Див. Рис. 1.6)
Рис. 1.6 Виготовлення препарату
Передача готового препарату Клієнту передбачає наступні кроки:
- видача лікарського засобу фармацевтом;
- оформлення інформації про виконане замовлення у журнал;
- отримання препарату Клієнтом. (Див. Рис. 1.7)
Моделювання бізнес-процесу взаємодії Товариство-Клієнт за допомогою обраної методології побудови SADT-діаграм допомогло краще зрозуміти і відобразити функції діяльності ТОВ «Аптека 36,6» та взаємозв'язки між її структурними підрозділами.
Рис.1.7 Видача препарату
РОЗДІЛ 2. ВИКОРИСТАННЯ КОМП'ЮТЕРНИХ ТЕХНОЛОГІЙ НА ПІДПРИЄМСТВІ
2.1 Стан комп'ютеризації підприємства
Існуючий рівень комп'ютеризації діяльності ТОВ «Аптека 36,6» схематично зображено на Рис. 2.1.
Рис. 2.1 Існуючий рівень комп'ютеризації діяльності ТОВ «Аптека 36,6»
У діяльності ТОВ «Аптека 36,6» використовується шість комп'ютерів, які пов'язані між собою мережею із рівною можливістю доступу для всіх користувачів даного Товариства. Головний комп'ютер та сервер, а також модем, розміщені у кабінеті Директора. Решта комп'ютерів знаходяться у Рецептурному відділі, Безрецептурному відділі, Бухгалтерії, Матеріальній та Асистентській кімнаті.
Наявність комп'ютерів у кожній структурній одиниці дозволяє накопичувати значну кількість інформації в електронному вигляді та організовувати діяльність Товариства на належному рівні.
Існуючий рівень автоматизації ТОВ «Аптека 36,6» дозволяє:
- вести облік медичних препаратів, засобів гігієни та санітарії, косметичних засобів та біологічно-активних добавок;
- вести кошторис витрат;
- готувати первинні фінансово-господарські документи;
- вести довідково-пошукову роботу в Інтернеті;
- проводити аналіз якості підбору і розміщення кадрів;
- формувати та роздруковувати необхідні звіти тощо.
Програмне забезпечення, яке використовується у роботі, є стандартним набором програм загального офісного забезпечення - Microsoft Office та інші подібні програмні пакети загального поширення. Персоналом ТОВ «Аптека 36,6» створено загальну базу даних препаратів, яка оновлюється згідно з відсутністю/наявністю певного препарату на складі ТОВ «Аптека 36,6».
Отже, як бачимо, існуючий рівень комп'ютеризації діяльності Товариства не охоплює всіх бізнес-процесів ТОВ «Аптека 36,6», оскільки не є пов'язаним із організацією роботи самого підприємства, а використовується переважно для формування звітності та роботи із документацією. Відсутність глобальної мережі, яка б поєднувала принаймні всі аптечні установи міста, обмежує можливості надання персоналом ТОВ «Аптека 36,6» своєчасного та якісного сервісу клієнтам.
2.2 Інформаційні системи та технології в галузі та на підприємстві
Комп'ютерне й інформаційне забезпечення, що використовується для роботи у ТОВ «Аптека 36,6», недостатнє для якісного ведення бізнесу. Адже в установі застосовується лише стандартний набір програм загального офісного забезпечення - Microsoft Office та інші подібні програмні пакети загального поширення, створено елементарну базу даних, що не охоплює всіх бізнес-процесів ТОВ «Аптека 36,6».
У зв'язку зі значним об'ємом інформації, яку використовує ТОВ «Аптека 36,6», а також зростанням потреби пошуку конкретних, необхідних в певний момент чи в певній ситуації, даних, виникає необхідність якісної комп'ютеризації та автоматизації діяльності установи, впровадження новітніх інформаційних систем. Адже інформаційні технології здатні поєднувати у собі технічні можливості обчислювальної техніки, засобів зв'язку, інформатики, вони спрощують роботу зі збору, накопичення, оброблення, аналізу, доставки інформації споживачам. За допомогою інформаційних систем та технологій значно легше здійснити автоматизацію рутинних операцій управління, підготовку аналітичної інформації для прийняття управлінських рішень, а також забезпечити нові види інформаційного обслуговування.
У роботі ТОВ «Аптека 36,6» застосовується програмний комплекс TradePharm 5.0.
На робочому місці провізора встановлюється клієнтська і серверна (база даних) частина програми TradePharm 5.0, а також, при необхідності, драйвер фіскального реєстратора і модуль підтримки дисконтних карт. Тобто даний комп'ютер виступатиме в ролі сервера даних (всі дані знаходитимуться на ньому). На комп'ютері провізора встановлюються модулі «Логістика» і «Обслуговування» програмного комплексу TradePharm. Перший дозволяє організувати повний цикл обслуговування клієнта в перебігу торгової зміни, другий встановлюється як додаткове робоче місце для ведення складського обліку і доступу до аналітичних даних. На робочому місці завідувача встановлено тільки клієнтську частину програми TradePharm 5.0. Тут відбувається прийом товару, ціноутворення, інвентаризація і т.д.
2.3 Обґрунтування необхідності автоматизації процесів на підприємстві
Існуючий рівень автоматизації діяльності Товариства не охоплює всіх бізнес-процесів ТОВ «Аптека 36,6», оскільки у більшості не є пов'язаним із організацією роботи самого підприємства, а використовується переважно лише для формування звітності та роботи із документацією.
Для оптимізації та раціоналізації бізнес-процесів ТОВ «Аптека 36,6» необхідно підвищити рівень автоматизації, розробити та впровадити нові методи і шляхи взаємодії Товариство-Клієнт, а також здійснити заміну застарілого обладнання на нове.
Високий рівень автоматизації бізнес-процесів ТОВ «Аптека 36,6» сприятиме:
- підвищенню ефективності управління за рахунок забезпечення керівників і персоналу Товариства повною, оперативною і достовірною інформацією на основі єдиного банку даних;
- покращенню ведення діловодства за допомогою оптимізації і стандартизації документообігу, автоматизації найбільш об'ємних процесів;
- зниженню витрат на ведення справ за рахунок автоматизації процесів обробки даних, спрощення доступу персоналу до необхідної інформації;
- зменшенню об'ємів рутинної роботи для персоналу, що дасть можливість зосередитися на професійно важливих справах;
- забезпеченню ведення надійного обліку і якісного контролю фінансових надходжень і витрат на всіх рівнях управління;
- підвищенню оперативності аналізу, підготовки зведених та аналітичних звітів для керівництва та суміжних структурних підрозділів;
- покращенню процесу обміну даними між окремими структурними підрозділами;
- підвищенню рівня безпеки і цілісності даних на всіх етапах обробки інформації.
- підвищенню рівня обліку надходження медичних препаратів від постачальників;
- підвищенню рівня оперативності аналізу даних про реалізацію медичних препаратів;
Для якісної взаємодії Товариство - Клієнт замало існування лише бази даних медичних препаратів, які є в наявності на складі ТОВ «Аптека 36,6». Для підвищення якості діяльності даної установи необхідно розробити та впровадити базу даних, яка міститиме інформацію про постачальників, співробітників, клієнтів, реалізацію товарів тощо.
Отже, підвищення рівня автоматизації діяльності ТОВ «Аптека 36,6» є необхідною умовою покращення роботи даної установи.
РОЗДІЛ 3. РОЗРОБКА ІНФОРМАЦІЙНОЇ СИСТЕМИ
3.1 Вимоги підприємства до бази даних
Опис об'єктів бази даних (таблиць)
В результаті проведення аналізу вхідної і вихідної документації було встановлено, що ТОВ «Аптека 36,6» є складною багатофункціональною системою. При проектуванні схеми бази даних ТОВ «Аптека 36,6» особливу увагу було приділено надходженню та реалізації медичних препаратів. Але паралельно з цим, меншою мірою, відображається процес обліку постачань і замовлень. Після дослідження предметної області, було вирішено оснастити систему рядом додаткових функцій, які б підвищили її ефективність.
Для ефективної роботи дана система повинна виконувати такі основні завдання:
- вести облік медикаментів;
- облік відділів;
- облік складу;
- облік рецептів;
- облік співробітників;
- облік клієнтів;
- облік постачальників;
- вести облік постачань;
- вести облік продаж;
- облік доставки.
При вивченні нормативно довідкових документів було отримано перелік таблиць умовно-постійної інформації, а саме: Клієнти, Медикаменти, Постачальники, Постачання, Продаж, Рецепти, Склад, Відділи, Співробітники, Послуги доставки.
В результаті дослідження процесу перетворення вхідної документації у вихідну, створено перелік реквізитів атрибутів, що мають зберігатись.
Розглянемо більш детальніше структуру кожної із таблиць.
Для обліку медикаментів була створена таблиця Медикаменти, яка у своїй структурі містить такі поля:
- Код медикаменту;
- Назва медикаменту;
- Виробник;
- Дата виготовлення;
- Термін придатності.
Для обліку відділів підприємства створена відповідна таблиця Відділи, що містить такі поля:
- Код відділу;
- Назва відділу;
- Телефон.
Для обліку всіх медикаментів, які знаходяться на складі було створену таблицю Склад з такими полями:
- Код складу;
- Назва складу;
- Код медикаменту;
- Кількість.
Щоб вести облік рецептів, які надходять в товариство нами була створена таблиця Рецепти з такими полями:
- Код рецепту;
- Тип рецепту;
- Лікувальний заклад;
- Лікар;
- Термін дії;
- Код клієнта.
Для ведення інформації про співробітників була створена таблиця Співробітники, яка у своїй структурі має такі поля:
- Код співробітника;
- ПІБ співробітника;
- Дата народження;
- Серія і номер паспорта;
- ІПН;
- Телефон;
- Адреса;
- Посада;
- Оклад;
- Дата влаштування;
- Код відділу.
Для обліку клієнтів товариства створена таблиця Клієнти, яка містить такі поля:
- Код клієнта;
- Назва клієнта;
- Адреса;
- Телефон;
- Код ЄДРПОУ;
- Розрахунковий рахунок.
Інформація про всіх постачальників міститься в таблиці Постачальники, яка містить поля:
- Код постачальника;
- Назва постачальника;
- Адреса;
- Телефон;
- Код ЄДРПОУ;
- Розрахунковий рахунок;
- Номер ліцензії.
Для обліку постачань, що надходять в ТОВ «Аптека 36,6» створено таблицю Постачання з такими полями:
- Код постачання;
- Код постачальника;
- Код співробітника;
- Код медикаменту;
- Код складу;
- Кількість;
- Ціна;
- Сума;
- Дата постачання;
- Код доставки.
Для ведення обліку продаж підприємства нами було створено таблицю Продаж з такими полями:
- Код продаж;
- Код співробітника;
- Код клієнта;
- Код медикаменту;
- Код рецепту;
- Кількість;
- Ціна;
- Сума;
- Дата продаж;
- Код доставки.
Для інформації про види доставки було створено таблицю Послуги доставки з такими полями:
- Код доставки;
- Назва доставки;
- Ціна.
3.2 Опис бази даних на інфологічному рівні
В процесі проектування інформаційної системи ТОВ «Аптека 36,6» на інфологічному рівні було виділено десять таблиць-об'єктів. Графічне зображення структури виділених таблиць наведено на рис. 3.1.
Рис. 3.1 Схема даних інформаційної системи ТОВ «Аптека 36,6»
Атрибути кожної окремої таблиці знаходяться у співвідношенні 1:?, оскільки одному атрибуту з однієї сукупності відповідає декілька атрибутів з іншої сукупності.
Облік співробітників реалізується за допомогою таблиці Співробітники, яка пов'язана з таблицями Постачання і Продаж за допомогою ключового поля Код співробітника, яке в таблицях постачання і продаж відображає прізвище співробітника.
Таблиця Відділи пов'язана із таблицею Співробітники співвідношенням 1:?, тобто за допомогою цього у таблиці співробітники міститься додаткова інформація про відділ в якому працює співробітник.
Облік клієнтів реалізується за допомогою таблиці Клієнти, яка пов'язана з таблицями Рецепти і Продаж за допомогою ключового поля Код клієнта, яке в таблиці рецепти і продаж відображає назву клієнта.
Облік постачальників реалізується за допомогою таблиці Постачальники, яка пов'язана з таблицею Постачання співвідношенням 1:? (за допомогою ключового поля Код постачальника, яке в таблиці постачання відображає назву постачальника).
Таблиця Послуги доставки пов'язана з таблицями Постачання і Продаж за допомогою ключового поля Код доставки, яке в таблицях постачання і продаж відображає назву доставки (співвідношення 1:?).
Таблиця Склад пов'язана з таблицею Постачання співвідношенням 1:? (за допомогою ключового поля Код складу, яке в таблиці постачання відображає назву складу).
Облік медикаментів реалізується за допомогою таблиці Медикаменти, яка пов'язана з таблицями Постачання, Продаж і Склад за допомогою ключового поля Код медикаменту, яке в таблицях постачання, продаж і склад відображає назву медикаменту який постачається, продається чи зберігається (співвідношення 1:?).
Облік рецептів реалізується за допомогою таблиці Рецепти, яка пов'язана з таблицею Продаж співвідношенням 1:? (за допомогою ключового поля Код рецепту, яке в таблиці продаж відображає тип рецепту по якому здійснюється відпуск ліків).
3.3 Опис бази даних на даталогічному рівні
При проектуванні бази даних на даталогічному рівні задаються первинні та вторинні ключі, індекси, розміри та інші властивості полів. В цілому формується загальна структура таблиць, визначаються поля по яких буде здійснено зв'язок між таблицями. Створення структури є важливим процесом, адже в майбутньому при виявлені недоліків можливо буде потрібно реконструювати всю структуру системи, тому на цьому етапі проектування потрібно буду дуже уважним.
Всі таблиці створені відповідно до специфіки основної діяльності ТОВ «Аптека 36,6». Також, всі поля таблиць відповідають критеріям відповідності типів даних, що дозволяє вносити інформацію тільки потрібного формату. Так як, чимало однакових полів використовуються в різних таблицях, спочатку було створено підпорядковані таблиці, з яких ці поля підставлялися в головні. Це розроблено для ефективної і якісної обробки інформації, а також з метою економії часу.
Розглянемо більш детальніше структуру кожної із таблиць.
Таблиця
Медикаменти має таку структуру і розміри полів:
Ім'я поля |
Тип даних |
Розмір поля |
|
KodMedukamenty |
Autoincrement |
3 |
|
NazvaMedukamenty |
Сhar |
50 |
|
Vurobnuk |
Сhar |
50 |
|
DataVugotovlenya |
Date |
||
TerminPrudatnosti |
Date |
Таблиця
Рецепти має таку структуру і розміри полів:
Ім'я поля |
Тип даних |
Розмір поля |
|
KodRecepty |
Autoincrement |
3 |
|
TupRecepty |
Сhar |
50 |
|
Zaklad |
Сhar |
70 |
|
Likar |
Сhar |
55 |
|
TerminDii |
Date |
||
KodKlienta |
Іnt |
3 |
Таблиця
Склад має таку структуру і розміри полів:
Ім'я поля |
Тип даних |
Розмір поля |
|
KodSklady |
Autoincrement |
3 |
|
NazvaSklady |
Сhar |
50 |
|
KodMedukamenty |
Іnt |
3 |
|
Kilkist |
Іnt |
4 |
Таблиця Відділи має таку структуру і розміри полів:
Ім'я поля |
Тип даних |
Розмір поля |
|
KodViddily |
Autoincrement |
3 |
|
NazvaViddily |
Сhar |
25 |
|
Telefon |
Іnt |
6 |
Таблиця
Послуги доставки має таку структуру і розміри полів:
Ім'я поля |
Тип даних |
Розмір поля |
|
KodDostavku |
Autoincrement |
3 |
|
NazvaDostavku |
Сhar |
40 |
|
Cina |
Float |
Таблиця
Клієнти має таку структуру і розміри полів:
Ім'я поля |
Тип даних |
Розмір поля |
|
KodKlienta |
Autoincrement |
3 |
|
NazvaKlienta |
Сhar |
50 |
|
Adresa |
Сhar |
55 |
|
Telefon |
Іnt |
6 |
|
KodEDRPOY |
Іnt |
8 |
|
Rahynok |
Іnt |
8 |
Таблиця
Постачальники має таку структуру і розміри полів:
Ім'я поля |
Тип даних |
Розмір поля |
|
KodPostachalnuka |
Autoincrement |
3 |
|
NazvaPostachalnuka |
Сhar |
70 |
|
Adresa |
Сhar |
50 |
|
Telefon |
Іnt |
6 |
|
KodEDRPOY |
Іnt |
8 |
|
Rahynok |
Іnt |
8 |
|
NomerLicenzii |
Іnt |
5 |
Таблиця
Постачання має таку структуру і розміри полів:
Ім'я поля |
Тип даних |
Розмір поля |
|
KodPostachanya |
Autoincrement |
3 |
|
KodPostachalnuka |
Іnt |
3 |
|
KodSpivrobitnuka |
Іnt |
3 |
|
KodMedukamenty |
Іnt |
3 |
|
KodSklady |
Іnt |
3 |
|
Kilkist |
Іnt |
4 |
|
Cina |
Float |
||
Syma |
Float |
||
DataPostachanya |
Date |
||
KodDostavku |
Іnt |
3 |
Таблиця
Продаж має таку структуру і розміри полів:
Ім'я поля |
Тип даних |
Розмір поля |
|
KodProdazhy |
Autoincrement |
3 |
|
KodSpivrobitnuka |
Іnt |
3 |
|
KodKlienta |
Іnt |
3 |
|
KodMedukamenty |
Іnt |
4 |
|
KodRecepty |
Іnt |
3 |
|
Kilkist |
Іnt |
4 |
|
Cina |
Float |
||
Syma |
Float |
||
DataProdazhy |
Date |
||
KodDostavku |
Іnt |
3 |
Таблиця
Співробітники має таку структуру і розміри полів:
Ім'я поля |
Тип даних |
Розмір поля |
|
KodSpivrobitnuka |
Autoincrement |
3 |
|
PIBSpivrobitnuka |
Сhar |
70 |
|
DataNarodzhenya |
Date |
||
SeriaNomerPasporta |
Сhar |
8 |
|
IPN |
Іnt |
10 |
|
Telefon |
Іnt |
6 |
|
Adresa |
Сhar |
50 |
|
Posada |
Сhar |
30 |
|
Oklad |
Float |
||
DataVlashtyvanya |
Date |
||
KodViddily |
Іnt |
2 |
інформаційний база даний аптека
РОЗДІЛ 4. РОЗРОБКА ТА ОПИС ІНФОРМАЦІЙНОЇ СИСТЕМИ
4.1 Основні вимоги підприємства до інформаційної системи
Опис функцій інформаційної системи
Незважаючи на наявність розроблених універсальних систем автоматизації діяльності організацій, нові системи аналогічного спрямування створюються і в наш час та будуть, безсумнівно, створюватися і надалі. Це пов'язано, з одного боку, з неможливістю розробки єдиної універсальної системи, яка б змогла врахувати особливості діяльності усіх відділів даної галузі, а з іншого - з бажанням кожного керівника мати індивідуальну інформаційну систему для забезпечення надійного захисту даних. Проектування нових альтернативних баз даних та створення відповідних інформаційних систем дозволяє глибше проаналізувати предметну область, сприяючи тим самим підвищенню якості програмних продуктів цього напрямку.
При проектуванні бази даних та створенні інформаційної системи ТОВ «Аптека 36,6» слід насамперед автоматизувати облік постачання і продажу медичних препаратів, а також облік що стосується всієї довідкової інформації.
Товариство працює з сталою кількістю постачальників, які з часом можуть змінюватись. Тому ефективним є створення таблиці в якій вказуються назви постачальників, їхні адреса, телефон тощо. А також таку саму таблицю для клієнтів, які купують медичні препарати гуртом або для тих хто купує медикаменти по рецепту. Для того, щоб мати всю необхідну інформацію про препарати і рецепти за якими вони купуються доцільним є створення таблиць медикаменти та рецепти. В процесі діяльності ТОВ «Аптека 36,6» до нього може бути поставлено декілька закупок від різних постачальників або товариство може декілька раз продавати медикаменти різним клієнтам, тому їх дані слід зберігати в окремих таблицях (постачання та продаж відповідно) та використовувати при потребі.
Свою діяльності ТОВ «Аптека 36,6» реалізує у різних відділах, тому ефективно створити таблицю, в якій би вказувались назви відділів їхні телефони. В кожному відділі працює декілька співробітників, тому слід створити таблицю, де б вказувалась інформація про співробітників.
В активах підприємства є автомобілі, за допомогою яких воно доставляє куплені медикаменти з пунктів прийому розміщених по місту і за його межами на свій склад, а також доставляє медичні препарати для тих клієнтів, які закупили досить велику кількість. Тому необхідно створити таблиці, які б облікували ці види доставки.
Також інформаційна система повинна:
- працювати під управлінням операційної системи Windows XP, Vista, Seven;
- бути розроблена система захисту даних інформаційної системи від пошкоджень та несанкціонованого доступу;
- автоматично запускатися при початковому старті комп'ютера;
- відображати усі необхідні складові елементи;
- мати простий інтерфейс і не дозволяти користувачу виконувати зайві дії;
- при декомпозиції мають бути встановлені такі зв'язки між структурними елементами системи, які забезпечують цілісність інформаційної системи та її взаємодію з іншими системами.
Важливою умовою створення високоефективної інформаційної системи є орієнтація на кінцевого користувача, який не має значного досвіду користування комп'ютерною технікою. Якість інформаційних систем визначається їх ефективністю та надійністю.
4.2 Опис інтерфейсу інформаційної системи
Інтерфейс повинен відповідати таким основним критеріями: природність, послідовність, стислість, підтримка користувача та гнучкість.
Після запуску інформаційної системи з'являється вікно призначене для введення паролю. Вигляд даного вікна показано на рис. 4.1.
Рис. 4.1 Вікно входу в систему
Для нашої інформаційної системи передбачено ім'я користувача і пароль по замовчуванню (User Name - root; Password - root). Якщо користувач правильно ввів пароль то для нього з'являється головне вікно системи, форма, що має назву «ТОВ«Аптека 36,6», за допомогою якої ми можемо реалізувати виклик всіх інших форм системи, обравши відповідну закладку пунктів меню або натиснувши кнопку на панелі інструментів. Нижче подано її зображення:
Рис. 4.2 Вигляд головного вікна інформаційної системи
Отже, головне меню системи включає в себе такі елементи:
- Пункт меню Довідники - містить інформацію довідкового характеру (Див. Рис. 4.3);
Рис.4.3 Вигляд головного вікна з обраною закладкою Довідники
- Пункт меню Продаж - містить інформацію про всі продажі товариства і його основних клієнтів;
- Пункт меню Постачання - містить інформацію про всі постачання підприємства і його основних постачальників;
- Пункт меню Послуги доставки - містить інформацію про види доставки, що здійснюються на товаристві;
- Пункт меню Медикаменти - містить інформацію про всі медикаменти які є в наявності підприємства;
- Пункт меню Склад - містить інформацію про склад товариства;
- Пункт меню Довідка - містить інформацію про розробника інформаційної системи (Див. Рис. 4.4);
- Пункт меню Вихід - дозволяє здійснити вихід із системи.
Також, в головному вікні системи на панелі інструментів, для більш зручного користування, винесені кнопки, які дозволяють одним натисненням на них відкрити потрібну форму.
Рис. 4.4 Пункт меню Довідка
4.3 Алгоритми відображення форм, додавання нових даних, їх редагування та видалення
Після обрання відповідної закладки пункту меню або натисненням на відповідну кнопку на панелі інструментів, перед нами відображається форма з необхідними даними. Для прикладу дана процедура у середовищі Borland Delphi має вигляд:
procedure TForm1.N2Click(Sender: TObject);
begin
Form3.Show;
end;
Аналогічно виглядають процедури для відображення й інших форм.
У формах ми можемо робити різні операції з даними: додавати нову інформацію, редагувати та видаляти дані. Для внесення нових даних, їх видалення і редагування створюються відповідні форми. Для прикладу розглянемо детальніше форму Співробітники (Див. Рис.4.5).
При відкритті форми відображається інформація про всіх співробітників. Дана форма містить різноманітні елементи керування для ефективного введення і редагування даних.
Рис.4.5 Вигляд форми Співробітники
На даній формі, на панелі інструментів, розміщенні кнопки:
Новий запис - для внесення нових даних про співробітників. Для прикладу дана процедура у середовищі Borland Delphi має вигляд:
procedure TForm3.ToolButton1Click(Sender: TObject);
begin
Self.Tag:=1;
Form27.ShowModal;
end;
Після натиснення цієї кнопки з'явиться нове вікно, призначене для внесення даних про нового співробітника (Див. Рис. 4.6)
Рис.4.6 Вигляд форми Новий запис
Редагування даних - натиснувши цю кнопку, можемо у вікні, що з'явиться, внести корективи у інформацію про існуючих співробітників.
Дана процедура у середовищі Borland Delphi має вигляд:
procedure TForm3.ToolButton3Click(Sender: TObject);
begin
Self.Tag:=2;
Form27.ShowModal;
end;
Після натиснення цієї кнопки з'явиться нове вікно, призначене для редагування даних про існуючого співробітника (Див. Рис. 4.7).
Рис.4.7 Вигляд форми Співробітники з активним вікном Редагувати
В формі Редагувати всі дані вносяться вручну, окрім поля Назва відділу, яке обирається зі списку. Значення цього поля підставляється з таблиці Відділи. Для користувача стає доступним список всіх відділів, з яких він може вибрати той, який необхідний для кожного співробітника.
Для збереження внесених у таблицю даних потрібно натиснути кнопку Ок у вікні Додати запис або Редагувати, у середовищі Delphi дана процедура має вигляд:
procedure TForm27.Button1Click(Sender: TObject);
begin
If Form3.Tag=1 then
begin
query2.SQL.Clear;
Query2.SQL.Add('INSERT INTO spivrobitnuki
(KodViddily,PIBSpivrobitnuka,DataNarodzhenya,SeriaNomerPasporta,IPN,
Telefon,Adresa,Posada,Oklad,DataVlashtyvanya) VALUES
('+IntToStr(Keyviddilu[ComboBox1.ItemIndex])+','''+Edit1.Text+''','''+Edit2
.Text+''','''+Edit3.Text+''','''+Edit4.Text+''','''+Edit5.Text+''','''+Edit6.Text+''','''
+Edit7.Text+''','''+Edit8.Text+''','''+Edit9.Text+''')');
Query2.ExecSQL;
Form3.Query1.Close;
Form3.Query1.Open;
end;
Close();
If Form3.Tag=2 then
begin
Query2.SQL.Clear;
Query2.SQL.Add('Update spivrobitnuki set
IBSpivrobitnuka='''+Edit1.Text+''', DataNarodzhenya='''+Edit2.Text+''',
SeriaNomerPasporta='''+Edit3.Text+''', IPN='''+Edit4.Text+''',
Telefon='''+Edit5.Text+''', Adresa='''+Edit6.Text+''',
Posada='''+Edit7.Text+''',Oklad='''+Edit8.Text+''',DataVlashtyvanya='''+Edit
9.Text+''',KodViddily='+IntToStr(Keyviddilu[ComboBox1.ItemIndex])+'
Where
KodSpivrobitnuka='+Form3.Query1.FieldByName('KodSpivrobitnuka').AsS
tring);
Query2.ExecSQL;
Form3.Query1.Close;
Form3.Query1.Open;
end;
Close();
end;
Для того, щоб дана процедура адекватно і правильно виконувалась потрібно на закладці Events у полі OnShow описати всі поля. Це має такий вигляд:
procedure TForm27.FormShow(Sender: TObject);
var i:integer;
begin
if Form3.Tag=1 then
begin
Edit1.Text:='';
Edit2.Text:='';
Edit3.Text:='';
Edit4.Text:='';
Edit5.Text:='';
Edit6.Text:='';
Edit7.Text:='';
Edit8.Text:='';
Edit9.Text:='';
ComboBox1.Items.Clear();
finalize(Keyviddilu);
Query2.SQL.Add ('select * from viddilu');
Query2.Open;
repeat
setlength(Keyviddilu,length(Keyviddilu)+1);
Keyviddilu[High(Keyviddilu)]:=Query2.FieldByName('KodViddily').AsInte
ger;
ComboBox1.Items.Add(Query2.FieldByName('NazvaViddily').AsString);
UNTIL Query2.MoveBy(1)<1;
Query2.Close;
ComboBox1.ItemIndex:=-1;
Self.Caption:='Новий запис';
end;
If Form3.Tag=2 then
begin
ComboBox1.Items.Clear();
finalize(Keyviddilu);
Query2.SQL.Add ('select * from viddilu');
Query2.Open;
repeat
setlength(Keyviddilu,length(Keyviddilu)+1);
Keyviddilu[High(Keyviddilu)]:=Query2.FieldByName('KodViddily').AsInte
ger;
ComboBox1.Items.Add(Query2.FieldByName('NazvaViddily').AsString);
UNTIL Query2.MoveBy(1)<1;
Query2.Close;
For i:=0 to high(Keyviddilu) do
If Form3.Query1.FieldByName('KodViddily').AsInteger=Keyviddilu[i]
then ComboBox1.ItemIndex:=i;
ComboBox1.ItemIndex:=-1;
Edit1.Text:=Form3.Query1.FieldByName('PIBSpivrobitnuka').AsString;
Edit2.Text:=Form3.Query1.FieldByName('DataNarodzhenya').AsString;
Edit3.Text:=Form3.Query1.FieldByName('SeriaNomerPasporta').AsString;
Edit4.Text:=Form3.Query1.FieldByName('IPN').AsString;
Edit5.Text:=Form3.Query1.FieldByName('Telefon').AsString;
Edit6.Text:=Form3.Query1.FieldByName('Adresa').AsString;
Edit7.Text:=Form3.Query1.FieldByName('Posada').AsString;
Edit8.Text:=Form3.Query1.FieldByName('Oklad').AsString;
Edit9.Text:=Form3.Query1.FieldByName('DataVlashtyvanya').AsString;
Self.Caption:='Редагувати';
end;
Close();
end;
Для відміни внесення нових даних чи редагування вже існуючих потрібно натиснути кнопку Отмена. Для правильної її роботи потрібно на закладці Properties у полі ModalResult вибрати значення mrCancel.
Видалити - кнопка дозволяє знищити виділений рядок у таблиці. У середовищі Delphi дана процедура має вигляд:
procedure TForm3.ToolButton5Click(Sender: TObject);
begin
if Application.MessageBox(PChar('Ви дійсно хочете видалити запис ?'),
'Увага!!!', MB_ICONWARNING+MB_OKCANCEL)=ID_OK
then
begin
Query2.SQL.Clear;
Query2.SQL.Add ('delete from spivrobitnuki where
KodSpivrobitnuka='+Query1.FieldByName ('KodSpivrobitnuka').AsString);
Query2.ExecSQL;
Query1.Close;
Query1.Open;
end;
Після натиснення кнопки Видалити перед користувачем постає питання чи дійсно він бажає видалити запис. Якщо Ок то запис видаляється і таблиця повертається в попередній вигляд, якщо ж Отмена - то вся таблиця лишається без змін.
Також на формі є й кнопки переходу, а саме це кнопки: Перший запис, Наступний запис, Попередній запис, Останній запис, що дозволяють здійснювати зручний перехід по записам таблиці.
Щоб здійснити вихід із форми можна натиснути на кнопку Вихід, що міститься на панелі інструментів. В результаті цього з'явиться вікно де для користувача постає питання чи дійсно він бажає вийти. Після натиснення кнопки Ок форма закривається і користувач повертається до головного меню системи, якщо ж Отмена - форма залишається відкритою.
Для правильної роботи кнопки Ок використано такий код:
procedure TForm3.ToolButton21Click(Sender: TObject);
begin
if Application.MessageBox(PChar('Ви дійсно хочете вийти ?'), 'Увага!!!',
MB_ICONWARNING+MB_OKCANCEL)=ID_OK then Close;
end;
Для правильної роботи кнопки Отмена потрібно на закладці Properties у полі ModalResult вибрати значення mrCancel.
Такий же алгоритм роботи мають всі форми створеної нами інформаційної системи, а саме: Відділи, Клієнти, Постачальники, Постачання, Медикаменти, Рецепти, Продаж, Послуги доставки, Склад.
4.4 Алгоритми пошуку, фільтрування та сортування даних на формах
Для більш зручного користування і кращої роботи з даними кожна форма інформаційної системи, на панелі інструментів, оснащена кнопкою Пошук.
За допомогою цієї кнопки здійснюється пошук потрібних даних у вибраній формі. Для прикладу розглянемо кнопку пошук на формі Співробітники. При натисненні на цю кнопку з'являється форма з відповідною назвою. Для виклику цієї форми потрібно у середовищі Delphi написати процедуру яка має вигляд:
procedure TForm3.ToolButton7Click(Sender: TObject);
begin
Form16.FindInGrid:=DbGrid1;
Form16.ShowModal;
end;
Для прикладу, якщо ми хочемо шукати по полю ПІБ співробітника, ставимо курсор у рядок прізвищ і натискаємо на кнопку пошук. Відповідно, пошук буде здійснюватися по полю ПІБ співробітника, що буде відображатись у заголовку форми. У вікні пошуку, що з'явиться, ми можемо вибрати відповідну умову і задати значення за якими буде здійснюватися пошук. Форма пошуку по ПІБ співробітника показано на Рис. 4.8.
Рис. 4.8 Вигляд форми пошук
Після того як задані всі потрібні параметри пошуку натискаємо кнопку Ок і система видасть нам результат. Для того, щоб дана кнопка правильно працювала у середовищі Delphi потрібно виконати певні процедури.
На закладці Events у полі OnShow необхідно прописати:
procedure TForm16.FormShow(Sender: TObject);
begin
Label1.Caption:='Пошук по полю - '+FindInGrid.SelectedField.DisplayLabel;
Edit1.SetFocus;
Edit1.SelectAll;
end;
Також потрібно внести деякі корективи у розділ type, а саме замінити деякі параметри:
private
{ Private declarations }
public
FindInGrid:TDBGrid;
end;
var
Form16: TForm16;
const
RangeCondition = 6;
Для правильного здійснення умов пошуку потрібно у полі умова (ComboBox1) прописати код:
рrocedure TForm16.ComboBox1Change(Sender: TObject);
begin
if ComboBox1.ItemIndex=6 then
begin
Edit2.Enabled:=true;
Label4.Enabled:=true;
end
else
begin
Edit2.Enabled:=false;
Label4.Enabled:=false;
end;
end;
Коли всі ці параметри задано код кнопки Ок матиме вигляд:
procedure TForm16.Button1Click(Sender: TObject);
var
FieldName, Condition, Text1, Text2, zvjazka:String;
SelectedIndex,i:Integer;
begin
FieldName:=FindInGrid.SelectedField.FieldName;
SelectedIndex:=FindInGrid.SelectedField.Index;
Text1:=Edit1.Text;
Text2:=Edit2.Text;
TRY
TQuery(FindInGrid.DataSource.DataSet).Active:=false;
TQuery(FindInGrid.DataSource.DataSet).Filtered:=false;
TQuery(FindInGrid.DataSource.DataSet).Filter:='';
Condition:=' '+ComboBox1.Items[ComboBox1.ItemIndex]+' ';
if ComboBox1.ItemIndex=0 then Condition:=' LIKE ';
zvjazka:=' WHERE ' ;
if CheckBox1.Checked then
TQuery(FindInGrid.DataSource.DataSet).SQL[3]:=zvjazka+'
('+FieldName+Condition+''''+Text1+''''+')'
else
TQuery(FindInGrid.DataSource.DataSet).SQL[3]:=zvjazka+'
('+FieldName+Condition+'''%'+Text1+'%'''+')';
if ComboBox1.ItemIndex=RangeCondition then
TQuery(FindInGrid.DataSource.DataSet).SQL[3]:=zvjazka+'
('+FieldName+' >= '''+Text1+''') AND ('+
FieldName+' <= '''+Text2+''''+')' ;
TQuery(FindInGrid.DataSource.DataSet).Active:=true;
if TQuery(FindInGrid.DataSource.DataSet).RecordCount>0 then
ModalResult:=mrOK
else Application.MessageBox('Не знайдено ні одного запису', 'Увага!!!',
MB_OK);
EXCEPT
Application.MessageBox'
Неправильно вказані дані! Параметри пошуку будуть очищенні.
Введіть вірні параметри та спробуйте ще раз.',
'Помилка',
MB_ICONINFORMATION+MB_OK);
TQuery(FindInGrid.DataSource.DataSet).SQL[3]:='';
TQuery(FindInGrid.DataSource.DataSet).Active:=true;
exit;
END;
END;
Після видачі результатів пошуку потрібно знову повернутися до її всіх записів. Для цього на панелі інструментів у кожній формі інформаційної системи створена кнопка Показати всі записи. Вигляд процедури у середовищі Delphi має вигляд:
procedure TForm3.ToolButton9Click(Sender: Tobject);
begin
query1.Close;
query1.SQL[3]:='';
query1.Open;
end;
Якщо ж користувач передумав здійснювати пошук потрібно натиснути кнопку Отмена. Для правильної її роботи необхідно на закладці Properties у полі ModalResult вибрати значення mrCancel.
Аналогічно було створено форми пошуку і для всіх інших форм інформаційної системи.
Для правильної і ефективної роботи інформаційної системи нами було створено також умови для фільтрування і сортування даних. Для того, щоб здійснювались ці процедури на форму необхідно помістити елемент StatusBar, після чого в розділі type відповідної форми змінити деякі параметри, а саме:
private
procedure MyFilter(DataSet: TDataSet; var Accept: Boolean);
{ Private declarations }
public
{ Public declarations }
end;
var
f:integer;
SortPointer : Boolean;
SortString, Sort, s: String;
Filter:string;
Після цього на елементі DBGrid1, який міститься на формі, на закладці Events у полі OnKeyPress необхідно описати:
procedure TForm3.DBGrid1KeyPress(Sender: TObject; var Key: Char);
var
ds:TDataSet;
begin
try
ds:=DBGrid1.DataSource.DataSet;
if Key=#8 then
begin
Filter:=Copy(Filter, 1, Length(Filter)-1);
if Filter='' then
TQuery(ds).Filtered:=false
else
TQuery(ds).Filter:=DBGrid1.SelectedField.FieldName+'>'''+Filter+'%''';
end;
if ((Key>='а') and (Key<='я')) or
((Key>='А') and (Key<='Я')) or
((Key>='0') and (Key<='9')) or
(Key='і') or (Key='ї') or (Key=' ') or
(Key='І') or (Key='Ї') or
(Key='є') or (Key='Є')
then
begin
TQuery(ds).Filtered:=true;
Filter := Filter+Key;
TQuery(ds).Filter:=DBGrid1.SelectedField.FieldName+'>'''+Filter+'''';
end;
if Filter<>'' then
StatusBar1.Panels.Items[0].Text:='Фільтир:
'+DBGrid1.SelectedField.DisplayName+'='+Filter
else
StatusBar1.Panels.Items[0].Text:='Фільтир: немає';
except
Application.MessageBox(PChar('Не можу відфільтрувати.'), 'Помилка!!!',
MB_ICONWARNING+MB_OK);
exit;
end;
end;
Для здійснення сортування необхідно на елементі DBGrid1, який міститься на формі, на закладці Events у полі OnTitleClick необхідно написати код програми, яка буде здійснювати цю процедуру. У середовищі Delphi це має такий вигляд:
procedure TForm3.DBGrid1TitleClick(Column: TColumn);
var
Index,i: Integer;
Additional, StatusAdd:String;
State: TKeyboardState;
begin
try
Index:=DBGrid1.SelectedIndex;
GetKeyboardState(State);
if ((State[vk_Shift] and 128) <> 0) and (Sort<>'') then
begin
Additional:=Sort+', ';
StatusAdd:=StatusBar1.Panels.Items[1].Text+', ';
end
else
begin
Additional:='';
StatusAdd:='Відсортовано: ';
end;
if Pos(String(Column.FieldName), Sort)>0 then
begin
SortPointer:=not SortPointer;
if Additional<>'' then
Delete(Additional, Pos(String(Column.FieldName), Additional),
Length(Column.FieldName)+7);
Delete(StatusAdd, Pos(Column.Field.DisplayLabel, StatusAdd),
Length(Column.Field.DisplayLabel)+5);
end
else
SortPointer:=true;
if SortPointer then
begin
Sort:= Additional+Column.FieldName+' ASC';
StatusBar1.Panels.Items[1].Text:=StatusAdd +
Column.Field.DisplayLabel+' ^ ';
end
else
begin
Sort:= Additional+Column.FieldName+' DESC';
StatusBar1.Panels.Items[1].Text:=StatusAdd +
Column.Field.DisplayLabel+' V ';
end;
if TQuery(DBGrid1.DataSource.DataSet).SQL.Count<11 then
for i:= TQuery(DBGrid1.DataSource.DataSet).SQL.Count to 11 do
TQuery(dbGrid1.DataSource.DataSet).SQL.Add(' ');
TQuery(DBGrid1.DataSource.DataSet).SQL[8]:='ORDER BY '+Sort;
TQuery(DBGrid1.DataSource.DataSet).Active:=false;
TQuery(DBGrid1.DataSource.DataSet).Active:=true;
DBGrid1.SelectedIndex:=Index;
except
Application.MessageBox(PChar('Не можу відсортувати.'), 'Помилка!!!',
MB_ICONWARNING+MB_OK);
exit;
end;
end;
Після цього у код програми необхідно вставити таку процедуру:
procedure TForm3.MyFilter (DataSet: TDataSet; var Accept: Boolean);
var Str:String;
begin
if DBGrid1<>nil then
begin
if DBGrid1.SelectedField=nil then exit;
if DBGrid1.SelectedField.Value=NULL then exit;
Str:=DBGrid1.SelectedField.Value;
if AnsiUpperCase(copy(Str, 1, Length(Filter)))=AnsiUpperCase(Filter)
then Accept:=true
else Accept:=false;
end;
end;
Останнім, що потрібно зробити для виконання цієї процедури, на елементі Query1, який відповідає за запит на відображення даних, на закладці Events у полі OnFilterRecord задати такі параметри:
procedure TForm3.Query1FilterRecord(DataSet: TDataSet; var Accept:
Boolean);
begin
try
Filter:='';
TQuery(DataSet).OnFilterRecord:=MyFilter;
TQuery(DataSet).Filtered:=True;
SortPointer:=true;
SortString := 'ORDER BY '+DataSet.Fields[1].FieldName;
except
exit;
end;
end;
Після цього можна побачити, що інформаційна система здійснює сортування відповідно до тих рядків, на заголовку яких здійснено натиснення, наприклад клацнувши по заголовку ПІБ співробітника, рядки відсортовуються згідно алфавітного порядку, знизу вгору чи навпаки.
Подобные документы
Проектування бази даних предметної області "Магазин будівельних матеріалів". Аналіз сукупності вхідних і вихідних даних, шляхи удосконалення інформаційної системи обліку товару. Організація інформаційної бази, розробка логічної і фізичної моделі.
курсовая работа [559,2 K], добавлен 09.05.2016Побудова інформаційної системи "Магазин товарів для настільного тенісу" з автоматизації роботи магазину. Концептуальне моделювання бази даних. Обґрунтування вибору СУБД. Логічне проектування бази даних. Схема бази даних. Створення таблиць в конструкторі.
курсовая работа [8,8 M], добавлен 16.12.2015Розгляд процесу автоматизації бази даних для довідника астронома. Основи реляційних баз даних для проектування інформаційних систем. Застосування тригерів для забезпечення цілісності даних і реалізації складної бізнес–логіки в системних процедурах.
курсовая работа [22,3 K], добавлен 12.03.2019База даних як організована структура, призначена для зберігання інформації. Проектування та реалізація в СУБД MS Access інформаційної системи "База даних Internet-ресурсів тестів з психології". Розробка логічної системи даних, інструкції користувача.
курсовая работа [5,3 M], добавлен 22.10.2012Проектування бази даних "Аптека" у Microsoft Access, розробка структури таблиць, ключових полів і схеми даних. Створення запитів різних типів, екранних форм різного виду для введення і перегляду даних. Створення кнопкових форм, що полегшують навігацію.
дипломная работа [3,1 M], добавлен 16.11.2014Створення бази даних та робота з нею у програмному забезпеченні Microsoft Access. Проектування форм для зручного заповнення таблиць, звітів для відображення даних та їх друку, кнопкової форми, яка потрібна для зручної навігації між функціями бази даних.
курсовая работа [1,3 M], добавлен 04.10.2014Проектування бази даних реєстрації та ведення обліку автомобілів в ДАІ на прикладі київського МРЕВ ДАІ за допомогою SQL Oracle. Опис інформаційної структури ПО з використанням діючих бізнес-правил та визначенням сутностей, їх атрибутів та зв'язків.
курсовая работа [159,3 K], добавлен 05.12.2012Проектування бази даних: визначення об’єктів, структура таблиць, побудова схеми даних, забезпечення цілісності даних, створення певних відношень між таблицями, створення запитів, побудова форм, оформлення об’єктів. Розробка інструкції користувача.
курсовая работа [1,9 M], добавлен 19.09.2014Узагальнена структурна схема інформаційної системи та алгоритми її роботи. Проект бази даних. Інфологічне проектування і дослідження предметної області. Розробка інфологічної моделі предметної області. Розробка композиційної, логічної системи бази даних.
курсовая работа [861,7 K], добавлен 21.02.2010Вибір методів та засобів створення інформаційної системи для обліку і перегляду продукції на складі. Розробка моделі даних для реляційної бази даних, прикладного програмного забезпечення. Тестування програмного додатку, виявлення можливих проблем.
курсовая работа [1,1 M], добавлен 22.09.2015