Storage program made for the needs of NPP "Kozlodui", for spare parts for full-scale simulator.
Програмата е създадена с MySQL като база с данни и C# език на програмиране с framework WPF, който се използва за създаване на desktop приложения. При стартиране на програмата се отваря главния прозорец, който се използва за навигация във функционалността на програмата. Отначало се виждат четири текстови полета, които се използват за входни данни от потребителя. Те служат за търсене на наличните части по различни критерии, по уникален идентификационен номер (id), който се определя от администратора въвеждащ данните, име на частта, описание на частта или местоположението на частта. След въвеждане на критерия по търсене и се натисне бутона „Търси“ се изпълнява MySQL заявката. Резултатът се показва в нов прозорец „Резултат“ в WPF контрола ListView където се показва информация за всички части отговарящи на критерия по търсене.
Фиг. ХХ: Началният прозорец на програмата Освен визуализацията на базата данни, в прозореца има и четири бутона, които изпълняват съответно функция за копиране на избраните елементи, изкарване на бройка от избран елемент, добавяне на бройка от избран елемент и премахване на елемента от базата с данни. Копирането на елементи служи предимно за улеснено принтиране на информацията, като се копира под определен шаблон. Премахването на елемент е необходимо, ако тази част повече няма да бъде налична и се бракува. Когато количеството от вече въведена част стигне 0, то пак не се изтрива а седи в базата с данни. В началния прозорец на програмата също има и два бутона отдолу, които служат за показване на всички налични части и добавяне на нова част. Бутонът за всички части показва в прозореца „Резултат“ всичко налично в базата с данни. Бутонът за добавяне отваря нов прозорец, в който има две подразделения.
Фиг. ХХ: Прозорецът „Резултат“ на програмата. Първото разделение е за добавяне на нова част. В него има четири текстови прозореца и две контроли тип ComboBox. В текстовите прозорци се въвеждат данните за нова част, която ще се добави, като отгоре надолу са първо поле за ID, което е задължително число, поле за име, поле за количество, което е задължително ϵ N, и поле за описание на частта. В ComboBox се добавя местоположението, като в единия се добавя стаята, а другия рафта, ако стаята има такава функционалност. В текущото състояние на програмата е предвидено само стаята Т2 да има възможност за рафтове. При избиране на стая различна от Т2, контролата за рафт става невалидна. При натискане на бутона за добавяне на част се изпълнява заявката към базата данни за добавяне на нов елемент с въведените от потребителя характеристики. Ако всичко е въведено правилно и няма други проблеми след изпълняване на проверка се добавя към базата. Другото разделение на прозореца „Добави“ е за добавяне на ново местоположение, където ще се складират части. Целта е възможността за разширяване на експлоатационния живот на софтуера като да бъде възможно повече приложимо при промяна на обстановката в рамките на предвидимото. Двете полета за добавяне на информация за съответно за име на стаята и за рафт ако има такива. За сега в програмата са добавени Т2 и Т4, като Т2 има рафтове от 1-1, 1-2, …, 1-6, …, 13-6. Като също съществува и логическия рафт 0, който ще рече, че частта е в дадената стая, но не е на конкретен рафт, като примерно големи предмети, които седят на пода или на масата. Програмата няма функционалност за премахване на локация, като това трябва да се случи от администратора през MySQL сървъра директно.
Фиг. ХХ: Прозорецът „Добави“ на програмата Всички данни, които потребителя въвежда преминават проверка за съответствие и правилния тип данни към програмата, за да се избегнат грешни въвеждания или прекъсвания на нормалната работа на програмата и загубване на вече въведената, но не все още изпратената към базата с данни информация.
Стъпки на използване: I. Показване на част по уникален номер ID
- Включваме програмата и се отваря главния прозорец.
- Въвеждаме в текстовото поле „Търси по id“ уникалния номер на частта, която ни интересува.
- Настискаме бутона „Търси“ намиращ се непосредствено до текстовото поле.
- Отваря се в прозореца „Резултат“ намерените по дадения критерии части. II. Показване на част по име
- Включваме програмата и се отваря главния прозорец.
- Въвеждаме в текстовото поле „Търси по име“ името на частта, която ни интересува.
- Настискаме бутона „Търси“ намиращ се непосредствено до текстовото поле.
- Отваря се в прозореца „Резултат“ намерените по дадения критерии части. III. Показване на част по описание
- Включваме програмата и се отваря главния прозорец.
- Въвеждаме в текстовото поле „Търси по описание“ описанието на частта, която ни интересува.
- Настискаме бутона „Търси“ намиращ се непосредствено до текстовото поле.
- Отваря се в прозореца „Резултат“ намерените по дадения критерии части. IV. Показване на част по местоположение
- Включваме програмата и се отваря главния прозорец.
- Въвеждаме в текстовото поле „Търси по местоположение“ местоположението на частта, която ни интересува. Пр. „T2 3-2“ за рафт 3-2 в стая Т2; „Т2“ за всичко в Т2. Стаите са въведени на латиница.
- Настискаме бутона „Търси“ намиращ се непосредствено до текстовото поле.
- Отваря се в прозореца „Резултат“ намерените по дадения критерии части. V. Показване на всички части
- Включваме програмата и се отваря главния прозорец.
- Натискаме бутона с име „Всички части“.
- Отваря се прозореца „Резултат“ съдържащ всички елементи намери в базата с данни. VI. Копиране на елементи
- Отваря се прозореца „Резултат“ след като сме търсили по даден критерии, който ни интересува.
- Избираме елементите, които желаем да копираме. За копиране на повече от един може да се задържи копчето Ctrl + избиране на множеството елементи по отделно които желаем. За избиране на няколко бързо със задържане на Shift и избиране начален и краен елемент, всичко между тях се избира.
- След като сме избрали елементите се натиска бутона „Копиране“. Той запазва към клипборда информацията по зададен шаблон, готова за поставяне в програма с функционалност за принтиране. VII. Извеждане на количество от съществуваща част от склада
- Отваря се прозореца „Резултат“ след като сме търсили по даден критерии, който ни интересува.
- Избираме един от елементите и докато е селектиран натискаме бутона „Изваждане“.
- Отваря се диалогов прозорец, където потребителя записва числото количество, което иска да изведе от склада.
- При натискане на „ОК“ се намаля количеството в БД с числото зададено. VIII. Добавяне на количество от съществуваща част от склада
- Отваря се прозореца „Резултат“ след като сме търсили по даден критерии, който ни интересува.
- Избираме един от елементите и докато е селектиран натискаме бутона „Добавяне“.
- Отваря се диалогов прозорец, където потребителя записва числото количество, което иска да добави към склада.
- При натискане на „ОК“ се увеличава количеството в БД с числото зададено. IX. Премахване на част от базата с данни
- Отваря се прозореца „Резултат“, след като сме търсили по даден критерии, който ни интересува.
- Избираме един от елементите и докато е селектиран натискаме бутона „Премахни“.
- Отваря се прозорец с потвърждение за намерението за премахване на елемента от базата с данни.
- При натискане на „ОК“, частта се премахва. X. Добавяне на нова част
- Отваряме началния прозорец на програмата.
- Натискаме бутона „Добави“.
- При отворения прозорец „Добави“ намираме групата за добавяне на част.
- В първото поле въвеждаме уникалния номер ID на частта. Той може да е цяло положително число без символи. Не е задължително да е поредно. Полето е задължително.
- Във второто поле въвеждаме името на частта. То може да бъде със символи, цифри и специални символи. Полето е задължително.
- В третото поле въвеждаме количеството което имаме налично на частта. То трябва да бъде цяло положително число без символи. Полето е задължително.
- В четвъртото поле въвеждаме допълнително описание на частта. То може да бъде със символи, числа и специални символи. Полето не е задължително.
- В първия ComboBox избираме една от наличните стаи, в които ще се съхранява частта.
- Във втория ComboBox избираме на кой рафт ще се съхранява частта, ако избраната стая е T2.
- Натискаме бутона „Добави част“. XI. Добавяне на ново местоположение
- Отваряме началния прозорец на програмата.
- Натискаме бутона „Добави“.
- При отворения прозорец „Добави“ намираме групата за добавяне на местоположение.
- В първото поле въвеждаме името на стаята, която ще се добавя. Приема числа, символи и специални символи. Полето е задължително.
- Във второто поле въвеждаме рафта, който ще се добавя. Приема числа, символи и специални символи. Полето не е задължително. Ако полето остане празно, то се добавя стаята. Ако се запише име на рафт, то се добавя рафт в тази стая.
Фиг. ХХ: ЕР диаграма на базата с данни.
На фигурата е показана диаграма на релационната база от данни на MySQL съставена от две таблици с връзка едно-към-много. Таблицата locations съдържа полета id, loc_name и sub_loc. В нея се запазват всичките възможни местонахождения, където могат да се складират част. Полето id е уникален номер от тип int и главен ключ в системата, където служи за по-лесно разпознаване на различните въведени места. Допълнително е добавено свойството auto-increment, което при всяко ново въведение БД сама увеличава с едно всяко следващо id. В loc_name запазваме името на стаята, като примерно „T2“ или „Т4“. Sub_loc е подразпределението в стаите, по-конкретно различните рафтове в T2, номерирани 12 стелажа с по 6 рафта (1-1, 1-2, …, 1-6, 2-1 и т.н.). Таблицата parts съдържа описание на всяка една част, която ще се складира. Това се осъществява с помощта на полетата id, part_name, quantity, part_desc, part_loc. Id e уникално цяло число което извършва ролята на главен ключ, който ще се използва за улеснено разпознаване на частите. Part_name е низ, в който се записва името на частта. Quantity е броя налични от конкретната част. Полето е от тип unsigned int, което означава цяло положително число, понеже бройката не може да падне под 0, т.е. да не съществува. В такъв случай броя или ще бъде 0, или ще се изтрие въведената част от БД. Part_desc е низ, в който ще се въведе по-конкретно описание на частта с цел по-лесно намиране и пояснение. Part_loc е цяло число, което е външен ключ на таблицата parts. То извършва реалната връзка едно-към-много между двете таблици, което означава, че едно място от locations може да има много части от parts. По този начин става и автентификацията на складовете дали реално съществуват когато се въвеждат нови части. Всяка една част освен уникалния си номер съдържа и уникалния номер на локацията, в която е складирана.