АРМ мененджер автосалону А-моторс

[ виправити ] текст може містити помилки, будь ласка перевіряйте перш ніж використовувати.

скачати

ДЕПАРТАМЕНТ ОСВІТИ МІСТА АСТАНА

Політехнічний коледж міста Астана

010000 3706002

ДИПЛОМНИЙ ПРОЕКТ

АРМ менеджера в автосалоні "A-Motors"

ДИПЛОМНИЙ ПРОЕКТ

(Пояснювальна записка)

ДП.3706.П401.31.06.07.ПЗ

Дипломник Хікімов Н.Б.

Керівник проекту Лапенко С.А.

Консультант з технологічного розділу Лапенко С.А.

Консультант з економічного поділу Приходько Л.І.

Консультант по розділу «ТБ і охорона праці» Старуня В.І.

Нормоконтролер Вотчал Г.К.

Рецензент

Дата захисту ___________ Оцінка ____________

Протокол № ____________

2007

ЗМІСТ

ВСТУП

1. Постановочна частина

1.1 Формулювання задачі

1.2 Опис вхідний і вихідний документації

1.3 Вимоги до інтерфейсу Windows-додатки

2. Проектна частина

2.1 Опис інформаційної бази

2.2 Специфікації набору даних

2.3 Специфікації набору даних

2.4 Проект бази даних, використовуваної в задачі

2.5 Розробка алгоритмів обробки даних

2.6 Розробка SQL-запитів до бази даних

2.7 Розробка форм програми, меню, звітів

3. ІНСТРУМЕНТАЛЬНІ ЗАСОБИ РЕАЛІЗАЦІЇ ПРОЕКТУ ДИПЛОМНОГО

3.1 Коротка характеристика операційних систем

3.2 Коротка характеристика мови програмування Object Pascal і середовища Delphi

3.3 Коротка характеристика використовуваної СУБД

4. ЕКСПЛУАТАЦІЯ

4.1.Требованія до апаратного забезпечення

4.2.Інструкція користувачеві

4.3 Інструкція програмісту

5. ЕКОНОМІЧНА ЧАСТИНА

5.1. Визначення витрат на створення програмного продукту

5.2 Розрахунок собівартості і вартості програмного продукту

5.3 Розрахунок економічної ефективності проекту

5.4 Техніко-економічні показники проекту

6. Заходи з техніки безпеки і навколишнього середовища.

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

6.2. Техніка безпеки

6.3 Охорона навколишнього середовища

7. висновок

8. Список використаних джерел

Додаток а. основні модулі програми

А.1 Модуль форми вікна «Про програму»

А.2 Модуль форми вікна «Зареєструвати автомобіль»

А.3 Модуль форми «Видалити автомобіль»

А.4 Модуль даних

А.5 Модуль форми «Редагування даних»

А.6 Модуль заставки

А.7 Модуль головної форми

А.8 Модуль форми пошуку

А.9 Модуль форми менеджерів

А.10 Модуль форми про власників

ВСТУП

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

Існує багато вагомих причин переведення існуючої інформації на комп'ютерну основу. Зараз вартість зберігання інформації у файлах ЕОМ дешевше, ніж на папері. Бази даних дозволяють зберігати, структурувати інформацію і витягувати оптимальним для користувача чином. Використання файл / серверних і клієнт / серверних технологій дозволяють зберегти значні кошти, а головне і час для отримання необхідної інформації, а також спрощують доступ і ведення, оскільки вони грунтуються на комплексній обробці даних і централізації їх зберігання. Крім того ЕОМ дозволяє зберігати будь-які формати даних текст, креслення, дані в рукописній формі, фотографії, записи голосу і т.д.

Для використання таких величезних обсягів збереженої інформації, крім розвитку системних пристроїв, засобів передачі даних, пам'яті необхідні засоби забезпечення діалогу людина-ЕОМ, які дозволяють користувачеві вводити запити, читати файли, модифіковані записані дані, додавати нові дані або приймати рішення на підставі даних, що зберігаються. Для забезпечення цих функцій створені спеціалізовані засоби - системи управління базами даних (СКБД). Сучасні СУБД - розраховані на багато системи управління базою даних, які спеціалізується на управлінні масивом інформації одним або безліччю одночасно працюючих користувачів.

Актуальність і мета дпломного проекту

Даний програмний продукт розроблений для менеджерів з продажу в автосалоні «A - Motors». Програма призначена для реєстрації та ведення обліку продажів автомобілів.

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

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

1. Постановочна частина

1 .1 Формулювання завдання

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

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

1 .2 Опис вхідний і вихідний документації

Вхідні документи

  1. Технічний паспорт автомобіля - містить основні паспортні дані автомобіля - видається при реєстрації автомобіля в РЕО УДП УВС РК.

  2. Графічне зображення автобусів (малюнки, фотографії)

  3. Анкета власника транспортного засобу

  1. Акт про прийом автомобіля на реалізацію

Вихідні документи

  1. Картка автомобіля

  2. Список автомобілів задовольняють критеріям пошуку

  3. Список проданих автомобілів за заданий період

  4. Перелік зареєстрованих марок автомобілів

1 .3 Вимоги до інтерфейсу Windows-додатки

Під графічним інтерфейсом користувача (Graphical User Interface - GUI) мається на увазі тип екранного подання, при якому користувач може вибирати команди, запускати завдання і переглядати списки файлів, вказуючи на піктограми або пункти в списках меню, показаних на екрані. Дії можуть, як правило, виконуватися за допомогою миші, або натисканням клавіш на клавіатурі. Типовим прикладом графічного інтерфейсу користувача є Windows 95/98.

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

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

Найчастіше скільки-небудь складний додаток не може обмежитися одним вікном. Тому перш за все вам потрібно вирішити питання управління вікнами. Є дві різні моделі додатків: з інтерфейсом одного документа (SDI) і з інтерфейсом безлічі документів (MDI).

У більшості випадків слід віддавати перевагу інтерфейсу SDI. Цей інтерфейс не обов'язково передбачає наявність дійсно тільки одного вікна, як в додатках Windows, типу «Калькулятор». Такий додаток, як «Провідник» Win ­ dows, також є SDI додатком, але в потрібні моменти воно створює вторинні вікна для пошуку файлів або папок, завдання параметрів, перегляду властивостей файлів і інших цілей.

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

До зовнішнього вигляду вікон в Windows пред'являються певні вимоги. На щастя, Delphi автоматично забезпечує стандартний для Windows вид вікон вашої програми. Але вам треба продумати і вказати, які кнопки в смузі системного меню повинні бути доступні в тому чи іншому вікні, чи повинно вікно допускати зміна користувачем його розмірів, яким повинен бути заголовок вікна. Всі ці характеристики вікон забезпечуються установкою і управлінням властивостями форми.

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

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

Треба прагнути використовувати обмежений набір кольорів і приділяти увагу їх правильному поєднанню. Розташування яскравих кольорів, таких, як червоний, на зеленій або чорному тлі ускладнює можливість сфокусуватися на них. Не рекомендується використовувати додаткові кольори. Зазвичай найбільш прийнятним кольором для фону буде нейтральний колір, наприклад, світло-сірий (використовується у більшості продуктів Microsoft). Пам'ятайте також, що яскраві кольори здаються виступаючими з площини екрана, у той час як темні як би відступають усередину.

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

Не можна також забувати, що сприйняття кольору дуже індивідуально. А за оцінкою Microsoft дев'ять відсотків дорослого населення взагалі страждають порушеннями кольоросприйняття. Тому не варто нав'язувати користувачу своє бачення кольору, навіть якщо воно бездоганно. Треба надати користувачеві можливість самостійного налаштування на найбільш прийнятну для нього гаму. До того ж не варто забувати, що може бути хтось захоче використовувати вашу програму на машині з монохромним монітором.

Статичні кольори ви вибираєте самі і вони будуть залишатися незмінними при роботі програми на будь-якому комп'ютері. Це не дуже добре, оскільки користувач не зможе адаптувати вигляд вашого додатка до своїх потреб. При виборі бажаної йому колірної схеми користувач може керуватися різними міркуваннями: начиняючи з практичних (наприклад, він може хотіти встановити чорний фон, щоб економити енергію батареї), і закінчуючи естетичними (він може віддавати перевагу, наприклад, шкалу відтінків сірого, тому що не розрізняє кольору). Все це він не може робити, якщо ви задали в додатку статичні кольору. Але вже якщо з якихось міркувань вам треба їх поставити, намагайтеся використовувати базовий набір з 16 кольорів. Якщо ви спробуєте використовувати 256 (або, що ще гірше, 16 мільйонів) квітів, це може уповільнити роботу вашої програми, або воно буде виглядати погано на машині користувача з 16 квітами. До того ж подумайте (а, як правило, це треба перевірити і експериментально), як буде виглядати ваш додаток на монохромному дисплеї.

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

Не зловживайте в додатку яскравими квітами. Строкате додаток - зазвичай ознака дилетантизму розробника, стомлює користувача, розсіює його увагу. Як правило, використовуйте системні кольори, які користувач може перебудовувати на свій розсуд. З статичних квітів зазвичай має сенс використовувати тільки clBlack - чорний, clWhite - білий і clRed - червоний колір попередження про небезпеку.

Використання шрифтів за замовчуванням: System або MS Sans Serif, частіше за все дозволяє уникнути неприємностей. Втім, на жаль, не завжди. Якщо ви використовуєте для написів російські тексти, то при запуску програми на комп'ютері з нерусифікованому Windows іноді можливі неприємності. Для подібних випадків все-таки корисно докласти файли шрифтів, до вашої програмі.

Інший вихід з положення - ввести в додаток команду вибору шрифту користувачем. Це дозволить йому вибрати відповідний шрифт з наявних у його системі. Проведену користувачем установку можна запам'ятовувати в файлі. INI, у реєстрі або у файлі конфігурації і читати автоматично інформацію з цього файлу при кожному запуску програми (див. розділи 7.3 та 7.4).

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

Основна вимога до меню - їх стандартизація. Ця вимога відноситься до багатьох аспектів меню: місцю розміщення заголовків меню і їх розділів, формі самих заголовків, клавіші швидкого доступу, організації каскадних меню. Мета стандартизації - полегшити користувачеві роботу з додатком. Треба, щоб користувачеві не доводилося думати, в якому меню і як йому треба відкрити або зберегти файл, як йому отримати довідку, як працювати з буфером обміну Clipboard і т.д. Для здійснення всіх цих операцій у користувача, що попрацював хоча б з кількома додатками Windows, виробляється стійкий автоматизм дій і неприпустимо цей автоматизм ламати.

Почнемо розгляд вимог з розміщення заголовків меню. Звичайно, склад меню залежить від конкретного додатка. Але розміщення загальноприйнятих розділів має бути стандартизованим. Всі користувачі вже звикли, що меню Файл розміщується ліворуч у смузі головного меню, розділ довідки - праворуч, перед ним у додатках MDI розміщується меню Вікно і т.д. Головне меню має також забезпечуватися інструментальної панеллю (див. рис. 1.5), швидкі кнопки якої дублюють найбільш часто використовувані команди меню. На цих кнопках треба використовувати, по можливості, звичні картинки.

По можливості стандартним має бути і розташування розділів в меню, що випадають.

Групи функціонально пов'язаних розділів відокремлюються в випадаючих меню роздільниками.

Назви розділів меню повинні бути звичними користувачеві. Якщо ви не знаєте, як назвати якийсь розділ, не винаходьте своє ім'я, а спробуйте знайти аналогічний розділ в якій-небудь русифікованої програмі Microsoft для Win ­ dows. Назви повинні бути короткими і зрозумілими. Не використовуйте фраз, та й взагалі більше двох слів, оскільки це перевантажує екран і уповільнює вибір користувача. Назви розділів повинні починатися з великої літери.

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

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

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

Багатьом розділам можуть бути поставлені у відповідність зі «гарячі» клавіші, що дозволяють звернутися до команди даного розділу, навіть не заходячи в меню. Комбінації таких «гарячих» клавіш повинні бути традиційними. Наприклад, команди вирізання, копіювання і вставки фрагментів тексту практично завжди мають «гарячі» клавіші Ctrl - X, Ctrl - C і Ctrl - V відповідно. Задані поєднання клавіш відображаються в заголовках відповідних розділів.

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

Керуючі елементи і функціонально пов'язані з ними компоненти екрана повинні бути візуально об'єднані у групи, заголовки яких коротко і чітко пояснюють їх призначення. Таке об'єднання дозволяють здійснювати різні панелі. Можна рекомендувати, як правило, розміщувати компоненти не безпосередньо на формі, а на панелях. Але й усередині панелей треба продумувати розміщення компонентів як з точки зору естетики, так і з точки зору візуального відображення взаємин елементів. Наприклад, якщо є кнопка, яка розгортає вікно списку, то ці два компоненти повинні бути візуально пов'язані між собою: розміщені на одній панелі і в безпосередній близькості один від одного. Якщо ж ваш екран є випадкові скупчення кнопок, то саме так він і буде сприйматися. І наступного разу користувач не захоче користуватися вашою програмою.

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

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

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

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

Додаток повинен гранично полегшувати роботу користувача, забезпечуючи її системою підказок, що допомагають зорієнтуватися у додатку. Ця система включає в себе:

  • Ярлички, які спливають, коли користувач затримає курсор миші над якимось елементом вікна додатка. Зокрема, такими ярликами обов'язково повинні забезпечуватися швидкі кнопки інструментальних панелей, оскільки нанесені на них піктограми часто не настільки виразні, щоб користувач без додаткової підказки міг зрозуміти їх призначення.

  • Більш розгорнуті підказки в панелі стану або в іншому відведеному під це місці екрану, які з'являються при переміщенні курсору миші в ту чи іншу область вікна програми.

  • Вбудовану систему контекстно-залежної оперативної довідки, що викликається по клавіші F 1.

  • Розділ меню Довідка, що дозволяє користувачеві відкрити стандартний файл довідки Windows. Hlp, що містить у вигляді гіпертексту розгорнуту інформацію про що цікавлять користувача питань.

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

Програміст повинен прийняти всі мислимі заходи, щоб ні за яких помилках користувача і ні за яких поєднаннях даних програма не закінчувалося б аварійно. Але якщо все-таки аварійне завершення відбувається, необхідна повна зачистка «сміття» - видалення тимчасових файлів, звільнення пам'яті, розрив зв'язків з базами даних і т.д.

2. Проектна частина

2.1 Опис інформаційної бази

Даний програмний продукт має шість таблиць БД.

Таблиця 2.1 Власники - vladelec. Dbf

Найменування поля

Тип

Розмір

Призначення

* Kod_vlad

Number

5

Код власника

Fam

Character

20

Прізвище

Name

Character

20

Ім'я

Oth

Character

20

По батькові

Adres

Character

20

Адреса

Mail

Character

30

Адреса електронної пошти

Tel

Number

20

Номер телефон

Sot

Number

20

Номер мобільного телефону

Таблиця 2.2 Менеджери - sotrud.dbf

Найменування поля

Тип

Розмір

Призначення

* Kod_sot

Number

3

Код співробітника

Fam

Character

20

Прізвище

Name

Character

20

Ім'я

Oth

Character

20

По батькові

Таблиця 2.3 Автомобілі - avto. Dbf

Найменування поля

Тип

Розмір

Призначення

* Kod_avto

Number

6

Код автомобіля

Kod_vlad

Number

5

Код власника

Kod_ Marka

Number

6

Код марки

Model

Character

20

Модель автомобіля

V

Character

5

Об'єм двигуна

Gos_nom

Character

8

Державний номер

Cvet

Character

20

Колір

Tip_kuz

Character

20

Тип кузова

Foto_1

Character

20

Фотографія 1

Foto_2

Character

20

Фотографія 2

Cena

Number

10

Ціна

Таблиця 2.4 Реєстрація - avto_in.dbf

Найменування поля

Тип

Розмір

Призначення

* Kod_in

Number

6

Реєстраційний номер

Akt_nom

Number

6

Номер акта

Kod_avto

Number

6

Код автомобіля

Kod_vlad

Number

6

Код власника

Kod_sot

Number

6

Код менеджера

Data

Date


Дата реєстрації

Таблиця 2.5 Комплектність - komplect. Dbf

Найменування поля

Тип

Розмір

Призначення

Kod_avto

Number

6

Код автомобіля

Koleso

Character

15

Оформлення коліс

Zapaska

