Колонка
|
Тип
|
id_raxynok
|
integer
|
namber_rax
|
text
|
date_create
|
date
|
bank
|
text
|
2.2 Розробка алгоритмів
Алгоритм роботи програми для управління
персоналом підприємства представлений на рисунку 2.1.
На початку роботи програми проводиться підключення
до бази даних. Якщо підключення не виконано, то на екрані з’явиться оповіщення
про помилку. Якщо все добре і підключення виконано, то виконується
ініціалізація головного вікна програми до якого додаються меню-бар, панель на
якій розміщуються елементи, кнопки управління та таблиця для відображення
рахунків.
Далі система слідкує за натиском кнопки. Якщо
натиснута кнопка додання платіжного доручення, то з’явиться нова панель додання
на якій будуть відображені поля для введення даних. Якщо натиснена кнопка
редагування, то з’явиться панель додання підприємства з заповненими полями.
Якщо натиснена кнопка виділення, то виконується видалення підприємства з бази.
Після натиснення на кнопку «OK» або «Cancel» при активній панель додання то
зміни збережуться і з’явиться знову головна панель.
При натиску на кнопку «Закрити» виконується вихід
з програми та завершення всіх процесів.
Для забезпечення можливості формування платіжного
доручення необхідно сформувати базу даних.- об'єктно-реляційна система
управління базами даних (СКБД). Є альтернативою як комерційним СКБД (Oracle
Database, Microsoft SQL Server, IBM DB2, Informix і СУБД виробництва Sybase)
разом з іншими вільними СУБД (такими як MySQL і Firebird).
Існує в реалізаціях для наступних платформ:
Linux, Solaris / OpenSolaris, Win32, Mac OS X, FreeBSD, QNX 4.25, QNX 6.
БД складається з 2 таблиць, що пов’язані між
собою за допомогою полів - ідентифікаторів. Створена у графічній оболонці для
PostgreSQL сервера - Pgadmin 3.
У таблицях використовуються наступні поля даних:
- text - поле для текстових
даних;
- integer - числове поле
для цілих чисел;
- date/time - поля для дати
та часу.
Структура бази даних приведена на рисунку 2.2. та
сисунці 2.3.
Рисунок 2.1 - Алгоритм роботи програми
2.3 Розробка структури бази даних
Рисунок 2.2 - Структура бази даних PIDPRUEMSTVO
Рисунок 2.3 - Структура бази даних RAXUNOK
3. Розробка програмного забезпечення
3.1 Вибір засобу автоматизації розробки програмного забезпечення
Для розробки програмного забезпечення будемо
використовувати засіб автоматизації MonoDevelop.
MonoDevelop IDE - вільна мультиплатформена
середовище розробки, призначена для створення додатків на мовах C #, C, C + +,
Java, Visual Basic.NET, CIL, Nemerle, Boo. На даний момент середовище є
частиною проекту Mono і є однією з найкращих IDE для розробки проектів на базі
Mono.володіє всіма основними можливостями, необхідними для сучасної
інтегрованої середовища розробки:
настроюється підсвічування синтаксису;
автоматичне доповнення коду;
виділення блоків коду з можливістю їх згортання /
розгортання;
інтелектуальна робота з відступами в коді;
можливості рефакторинга (перейменування класів і
методів, автоматична реалізація інтерфейсів в похідних класах);
зручна навігація за кодом (навігація по класах,
методам, властивостями);
візуальний редактор форм для проектів на Gtk #;
створення декількох розкладок інтерфейсу і
перемикання між ними;
безліч стандартних шаблонів проектів;
можливість автоматичного створення бінарних
пакетів та архівів після компіляції вихідного коду;
робота з базами даних;
створення додатків з GUI, що підтримує кілька
мов;
інтеграція з Subversion для управління вихідним
кодом;
підтримка NUnit для створення Unit-тестів;
автоматичне створення документації;
розширення можливостей за рахунок доповнень і
зовнішніх інструментів;
можливість інтеграції з Microsoft Visual Studio
і. NET Framework (в середовищі Microsoft Windows).+ (скорочення від GIMP
Toolkit) - кроссплатформенна бібліотека елементів інтерфейсу. Поряд з Qt є
однією з двох найбільш популярних на сьогоднішній день бібліотек для X Window
System.
Будучи спочатку частиною графічного редактора
GIMP, вона розвинулась в окремий проект і придбала помітну популярність. GTK +
- вільне ПЗ, яке розповсюджується на умовах GNU LGPL, що дозволяє створювати як
вільне, так і пропрієтарне програмне забезпечення з використанням бібліотеки.
GTK + є офіційною бібліотекою для створення графічного інтерфейсу проекту GNU.+
написана на мові С, але є об'єктно-орієнтованої. GTK + можна писати на мовах
програмування таких як C# і інші мови програмування платформи. NET, де GTK +
називається GTK# та інших.
Власне GTK + складається з двох компонентів: GTK
і GDK. Перший містить набір елементів інтерфейсу, або «віджетів» (таких, як
кнопка, список, поле для введення тексту і т. п.) для різних завдань. GDK
відповідає за виведення на екран і може використовувати для цього X Window
System, Linux Framebuffer, WinAPI або функції Mac OS X. Починаючи з версії 2.8,
GDK багато в чому (але не повністю) замінена на систему відтворення векторної
графіки Cairo.
Крім Cairo, GTK + залежить від трьох бібліотек -
GLib, Pango і ATK, - які розробляються разом з GTK +, але можуть
використовуватися і окремо.
3.2 Розробка інтерфейсу користувача
Для доступу до програми необхідна ідентифікація
користувача.
Зовнішній вигляд вікна «Регистрация», у якому
потрібно ввести логін та пароль користувача, наведено на рис. 3.1. У разі
правильно введених даних, користувач має можливість запустити програму
натиснувши кнопку «ОК».
Рисунок 3.1 - Вікно «Регистрация»
Вікно створення платіжного доручення має вигляд
який представлено на сисунці 3.2. Вікно створення платіжного доручення містить
номер платіжного доручення, банк та р/с даного підприємства, суму, яка
вводиться прописними буквами, підприємство-отримувач, яке ми можемо обрати з
довідника «Підприємство», банк та р/с отримувача також можливо обрати з
довідника «Рахунок», також є кнопка обрання: з НДС та без НДС, призначення
платежу, де можна написати додаткову інформацію про ПД, сума всього та дата створення,
також маються кнопки «Ок» та «Cencel» за допомогою яких можливо підтвердити ПД
або війти з нього. Зверху відображається назва організації в якої створено ПД.
Рисунок 3.2 - Вікно «Платежное паручение»
Рисунок 3.3 - Вікно довідника «Предприятие»
Вигляд довідника «Рахунок» показано на рисунці
3.4. Довідник містить колонки з такими назвами: номер р/с, дата создания, банк.
Рисунок 3.4 - Вікно довідника «Рахунок»
При створенні усіх вікон використовувалися
наступні контейнери та віджети:
- VBOX (контейнер, що
розбиває головну область вікна на горизонтальні ділянки);
- НBOX (контейнер, що розбиває
головну область вікна на вертикальні ділянки);
- Menubar (головне меню);
- Toolbar (меню функцій);
- Treeview (відмет, що
дозволяє візуально відображати таблиці);
- Button (кнопка);
- Lable (відображення
тексту);
- Entry (поле для
вводу/відображення тексу);
3.3 Розробка SQL запитів
Для того щоб отримувати дані з БД нам необхідно
сформувати SQL запити. Для відображення інформації з бази даних на екрані (у
вікні програми) у прийнятному та зрозумілому користувачеві вигляді
використовуються SQL-запити.
Формування SQL-запитів на основі вже сформованої
бази даних можливе за допомогою графічного модулю PostgreSQL - Pgadmin.
Перелік SQL запитів приведений нижче:
.) SQL-запит для зчитування із бази
інформації необхідних для входу користувача до системи має вигляд:
«SELECT * FROM public.user WHERE login='{0}';»,
де
{0} - це логін користувача, який підключається до
системи.
.) SQL-запит для зчитування із бази інформації
необхідних для формування таблиці даних студентів має наступний вигляд:
«SELECT * FROM public.user WHERE id_user='{0}';»,
де
{0} - це номер користувача в базі даних, який
увійшов до системи.
.) SQL-запит для повертання значення всіх полів
таблиці; SELECT id, Predpriyatie, gorod, yliza, dom, kvartira, kod klienta,
director, tel, kontaktnoe_lizo FROM user
.) SQL-запит для занесення в базу даних нового
користувача має наступний вигляд:
«INSERT INTO public. {0} (login, password,)
VALUES ('{1}', '{2}'), де
{0} - назва бази даних;
{1} - логін;
{2} - пароль.
4. Розробка засобів інтеграції в підприємство
Дана програма не є комерційним продуктом і
розроблена за допомогою безкоштовних програмних засобів на операційній системі
Linux OC. Серверною СRБД є PostgreSQL 8.4.3. Розробка SQL запитів виконувалася
за допомогою програми pgAdminIII, написанні коду, компіляція та тестування
виконувалися у програмі MonoDevelop.
Тому для інтеграції розробленого ПЗ є дуже
простим, у підприємстві на робочому місці працівника бухгалтерії необхідною на
операційній системі є Linux OC, а яку необхідно інсталювати СКБД pgAdminIII. За
допомогою цієї програми створити базу даних. За допомогою інструментів
pgAdminIII заповнити таблицю даними про підприємства та рахунки. Скопіювати
розроблене ПЗ та у файлі setting.properties вказати шлях до БД, ім’я
користувача та пароль. Ці дані необхідні для виконання підключення до БД.
Після проведення дій описаних вище розроблений
програмний продукт має запрацювати.
Перелік посилань
1. http://bibliotekar.ru/bank-14/32.htm
2. Шилдт Г. «C++: базовый курс» - Вильмс, 2009 - 620 с.
. Дейт, К., Дж. Введение в системы баз данных, 7-е издание
- Вильямс, 2011-1072 с.
. http://msdn.microsoft.com/ru-ru/vcsharp/aa336809.aspx -
Онлайн підручник мови С#.
Додаток А
Лістинг програми
Модуль авторизации
using System;Gtk;System.
Data;System.IO;Npgsql;CCR_final
{partial class login: Gtk. Dialog
{login()
{. Build();
}virtual void OnEntryPasswordTextInserted (object
o, Gtk. TextInsertedArgs args)
{dbconnection = new NpgsqlConnection
(MainClass.connect_string);dbcommand = dbconnection.
CreateCommand();reader;login_user = entry_login. Text;password_user =
entry_password. Text;password_base = «»;kod_user = «»;sql = string. Format
(«SELECT * from users where login='{0}'», login_user);. Open();. CommandText=sql;=
dbcommand. ExecuteReader();(reader. Read())
{_base=reader. GetString (reader. GetOrdinal
(«password»));_user = reader. GetString (reader. GetOrdinal («kode_user»));
}.working_user = kod_user;(password_user ==
password_base)
{. Show();. GrabFocus();. Close();. Dispose();.
Close();
}
}
Модуль Платежное паручение
using System;Gtk;System. Data;System.IO;Npgsql;PD
{partial class reg_schet: Gtk. Window
{
// Действие по нажатию кнопки «Отмена»virtual
void OnButtonCancelClicked (object sender, System. EventArgs e)
{. Hide();
}void insert_values ()
{dbconnection = new NpgsqlConnection
(MainClass.connect_string);dbcommand = dbconnection. CreateCommand();reader;sql
= string. Format («SELECT * FROM PD WHERE kod_klienta='{0}';»,
MainClass.vibranii_klient);. Open();. CommandText=sql;= dbcommand.
ExecuteReader();(reader. Read())
{_kod_klient. Text=reader. GetString (reader.
GetOrdinal («nomer_kl»));_fio_klient. Text=reader. GetString (reader.
GetOrdinal («predpr»));
}. Close();. Dispose();. Close();
}reg_schet():(Gtk. WindowType. Toplevel)
{. Build();dbconnection = new NpgsqlConnection
(MainClass.connect_string);dbcommand = dbconnection. CreateCommand();reader;
// Заполнение р/с_val. Clear();cr = new
CellRendererText();_val. PackStart (cr, false);_val. AddAttribute (cr, «text»,
0);= new CellRendererText();_val. PackStart (cr, false);_val. AddAttribute (cr,
«text», 1);ls = new ListStore (typeof(string), typeof(string));_val. Model =
ls;. Open();combo_query = «SELECT * from schet;»;. CommandText=combo_query;=
dbcommand. ExecuteReader();(reader. Read())
{kod = reader. GetString (reader. GetOrdinal
(«kod_schet»));name = reader. GetString (reader. GetOrdinal («name_bank»));.
AppendValues (kod, name);
}_val. Active = 0;. Close();. Dispose();.
Close();
// Событие по нажатию кнопки выбрать
предприятияvirtual void OnButtonSelectKlientClicked (object sender, System.
EventArgs e)
{_final.vibar_klientov viborklientawindow = new
PD_final.vibar_klientov();.vibranii_klient=»»;. Modal=true;. Show();.
Hide();(MainClass.vibranii_klient!= «»)
{_values();
}
}
// запись в базу= string. Format («INSERT INTO
accounts (nomer_scheta, kov_valuta, open_date, last_mod_date, kod_ispolnitelya,
name_scheta, limit_scheta, proz_stavka, balans, kod_klienta) VALUES ('{0}',
'{1}', '{2}', '{3}', '{4}', '{5}', {6}, {7}, {8}, '{9}');», nomer_scheta,
combobox_val. ActiveText, date, date, MainClass.working_user, name_scheta,
limit, proz_stavka, 0, MainClass.vibranii_klient);. Open();. CommandText=sql;.
ExecuteNonQuery();. Close();. Dispose();
}
програмний платіжний доручення автоматизація