2. Комп’ютерний парк
Стосовно офісної техніки, в організації встановлено 7 комп’ютерів: у керуючого «Керамаг ЛТД» типу Intel Core 2 Duo E6200 з материнською платою Intel ASUS P4LD1 (вінчестер Samsung 320Gb, оперативна пам’ять 2Gb, відеокарта Geforce 6200TC), у головного бухгалтера Intel Pentium 4 524 з материнською платою ASUS P5GV-MX (вінчестер Samsung 320Gb, оперативна пам’ять 2Gb, відеокарта GeForce 9800GT), також один комп’ютер типу Intel Core 2 Duo E6300 з материнською платою ASUS P5LD2 P5B (вінчестер Western Digital 250Gb, оперативна пам’ять 2Gb, відеокарта GeForce 8800GTS), інші 4 комп’ютери мають відповідні характеристики: RT 9141NEC2D з материнською платою ASUS P5B (вінчестер Western Digital 160Gb, оперативна пам’ять 1Gb, відеокарта ATI Radeon HD4890).
Комп’ютер керуючого ОСББ виступає в ролі сервера. Всі комп’ютери з’єднані локальною мережею.
3. Задачі підприємства, які вирішуються за допомогою комп’ютерного парку
Комп’ютери використовуються для обробки великої кількості інформації.
Вони насамперед призначені для ведення:
1. Обліку асортименту товару (керамічна плитка, сантехніка, ламінат, змішувачі, тощо):
2. Надходження товару на склад (картка надходження товару: номер, назва товару, кількість, ціна, час зберігання, категорія, дата);
3. Інформація про категорії товару (номер категорії, назва, сировина й матеріали, ціна, );
4. Прийом та видача товару (номер документу, дата, компанія, тип накладної, номер товару, номер документу, кількість).
5. Інформація про компанії-постачальники (номер компанії, компанія, місто, адреса).
6. Облік карточок клієнта: (номер покупця, імя, прізвище,по батькові, телефон, адреса).
4. Мої обов’язки на підприємстві
Задачі
Під час виробничої практики практикант повинен безпосередньо приймати участь в процесах технічного обслуговування та експлуатації електронно-обчислювальних засобів (ЕОЗ) та комп’ютерних мереж, виконувати роботу на ЕОМ з стандартним програмним забезпеченням, а також виконувати розробку та редагування тестових програми для контролю працездатності окремих вузлів, модулів, вузлів ЕОЗ та комп'ютерних мереж.
Обов’язки:
Сформувати базові професійні уміння та навики у сфері мов програмування баз даних
Ознайомитися з методами і специфікою роботи програміста
Застосувати набуті під час навчання знання на практиці шляхом написання завершеного програмного продукту
Налагоджувати та підтримувати у робочому стані вже існуючі програмні продукти та технічні засоби
Протестувати розроблений програмний продукт
Підготувати звіт по проробленій роботі та навести результати по ній
Безпосереднім завданням було створення кінцевого програмного продукту.
5. Програмний продукт
Програма, створена мною, є свого роду полегшенням праці головним чином працівникам, що займають місця керуючого, головного бухгалтера. Маючи справу в основному з переліком товарів, а також компаній-постачальників та клієнтів, програма має зробити ці переліки простішими та більш систематизованими. Отже програму можна умовно поділити на дві частини: перелік продукції, у процесі співпраці з іншими компаніями, їх облік; та перелік клієнтів. Такий умовний поділ робить пошук розділу більш простим та доступним.
Створена мною програма розроблена на мові FoxPro. FoxPro (Фокс-про) - один з діалектів мови програмування xBase. Застосовується в основному для розробки реляційних СУБД, хоча можливо застосовувати й для розробки інших класів програм.
В даний час використовується в середовищі розробки Microsoft Visual FoxPro.
Звісно можна використовувати стандартні пакети програм, такі як Microsofr Office, 1С: бухгалтерія; остання є досить потужним пакетом програм, що забезпечують обслуговування майже всіх потреб користувачів щодо облікових задач. Але ці програмні продукти не можуть компетентно слугувати як системи керування базами даних, тому що в них досить багато зайвих функцій, утиліт, які будуть заважати нормальній роботі користувача. Також використовуючи ці програми буде ускладнюватись звітність роботи, багато функцій оператор буде виконувати вручну, що відповідним чином буде відображатись на його роботі. Через вище перераховані причини можна скласти висновок, що використання стандартних пакетів програм недоцільно в даному випадку.
Таким чином, необхідно розробити програму керування базою даних так, щоб вона не містила зайвих елементів, мала зручний і практичний інтерфейс, і не завантажувала зайвих ресурсів ПК користувача.
Тому для здійснення необхідної задачі я вибрав мову програмування баз даних FoxPro.
Керівництво програмісту.
База даних.
База даних носить назву storage і має вигляд:
Рис. 5.1. БД storage
База даних включає в себе такі таблиці:
Рис. 5.2. Таблиця company
Comp_id – номер компанії
Company – назва компанії
Location – місто, в якому розташована компанія
Address – адреса компанії в місті
Рис 5.3. Таблиця docum
Doc_id – номер документу накладної
Doc_type – тип накладної (поставка/віддача)
Date – дата накладної
Comp_id – номер компанії
Рис 5.4. Таблиця item
Card_id – номер товару
Doc_id – номер документу накладної
Num – кількість товару
Рис 5.5. Таблиця card
Card_id – номер товару
Name – назва товару
Price – ціна товару
Unit – одиниці вимірювання товару
Exp_time – число днів зберігання товару
Cat_id – номер категорії товару
Рис 5.6. Таблиця category
Cat_id – номер категорії товару
Cat_name – назва категорії товару
Рис 5.7. Таблиця people
Id – ідентифікатор(номер) покупця
Name – імя покупця
Sname – прізвище
Fname – по батькові
Tel – телефон
Address – адреса покупця
Опис використовуваних функцій
- Select – вибір таблиці з бази даних або вільної таблиці;
Синтаксис:
Select <назва таблиці>
- if – оператор умови;
Синтаксис:
If (умова) then
набір команд 1
else
набір команд 2
endif
- APPEND BLANK – відкриття останнього поля таблиці для заповнення;
- delete – помічає запис таблиці на видалення;
- PACK – видаляє помічені записи з таблиці;
- do form – виклик форми;
Синтаксис:
do form <шлях до запускаємої форми>
- set filter to – пошук по масці;
Синтаксис:
Set filter to <поле таблиці>=<шукане значення>
- skip – переміщення курсору таблиці на один запис вниз;
- report form to printer – відправка звіту на друк;
Синтаксис:
Report form <шлях до звіту> to printer
- set order to – сортирування по масці
Синтаксис:
Set order to <поле таблиці>=<шукане значення>
- go top – переміщення курсору на початок таблиці;
- go bottom - переміщення курсору в кінець таблиці;
Керівництво користувачу.
При запуску програми на екрані з’являється вікно «Main» (Рис. 5.8). Воно складається з 3-х розділів:
1.Облік товарів «Керамаг ЛТД»
2. Ведення переліку покупців
3.Про програму/автора
Рис 5.8. Головне вікно програми
Елементи розділу «Облік товарів Керамаг ЛТД»
Розділ складається з 4-х кнопок:
Картка надходження товару на склад
Інформація про категорії товару
Прийом/видача товару
Компанії-поставщики
Картка надходження товару на склад зображена на Рис.5.9.
Ця форма передбачає перегляд інформації про товар, інформації про надходження/відправку товару, підраховує сумарну кількість товару на складі
їх сумарну ціну, а також надає можливість перегляду та друку звіту на основі даної інформації.
Рис.5.9. Картка надходження товару на склад
Інформація про категорії товару зображена на Рис.5.10.
Рис.5.10. Інформація про категорії та товари, що до них належать
Форма дозволяє переглянути інформацію про категорії товарів, а також про товари, що до них належать. Також присутня кнопка «Додати товар» (Рис.5.11), яка дозволяє переглянути інформацію про товари і категорії, а також додати або видалити дану інформацію за допомогою кнопок «+» та «-».
Рис.5.11.Додати/видалити товар
Прийом та видача товару зображена на Рис.5.12.
Форма дозволяє переглянути інформацію про накладні, по яким здійснювався прийом або відправка товару, а також за допомогою кнопок «+» та «-» додати нову накладну по прийому/видачі товару або видалити поточну накладну.
Рис.5.12.Прийом та видача товару
Компанії-поставщики зображена на Рис.5.13.
Рис.5.13. Інформація прокомпанії
Форма дозволяє переглянути інформацію про наявні компанії-постачальники, а також додати або видалити поточну компанію за допомогою кнопок «+» та «-».
Елементи розділу «Ведення переліку покупців»
Розділ складається з 2-х кнопок:
Покупці
Додати/видалити покупця
Покупці зображено на Рис.5.14.
Рис.5.14. Покупці
Форма дозволяє переглянути список клієнтів, та відсортувати цей список по імені або прізвищу покупця. Також передбачений пошук необхідного покупця по фамілії або по імені батька. Існує також можливість перегляду та друку звіту по покупцям.
Додати/видалити покупця зображено на Рис.5.15.
Рис.5.15. Додати/видалити покупця
Форма дозволяє переглянути інформацію про покупцяа також додати нового або видалити поточного покупця за допомогою кнопок «+» або «-».
Елементи розділу «Про програму/автора»
Розділ складається з 2-х кнопок:
Про програму
Про автора
Форма «Про програму» дозволяє переглянути інформацію про програму: версію, назву та рік створення.(Рис.5.16.).
Рис.5.16. Вікно «Про програму»
Форма «Про автора» дозволяє переглянути інформацію про розробника програми: ПІБ, група, контактний телефон. (Рис.5.17.).
Рис.5.17.Вікно «Про автора»
Перегляд інформації здійснюється за допомогою 4-х кнопок:
|<< - перехід в початок списку
< - перехід на попередній запис списку
> - перехід на наступний запис списку
>>| - перехід в кінець списку
Програмний код
//перехід вліво
IF !BOF()
GO TOP
ENDIF
_screen.ActiveForm.Refresh()
//перехід вліво на один запис
IF !BOF ( )
SKIP - 1
ENDIF
_screen. ActiveForm. Refresh ()
//перехід вправо на один запис
IF !EOF()
SKIP
ENDIF
_screen.ActiveForm.Refresh()
//переход вправо
IF !EOF()
GO BOTTOM
ENDIF
_screen.ActiveForm.Refresh( )
//добавить запись
select ("people")
APPEND BLANK
thisform.refresh()
//удалить запись
select("people")
delete
pack
thisform.refresh()
//выход
IF MESSAGEBOX("Вийти?",4+32+256, "Вихід")=6
_screen.ActiveForm.Release()
ELSE
_screen.ActiveForm.Refresh()
ENDIF
//открыть форму
DO FORM C:\OSBB\about_author
//сортировка
SELECT people
IF (thisform.optiongroup1.option1.Value=1) then
INDEX on ALLTRIM (Name) TAG sName
SET ORDER TO sName
thisform.Refresh()
ELSE
IF (thisform.optiongroup1.option2.Value=1) then
INDEX on ALLTRIM (sname) TAG nsname
SET ORDER TO nsname
thisform.Refresh()
ENDIF
ENDIF
//поиск
SELECT people
IF (thisform.optiongroup2.option1.Value=1) then
p=thisform.text1.value
SET FILTER TO sname=p
ELSE
IF (thisform.optiongroup2.option2.Value=1) then
p=thisform.text1.value
SET FILTER TO fname=p
ENDIF
ENDIF
thisform.Refresh()
thisform.Refresh()
//просмотр отчёта
REPORT FORM C:\OSBB\report1 Preview
//печать отчёта
REPORT FORM C:\OSBB\report1 TO PRINTER
//создание отчёта
SELECT Card.card_id, Card.name, Card.price, Card.unit, Card.exp_time,;
Card.cat_id, Item.*, Docum.doc_id, Docum.doc_type, Docum.date, Docum.comp_id;
FROM storage!card INNER JOIN storage!item;
INNER JOIN storage!docum ;
ON Docum.doc_id = Item.doc_id ;
ON Card.card_id = Item.card_id;
WHERE Item.card_id = thisform.Text1.value;
INTO TABLE "c:\OSBB\temp.dbf"
report form "c:\OSBB\temp.frx" preview
//подсчёт сумарного колиества товара на складе
select item
sum_num1 = 0
scan
if(item.card_id==card.card_id)
if (docum.doc_type==.T.)
sum_num1=sum_num1+item.num
ENDIF
ENDIF
if(item.card_id==card.card_id)
if (docum.doc_type==.F.)
sum_num1=sum_num1-item.num
ENDIF
ENDIF
thisform.sum_num.value=sum_num1
endscan
select card
_screen.ActiveForm.Refresh()
//подсчёт сумарной стоимости товара на складе
select item
sum_price1 = 0
SCAN
IF(item.card_id==card.card_id)
IF (docum.doc_type==.T.)
sum_price1=sum_price1+item.num*card.price
ENDIF
ENDIF
IF(item.card_id==card.card_id)
IF (docum.doc_type==.F.)
sum_price1=sum_price1-item.num*card.price
ENDIF
ENDIF
thisform.sum_price.value=sum_price1
ENDSCAN
select card
_SCREEN.ActiveForm.Refresh()