Logical


Наявність запасного колеса

Instrument

Logical


Наявність інструменту

Music

Logical


Наявність магнітоли

Medic

Logical


Наявність аптечки

Elect_pak

Logical


Наявність електропакету

ABS

Logical


Наявність АБС

GUR

Logical


Наявність гідропідсилювача рульового колеса

Kondic

Logical


Наявність кондиціонера

Korobka

Character

15

Тип КПП

Privod

Character

15

Вигляд приводу

Info

Memo


Додаткова інформація

Defekt

Memo


Опис дефектів

Таблиця 2.6 Продаж - avto_out. Dbf

Найменування поля

Тип

Розмір

Призначення

* Kod_out

Number

6

Код продажу

Data

Date


Дата продажу

Marka_out

Number

6

Код марки

Model_out

Character

20

Модель автомобіля

V_out

Character

5

Об'єм двигуна

Cvet_out

Character

20

Колір

Tipkuz_out

Character

20

Тип кузова

Cena

Number

10

Ціна

Таблиця 2.7 Марки автомобілів - marka. Dbf

Найменування поля

Тип

Розмір

Призначення

* Kod_ marka

Number

6

Код марки

Marka

Character

20

Марка автомобіля

2.2 Специфікації набору даних

Таблиця 2.8

Ім'я набору даних у програмі

Ім'я набору даних на зовнішніх носіях

Довжина запису набору даних (у байтах)

Тип файлу

Метод доступу

Vlad

vladelec. dbf

155

Dbase IV

Довільний

Sot

sotrud.dbf

63

Dbase IV

Довільний

Avto

avto. dbf

140

Dbase IV

Довільний

Avto_in

avto_in.dbf

36

Dbase IV

Довільний

Complect

komplect. dbf

> 52

Dbase IV

Довільний

Auto_out

avto_out. dbf

93

Dbase IV

Довільний

Marka

Marka.bdf

26

Dbase IV

Довільний

2.3 Специфікації набору даних

Таблиця 2.9

Позначення

Призначення

Примітка

1

2

3

vladelec. dbf

Інформація про власників


sotrud.dbf

Інформація про менеджерів


avto. dbf

Інформація про автомобілі


avto_in.dbf

Реєстрація автомобіля


komplect. dbf

Комплектація автомобіля


Продовження таблиці 2.9

1

2

3

avto_out. dbf

Продані автомобілі


Marka.bdf

Довідник марок автомобілів


2.4 Проект бази даних, використовуваної в задачі


2. 5 Розробка алгоритмів обробки даних

2. 5. 1 Алгоритм роботи головної форми програми

Схема 3.1

2. 5. 2 Алгоритм роботи форм додатка

Схема 3.2

2.5 Таблиця ідентифікаторів

Таблиця 2.10

Ідентифікатор

Смисловий зміст

Тип

Розрядність

Main.path

Шлях до папки програми

string


Add.pic1

Шлях до першого зображенню

String


Продовження таблиці 2.10

Add.pic2

Шлях до другого зображенню

string


Del. AppProgID

Маркер програми Microsoft Excel

string


Del.App

Покажчик на додаток Microsoft Excel

Variant


Del.Ke

Покажчик на робочу книгу Microsoft Excel

Variant


Del.Abc

Покажчик на лист Microsoft Excel

Variant


Del.Result

Призначена для перевірки вдалою активізації програми Mcirosoft Excel

HResult


Del.i

Лічильник циклу

integer


2. 6 Розробка SQL-запитів до бази даних

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

procedure TFSearch.LMDButton1Click (Sender: TObject);

begin

Query1.Close;

Query1.SQL.Clear;

try

Query1.Sql.Add ('select a.kod_avto, m.marka, a.model, a.cvet, a.tip_kuz, a.cena, av, k.korobka, k.privod');

Query1.SQL.Add ('from avto a, komplect k, marka m');

Query1.SQL.Add ('where');

if checkBox9.Checked then Query1.SQL.Add ('a.marka =' + Inttostr (DBLookupComboBox1.keyvalue) + 'and');

