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 * 100 = 100 тенге Допоміжна література 3000 тенге К а нцтовари - 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. Список використаних джерел Епанешников А.М., Епанешников В.А. «Delphi 4 Середовище розробки». Навчальний посібник М: Діалог - Міфи, 1999р .- 304с. Культін Н. "Програмування на Object Pascal» СПБ: БХВ - Санкт-Петербург, 1999р. 480с. Фаронов В.В., Шумаков П.В. «DELPHI 4 Керівництво розробки баз даних", М: Нолидж, 1999р., 560с. Шумаков П.В. «DELPHI 3 та розробка додатків баз даних" М: Нолидж, 1998р., 704с Драхведідзе М.Г., Марков Є.П. . «DELPHI 4 середа візуального програмування" СП8: BHV-Санкт - Петербург, 1999р., 352с. Фаронов В.В. Delphi 4. Навчальний курс. - Москва, 1998
Валерій Фаронов Професійна робота в Delphi 6 Москва 2002 Том Сван Delphi 4 Біблія розробника Москва 1998 Деві Хакер Delphi 5 Керівництво розробника. (Електронний варіант у форматі pdf) 16. Delphi 6 Навчальний курс (електронний варіант у форматі CHM) Ілюстрований самовчитель по Delphi 6 (електронний варіант у форматі HTML) 18. Delphi 6 і технологія COM Москва 2002 БорісовЕ.Ф .. "Основи економічної теорії", Сергєєв І.В. "Економіка підприємства" Райзберг Б.А., Лозівський Л.Ш., Стародубцев Є.Б. "Сучасний економічний словник" Скала В.І. "Охорона праці та техніка безпеки", - Алмати: «LEM», 2002. -276с "Охорона праці"-М.; 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 АРМ Колекціонера марок АРМ реєстратора лікарні АРМ менеджера з продажу комплектуючих АРМ Розрахунок заробітної плати АРМ бухгалтера Облік основних засобів Розробка АРМ начальника фінансового відділу
|