if checkBox10.Checked then Query1.SQL.Add ('a.tip_kuz = "' + ComboBox1.Text +

'"And");

if checkBox11.Checked then Query1.SQL.Add ('av <=' + Edit1.Text + 'and');

if checkBox12.Checked then Query1.SQL.Add ('a.cena <=' + Edit2.Text + 'and');

if checkBox4.Checked then Query1.SQL.Add ('k.elect_pak =' +

BoolToStr (CheckBox17.Checked) + 'and');

if checkBox5.Checked then Query1.SQL.Add ('k.kondic =' +

BoolToStr (CheckBox16.Checked) + 'and');

if checkBox6.Checked then Query1.SQL.Add ('k.music =' + BoolToStr (CheckBox15.Checked) + 'and');

if checkBox7.Checked then Query1.SQL.Add ('k.gur =' + BoolToStr (CheckBox14.Checked) + 'and');

if checkBox8.Checked then Query1.SQL.Add ('k.abs =' + BoolToStr (CheckBox13.Checked) + 'and');

if checkBox1.Checked then Query1.SQL.Add ('k.koleso = "' + ComboBox2.Text +
'"And");

if checkBox2.Checked then Query1.SQL.Add ('k.korobka = "' + ComboBox3.Text +
'"And");

if checkBox3.Checked then Query1.SQL.Add ('k.privod = "' + ComboBox4.Text +
'"And");

Query1.SQL.Add ('a.marka = m.id_marka and a.kod_avto = k.kod_avto');

Query1.Open;

except

MessageDlg ('Введені НЕ всі дані ', mtWarning, [mbOk], 0);

end;

end;

2.7 Розробка форм програми, меню, звітів

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

Для написання даної програми я використовував як стандартний набір компонентів палітри Delphi 7, так і додаткові (RXLib, GlobusLib, LmdTools v 6.12.00 Professional For Delphi 7).

У програмі реалізовані такі функції як звіт, він же експорт в Excel. Дані які відображаються в таблиці БД з ініціативи користувача можуть бути поміщені до звіту. Усі звіти створені програмою зберігаються у вкладеному каталозі «Reports». Назва звітів формується з параметрів: місце в програмі звідки був зроблений звіт і поточна дата.

Меню, спроектоване на головній формі можна представити наступним чином:

  • Файл

    • Вихід

  • Довідники

    • Менеджери

    • Власники

    • Марки

    • Продані автомобілі

  • Операції

    • Зареєструвати автомобіль

    • Редагувати дані

    • Продати автомобіль

    • Пошук

  • Вид

    • Розмір шрифту

      • Великий

      • Середній

      • Маленький

    • Колір шрифту

  • Допомога

    • Довідка

    • Про програму

Детальний опис призначення і використання команд головного меню описано в інструкції користувачеві (п. 5.2).

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

У додатку використані стандартні системні кольори, що дозволить користувачеві використовувати зручну для себе колірну палітру.

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

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

3. ІНСТРУМЕНТАЛЬНІ ЗАСОБИ РЕАЛІЗАЦІЇ ПРОЕКТУ ДИПЛОМНОГО

3 .1 Коротка характеристика операційних систем

Windows 95, Windows 98, Windows NT, Windows 2000 - це останнє втілення графічних операційних систем, вперше представлених у листопаді 1985 і подальшому розвитку до 1999 року для використання на комп'ютерах типу IBM PC і сумісних з ним. У міру проникнення на ринок, за останнє десятиліття, Windows 95, Windows NT, Windows 98.Windows 2000 майже повністю витіснили всіх наявних конкурентів і стали, фактичними, еталонами операційної системи для персональних комп'ютерів. Тепер, якщо ви пишете програму для сумісних з IBM PC комп'ютерів, то ви пишете для Windows95, Windows NT, Windows 98, Windows 2000.

Windows володіє важливими перевагами і для користувачів, і для програмістів у порівнянні із середою MS-DOS. Вигоди для користувачів і вигоди для творців програм насправді дуже схожі, оскільки задача творця програми полягає в тому, щоб дати користувачеві те, в чому він потребує і те, що він хоче. Windows 95, Windows NT, Windows 98, Windows 2000 робить це можливим.

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

3 .2 Коротка характеристика мови програмування
Object Pascal і середовища Delphi

Delphi - це комбінація кількох найважливіших технологій:

  • Високопродуктивний компілятор в машинний код

  • Об'єктно-орієнтована модель компонент

  • Візуальне (а, отже, і швидкісне) побудова додатків з програмних прототипів

  • Масштабовані кошти для побудови баз даних

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

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

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

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

Концепція Delphi була реалізована в кінці 1994 року, коли вийшла перша версія середовища розробки. В основу програмного продукту лягли концепції об'єктно-орієнтованого програмування на базі мови Object Pascal і візуального підходу до побудови додатків. Саме завдяки цьому поєднанню кожна нова версія середовища розробки ставала подією.

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

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

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

Будь-яка робота в Delphi починається зі створення нового проекту. Як правило, з одного проекту виходить один додаток. Таким чином, проект являє собою фундамент або каркас, на який "кріпляться" всі потрібні деталі. Найменший проект являє собою тільки один файл з вихідним кодом проекту, що має розширення DPR, він називається головним файлом проекту. Серйозний великий проект містить десятки різноманітних форм, модулів, а також динамічні бібліотеки та ресурси і т.д.

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

Модулем називається текстовий файл з розширенням PAS, в якому міститься певний вихідний код на мові Object Pascal. З модулем може бути пов'язана форма, яка являє собою окремо взяте вікно програми з розташуванням на ньому інтерфейсними елементами. Службова інформація про форми зберігається у файлах з розширенням DFM. У загальному випадку до складу проекту можуть входити модулі, що не мають пов'язаних з ними форм.

У проекті Delphi крім модулів і форм можуть бути присутніми різні службові файли. Серед них важливе місце займають ресурси (розширення RES), які зберігають значки, курсори, рядки повідомлень, інформацію про версію програми і т.д.

Група проектів об'єднує для спільної розробки кілька проектів. Файл групи проектів має розширення BPG і являє собою текстовий файл з системною інформацією і описом проектів, що входять в групу.

3 .3 Коротка характеристика використовуваної СУБД

Основні ідеї сучасної інформаційної технології базуються на концепції, згідно з якою дані повинні бути організовані в бази даних з метою адекватного відображення мінливого реального світу та задоволення інформаційних потреб користувачів. Ці бази даних створюються і функціонують під управлінням спеціальних програмних комплексів, називаних системами управління базами даних (СКБД).

Збільшення обсягу та структурної складності збережених даних, розширення кола користувачів інформаційних систем призвели до широкого поширення найбільш зручних і порівняно простих для розуміння реляційних (табличних) СУБД. Для забезпечення одночасного доступу до даних багатьох користувачів, нерідко розташованих досить далеко один від одного і від місця зберігання баз даних, створені мережні багатокористувацькі версії СУБД. У них тим або іншим шляхом вирішуються специфічні проблеми паралельних процесів, цілісності (правильності) і безпеки даних, а також санкціонування доступу.

Формат dBase

Цей формат являє собою звичайний плоский файл *. DBF. Записи розташовані в порядку додавання, оскільки нові записи поміщаються завжди в кінець файлу. Якщо Ви хочете переглядати записи в порядку, відмінному від природного, то Ви повинні побудувати індекс. Індекс має структуру B-дерева, елементами якого є ключові значення і номери відповідних записів у DBF-файлі. Таким чином, при пошуку або перегляді даних за індексом, з індексу береться номер запису, відповідний конкретному значенню ключа, і здійснюється вибірка потрібного запису з DBF-файлу. Якщо в індексі ключові значення розташовані послідовно, то відповідні їм записи в DBF - довільно, і при такому способі доступу відбуваються часті переміщення по файлу з записами, що безумовно уповільнює роботу

(Наприклад FILTER в Clipper) і більше того, при великих обсягах даних робить роботу апаратного або програмного кеша практично даремною (кеш в цьому випадку допомагає тільки індексом).

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

віддаленими записами, а також відновлювати їх (скасовувати прапор видалення). Номери записів залишаються відповідними фізичним, і якщо видалено запис N 5, то при перегляді поспіль йдуть записи з номерами 4 і 6.

При упаковці таблиці видалені записи затираються записами, що знаходяться після них по порядку. Оскільки запису перемістилися (і змінилися їхні фізичні порядкові номери), всі індекси потрібно перебудувати.

Як результат, орієнтація програми на номери записів DBF-файлу має недоліки - номери записів ніяк не пов'язані з вмістом записів, і можуть змінюватися після упаковки файлу. Однак механізм закладок BDE для формату DBF використовує саме номери записів, тому що вони стабільні протягом сеансу роботи, і не залежать від використовуваного індексу.

4. ЕКСПЛУАТАЦІЯ

4 .1. Вимоги до апаратного забезпечення

Щоб комфортно експлуатувати програму потрібно, щоб комп'ютер був налаштований наступним чином:

1. Процесор Pentium 800MHz (рекомендується 1500 MHz);

2. Оперативна пам'ять (ОЗУ) 128 MB (рекомендується 256 Mb);

3. Вільного місця на вінчестері 100 Mб;

4. Window XР, MS Office (можна не весь пакет, а тільки Excel для звітів)

4 .2. Інструкція користувачеві

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

По натисненню на кнопку «Менеджери» - Відкривається довідник менеджерів. Перейти до довідника менеджерів так само можна за допомогою меню: Довідники \ Менеджери.

По натисненню на кнопку «Власники» - Відкривається довідник власників. Перейти до довідника власників так само можна за допомогою меню: Довідники \ Власники.

По натисненню на кнопку «Продані» - Відкривається вікно, що містить основну інформацію щодо проданих автомобілів. Перейти у вікно проданих автомобілів так само можна за допомогою меню: Довідники \ Продані.

По натисненню на кнопку «Додати» - Відкривається вікно реєстрації автомобіля. Перейти до вікна реєстрації можна за допомогою меню: Правка \ Зареєструвати автомобіль.

По натисненню на кнопку «Редагувати» - Відкривається вікно редагування запису. Перейти до вікна редагування можна за допомогою меню: Правка \ Редагувати дані. ВАЖЛИВО! У вікні редагування відображається поточна виділена запис, для того щоб внести коректування в потрібну запис, слід спочатку виділити її.

Після натиснення на кнопку «Продати» - З'являється запит на підтвердження видалення. Якщо Ви вибрали «Yes», ​​то в фоновому режимі відбувається копіювання основних даних у таблицю продані, після чого запис в основній таблиці видаляється. Продати автомобіль можна і через меню: Правка \ Продати автомобіль.

Після натиснення на кнопку «Довідка» - Відкривається довідкова система по програмі. Так само викликати довідку можна за допомогою меню: Допомога \ Довідка, або ж після натискання на клавішу F1.

Після натиснення на кнопку «Вихід» - програма буде закрита. Закрити програму так само можна з меню: Файл \ Вихід.

Після натиснення на кнопку «Шукати» - Відбувається пошук по БД автомобілі. Попередньо потрібно ввести параметр для пошуку і вибрати поле, по якому буде проводитись пошук.

Після натиснення на кнопку "Сортувати» - Відбувається сортування записів у таблиці в алфавітному порядку (для цифрових полів - за збільшенням).

Після натиснення на кнопку «Сформувати запит» - Відкривається вікно формування запитів. Так само відкрити це вікно можна за допомогою меню: Файл \ Створити запит.

Довідник менеджерів. У цьому вікні відображені дані про персонал (прізвище, ім'я, по батькові.

По натисненню на кнопку «Шукати» - Відбувається пошук по БД. Попередньо у полі необхідно ввести параметр пошуку (шукане значення), потім вибрати де шукати (ім'я, прізвище) і натиснути на кнопку "Шукати". Якщо в БД міститься запис з таким значенням курсор таблиці переміститься на неї, якщо ж ні, то програма видасть повідомлення про те що немає такого запису.

По натисненню на кнопку «Редагувати» - Внизу вікна з'являється панель, куди автоматично переносяться дані з виділеного запису. Після внесення необхідних коригувань потрібно натиснути на кнопку «Зберегти», в іншому випадку «Скасування».

По натисненню на кнопку «Новий» - Внизу вікна з'являється панель для введення даних про новий співробітника. Після введення слід натиснути на кнопку «Зберегти», в іншому випадку «Скасування». Панель додавання нового менеджера.

Па натискання на кнопку «Видалити» - З'являється запит на підтвердження видалення. Якщо Ви вибрали «Yes» то виділена запис буде видалена. Запит на підтвердження видалення

Довідник власників. У цьому вікні відображені дані про власників автомобілів (прізвище, ім'я, по батькові, адресу, E-mail, телефон, стільниковий) які зареєстровані в базі даних.

По натисненню на кнопку «Шукати» - Відбувається пошук по БД. Попередньо у полі необхідно ввести параметр пошуку (шукане значення), потім вибрати де шукати (прізвище, № ​​телефону) і натиснути на кнопку "Шукати". Якщо в БД міститься запис з таким значенням курсор таблиці переміститься на неї, якщо ж ні, то програма видасть повідомлення про те що немає такого запису.

Після натискання на кнопку "Сортувати» - Відбувається сортування записів у таблиці БД в алфавітному порядку (для числових полів - у порядку зростання). Попередньо потрібно вказати поле за яким буде відбуватися сортування.

По натисненню на кнопку «Редагувати» - Внизу вікна з'являється панель, куди автоматично переносяться дані з виділеного запису. Після внесення необхідних коригувань потрібно натиснути на кнопку «Зберегти», в іншому випадку «Скасування». Панель редагування.

Довідник проданих автомобілів. У даному вікні відображаються дані про проданих автомобілях (марка, модель, об'єм, світло, тип кузова, ціна, дата продажу), яких в даний момент фізично немає.

По натисненню на кнопку «Шукати» - Відбувається пошук по БД. Попередньо у полі необхідно ввести параметр пошуку (шукане значення), потім вибрати де шукати (марка, модель) та натиснути на кнопку "Шукати". Якщо в БД міститься запис з таким значенням курсор таблиці переміститься на неї, якщо ж ні, то програма видасть повідомлення про те що немає такого запису.

Після натискання на кнопку "Сортувати» - Відбувається сортування записів у таблиці БД в алфавітному порядку (для числових полів - у порядку зростання). Попередньо потрібно вказати поле за яким буде відбуватися сортування.

По натисненню на кнопку «Звіт» - Відбувається експорт даних з таблиці БД в MS Excel. Після закінчення створення звіту відкриється вікно MS Excel, у якому будуть поміщені дані.

По натисненню на кнопку «Назад» - Закривається довідник проданих автомобілів, відбувається повернення до основного робочого вікна.

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

Після заповнення всіх полів і прикріплення фотографій слід натиснути на кнопку «Записати», після чого якщо всі поля заповнені коректно відбувається запис в БД.

При необхідності можна відчистити всі поля разом, для цього необхідно натиснути на кнопку «Очистити».

Вікно редагування запису. Це вікно призначене для редагування обраної (виділеної) запису в таблиці бази даних.

Користувачеві пропонується внести необхідні коректування в полях і якщо все готове, натиснути на кнопку "Зберегти".

Вікно пошуку. Це вікно призначене для формування запитів за різними критеріями базі даних.

У даному вікні користувачу пропонується ввести (вибрати) параметри запиту і натиснути кнопку "Знайти". По натисненню на цю кнопку відбувається обробка запиту та результат його виконання відображається в таблиці.

4 .3 Інструкція програмісту

Для того щоб програма працювала, на комп'ютері користувача має бути встановлено ядро BDE, і бажано Windows XР. Всі фотографії якими користується програма повинна знаходиться в теці «FOTO». Всі файли бази даних повинні знаходиться в кореневому каталозі.

Інсталяція програми не потрібно.

5. ЕКОНОМІЧНА ЧАСТИНА

В економічній частині дипломного проекту повинна бути визначена:

  • собівартість-ціна,

  • економічна ефективність проекту.

Для підрахунку собівартості продукції і економічної ефективності даного програмного продукту, треба знати такі складові:

5 .1. Визначення витрат на створення програмного продукту

Трудомісткість розробки програмного продукту можна визначити наступним способом:

(6.1)

де

- Витрати на підготовку опис завдання;

- Витрати на розробку алгоритму рішення задачі;

- Витрати на розробку блок-схеми алгоритму рішення задачі;

- Витрати на складання програми по готовій блок-схемі;

- Витрати на підготовку документації завдання;

- Витрати на налагодження програми на ЕОМ при комплексної налагодженні завдання.

Складові витрат, у свою чергу можна обчислити через умовне число операторів Q. У нашому випадку число операторів у налагодженій програмі Q = 4.200 творчим характером роботи, в місце цього оцінимо витрати праці на вивчення опису завдання з урахуванням уточнення опису та кваліфікації програміста визначаються:

(6.2)

де

В - коефіцієнт збільшення витрат праці внаслідок недостатнього опису завдання, уточнення і деякого доопрацювання. = від 1,2 до 5). У = 1,2

К - коефіцієнт кваліфікації розробника = від 0,8 до 1,5) До = 1,1

Травень .1.1 Трудомісткість робіт на розробку програми

№ №

Етапи проектування

У

До

Формула розрахунку

Трудомісткість люд. год.

1

Підготовчий

1,2

1,1

39,27

2

Алгоритм розв'язання задачі



4 0, 9 1

3

Блок-схема алгоритму



40,91

4

Складання програми по блок-схемі



40,91

5

Налагодження програми на ЕОМ



92,05


6

Підготовка документації



16,36

12,27


Разом:




Т н = 282,68

Примітка:

(6.3)

де

- Витрати на підготовку матеріалів і рукописи.

-Витрати на редагування, друк та оформлення документації.

Для розробки програми приймається один програміст:

Інженер-програміст 12 розряду, з трудомісткістю робіт

5 .2 Розрахунок собівартості і вартості програмного продукту

Травень .1.2 Розрахунок фонду заробітної плати

Робота програміста за умовами праці кваліфікується шкідливою. Згідно з положенням про оплату праці доплата за шкідливість складає до 12% залежно від атестації робочого місця.

Для розрахунку заробітної плати, тарифної ставки враховується поправочний коефіцієнт за умову праці 1,12. Тарифний коефіцієнт 2,2 розряд 12.

Додатковий фонд заробітної плати - 10%

Відрахування на соціальні потреби-19,5%
Визначення фонду заробітної плати інженера-програміста 12 розряду.

Годинна тарифна ставка 2,2 розряду, з урахуванням доплати за шкідливість, становить:

Тарифна заробітна плата за відпрацьований час:

Додаткова заробітна плата-10% від З тар

Оплата праці програміста складе:

40050,10 + 4005 = 44055,11

Фонд оплати праці на розробку програми складе:

44055,11

Відрахування на соціальні потреби:

Загальний фонд заробітної плати на розробку програмного забезпечення складе:

44055,11 +8811 = 52866,13

Середньомісячна заробітна плата одного фахівця складе:

31718,18

5.1.3 Розрахунок витрат на технічне забезпечення проекту

Для розробки програмного забезпечення необхідні технічні засоби:

  • монітор - 30 000 тенге

  • системний блок - 95000 тенге

  • клавіатура - 1500 тенге

  • миша - 1200 тенге

  • принтер - 20000 тенге

  • програмний продукт - «Delphi» (ліцензійний) - 150000 тенге

  • Windows XP (ліцензійний) - 10000 тенге

Разом витрат на технічне і програмне забезпечення З оф = 307700 тенге

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

Термін використання технічних засобів 3 роки.

Амортизація-це грошове вираження зносу основних фондів.

Травень .1.4 Інші витрати

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

де

З годину - ціна машино-години орендного часу, тен / год;

t ЕОМ - фактичний час налагодження програми ЕОМ;

Фактичний час налагодження обчислимо за формулою:

= 40,91 +92,05 +28,64 = 161,59

За усередненими розрахунками фірм ціна машино-години орендованого часу складає 22,8 тг.

Загальні витрати на оплату машинного часу складають:

= 3684,27

Травень .1.5 Розрахунок витрат на поточний ремонт

Витрати на поточний і профілактичний ремонт приймаються рівними 5% від вартості ЕОМ

/ 12 * 1,5 = 1923,13 тенге

Витрати на матеріали, необхідні для забезпечення нормальної роботи ПЕОМ становлять близько 1% від вартості ЕОМ:

тенге

Разом інші витрати: Зпр = 1923,13 +3684,27 +384,63 = 5992 тенге

Травень .1.6 Витрати на матеріальні ресурси

  1. Компакт-диск - 1 * 100 = 100 тенге

  2. Допоміжна література 3000 тенге

  3. К а нцтовари - 800 тенге

Разом матеріальні ресурси - 3900 тенге

Травень .1.7 Розрахунок витрат на енергоресурси

Для виконання програмного проекту використовується електроенергія на технологічні цілі:

тенге

N - Потужність технічних засобів-0,5 квт

n - кількість використовуваних технічних засобів.

Ц - ціна одного кіловата електроенергії - 4,84 тг.

t - час роботи в годинах. 35 * 8 = 280

5 .3 Розрахунок економічної ефективності проекту

Калькуляція собівартості і відпускної ціни

П / П

Статті та витрати

Сума (тенге)

1

Матеріали

3900, 00

2

Енергоресурси

2032,80

3

Основна заробітна плата

44055,11

4

Додаткова заробітна плата

4005,00

5

Відрахування на соціальні потреби

8811,00

6

Амортизаційні потреби

13687,95

7

Інші витрати

5992,00

8

Витрати на підготовку і освоєння виробництва

0,5% від 1 7

412,42

9

Загальногосподарські витрати 3% від 1 / 7

2474,52

10

Виробнича собівартість 1 / 9

85370,80

11

Прибуток підприємства 20% від гр 10

17074,16

12

Ціна продукції гр 1910 +11

102444,96

13

ПДВ-14% від гр 12

14342,29

14

Відпускна ціна гр 12 + гр 13

116787,25

Еф = (Ц-С) / К

Де Еф-економічна ефективність.

Готова ефективність створення системи визначається з виразу:

Е р = З / (Ен + Кр) = 57132,29 / 0,44 = 130445,87

Де З-зміна розміру витрат на створення і обслуговування інформаційної системи визначається з виразу:

З = ІΣ - К * (Ен + Кр) = 57132,29

де ІΣ - абсолютна зміна витрат роботи з використанням програм.

К р - коефіцієнт реновації, приймається як норма амортизації з урахуванням строку служби існуючого обладнання (термін служби системи Т сл - 3роки) і визначається за формулою:

К р = Ен / ((1 + Ен) тел -1),

К р = 0,15 / ((1 +0,15) 3 - 1) = 0,29

К-одноразова капіталовкладення

К = 97876,64 тенге (програмні та технічні витрати, фонд заробітної плати, інші

витрати, матеріальні витрати, витрати на енергоносії та інші витрати)

Тоді зміна розміру витрат складе:

З = 57132,29 тенге.

Точна ефективність планується в розмірі

Е р = 130445,87 тенге.

Тепер можна визначити термін окупності Ток створення нової системи з виразу:

Т ок = К / Е р = 0,75

Даний термін окупності враховує тільки матеріальні переваги створення нової системи.

У цілому система вважається рентабельною якщо її термін окупності менше року. №

П / П

Показники

Одиниця

вимірювання

Кількість

1

Загальна трудомісткість робіт у тому числі

Чол / год

282,68

1.1

Технічне завдання

Чол / год

39,27

1.2

Техно-робочий проект

Чол / год

122,73

1.3

Впровадження

Чол / год

92,05

2

Термін розробки проекту за планом

Дні

35,00

3

Чисельність персоналу

Чол.

1,00

4

Собівартість продукції

Тенге

85370,80

5

Прибуток підприємства

Тенге

17074,16

6

Відпускна ціна продукції

Тенге

116787,25

7

Середньомісячна заробітна плата

Тенге

31718,18

8

Продуктивність праці

%

100,96

9

Термін окупності витрат

рік

0,75

5 .4 Техніко-економічні показники проекту

ПТ = Т н / Т пл * 100% = 282,68 / 280 * 100% = 101

Т н - загальна трудомісткість на програму

Т ф - фактична трудомісткість

Т ф = ч * т * 8 = 1 * 35 * 8 = 280

Де:

Ч - чисельність програмістів - 1

t - плановий термін виконання робіт - 35

8 - тривалість робочого дня

6. Заходи з техніки безпеки
і навколишнього середовища.

6 .1. Охорона праці

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

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

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

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

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

Підприємство за цією угодою зобов'язується виплачувати працівникові заробітну плату і забезпечувати умови, передбачені законодавством про працю колективним договором та угодою сторін.

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

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

Вимоги до робочого місця програміста

Столи при цьому повинні бути досить більше - від 1200х800 мм до 1600х800 мм. На такому столі ви зможете розмістити всю свою техніку. Саме на столі, а не під столом як ми звичайно це робимо, тому що під столом повинно бути досить просторо ніг та й лазити під стіл, щоб вставити в дисковод дискету, теж вельми втомлює. Зараз модно мати під столом підставку з нахилом від 5 до 15 градусів для ніг, яка забезпечує комфорт і спокій ніг під час тривалого сидіння за комп'ютером. Стілець при цьому необхідно мати на коліщатках, висота сидіння від підлоги 42-53 см, висота столу - 72см. Сідати за комп'ютер потрібно так, щоб кут між тулубом і стегнами, тулубом і передпліччям дорівнював 90 градусів. Монітор повинен стояти від очей на відстані не менше 45см, притому бажано нахилити його так, щоб ви дивилися з монітором не «очі в очі», а дивилися на нього кілька зверху під кутом від 5 до 35 градусів до поверхні екрану. Кут нахилу клавіатури до столу рекомендується встановлювати в межах 5-10 градусів.

6 .2. Техніка безпеки

Техніка безпеки - система організаційних заходів і технічних засобів, що запобігають вплив на роботу в небезпечних виробничих зонах чи чинниках.

Існують 5 видів інструктажів з техніки безпеки:

  • вступний інструктаж (для всіх незалежно від освіти або стажу роботи);

  • первинний - на робочому місці (у день прийому на роботу);

  • повторний (не рідше одного разу на 6 місяців);

  • неплановий (при зміні правил охорони праці);

  • поточний (проводять з працівниками перед виробництвом робіт, на яких оформляється наряд-допуск).

Під час роботи на ПЕОМ в приміщенні підвищується температура й знижується відносна вологість повітря, погіршується іонний і якісний склад повітря; збільшується вміст у повітрі органічних речовин і двоокису вуглецю. Вміст у повітрі зазначених речовин може в кілька разів гранично перевищувати допустимої величини. З цієї причини необхідно підтримувати наступні оптимальні параметри мікроклімату: температура повітря від 18 до 21 ° C, відносна вологість повітря відповідно 55-62%; швидкість руху повітря менше 0,1 м / с. Також має здійснюватися провітрювання приміщення, в залежності від погодних умов, тривалість має бути не менше 10 хв. Найкращий обмін повітря здійснюється при наскрізному провітрюванні, Інший шлях забезпечення повітрообміну, може, бути, досягнутий встановленням у віконних прорізах автономних кондиціонерів. Звукоізоляція огороджувальних конструкцій КВТ повинна також відповідати певним вимогам. Для зниження рівня шуму стелю або стіни вище 1.5 - 1.7 метра від підлоги повинні облицьовуватися звукопоглинаючим матеріалом з максимальним коефіцієнтом звукопоглинання в області частот 63-8000 Гц. Додатковим звукопоглинанням в КВТ можуть бути фіранки, підвішені в складку на відстані 15-20 см. від огорожі, виконані з щільного, важкої тканини. Для зменшеного поглинання світла стеля й стіни вище панелей (3,5 - 1.7м.), Якщо вони не облицьовані звукопоглинаючим матеріалом, фарбуються білою водоемульсійною фарбою (коефіцієнт відбиття повинен бути не менше 0,7). Для фарбування стіни панелей рекомендується віддавати перевагу світлим фарбам.

В освітлювальних установках (ОУ) КВТ слід використовувати систему загального освітлення, виконану стельовим або підвісним люмінесцентними світильниками, рівномірно розташованими по стелі рядами паралельно светопроемов так, щоб екран відеомонітора знаходився в зоні захисного кута світильника, і його проекції не припадали на екран.

Працюючі на ПЕОМ не повинні бачити відображення світильників на екрані. Застосовувати місцеве освітлення при роботі на ПЕОМ не рекомендується.

Робота на ПЕОМ може здійснюватися за таких видах освітлення:

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

Суміщеному освітленні (природне + штучне) тільки при одному і трьох рядном розташуванні робочих місць, коли екран і поверхню робочого столу знаходяться перпендикулярно светонесущей стіні.

Природне освітлення, коли робочі місця з ПЕОМ розташовуються в один ряд по довжині приміщення на відстані 0,8 - 1,0 м від стіни з віконними прорізами, і екрани знаходяться перпендикулярно цієї стіни. Основний потік природного світла при цій повинне бути ліворуч. Не допускається напрямок основного світлового потоку природного світла праворуч, ззаду і спереду працює на ПЕОМ. Оптимальна відстань очей до екрана відеомонітора повинна становити 60-70 см, допустиме не менше 50 см. Розглядати інформацію ближче 50 см не рекомендується.

Рекомендації по використанню обчислювальної техніки:

-Необхідність дотримання обмежень на роботу з персональними комп'ютерами для службовців, які страждають захворюваннями опорно-рухового апарату, очей, шкіри, а також для вагітних жінок;

-Краще використовувати дисплеї з високою роздільною здатністю і розміром екрана не менше 14 "(Hi-Resolution, Non-Interlaced);

-Краще вибирати відеоадаптери з високим дозволом і частотою кадрової розгортки не менше 70 ~ 72Гц;

-Обов'язково ставити на дисплеї екранні фільтри з антистатичним покриттям, у кілька разів знижують стомлюваність очей і концентрацію пилових частинок в близи екрану монітора;

-Сидіти не ближче 70 см від дисплея:

- Екран дисплея повинен бути орієнтований таким чином, щоб виключити відблиски від джерел світла;

-Не слід розташовувати дисплей безпосередньо під джерелом освітлення або впритул з ним;

-Бажано, щоб освітленість робочого місця оператора не перевищувала 2 / 3 нормальної освітленості приміщення;

-Стіна позаду дисплея повинна бути висвітлена приблизно так само, як його екран.

-При розміщенні в одній кімнаті декількох персональних комп'ютерів відстань від робочого місця кожного оператора до задніх і бічних стінок сусідніх персональних комп'ютерів має становити не менше 1.2м;

- Робоче місце повинне бути обладнане так, щоб виключити незручні пози і тривалі статичні напруги тіла;

-Загальний час роботи з дисплеєм не має перевищувати 50% усього робочого часу оператора;

- Не слід перевищувати темп роботи близько 10 тисяч натисків клавіш на годину (приблизно 1500 слів);

- При звичайній рабою з комп'ютером необхідно робити 15-хвилинні перерви через кожні 2 години, а при інтенсивній роботі - через кожну годину.

Крім безпеки користувача, необхідно сказати кілька слів і про безпеку комп'ютера і, що особливо важливо, безпеки даних, що зберігаються в ньому. ПК, які використовуються для зберігання важливої ​​інформації необхідно обладнати пристроями безперебійного живлення, що підтримують напругу живлення протягом деякого часу при аварійних ситуаціях в електричній мережі. Не можна загороджувати задню стінку системного блоку або ставити персональний комп'ютер впритул до стіни - це приводить до «важкого» режиму охолодження системного блоку і його перегріву. Те ж саме відноситься до дисплея - не можна класти на нього папери, книги і взагалі все, що може закрити його вентиляційні отвори. Пил і електроніка погано сумісні один з одним, тому необхідно підтримувати в приміщенні прийнятний пиловий режим.

При появі запаху гару негайно припинити роботу, вимкнути апаратуру.

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

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

Освітленість КВТ в навчальних аудиторіях

Освітленість КВТ також має велике значення при роботі на ПЕОМ. Вона багато в чому визначається колірної і мережевий обстановкою. Для зменшеного поглинання світла стеля й стіни вище панелей (1,5-1,7 м.), якщо вони не облицьовані звукопоглинаючим матеріалом, фарбуються білою водоемульсійною фарбою (коеф. відображення повинен бути не менше 0,7). Для фарбування стіни панелей рекомендується віддавати перевагу світлим фарбам. В освітлювальних установках (ОУ) КВТ слід використовувати систему загального освітлення, ви полнению стельовим або підвісним люмінесцентними світильниками, рівномірно розташованими по стелі рядами паралельно светопроемов так, щоб екран відеомонітора знаходився в зоні захисного кута світильника і його проекції не припадала на екран.

Працюючі на ПЕОМ не повинні бачити відображення світильників на екрані. Застосовувати місцеве освітлення при роботі на ПЕОМ не рекомендується.

Основний потік природного світла при цій повинне бути ліворуч. Не допускається напрямок основного світлового потоку природного світла праворуч, ззаду і спереду працює на ПЕОМ.

Робота на ПЕОМ під час занять або при виробничій практиці може здійснюватися за таких видах освітлення:

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

суміщеному освітлення, (природне + штучне) тільки при одному або трьох рядном розташуванні робочих місць, коли екран і поверхню робочого столу знаходяться перпендикулярно светонесущей стіні;

природне освітлення, коли робочі місця з ПЕОМ розташовуються в один ряд по довжині класу на відстані 0,8-1,0 м від стіни з віконними прорізами, і екрани знаходяться перпендикулярно цієї стіни. Основний потік природного світла при цьому освітлення повинне бути ліворуч.

Оптимальна відстань очей до екрана відеомонітора має

складати 60-70 см, допустиме не менше 50 см. Розглядати інформацію ближче 50 см не рекомендується.

Пожежна безпека при роботі на персональному комп'ютері.

Пожежі в обчислювальному центрі становлять особливу небезпеку, тому що поряжени з великими матеріальними втратами. Характерна особливість невеликі площі приміщень. Як відомо, пожежа може виникнути при взаємодії речовин, окислювача, і джерел запалювання. Горючими компонентами є: будівельні матеріали для акустичної і естетичної обробки приміщень, перегородки, підлоги, двері, ізоляція силових, сигнальних кабелів і т.д. Для відведення теплоти від ЕОМ діє потужна система кондиціонування. Тому кисень, як
окислювач процесів горіння, мається на будь-якій точці приміщень ПЦ.

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

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

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

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

попередження замикання здійснюється правильним вибором, монтажем експлуатацією мереж;

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

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

Електробезпека

Так як робота програміста прямо пов'язана з електрообладнанням, необхідно вміти користуватися ним правильно і дотримуватися заходів безпеки від ураження електричного струму.

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

Призначення захисного заземлення - усунення небезпеки поразкою струмом у випадку дотику до корпуса та інших струмоведучих частин електроустановки,

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

Також є і такий захід захисту від ураження електричного струму, звана занулением. Небезпека ураження струмом при дотику до корпусу та інших неструмоведучих металевих частин електроустаткування, що опинилися під напругою внаслідок замикання на корпусі і по ін причин, може бути усунена швидким відключенням пошкодженої електроустановки від живильної мережі і разом з тим зниженням напруги корпусу щодо землі. Цій меті і служить занулення. Занулення - навмисне електричне з'єднання з нульовим захисним провідником металевих неструмоведучих частин, які можуть опинитися під напругою.

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

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

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

Прилад захисного відключення - сукупність окремих елементів, які сприймають вхідну величину, реагує на її зміни і при заданому значенні дають сигнал на її відключення вимикача. Цими елементами є:

датчик - вхідний ланка пристрою, що сприймають впливу із зовні і здійснює перетворення цього впливу на відповідний сигнал;

підсилювач, призначений для підсилення сигналу датчика, якщо він виявляється недостатньо потужним;

ланцюга контролю, службовці періодичної перевірки справності захисного відключення;

допоміжні елементи - сигнальні лампи та вимірювальні прилади, що характеризують стан електроустановки.

Автоматичний вимикач - апарат, призначений для включення і відключення від ланцюгів під навантаженням і при коротких замиканнях. Він повинен включати ланцюг автоматично при надходженні сигналу від приладу захисного відключення.

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

Ізолюючі - ізолюють людини від струмоведучих або заземлених частин, а також від землі. Вони діляться на основні та додаткові.

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

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

6 .3 Охорона навколишнього середовища

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

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

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

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

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

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

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

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

Захист вод питного призначення також має глобальне значення.

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

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

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

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

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

7. висновок

У результаті дипломного проектування була розроблена програма «АРМ менеджера з продажу в автосалоні« A - Motors », призначена для для реєстрації та ведення обліку продажів автомобілів.

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

У даного додатка зручний інтерфейс, розрахований на не підготовчого користувача.

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

8. Список використаних джерел

  1. Епанешников А.М., Епанешников В.А. «Delphi 4 Середовище розробки». Навчальний посібник М: Діалог - Міфи, 1999р .- 304с.

  2. Культін Н. "Програмування на Object Pascal» СПБ: БХВ - Санкт-Петербург, 1999р. 480с.

  3. Фаронов В.В., Шумаков П.В. «DELPHI 4 Керівництво розробки баз даних", М: Нолидж, 1999р., 560с.

  4. Шумаков П.В. «DELPHI 3 та розробка додатків баз даних" М: Нолидж, 1998р., 704с

  5. Драхведідзе М.Г., Марков Є.П. . «DELPHI 4 середа візуального програмування" СП8: BHV-Санкт - Петербург, 1999р., 352с.

  6. Фаронов В.В. Delphi 4. Навчальний курс. - Москва, 1998

  1. Валерій Фаронов Професійна робота в Delphi 6 Москва 2002

  2. Том Сван Delphi 4 Біблія розробника Москва 1998

  3. Деві Хакер Delphi 5 Керівництво розробника. (Електронний варіант у форматі pdf) 16. Delphi 6 Навчальний курс (електронний варіант у форматі CHM)

  4. Ілюстрований самовчитель по Delphi 6 (електронний варіант у форматі HTML) 18. Delphi 6 і технологія COM Москва 2002

  5. БорісовЕ.Ф .. "Основи економічної теорії",

  6. Сергєєв І.В. "Економіка підприємства"

  7. Райзберг Б.А., Лозівський Л.Ш., Стародубцев Є.Б. "Сучасний економічний словник"

  8. Скала В.І. "Охорона праці та техніка безпеки", - Алмати: «LEM», 2002. -276с

  9. "Охорона праці"-М.; 1989

Додаток а. основні модулі програми

А.1 Модуль форми вікна «Про програму»

unit about;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, RxGIF, ExtCtrls;

type

TFAbout = class (TForm)

Image1: TImage;

Label1: TLabel;

Label2: TLabel;

procedure FormClose (Sender: TObject; var Action: TCloseAction);

private

{Private declarations}

public

{Public declarations}

end;

var

FAbout: TFAbout;

implementation

{$ R *. dfm}

procedure TFAbout.FormClose (Sender: TObject; var Action: TCloseAction);

begin

Action: = caFree;

end;

end.

А.2 Модуль форми вікна «Зареєструвати автомобіль»

unit add;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, Buttons, glLabel, DBTables, ExtCtrls, glBevel, StdCtrls, RxGIF,

DBCtrls, LMDControl, LMDBaseControl, LMDBaseGraphicButton,

LMDCustomSpeedButton, LMDSpeedButton, ExtDlgs, IDGlobal, ToolEdit, Mask,

LMDCustomControl, LMDCustomPanel, LMDCustomBevelPanel,

LMDBaseEdit, LMDCustomEdit, LMDCustomBrowseEdit, LMDCustomFileEdit,

LMDFileOpenEdit, jpeg;

type

TFadd = class (TForm)

Panel1: TPanel;

glLabel1: TglLabel;

Продовження додатка А

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

Label5: TLabel;

Label6: TLabel;

Label7: TLabel;

Edit1: TEdit;

Edit2: TEdit;

Edit3: TEdit;

Edit4: TEdit;

Edit5: TEdit;

Edit6: TEdit;

Edit7: TEdit;

Panel2: TPanel;

Panel3: TPanel;

glLabel2: TglLabel;

glLabel3: TglLabel;

Label8: TLabel;

Label9: TLabel;

Label10: TLabel;

Label11: TLabel;

Label12: TLabel;

Label13: TLabel;

Label14: TLabel;

Edit8: TEdit;

Edit9: TEdit;

Edit10: TEdit;

Edit11: TEdit;

ComboBox1: TComboBox;

Edit12: TEdit;

CheckBox1: TCheckBox;

CheckBox2: TCheckBox;

CheckBox3: TCheckBox;

CheckBox4: TCheckBox;

CheckBox5: TCheckBox;

CheckBox6: TCheckBox;

CheckBox7: TCheckBox;

CheckBox8: TCheckBox;

Edit13: TEdit;

ComboBox2: TComboBox;

Label15: TLabel;

ComboBox3: TComboBox;

ComboBox4: TComboBox;

Label16: TLabel;

Label17: TLabel;

Memo1: TMemo;

Label18: TLabel;

Label19: TLabel;

Memo2: TMemo;

Image2: TImage;

Panel4: TPanel;

Panel5: TPanel;

LMDSpeedButton1: TLMDSpeedButton;

LMDSpeedButton2: TLMDSpeedButton;

LMDSpeedButton3: TLMDSpeedButton;

Label20: TLabel;

DBLookupComboBox1: TDBLookupComboBox;

Image3: TImage;

Продовження додатка А

glLabel 4: TglLabel;

LMDSpeedButton4: TLMDSpeedButton;

LMDSpeedButton5: TLMDSpeedButton;

OpenPictureDialog2: TOpenPictureDialog;

Image4: TImage;

Image5: TImage;

glLabel5: TglLabel;

Label21: TLabel;

Label22: TLabel;

Edit14: TEdit;

DateEdit1: TDateEdit;

OpenPictureDialog1: TOpenPictureDialog;

Image1: TImage;

DBLookupComboBox2: TDBLookupComboBox;

procedure LMDSpeedButton4Click (Sender: TObject);

procedure LMDSpeedButton5Click (Sender: TObject);

procedure LMDSpeedButton2Click (Sender: TObject);

procedure FormCreate (Sender: TObject);

procedure LMDSpeedButton3Click (Sender: TObject);

procedure FormClose (Sender: TObject; var Action: TCloseAction);

procedure LMDSpeedButton1Click (Sender: TObject);

procedure OpenPictureDialog1CanClose (Sender: TObject;

var CanClose: Boolean);

procedure Edit6KeyPress (Sender: TObject; var Key: Char);

procedure Edit7KeyPress (Sender: TObject; var Key: Char);

procedure Edit13KeyPress (Sender: TObject; var Key: Char);

procedure Edit14KeyPress (Sender: TObject; var Key: Char);

procedure DBLookupComboBox2Click (Sender: TObject);

private

{Private declarations}

public

{Public declarations}

end;

var

Fadd: TFadd;

pic1, pic2: string;

implementation

uses dm;

{$ R *. dfm}

function gen_id (table: TTable; var name: string): integer;

var n: integer;

begin

table.First;

n: = table.FieldByName (name). asinteger;

while not table.Eof do begin

if table.FieldByName (name). Value> n then

n: = table.FieldByName (name). Value;

table.Next;

end;

gen_id: = n +1;

end;

procedure TFadd.LMDSpeedButton4Click (Sender: TObject);

begin

OpenPictureDialog1.Execute;

Продовження додатка А

pic 1: = OpenPictureDialog 1. FileName;

if pic1 <>''then Image4.Picture.LoadFromFile (pic1)

else begin

MessageBox (Handle, 'Фотографія кузова НЕ обрана !','', MB_OK);

exit;

end;

end;

procedure TFadd.LMDSpeedButton5Click (Sender: TObject);

begin

OpenPictureDialog1.Execute;

pic2: = OpenPictureDialog1.FileName;

if pic2 <>''then Image5.Picture.LoadFromFile (pic2)

else begin

MessageBox (Handle, 'Фотографія салону НЕ обрана !','', MB_OK);

exit;

end;

end;

procedure TFadd.LMDSpeedButton2Click (Sender: TObject);

begin

edit1.Text :='';

edit2.Text :='';

edit3.Text :='';

edit4.Text :='';

edit5.Text :='';

edit6.Text :='';

edit7.Text :='';

edit8.Text :='';

edit9.Text :='';

edit10.Text :='';

edit11.Text :='';

edit12.Text :='';

edit13.Text :='';

edit14.Text :='';

CheckBox1.Checked: = false;

CheckBox2.Checked: = false;

CheckBox3.Checked: = false;

CheckBox4.Checked: = false;

CheckBox5.Checked: = false;

CheckBox6.Checked: = false;

CheckBox7.Checked: = false;

CheckBox8.Checked: = false;

Memo1.Clear;

Memo2.Clear;

end;

procedure TFadd.FormCreate (Sender: TObject);

begin

/ / Dm1.vlad.Close;

/ / Dm1.vlad.Open;

Memo1.Clear;

Memo2.Clear;

end;

procedure TFadd.LMDSpeedButton3Click (Sender: TObject);

begin

close;

end;

Продовження додатка А

procedure TFadd.FormClose (Sender: TObject; var Action: TCloseAction);

begin

edit1.Text :='';

edit2.Text :='';

edit3.Text :='';

edit4.Text :='';

edit5.Text :='';

edit6.Text :='';

edit7.Text :='';

edit8.Text :='';

edit9.Text :='';

edit10.Text :='';

edit11.Text :='';

edit12.Text :='';

edit13.Text :='';

edit14.Text :='';

CheckBox1.Checked: = false;

CheckBox2.Checked: = false;

CheckBox3.Checked: = false;

CheckBox4.Checked: = false;

CheckBox5.Checked: = false;

CheckBox6.Checked: = false;

CheckBox7.Checked: = false;

CheckBox8.Checked: = false;

Memo1.Clear;

Memo2.Clear;

end;

procedure TFadd.LMDSpeedButton1Click (Sender: TObject);

var k1, k2, k3: integer;

st1, q1, st2, q2, v, a, a_i: string;

i, u: integer;

begin

if (edit1.Text ='') or (edit2.Text ='') or (edit3.Text ='') or (edit4.Text ='')

or (DBLookupComboBox2.KeyValue = Null) or (edit9.Text ='') or (edit10.Text ='') or (edit11.Text ='')

or (edit12.Text ='') or (edit13.Text ='') or (edit14.Text ='') or (pic1 ='')

or (pic2 ='') then begin

MessageBox (Handle, 'Можливо деякі поля не заповнені!', 'Увага', MB_OK);

exit;

end

else begin

dm1.komplect.Append;

dm1.avto_in.Append;

v: = 'KOD_vlad';

k1: = gen_id (dm1.vlad, v);

dm1.vlad.Append;

dm1.vlad.FieldByName ('KOD_vlad'). Value: = k1;

dm1.vlad.FieldByName ('FAM'). Value: = edit1.text;

dm1.vlad.FieldByName ('NAME'). value: = edit2.Text;

dm1.vlad.FieldByName ('OTH'). value: = edit3.text;

dm1.vlad.FieldByName ('adres'). value: = edit4.text;

dm1.vlad.fieldByName ('mail'). value: = edit5.Text;

dm1.vlad.FieldByName ('tel'). value: = edit6.text;

dm1.vlad.FieldByName ('sot'). value: = edit7.text;

Продовження додатка А

a: = 'KOD _ avto';

k2: = gen_id (dm1.avto, a);

dm1.avto.Append;

dm1.avto.FieldByName ('KOD_avto'). Value: = k2;

dm1.avto.FieldByName ('KOD_vlad'). Value: = k1;

dm1.avto.FieldByName ('marka'). Value: = DBLookupComboBox2.KeyValue;

dm1.avto.FieldByName ('model'). value: = edit9.Text;

dm1.avto.FieldByName ('cvet'). value: = edit11.text;

dm1.avto.FieldByName ('gos_nom'). value: = edit10.text;

dm1.avto.fieldByName ('tip_kuz'). value: = ComboBox1.Text;

dm1.avto.FieldByName ('v'). value: = edit12.text;

dm1.avto.FieldByName ('cena'). value: = edit13.text;

st1 :='';

q1 :='';

for i: = length (pic1) downto 1 do

if pic1 [i ]<>'.' then insert (pic1 [i], q1, 0) else break;

st1: = ExtractFilePath (Application.Exename);

ForceDirectories (st1 + 'FOTO');

if dm1.avto.FieldByName ('foto_1'). AsString <>''then

DeleteFile (st1 + 'FOTO \' + dm1.avto.FieldByName ('foto_1'). AsString);

if copyfileto (pchar (pic1), pchar (st1 + 'FOTO \' + inttostr (k2) + 'kuz' + '.' + q1)) then

else begin

MessageBox (Handle, 'Неможливо скопіювати файл! ',' Увага ', MB_OK);

exit;

end;

dm1.avto.FieldByName ('foto_1'). AsString: = inttostr (k2) + 'kuz' + '.' + q1;

st2 :='';

q2 :='';

for u: = length (pic2) downto 1 do

if pic2 [u ]<>'.' then insert (pic2 [u], q2, 0) else break;

st2: = ExtractFilePath (Application.Exename);

ForceDirectories (st2 + 'FOTO');

if dm1.avto.FieldByName ('foto_2'). AsString <>''then

DeleteFile (st2 + 'FOTO \' + dm1.avto.FieldByName ('foto_2'). AsString);

if copyfileto (pchar (pic2), pchar (st2 + 'FOTO \' + inttostr (k2) + 'sal' + '.' + q2)) then

else begin

MessageBox (Handle, 'Неможливо скопіювати файл! ',' Увага ', MB_OK);

exit;

end;

dm1.avto.FieldByName ('foto_2'). AsString: = inttostr (k2) + 'sal' + '.' + q2;

dm1.komplect.FieldByName ('KOD_avto'). Value: = k2;

if CheckBox1.Checked = true then dm1.komplect.FieldByName ('zapaska'). Value: = 'true'

else dm1.komplect.FieldByName ('zapaska'). Value: = 'false';

if CheckBox2.Checked = true then dm1.komplect.FieldByName ('instrument'). Value: = 'true'

else dm1.komplect.FieldByName ('instrument'). Value: = 'false';

Продовження додатка А

if CheckBox3.Checked = true then dm1.komplect.FieldByName ('music'). Value: = 'true'

else dm1.komplect.FieldByName ('music'). Value: = 'false';

if CheckBox4.Checked = true then dm1.komplect.FieldByName ('medic'). Value: = 'true'

else dm1.komplect.FieldByName ('medic'). Value: = 'false';

if CheckBox5.Checked = true then dm1.komplect.FieldByName ('elect_pak'). Value: = 'true'

else dm1.komplect.FieldByName ('elect_pak'). Value: = 'false';

if CheckBox6.Checked = true then dm1.komplect.FieldByName ('abs'). Value: = 'true'

else dm1.komplect.FieldByName ('abs'). Value: = 'false';

if CheckBox7.Checked = true then dm1.komplect.FieldByName ('gur'). Value: = 'true'

else dm1.komplect.FieldByName ('gur'). Value: = 'false';

if CheckBox8.Checked = true then dm1.komplect.FieldByName ('kondic'). Value: = 'true'

else dm1.komplect.FieldByName ('kondic'). Value: = 'false';

dm1.komplect.FieldByName ('koleso'). Value: = ComboBox2.Text;

dm1.komplect.FieldByName ('korobka'). Value: = ComboBox3.Text;

dm1.komplect.FieldByName ('privod'). Value: = ComboBox4.Text;

dm1.komplect.FieldByName ('info'). Value: = Memo1.Text;

dm1.komplect.FieldByName ('defekt'). Value: = Memo2.Text;

a_i: = 'KOD_avto';

k3: = gen_id (dm1.avto, a_i);

dm1.avto_in.FieldByName ('KOD_in'). Value: = k3;

dm1.avto_in.FieldByName ('akt_nom'). Value: = Edit14.Text;

dm1.avto_in.FieldByName ('KOD_avto'). Value: = k2;

dm1.avto_in.FieldByName ('KOD_vlad'). Value: = k1;

dm1.avto_in.FieldByName ('KOD_sot'). Value: = DBLookupComboBox1.KeyValue;

dm1.avto_in.FieldByName ('data'). Value: = DateEdit1.Date;

/ / Dm1.vlad.Post;

/ / Dm1.avto.Post;

dm1.komplect.Post;

dm1.avto_in.Post;

edit1.Text :='';

edit2.Text :='';

edit3.Text :='';

edit4.Text :='';

edit5.Text :='';

edit6.Text :='';

edit7.Text :='';

edit8.Text :='';

edit9.Text :='';

edit10.Text :='';

edit11.Text :='';

edit12.Text :='';

edit13.Text :='';

Продовження додатка А

edit 14. Text :='';

CheckBox1.Checked: = false;

CheckBox2.Checked: = false;

CheckBox3.Checked: = false;

CheckBox4.Checked: = false;

CheckBox5.Checked: = false;

CheckBox6.Checked: = false;

CheckBox7.Checked: = false;

CheckBox8.Checked: = false;

Memo1.Clear;

Memo2.Clear;

end;

end;

procedure TFadd.OpenPictureDialog1CanClose (Sender: TObject;

var CanClose: Boolean);

begin

MessageBox (Handle, 'Ви НЕ вибрали машину! ',' Увага ', MB_OK);

end;

procedure TFadd.Edit6KeyPress (Sender: TObject; var Key: Char);

begin

case key of

"0" .. '9 ', # 8: key: = key

else key: = # 0;

end;

end;

procedure TFadd.Edit7KeyPress (Sender: TObject; var Key: Char);

begin

case key of

"0" .. '9 ', # 8: key: = key

else key: = # 0;

end;

end;

procedure TFadd.Edit13KeyPress (Sender: TObject; var Key: Char);

begin

case key of

"0" .. '9 ', # 8: key: = key

else key: = # 0;

end;

end;

procedure TFadd.Edit14KeyPress (Sender: TObject; var Key: Char);

begin

case key of

"0" .. '9 ', # 8: key: = key

else key: = # 0;

end;

end;

procedure TFadd.DBLookupComboBox2Click (Sender: TObject);

begin

/ / Edit8.Text: = DBLookupComboBox2.KeyValue;

end;

Продовження додатка А

end.

А.3 Модуль форми «Видалити автомобіль»

unit del;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, Grids, DBGrids, ExtCtrls, StdCtrls, LMDControl, LMDBaseControl,

LMDBaseGraphicButton, ActiveX, ComObj, ComCtrls, LMDCustomSpeedButton, LMDSpeedButton, DB;

type

TFdel = class (TForm)

Panel1: TPanel;

DBGrid1: TDBGrid;

Panel5: TPanel;

Panel2: TPanel;

Image1: TImage;

LMDSpeedButton1: TLMDSpeedButton;

Edit1: TEdit;

RadioGroup1: TRadioGroup;

Panel3: TPanel;

LMDSpeedButton2: TLMDSpeedButton;

Image2: TImage;

RadioGroup2: TRadioGroup;

Panel4: TPanel;

Image3: TImage;

LMDSpeedButton3: TLMDSpeedButton;

LMDSpeedButton4: TLMDSpeedButton;

procedure LMDSpeedButton1Click (Sender: TObject);

procedure LMDSpeedButton2Click (Sender: TObject);

procedure LMDSpeedButton4Click (Sender: TObject);

procedure LMDSpeedButton3Click (Sender: TObject);

private

{Private declarations}

public

{Public declarations}

end;

var

Fdel: TFdel;

App, Ke, Abc: Variant;

ExelOtch: String;

Result: HResult;

AppProgID: string;

ServerIsRunning: boolean;

Unknown: IUnknown;

i: integer;

implementation

uses dm;

{$ R *. dfm}

Продовження додатка А

procedure TFdel.LMDSpeedButton1Click (Sender: TObject);

begin

if edit1.Text <>''then begin

if RadioGroup1.ItemIndex = 0 then

if dm1.avto_out.Locate ('marka_out', edit1.Text, [loCaseInsensitive]) then

else MessageBox (Handle, 'Немає автомобіля такий марки ...','', MB_OK);

if RadioGroup1.ItemIndex = 1 then

if dm1.avto_out.Locate ('model_out', edit1.Text, [loCaseInsensitive]) then

else MessageBox (Handle, 'Немає автомобіля такої моделі ...','', MB_OK);

end

else MessageBox (Handle, 'Введіть значення для пошуку !','', MB_OK);

end;

procedure TFdel.LMDSpeedButton2Click (Sender: TObject);

begin

if RadioGroup2.ItemIndex = 0 then

dm1.avto_out.IndexName: = 'marka_out';

if RadioGroup2.ItemIndex = 1 then

dm1.avto_out.IndexName: = 'V_out';

if RadioGroup2.ItemIndex = 2 then

dm1.avto_out.IndexName: = 'tipkuz_out';

end;

procedure TFdel.LMDSpeedButton4Click (Sender: TObject);

begin

close;

end;

procedure TFdel.LMDSpeedButton3Click (Sender: TObject);

begin

AppProgID: = 'Excel.Application';

ServerIsRunning: = False;

Result: = GetActiveObject (ProgIDToClassID (AppProgID), nil, Unknown);

try

if (Result = MK_E_UNAVAILABLE) then

App: = CreateOleObject (AppProgID)

else

begin

App: = GetActiveOleObject (AppProgID);

ServerIsRunning: = True;

end;

ExelOtch: = ExtractFilePath (Application.EXEName) + 'Продані автомобілі на '+ DateToStr (Date) +'. xls ';

App.WorkBooks.Add;

Ke: = App.WorkBooks [1];

Abc: = Ke.WorkSheets [1];

Abc.Name: = 'Продані авто ('+ DateToStr (Date )+'). xls';

except on EinOutError do begin

messageBox (handle, 'Не вдається створити файл! ',' Помилка ', MB_ICONERROR);

exit;

end;

end;

App.DisplayAlerts: = False;

Abc.Cells [1,3]: = 'Продані авто ('+ DateToStr (Date )+'). xls';

Продовження додатка А

Abc. Cells [1,3]. Font. Bold: = True;

Abc.Cells [1,3]. Font.Size: = 11;

dm1.avto_out.first;

i: = 3;

while not dm1.avto_out.eof do begin

i: = i +1;

app.cells [i, 1]: = vartostr (dm1.avto_out ['Marka_out']);

Abc.Cells [i, 1]. ColumnWidth: = 15;

app.cells [i, 2]: = vartostr (dm1.avto_out ['Model_out']);

Abc.Cells [i, 2]. ColumnWidth: = 15;

app.cells [i, 3]: = vartostr (dm1.avto_out ['v_out']);

Abc.Cells [i, 3]. ColumnWidth: = 5;

app.cells [i, 4]: = vartostr (dm1.avto_out ['cvet_out']);

Abc.Cells [i, 4]. ColumnWidth: = 15;

app.cells [i, 5]: = vartostr (dm1.avto_out ['tipkuz_out']);

Abc.Cells [i, 5]. ColumnWidth: = 15;

app.cells [i, 6]: = vartostr (dm1.avto_out ['cena_out']);

Abc.Cells [i, 6]. ColumnWidth: = 10;

app.cells [i, 7]: = vartostr (dm1.avto_out ['date']);

Abc.Cells [i, 7]. ColumnWidth: = 8;

dm1.avto_out.next;

end;

App.ActiveWorkBook.SaveAs (ExelOtch);

App.Quit;

App: = Unassigned;

AppProgID: = 'Excel.Application';

App: = CreateOleObject (AppProgID);

App.Visible: = True;

ExelOtch: = ExtractFilePath (Application.EXEName) + 'Продані автомобілі на '+ DateToStr (Date) +'. xls ';

App.WorkBooks.Open (ExelOtch);

end;

end.

А.4 Модуль даних

unit dm;

interface

uses

SysUtils, Classes, DB, DBTables;

type

Tdm1 = class (TDataModule)

dsvlad: TDataSource;

dsavto: TDataSource;

dssot: TDataSource;

dskomplect: TDataSource;

dsavto_in: TDataSource;

dsavto_out: TDataSource;

Продовження додатка А

sot: TTable;

komplect: TTable;

avto_in: TTable;

avto_out: TTable;

sotKOD_SOT: TSmallintField;

sotFAM: TStringField;

sotNAME: TStringField;

sotOTH: TStringField;

avto_inKOD_IN: TFloatField;

avto_inAKT_NOM: TFloatField;

avto_inKOD_AVTO: TFloatField;

avto_inKOD_VLAD: TFloatField;

avto_inKOD_SOT: TFloatField;

avto_inDATA: TDateField;

komplectKOD_AVTO: TFloatField;

komplectKOLESO: TStringField;

komplectZAPASKA: TBooleanField;

komplectINSTRUMENT: TBooleanField;

komplectMUSIC: TBooleanField;

komplectMEDIC: TBooleanField;

komplectELECT_PAK: TBooleanField;

komplectABS: TBooleanField;

komplectGUR: TBooleanField;

komplectKONDIC: TBooleanField;

komplectINFO: TMemoField;

komplectDEFEKT: TMemoField;

komplectKOROBKA: TStringField;

komplectPRIVOD: TStringField;

avto_outKOD_OUT: TFloatField;

avto_outDATE: TDateField;

avto_outMARKA_OUT: TStringField;

avto_outMODEL_OUT: TStringField;

avto_outV_OUT: TStringField;

avto_outCVET_OUT: TStringField;

avto_outTIPKUZ_OUT: TStringField;

avto_outCENA_OUT: TFloatField;

dsmarka: TDataSource;

marka: TTable;

markaID_MARKA: TSmallintField;

markaMARKA: TStringField;

vlad: TTable;

vladKOD_VLAD: TFloatField;

vladFAM: TStringField;

vladNAME: TStringField;

vladOTH: TStringField;

vladADRES: TStringField;

vladMAIL: TStringField;

vladTEL: TFloatField;

vladSOT: TFloatField;

t1: TTable;

t1KOD_AVTO: TFloatField;

t1KOD_VLAD: TFloatField;

t1MARKA: TSmallintField;

t1MODEL: TStringField;

t1GOS_NOM: TStringField;

t1CVET: TStringField;

t1TIP_KUZ: TStringField;

t1FOTO_1: TStringField;

t1FOTO_2: TStringField;

Продовження додатка А

t 1 CENA: TFloatField;

t1hoz: TStringField;

t1V: TStringField;

t1MMarka: TStringField;

avto: TTable;

avtoKOD_AVTO: TFloatField;

avtoKOD_VLAD: TFloatField;

avtoMARKA: TSmallintField;

avtoMODEL: TStringField;

avtoGOS_NOM: TStringField;

avtoCVET: TStringField;

avtoTIP_KUZ: TStringField;

avtoFOTO_1: TStringField;

avtoFOTO_2: TStringField;

avtoCENA: TFloatField;

avtoV: TFloatField;

avtohoz: TStringField;

avtoMMarka: TStringField;

procedure DataModuleCreate (Sender: TObject);

procedure avtoAfterScroll (DataSet: TDataSet);

procedure markaBeforeInsert (DataSet: TDataSet);

procedure markaAfterInsert (DataSet: TDataSet);

private

{Private declarations}

public

{Public declarations}

end;

var

dm1: Tdm1;

id: integer;

implementation

uses main;

{$ R *. dfm}

procedure Tdm1.DataModuleCreate (Sender: TObject);

begin

avto.Close;

avto.Open;

komplect.Close;

komplect.Open;

avto_in.Close;

avto_in.Open;

avto_out.Close;

avto_out.Open;

vlad.Close;

vlad.Open;

sot.Close;

sot.Open;

end;

procedure Tdm1.avtoAfterScroll (DataSet: TDataSet);

begin

try

Fmain.Image3.Picture.LoadFromFile (ExtractFilePath (path) + 'FOTO \' + dm1.avto.fieldbyname ('FOTO_1'). AsString);

Продовження додатка А

except

Fmain.Image3.picture: = nil;

end;

try

Fmain.Image4.Picture.LoadFromFile (ExtractFilePath (path) + 'FOTO \' + dm1.avto.fieldbyname ('FOTO_2'). AsString);

except

Fmain.Image4.picture: = nil;

end;

end;

procedure Tdm1.markaBeforeInsert (DataSet: TDataSet);

begin

id: = 0;

Marka.First;

while not Marka.Eof do begin

if Marka.FieldByName ('Id_marka'). asinteger> id

then id: = Marka.FieldByName ('Id_marka'). asinteger;

Marka.Next;

end;

id: = id +1;

end;

procedure Tdm1.markaAfterInsert (DataSet: TDataSet);

begin

Marka.FieldByName ('id_marka'). Asinteger: = id;

end;

end.

А.5 Модуль форми «Редагування даних»

unit edit;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, ExtCtrls, LMDControl, LMDBaseControl, LMDBaseGraphicButton,

LMDCustomSpeedButton, LMDSpeedButton, StdCtrls, RxGIF, glLabel, Mask,

ToolEdit, DBCtrls, IDGlobal, ExtDlgs, Grids, DBGrids;

type

TFedit = class (TForm)

Panel3: TPanel;

glLabel2: TglLabel;

Label8: TLabel;

Label9: TLabel;

Label10: TLabel;

Label11: TLabel;

Label12: TLabel;

Label13: TLabel;

Label14: TLabel;

Image1: TImage;

ComboBox1: TComboBox;

Panel4: TPanel;

glLabel3: TglLabel;

Label15: TLabel;

Продовження додатка А

Label 16: TLabel;

Label17: TLabel;

Label18: TLabel;

Label19: TLabel;

ComboBox2: TComboBox;

ComboBox3: TComboBox;

ComboBox4: TComboBox;

Panel1: TPanel;

glLabel4: TglLabel;

LMDSpeedButton8: TLMDSpeedButton;

LMDSpeedButton9: TLMDSpeedButton;

Image4: TImage;

Image5: TImage;

Panel5: TPanel;

LMDSpeedButton10: TLMDSpeedButton;

LMDSpeedButton12: TLMDSpeedButton;

DBEdit2: TDBEdit;

DBEdit3: TDBEdit;

DBEdit4: TDBEdit;

DBEdit5: TDBEdit;

DBEdit6: TDBEdit;

DBMemo1: TDBMemo;

DBMemo2: TDBMemo;

DBCheckBox1: TDBCheckBox;

DBCheckBox2: TDBCheckBox;

DBCheckBox3: TDBCheckBox;

DBCheckBox4: TDBCheckBox;

DBCheckBox5: TDBCheckBox;

DBCheckBox6: TDBCheckBox;

DBCheckBox7: TDBCheckBox;

DBCheckBox8: TDBCheckBox;

OpenPictureDialog1: TOpenPictureDialog;

OpenPictureDialog2: TOpenPictureDialog;

Image3: TImage;

DBLookupComboBox1: TDBLookupComboBox;

procedure LMDSpeedButton12Click (Sender: TObject);

procedure LMDSpeedButton10Click (Sender: TObject);

procedure LMDSpeedButton8Click (Sender: TObject);

procedure LMDSpeedButton9Click (Sender: TObject);

procedure FormActivate (Sender: TObject);

procedure DBEdit6KeyPress (Sender: TObject; var Key: Char);

procedure DBEdit1KeyPress (Sender: TObject; var Key: Char);

procedure DBEdit3KeyPress (Sender: TObject; var Key: Char);

private

{Private declarations}

public

{Public declarations}

end;

var

Fedit: TFedit;

pic1, pic2: string;

pole1, pole2, pole1_1, pole2_2: string;

y, t: integer;

implementation

uses dm, DB;

{$ R *. dfm}

Продовження додатка А

procedure TFedit.LMDSpeedButton12Click (Sender: TObject);

begin

close;

end;

procedure TFedit.LMDSpeedButton10Click (Sender: TObject);

var st1, q1, st2, q2: string;

i, u, k2: integer;

begin

dm1.avto.Edit;

dm1.komplect.Edit;

dm1.avto.FieldByName ('TIP_KUZ'). Value: = ComboBox1.text;

dm1.komplect.FieldByName ('KOLESO'). value: = ComboBox2.text;

dm1.komplect.FieldByName ('KOROBKA'). value: = ComboBox3.text;

dm1.komplect.FieldByName ('PRIVOD'). value: = ComboBox4.text;

k2: = dm1.avto.fieldbyname ('KOD_avto'). Value;

if (pic1 <>'') then begin

pole1_1 :='';

pole1 :='';

pole1: = dm1.avto.fieldbyname ('FOTO_1'). AsString;

for y: = 1 to length (pole1) do

if pole1 [y ]='.' then pole1_1: = copy (pole1, 1, y-1);

st1 :='';

q1 :='';

for i: = length (pic1) downto 1 do

if pic1 [i ]<>'.' then insert (pic1 [i], q1, 0) else break;

st1: = ExtractFilePath (Application.Exename);

ForceDirectories (st1 + 'FOTO');

if dm1.avto.FieldByName ('foto_1'). AsString <>''then

DeleteFile (st1 + 'FOTO \' + dm1.avto.FieldByName ('foto_1'). AsString);

if copyfileto (pchar (pic1), pchar (st1 + 'FOTO \' + pole1_1 + '.' + q1)) then

else begin

MessageBox (Handle, 'Неможливо скопіювати файл! ',' Увага ', MB_OK);

exit;

end;

dm1.avto.FieldByName ('foto_1'). AsString: = pole1_1 + '.' + q1;

end;

if (pic2 <>'') then begin

pole2_2 :='';

pole2 :='';

pole2: = dm1.avto.fieldbyname ('FOTO_2'). AsString;

for t: = 1 to length (pole2) do

if pole2 [t ]='.' then pole2_2: = copy (pole2, 1, t-1);

st2 :='';

q2 :='';

for u: = length (pic2) downto 1 do

if pic2 [u ]<>'.' then insert (pic2 [u], q2, 0) else break;

st2: = ExtractFilePath (Application.Exename);

ForceDirectories (st2 + 'FOTO');

if dm1.avto.FieldByName ('foto_2'). AsString <>''then

DeleteFile (st2 + 'FOTO \' + dm1.avto.FieldByName ('foto_2'). AsString);

Продовження додатка А

if copyfileto (pchar (pic2), pchar (st2 + 'FOTO \' + pole2_2 + '.' + q2)) then

else begin

MessageBox (Handle, 'Неможливо скопіювати файл! ',' Увага ', MB_OK);

exit;

end;

dm1.avto.FieldByName ('foto_2'). AsString: = pole2_2 + '.' + q2;

end;

dm1.avto.Post;

/ / Dm1.komplect.Post;

end;

procedure TFedit.LMDSpeedButton8Click (Sender: TObject);

begin

OpenPictureDialog1.Execute;

pic1: = OpenPictureDialog1.FileName;

if pic1 <>''then Image4.Picture.LoadFromFile (pic1)

else begin

MessageBox (Handle, 'Фотографія кузова НЕ обрана !','', MB_OK);

exit;

end;

end;

procedure TFedit.LMDSpeedButton9Click (Sender: TObject);

begin

OpenPictureDialog2.Execute;

pic2: = OpenPictureDialog2.FileName;

if pic2 <>''then Image5.Picture.LoadFromFile (pic2)

else begin

MessageBox (Handle, 'Фотографія салону НЕ обрана !','', MB_OK);

exit;

end;

end;

procedure TFedit.FormActivate (Sender: TObject);

begin

if (dm1.avto.fieldbyname ('FOTO_1'). Value <>'') then

Image4.Picture.LoadFromFile (ExtractFilePath (Application.Exename) + 'FOTO \' + dm1.avto.fieldbyname ('FOTO_1'). AsString)

else MessageBox (Handle, 'Фотографії кузова НІ !','', MB_OK);

if (dm1.avto.fieldbyname ('FOTO_2'). Value <>'') then

Image5.Picture.LoadFromFile (ExtractFilePath (Application.Exename) + 'FOTO \' + dm1.avto.fieldbyname ('FOTO_2'). AsString)

else MessageBox (Handle, 'Фотографії салону НІ !','', MB_OK);

end;

procedure TFedit.DBEdit6KeyPress (Sender: TObject; var Key: Char);

begin

case key of

"0" .. '9 ', # 8: key: = key

else key: = # 0;

end;

end;

procedure TFedit.DBEdit1KeyPress (Sender: TObject; var Key: Char);

begin

Продовження додатка А

case key of

'A' .. 'Z', 'a' .. 'z', 'а' .. 'я', 'А' .. 'Я', # 8: key: = key

else key: = # 0;

end;

end;

procedure TFedit.DBEdit3KeyPress (Sender: TObject; var Key: Char);

begin

case key of

'A' .. 'Z', 'a' .. 'z', 'а' .. 'я', 'А' .. 'Я', # 8: key: = key

else key: = # 0;

end;

end;

end.

А.6 Модуль заставки

unit logo;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, ExtCtrls, StdCtrls, ComCtrls, RxGIF;

type

TFlogo = class (TForm)

Timer1: TTimer;

Image1: TImage;

ProgressBar1: TProgressBar;

procedure FormClose (Sender: TObject; var Action: TCloseAction);

procedure Timer1Timer (Sender: TObject);

procedure FormActivate (Sender: TObject);

private

{Private declarations}

public

{Public declarations}

end;

var

Flogo: TFlogo;

i: integer;

implementation

{$ R *. dfm}

procedure TFlogo.FormClose (Sender: TObject; var Action: TCloseAction);

begin

if i = 100 then

Action: = caFree

else

Action: = caNone;

end;

procedure TFlogo.Timer1Timer (Sender: TObject);

begin

i: = i +1;

Продовження додатка А

ProgressBar 1. Position: = i;

if i = 100 then begin

Timer1.Enabled: = false;

close;

end;

end;

procedure TFlogo.FormActivate (Sender: TObject);

begin

i: = 0;

end;

end.

А.7 Модуль головної форми

unit main;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, ComCtrls, Menus, Grids, DBGrids, Buttons, LMDSpeedButton,

StdCtrls, XPMan, LMDBaseGraphicButton, LMDCustomSpeedButton, LMDControl,

LMDBaseControl, DBCtrls, ImgList, LMDBaseGraphicControl,

LMDGraphicControl, LMDBaseMeter, LMDCustomProgress,

ExtCtrls, DBTables, DB, LMDLEDCustomLabel, LMDLEDLabel, IDGlobal;

type

TFmain = class (TForm)

MainMenu1: TMainMenu;

N1: TMenuItem;

N2: TMenuItem;

N3: TMenuItem;

N4: TMenuItem;

N5: TMenuItem;

N6: TMenuItem;

N8: TMenuItem;

N9: TMenuItem;

N11: TMenuItem;

N10: TMenuItem;

N12: TMenuItem;

N13: TMenuItem;

N14: TMenuItem;

N15: TMenuItem;

N81: TMenuItem;

N82: TMenuItem;

N16: TMenuItem;

N17: TMenuItem;

ColorDialog1: TColorDialog;

XPManifest1: TXPManifest;

ImageList1: TImageList;

Panel1: TPanel;

DBGrid2: TDBGrid;

DBGrid1: TDBGrid;

DBGrid3: TDBGrid;

Timer1: TTimer;

N7: TMenuItem;

Продовження додатка А

N 18: TMenuItem;

N19: TMenuItem;

N20: TMenuItem;

Panel9: TPanel;

Panel6: TPanel;

Image3: TImage;

Image4: TImage;

Panel5: TPanel;

DBText1: TDBText;

DBText2: TDBText;

DBText3: TDBText;

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

Label5: TLabel;

DBCheckBox1: TDBCheckBox;

DBCheckBox2: TDBCheckBox;

DBCheckBox3: TDBCheckBox;

DBCheckBox4: TDBCheckBox;

DBCheckBox5: TDBCheckBox;

DBCheckBox6: TDBCheckBox;

DBCheckBox7: TDBCheckBox;

DBCheckBox8: TDBCheckBox;

DBMemo1: TDBMemo;

DBMemo2: TDBMemo;

Panel2: TPanel;

RadioGroup1: TRadioGroup;

Panel7: TPanel;

Panel10: TPanel;

LMDSpeedButton3: TLMDSpeedButton;

LMDSpeedButton4: TLMDSpeedButton;

LMDSpeedButton5: TLMDSpeedButton;

LMDSpeedButton6: TLMDSpeedButton;

LMDSpeedButton7: ​​TLMDSpeedButton;

LMDSpeedButton8: TLMDSpeedButton;

Edit1: TEdit;

LMDSpeedButton1: TLMDSpeedButton;

Label7: TLabel;

Label6: TLabel;

N21: TMenuItem;

N22: TMenuItem;

N23: TMenuItem;

procedure FormShow (Sender: TObject);

procedure N5Click (Sender: TObject);

procedure N14Click (Sender: TObject);

procedure N81Click (Sender: TObject);

procedure N15Click (Sender: TObject);

procedure N82Click (Sender: TObject);

procedure N8Click (Sender: TObject);

procedure N9Click (Sender: TObject);

procedure N11Click (Sender: TObject);

procedure DBGrid1CellClick (Column: TColumn);

procedure N12Click (Sender: TObject);

procedure LMDSpeedButton1Click (Sender: TObject);

procedure LMDSpeedButton3Click (Sender: TObject);

procedure LMDSpeedButton4Click (Sender: TObject);

procedure LMDSpeedButton5Click (Sender: TObject);

procedure LMDSpeedButton6Click (Sender: TObject);

Продовження додатка А

procedure LMDSpeedButton9Click (Sender: TObject);

procedure Timer1Timer (Sender: TObject);

procedure LMDSpeedButton10Click (Sender: TObject);

procedure N7Click (Sender: TObject);

procedure N19Click (Sender: TObject);

procedure LMDSpeedButton7Click (Sender: TObject);

procedure N10Click (Sender: TObject);

procedure DBGrid1KeyPress (Sender: TObject; var Key: Char);

procedure FormCreate (Sender: TObject);

procedure DBGrid1TitleClick (Column: TColumn);

procedure N22Click (Sender: TObject);

procedure N23Click (Sender: TObject);

procedure N17Click (Sender: TObject);

private

{Private declarations}

public

{Public declarations}

end;

var

Fmain: TFmain;

path: string;

implementation

uses logo, dm, vladel, sotr, add, edit, del, query, search, marka, about;

{$ R *. dfm}

function gen_id (table: TTable; var name: string): integer;

var n: integer;

begin

table.First;

n: = table.FieldByName (name). asinteger;

while not table.Eof do begin

if table.FieldByName (name). Value> n then

n: = table.FieldByName (name). Value;

table.Next;

end;

gen_id: = n +1;

end;

procedure TFmain.FormShow (Sender: TObject);

begin

flogo.showmodal;

flogo.Free;

Image3.Picture.LoadFromFile (ExtractFilePath (Application.Exename) + 'FOTO \' + dm1.avto.fieldbyname ('FOTO_1'). AsString);

Image4.Picture.LoadFromFile (ExtractFilePath (Application.Exename) + 'FOTO \' + dm1.avto.fieldbyname ('FOTO_2'). AsString);

end;

procedure TFmain.N5Click (Sender: TObject);

begin

close;

end;

procedure TFmain.N14Click (Sender: TObject);

begin

Продовження додатка А

ColorDialog 1. Execute;

DBGrid1.Font.Color: = ColorDialog1.color;

end;

procedure TFmain.N81Click (Sender: TObject);

begin

DBGrid1.Font.Size: = 10;

end;

procedure TFmain.N15Click (Sender: TObject);

begin

DBGrid1.Font.Size: = 12;

end;

procedure TFmain.N82Click (Sender: TObject);

begin

DBGrid1.Font.Size: = 8;

end;

procedure TFmain.N8Click (Sender: TObject);

begin

fvlad.showmodal;

end;

procedure TFmain.N9Click (Sender: TObject);

begin

fsotr.showmodal;

end;

procedure TFmain.N11Click (Sender: TObject);

begin

fadd.showmodal;

end;

procedure TFmain.DBGrid1CellClick (Column: TColumn);

begin

Image3.Picture.LoadFromFile (ExtractFilePath (Application.Exename) + 'FOTO \' + dm1.avto.fieldbyname ('FOTO_1'). AsString);

Image4.Picture.LoadFromFile (ExtractFilePath (Application.Exename) + 'FOTO \' + dm1.avto.fieldbyname ('FOTO_2'). AsString);

end;

procedure TFmain.N12Click (Sender: TObject);

begin

Fedit.showmodal;

end;

procedure TFmain.LMDSpeedButton1Click (Sender: TObject);

begin

if edit1.Text <>''then begin

if RadioGroup1.ItemIndex = 0 then

if dm1.avto.Locate ('marka', edit1.Text, [loCaseInsensitive]) then

else MessageBox (Handle, 'Немає автомобіля такий марки ...','', MB_OK);

if RadioGroup1.ItemIndex = 1 then

if dm1.avto.Locate ('model', edit1.Text, [loCaseInsensitive]) then

else MessageBox (Handle, 'Немає автомобіля такої моделі ...','', MB_OK);

if RadioGroup1.ItemIndex = 2 then

Продовження додатка А

if dm1.avto.Locate ('gos_nom', edit1.Text, [loCaseInsensitive]) then

else MessageBox (Handle, 'Немає автомобіля c таким номером ...','', MB_OK);

end

else MessageBox (Handle, 'Введіть значення для пошуку !','', MB_OK);

end;

procedure TFmain.LMDSpeedButton3Click (Sender: TObject);

begin

fsotr.showmodal;

end;

procedure TFmain.LMDSpeedButton4Click (Sender: TObject);

begin

fvlad.showmodal;

end;

procedure TFmain.LMDSpeedButton5Click (Sender: TObject);

begin

fadd.showmodal;

end;

procedure TFmain.LMDSpeedButton6Click (Sender: TObject);

begin

Fedit.showmodal;

end;

procedure TFmain.LMDSpeedButton9Click (Sender: TObject);

begin

/ / Close;

Panel9.Visible: = not Panel9.Visible;

end;

procedure TFmain.Timer1Timer (Sender: TObject);

begin

Label6.Caption: = TimeToStr (Time);

end;

procedure TFmain.LMDSpeedButton10Click (Sender: TObject);

begin

fquery.showmodal;

end;

procedure TFmain.N7Click (Sender: TObject);

begin

fdel.showmodal;

end;

procedure TFmain.N19Click (Sender: TObject);

begin

fquery.showmodal;

end;

procedure TFmain.LMDSpeedButton7Click (Sender: TObject);

var v: string;

k: integer;

begin

dm1.komplect.Edit;

dm1.avto.Edit;

Продовження додатка А

v: = 'KOD _ out';

k: = gen_id (dm1.avto_out, v);

dm1.avto_out.Append;

dm1.avto_out.FieldByName ('KOD_out'). Value: = k;

dm1.avto_out.FieldByName ('marka_out'). Value: = dm1.avto.FieldByName ('marka'). Value;

dm1.avto_out.FieldByName ('model_out'). value: = dm1.avto.FieldByName ('model'). value;

dm1.avto_out.FieldByName ('V_out'). value: = dm1.avto.FieldByName ('V'). value;

dm1.avto_out.FieldByName ('cvet_out'). value: = dm1.avto.FieldByName ('cvet'). value;

dm1.avto_out.FieldByName ('tipkuz_out'). value: = dm1.avto.FieldByName ('tip_kuz'). value;

dm1.avto_out.FieldByName ('cena_out'). value: = dm1.avto.FieldByName ('cena'). value;

dm1.avto_out.FieldByName ('date'). value: = Date;

if messagedlg ('Продати?!', mtconfirmation, [mbYes, mbNo], 0) = mrYes then

begin

while not dm1.komplect.Eof do dm1.komplect.Delete;

dm1.avto.Delete;

end;

DeleteFile (ExtractFilePath (Application.Exename) + 'FOTO \' + dm1.avto.FieldByName ('foto_1'). AsString);

DeleteFile (ExtractFilePath (Application.Exename) + 'FOTO \' + dm1.avto.FieldByName ('foto_2'). AsString);

/ / Dm1.avto.Post;

/ / Dm1.komplect.Post;

dm1.avto_out.Post;

end;

procedure TFmain.N10Click (Sender: TObject);

begin

LMDSpeedButton7Click (Sender);

end;

procedure TFmain.DBGrid1KeyPress (Sender: TObject; var Key: Char);

begin

Image3.Picture.LoadFromFile (ExtractFilePath (Application.Exename) + 'FOTO \' + dm1.avto.fieldbyname ('FOTO_1'). AsString);

Image4.Picture.LoadFromFile (ExtractFilePath (Application.Exename) + 'FOTO \' + dm1.avto.fieldbyname ('FOTO_2'). AsString);

end;

procedure TFmain.FormCreate (Sender: TObject);

begin

path: = Application.ExeName;

end;

Продовження додатка А

procedure TFmain.DBGrid1TitleClick (Column: TColumn);

begin

if Column.Title.Caption = 'Марка' then

dm1.avto.IndexName: = 'marka';

if Column.Title.Caption = 'Обсяг' then

dm1.avto.IndexName: = 'V';

if Column.Title.Caption = 'Тип кузова 'then

dm1.avto.IndexName: = 'tip_kuz';

end;

procedure TFmain.N22Click (Sender: TObject);

begin

FSearch.showmodal;

end;

procedure TFmain.N23Click (Sender: TObject);

begin

FMarka.Showmodal;

end;

procedure TFmain.N17Click (Sender: TObject);

begin

Fabout.ShowModal;

end;

end.

А.8 Модуль форми пошуку

unit search;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, DBCtrls, StdCtrls, Mask, glLabel, ExtCtrls, Grids, DBGrids,

LMDCustomButton, LMDButton, DB, DBTables, RXDBCtrl;

type

TFSearch = class (TForm)

Panel3: TPanel;

glLabel2: TglLabel;

Label8: TLabel;

Label12: TLabel;

Label13: TLabel;

Label14: TLabel;

ComboBox1: TComboBox;

Panel4: TPanel;

glLabel3: TglLabel;

Label15: TLabel;

Label16: TLabel;

Label17: TLabel;

ComboBox2: TComboBox;

ComboBox3: TComboBox;

ComboBox4: TComboBox;

Продовження додатка А

CheckBox 1: TCheckBox;

CheckBox2: TCheckBox;

CheckBox3: TCheckBox;

Panel1: TPanel;

DBLookupComboBox1: TDBLookupComboBox;

CheckBox4: TCheckBox;

CheckBox5: TCheckBox;

CheckBox6: TCheckBox;

CheckBox7: TCheckBox;

CheckBox8: TCheckBox;

CheckBox9: TCheckBox;

CheckBox10: TCheckBox;

CheckBox11: TCheckBox;

CheckBox12: TCheckBox;

Edit1: TEdit;

Edit2: TEdit;

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

Label5: TLabel;

CheckBox13: TCheckBox;

CheckBox14: TCheckBox;

CheckBox15: TCheckBox;

CheckBox16: TCheckBox;

CheckBox17: TCheckBox;

Query1: TQuery;

LMDButton1: TLMDButton;

DataSource1: TDataSource;

RxDBGrid1: TRxDBGrid;

procedure FormClose (Sender: TObject; var Action: TCloseAction);

procedure CheckBox9Click (Sender: TObject);

procedure CheckBox10Click (Sender: TObject);

procedure CheckBox11Click (Sender: TObject);

procedure CheckBox12Click (Sender: TObject);

procedure CheckBox4Click (Sender: TObject);

procedure CheckBox5Click (Sender: TObject);

procedure CheckBox6Click (Sender: TObject);

procedure CheckBox7Click (Sender: TObject);

procedure CheckBox8Click (Sender: TObject);

procedure CheckBox1Click (Sender: TObject);

procedure CheckBox2Click (Sender: TObject);

procedure CheckBox3Click (Sender: TObject);

procedure LMDButton1Click (Sender: TObject);

procedure DBGrid1CellClick (Column: TColumn);

private

{Private declarations}

public

{Public declarations}

end;

var

FSearch: TFSearch;

implementation

uses dm, edit;

{$ R *. dfm}

Продовження додатка А

procedure TFSearch.FormClose (Sender: TObject; var Action: TCloseAction);

begin

Action: = caFree;

end;

procedure TFSearch.CheckBox9Click (Sender: TObject);

begin

Label8.Enabled: = not Label8.Enabled;

DBLookupComboBox1.Enabled: = not DBLookupComboBox1.Enabled;

end;

procedure TFSearch.CheckBox10Click (Sender: TObject);

begin

Label12.Enabled: = not Label12.Enabled;

ComboBox1.Enabled: = not ComboBox1.Enabled;

end;

procedure TFSearch.CheckBox11Click (Sender: TObject);

begin

Label14.Enabled: = not Label14.Enabled;

Edit1.Enabled: = not Edit1.Enabled;

end;

procedure TFSearch.CheckBox12Click (Sender: TObject);

begin

Label13.Enabled: = not Label13.Enabled;

Edit2.Enabled: = not Edit2.Enabled;

end;

procedure TFSearch.CheckBox4Click (Sender: TObject);

begin

Label1.Enabled: = not Label1.Enabled;

CheckBox17.Enabled: = not CheckBox17.Enabled;

end;

procedure TFSearch.CheckBox5Click (Sender: TObject);

begin

Label2.Enabled: = not Label2.Enabled;

CheckBox16.Enabled: = not CheckBox16.Enabled;

end;

procedure TFSearch.CheckBox6Click (Sender: TObject);

begin

Label3.Enabled: = not Label3.Enabled;

CheckBox15.Enabled: = not CheckBox15.Enabled;

end;

procedure TFSearch.CheckBox7Click (Sender: TObject);

begin

Label4.Enabled: = not Label4.Enabled;

CheckBox14.Enabled: = not CheckBox14.Enabled;

end;

procedure TFSearch.CheckBox8Click (Sender: TObject);

begin

Label5.Enabled: = not Label5.Enabled;

CheckBox13.Enabled: = not CheckBox13.Enabled;

end;

Продовження додатка А

procedure TFSearch.CheckBox1Click (Sender: TObject);

begin

Label15.Enabled: = not Label15.Enabled;

ComboBox2.Enabled: = not ComboBox2.Enabled;

end;

procedure TFSearch.CheckBox2Click (Sender: TObject);

begin

Label16.Enabled: = not Label16.Enabled;

ComboBox3.Enabled: = not ComboBox3.Enabled;

end;

procedure TFSearch.CheckBox3Click (Sender: TObject);

begin

Label17.Enabled: = not Label17.Enabled;

ComboBox4.Enabled: = not ComboBox4.Enabled;

end;

function BoolToStr (value: boolean): string;

begin

if value then result: = 'true' else result: = 'false';

end;

procedure TFSearch.LMDButton1Click (Sender: TObject);

begin

Query1.Close;

Query1.SQL.Clear;

try

Query1.Sql.Add ('select a.kod_avto, m.marka, a.model, a.cvet, a.tip_kuz, a.cena, av, k.korobka, k.privod');

Query1.SQL.Add ('from avto a, komplect k, marka m');

Query1.SQL.Add ('where');

if checkBox9.Checked then Query1.SQL.Add ('a.marka =' + Inttostr (DBLookupComboBox1.keyvalue) + 'and');

if checkBox10.Checked then Query1.SQL.Add ('a.tip_kuz = "' + ComboBox1.Text + '" and ");

if checkBox11.Checked then Query1.SQL.Add ('av <=' + Edit1.Text + 'and');

if checkBox12.Checked then Query1.SQL.Add ('a.cena <=' + Edit2.Text + 'and');

if checkBox4.Checked then Query1.SQL.Add ('k.elect_pak =' + BoolToStr (CheckBox17.Checked) + 'and');

if checkBox5.Checked then Query1.SQL.Add ('k.kondic =' + BoolToStr (CheckBox16.Checked) + 'and');

if checkBox6.Checked then Query1.SQL.Add ('k.music =' + BoolToStr (CheckBox15.Checked) + 'and');

if checkBox7.Checked then Query1.SQL.Add ('k.gur =' + BoolToStr (CheckBox14.Checked) + 'and');

if checkBox8.Checked then Query1.SQL.Add ('k.abs =' + BoolToStr (CheckBox13.Checked) + 'and');

if checkBox1.Checked then Query1.SQL.Add ('k.koleso = "' + ComboBox2.Text + '" and ");

if checkBox2.Checked then Query1.SQL.Add ('k.korobka = "' + ComboBox3.Text + '" and ");

if checkBox3.Checked then Query1.SQL.Add ('k.privod = "' + ComboBox4.Text + '" and ");

Query1.SQL.Add ('a.marka = m.id_marka and a.kod_avto = k.kod_avto');

Query1.Open;

except

Продовження додатка А

MessageDlg ('Введені не всі дані', mtWarning, [mbOk], 0);

end;

end;

procedure TFSearch.DBGrid1CellClick (Column: TColumn);

begin

if Query1.Active then begin

if dm1.avto.Locate ('kod_avto', Query1.FieldByName ('kod_avto'). AsInteger, [loCaseInsensitive])

then fedit.showmodal;

end;

end;

end.

А.9 Модуль форми менеджерів

unit sotr;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, Grids, DBGrids, ExtCtrls, LMDControl, LMDBaseControl,

LMDBaseGraphicButton, DB, LMDCustomSpeedButton, LMDSpeedButton, StdCtrls,

Mask, DBTables, DBCtrls, ImgList;

type

TFsotr = class (TForm)

Panel1: TPanel;

DBGrid1: TDBGrid;

Panel2: TPanel;

pedit: TPanel;

Panel4: TPanel;

RadioGroup1: TRadioGroup;

Edit1: TEdit;

LMDSpeedButton1: TLMDSpeedButton;

Image1: TImage;

LMDSpeedButton2: TLMDSpeedButton;

LMDSpeedButton3: TLMDSpeedButton;

LMDSpeedButton4: TLMDSpeedButton;

LMDSpeedButton5: TLMDSpeedButton;

pnew: TPanel;

Image2: TImage;

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

Label5: TLabel;

Label6: TLabel;

Edit2: TEdit;

Edit3: TEdit;

Edit4: TEdit;

Edit5: TEdit;

Edit6: TEdit;

Edit7: TEdit;

LMDSpeedButton6: TLMDSpeedButton;

Продовження додатка А

LMDSpeedButton 7: TLMDSpeedButton;

LMDSpeedButton8: TLMDSpeedButton;

LMDSpeedButton9: TLMDSpeedButton;

Image3: TImage;

Image4: TImage;

procedure LMDSpeedButton1Click (Sender: TObject);

procedure FormCreate (Sender: TObject);

procedure LMDSpeedButton4Click (Sender: TObject);

procedure LMDSpeedButton5Click (Sender: TObject);

procedure LMDSpeedButton2Click (Sender: TObject);

procedure LMDSpeedButton7Click (Sender: TObject);

procedure LMDSpeedButton9Click (Sender: TObject);

procedure FormActivate (Sender: TObject);

procedure LMDSpeedButton8Click (Sender: TObject);

procedure LMDSpeedButton6Click (Sender: TObject);

procedure LMDSpeedButton3Click (Sender: TObject);

procedure Edit2KeyPress (Sender: TObject; var Key: Char);

procedure Edit3KeyPress (Sender: TObject; var Key: Char);

procedure Edit4KeyPress (Sender: TObject; var Key: Char);

procedure Edit5KeyPress (Sender: TObject; var Key: Char);

procedure Edit6KeyPress (Sender: TObject; var Key: Char);

procedure Edit7KeyPress (Sender: TObject; var Key: Char);

private

{Private declarations}

public

{Public declarations}

end;

var

Fsotr: TFsotr;

implementation

uses dm;

{$ R *. dfm}

function gen_id (table: TTable; var name: string): integer;

var n: integer;

begin

table.First;

n: = table.FieldByName (name). asinteger;

while not table.Eof do begin

if table.FieldByName (name). Value> n then

n: = table.FieldByName (name). Value;

table.Next;

end;

gen_id: = n +1;

end;

procedure TFsotr.LMDSpeedButton1Click (Sender: TObject);

begin

if edit1.Text <>''then begin

if RadioGroup1.ItemIndex = 0 then

if dm1.sot.Locate ('FAM', edit1.Text, [loCaseInsensitive]) then

else MessageBox (Handle, 'Немає записи з таким прізвищем ...','', MB_OK);

if RadioGroup1.ItemIndex = 1 then

if dm1.sot.Locate ('NAME', edit1.Text, [loCaseInsensitive]) then

Продовження додатка А

else MessageBox (Handle, 'Немає записи з таким ім'ям ...','', MB_OK);

end

else MessageBox (Handle, 'Введіть значення для пошуку !','', MB_OK);

end;

procedure TFsotr.FormCreate (Sender: TObject);

begin

dm1.sot.IndexName: = 'FAM';

RadioGroup1.ItemIndex: =- 1;

end;

procedure TFsotr.LMDSpeedButton4Click (Sender: TObject);

begin

if messagedlg ('Видалити?!', mtconfirmation, [mbYes, mbNo], 0) = mrYes then begin

if dm1.sot.State = dsbrowse then dm1.sot.delete;

end;

end;

procedure TFsotr.LMDSpeedButton5Click (Sender: TObject);

begin

/ / Dm1.sot.Edit;

/ / Dm1.sot.Append;

pedit.Visible: = true;

Edit7.Text: = dm1.sot.fieldbyname ('fam'). Value;

Edit6.Text: = dm1.sot.fieldbyname ('name'). Value;

Edit5.Text: = dm1.sot.fieldbyname ('oth'). Value;

end;

procedure TFsotr.LMDSpeedButton2Click (Sender: TObject);

begin

pnew.Visible: = true;

end;

procedure TFsotr.LMDSpeedButton7Click (Sender: TObject);

begin

pedit.Visible: = false;

Edit5.Text :='';

Edit6.Text :='';

Edit7.Text :='';

dm1.sot.Cancel;

end;

procedure TFsotr.LMDSpeedButton9Click (Sender: TObject);

begin

pnew.Visible: = false;

Edit2.Text :='';

Edit3.Text :='';

Edit4.Text :='';

dm1.sot.Cancel;

end;

procedure TFsotr.FormActivate (Sender: TObject);

begin

pedit.Visible: = true;

pnew.Visible: = true;

pedit.Visible: = false;

pnew.Visible: = false;

end;

Продовження додатка А

procedure TFsotr.LMDSpeedButton8Click (Sender: TObject);

var v: string;

k: integer;

begin

if (Edit2.Text ='') or (Edit3.Text ='') or (Edit4.Text ='') then begin

MessageBox (Handle, 'Можливо деякі поля не заповнені!', 'Увага', MB_OK);

exit;

end

else begin

v: = 'KOD_sot';

k: = gen_id (dm1.sot, v);

dm1.sot.Insert;

dm1.sot.FieldByName ('KOD_sot'). Value: = k;

dm1.sot.FieldByName ('FAM'). Value: = edit2.text;

dm1.sot.FieldByName ('NAME'). value: = edit3.Text;

dm1.sot.FieldByName ('OTH'). value: = edit4.text;

dm1.sot.Post;

pnew.Visible: = false;

Edit2.Text :='';

Edit3.Text :='';

Edit4.Text :='';

end;

end;

procedure TFsotr.LMDSpeedButton6Click (Sender: TObject);

begin

if (Edit5.Text ='') or (Edit6.Text ='') or (Edit7.Text ='') then begin

MessageBox (Handle, 'Можливо деякі поля не заповнені!', 'Увага', MB_OK);

exit;

end

else begin

dm1.sot.Edit;

dm1.sot.FieldByName ('FAM'). Value: = edit7.text;

dm1.sot.FieldByName ('NAME'). value: = edit6.Text;

dm1.sot.FieldByName ('OTH'). value: = edit5.text;

dm1.sot.Post;

pedit.Visible: = false;

Edit5.Text :='';

Edit6.Text :='';

Edit7.Text :='';

end;

end;

procedure TFsotr.LMDSpeedButton3Click (Sender: TObject);

begin

edit1.Text :='';

edit2.Text :='';

edit3.Text :='';

edit4.Text :='';

edit5.Text :='';

edit6.Text :='';

edit7.Text :='';

close;

end;

procedure TFsotr.Edit2KeyPress (Sender: TObject; var Key: Char);

begin

case key of

Продовження додатка А

'A' .. 'Z', 'a' .. 'z', 'а' .. 'я', 'А' .. 'Я', # 8: key: = key

else key: = # 0;

end;

end;

procedure TFsotr.Edit3KeyPress (Sender: TObject; var Key: Char);

begin

case key of

'A' .. 'Z', 'a' .. 'z', 'а' .. 'я', 'А' .. 'Я', # 8: key: = key

else key: = # 0;

end;

end;

procedure TFsotr.Edit4KeyPress (Sender: TObject; var Key: Char);

begin

case key of

'A' .. 'Z', 'a' .. 'z', 'а' .. 'я', 'А' .. 'Я', # 8: key: = key

else key: = # 0;

end;

end;

procedure TFsotr.Edit5KeyPress (Sender: TObject; var Key: Char);

begin

case key of

'A' .. 'Z', 'a' .. 'z', 'а' .. 'я', 'А' .. 'Я', # 8: key: = key

else key: = # 0;

end;

end;

procedure TFsotr.Edit6KeyPress (Sender: TObject; var Key: Char);

begin

case key of

'A' .. 'Z', 'a' .. 'z', 'а' .. 'я', 'А' .. 'Я', # 8: key: = key

else key: = # 0;

end;

end;

procedure TFsotr.Edit7KeyPress (Sender: TObject; var Key: Char);

begin

case key of

'A' .. 'Z', 'a' .. 'z', 'а' .. 'я', 'А' .. 'Я', # 8: key: = key

else key: = # 0;

end;

end;

end.

А.10 Модуль форми про власників

unit vladel;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, Grids, DBGrids, ExtCtrls, StdCtrls, LMDControl, LMDBaseControl,

LMDBaseGraphicButton, LMDCustomSpeedButton, DB, LMDSpeedButton, Buttons;

Продовження додатка А

type

TFvlad = class (TForm)

Panel1: TPanel;

DBGrid1: TDBGrid;

Panel2: TPanel;

Panel3: TPanel;

RadioGroup1: TRadioGroup;

Edit1: TEdit;

LMDSpeedButton1: TLMDSpeedButton;

Image1: TImage;

RadioGroup2: TRadioGroup;

LMDSpeedButton2: TLMDSpeedButton;

Panel4: TPanel;

Image2: TImage;

Image3: TImage;

LMDSpeedButton4: TLMDSpeedButton;

pedit: TPanel;

Label4: TLabel;

Label5: TLabel;

Label6: TLabel;

LMDSpeedButton8: TLMDSpeedButton;

LMDSpeedButton9: TLMDSpeedButton;

Edit2: TEdit;

Edit3: TEdit;

Edit4: TEdit;

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Label7: TLabel;

Edit5: TEdit;

Edit6: TEdit;

Edit7: TEdit;

Edit8: TEdit;

Image4: TImage;

procedure FormCreate (Sender: TObject);

procedure LMDSpeedButton1Click (Sender: TObject);

procedure LMDSpeedButton2Click (Sender: TObject);

procedure FormActivate (Sender: TObject);

procedure LMDSpeedButton8Click (Sender: TObject);

procedure LMDSpeedButton4Click (Sender: TObject);

procedure LMDSpeedButton9Click (Sender: TObject);

procedure Edit2KeyPress (Sender: TObject; var Key: Char);

procedure Edit3KeyPress (Sender: TObject; var Key: Char);

procedure Edit4KeyPress (Sender: TObject; var Key: Char);

procedure Edit7KeyPress (Sender: TObject; var Key: Char);

procedure Edit8KeyPress (Sender: TObject; var Key: Char);

procedure FormClose (Sender: TObject; var Action: TCloseAction);

private

{Private declarations}

public

{Public declarations}

end;

var

Fvlad: TFvlad;

implementation

uses dm;

Продовження додатка А

{$ R *. dfm}

procedure TFvlad.FormCreate (Sender: TObject);

begin

dm1.vlad.IndexName: = 'FAM';

RadioGroup1.ItemIndex: =- 1;

RadioGroup2.ItemIndex: =- 1;

end;

procedure TFvlad.LMDSpeedButton1Click (Sender: TObject);

begin

if edit1.Text <>''then begin

if RadioGroup1.ItemIndex = 0 then

if dm1.vlad.Locate ('FAM', edit1.Text, [loCaseInsensitive]) then

else MessageBox (Handle, 'Немає записи з таким прізвищем ...','', MB _ OK);

if RadioGroup1.ItemIndex = 1 then

if dm1.vlad.Locate ('TEL', edit1.Text, [loCaseInsensitive]) then

else MessageBox (Handle, 'Немає записи з таким телефоном ...','', MB _ OK);

end

else MessageBox (Handle, 'Введіть значення для пошуку !','', MB_OK);

end;

procedure TFvlad.LMDSpeedButton2Click (Sender: TObject);

begin

if RadioGroup2.ItemIndex = 0 then

dm1.vlad.IndexName: = 'FAM';

if RadioGroup2.ItemIndex = 1 then

dm1.vlad.IndexName: = 'NAME';

if RadioGroup2.ItemIndex = 2 then

dm1.vlad.IndexName: = 'TEL';

end;

procedure TFvlad.FormActivate (Sender: TObject);

begin

pedit.Visible: = true;

pedit.Visible: = false;

end;

procedure TFvlad.LMDSpeedButton8Click (Sender: TObject);

begin

if (Edit5.Text ='') or (Edit6.Text ='') or (Edit7.Text ='') or (Edit8.Text ='')

or (Edit2.Text ='') or (Edit3.Text ='') or (Edit4.Text ='') then begin

MessageBox (Handle, 'Можливо деякі поля не заповнені!', 'Увага', MB _ OK);

exit;

end

else begin

dm1.vlad.Edit;

dm1.vlad.FieldByName ('FAM'). Value: = edit2.text;

dm1.vlad.FieldByName ('NAME'). value: = edit3.Text;

dm1.vlad.FieldByName ('OTH'). value: = edit4.text;

dm1.vlad.FieldByName ('ADRES'). value: = edit5.text;

dm1.vlad.FieldByName ('MAIL'). value: = edit6.text;

dm1.vlad.FieldByName ('TEL'). value: = edit7.text;

dm1.vlad.FieldByName ('SOT'). value: = edit8.text;

dm1.vlad.Post;

Продовження додатка А

pedit. Visible: = false;

Edit2.Text :='';

Edit3.Text :='';

Edit4.Text :='';

Edit5.Text :='';

Edit6.Text :='';

Edit7.Text :='';

Edit8.Text :='';

end;

end;

procedure TFvlad.LMDSpeedButton4Click (Sender: TObject);

begin

pedit.Visible: = true;

edit2.text: = dm1.vlad.FieldByName ('FAM'). Value;

edit3.Text: = dm1.vlad.FieldByName ('NAME'). value;

edit4.text: = dm1.vlad.FieldByName ('OTH'). value;

edit5.text: = dm1.vlad.FieldByName ('ADRES'). value;

edit6.text: = dm1.vlad.FieldByName ('MAIL'). value;

edit7.text: = dm1.vlad.FieldByName ('TEL'). value;

edit8.text: = dm1.vlad.FieldByName ('SOT'). value;

end;

procedure TFvlad.LMDSpeedButton9Click (Sender: TObject);

begin

pedit.Visible: = false;

Edit2.Text :='';

Edit3.Text :='';

Edit4.Text :='';

Edit5.Text :='';

Edit6.Text :='';

Edit7.Text :='';

Edit8.Text :='';

dm1.vlad.Cancel;

end;

procedure TFvlad.Edit2KeyPress (Sender: TObject; var Key: Char);

begin

case key of

'A' .. 'Z', 'a' .. 'z', 'а' .. 'я', 'А' .. 'Я', # 8: key: = key

else key: = # 0;

end;

end;

procedure TFvlad.Edit3KeyPress (Sender: TObject; var Key: Char);

begin

case key of

'A' .. 'Z', 'a' .. 'z', 'а' .. 'я', 'А' .. 'Я', # 8: key: = key

else key: = # 0;

end;

end;

procedure TFvlad.Edit4KeyPress (Sender: TObject; var Key: Char);

begin

case key of

'A' .. 'Z', 'a' .. 'z', 'а' .. 'я', 'А' .. 'Я', # 8: key: = key

else key: = # 0;

end;

end;

Продовження додатка А

procedure TFvlad.Edit7KeyPress (Sender: TObject; var Key: Char);

begin

case key of

"0" .. '9 ', # 8: key: = key

else key: = # 0;

end;

end;

procedure TFvlad.Edit8KeyPress (Sender: TObject; var Key: Char);

begin

case key of

"0" .. '9 ', # 8: key: = key

else key: = # 0;

end;

end;

procedure TFvlad.FormClose (Sender: TObject; var Action: TCloseAction);

begin

Edit1.Text :='';

RadioGroup1.ItemIndex: =- 1;

RadioGroup2.ItemIndex: =- 1;

close;

end;

end.

Додати в блог або на сайт

Цей текст може містити помилки.

Програмування, комп'ютери, інформатика і кібернетика | Диплом
620.3кб. | скачати


Схожі роботи:
АРМ мененджер автосалону А моторс
Форд Мотор Компані та Дженерал Моторс конкуренція принципів управління та менеджменту
АРМ бухгалтера 2
АРМ Колекціонера марок
АРМ реєстратора лікарні
АРМ менеджера з продажу комплектуючих
АРМ Розрахунок заробітної плати
АРМ бухгалтера Облік основних засобів
Розробка АРМ начальника фінансового відділу
© Усі права захищені
написати до нас