Tải bản đầy đủ (.docx) (77 trang)

Đồ án Oracle quản lý văn phòng phẩm

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (6.55 MB, 77 trang )

TRƯỜNG ĐH CƠNG NGHIỆP THỰC PHẨM
TP. HỒ CHÍ MINH
KHOA CƠNG NGHỆ THÔNG TIN


ĐỒ ÁN MÔN HỌC

HỆ QUẢN TRỊ CSDL ORACLE
TÊN ĐỀ TÀI
Giảng viên bộ môn: Nguyễn Phương Hạc

PHẦN MỀM QUẢN LÝ BÁN
HÀNG VĂN PHỊNG PHẨM

Nhóm sinh viên thực hiện: 07

Tân Phú, tháng 9/ 2020

BIÊN BẢN
Thống nhất kết quả làm việc nhóm: 07
Mơn: Hệ quản trị CSDL Oracle


Chúng tôi được giảng viên giao thực hiện đồ án: Nguyễn Phương Hạc
ST
T

Họ và tên

Ký tên


Ghi chú
1. Giới thiệu và mơ tả nội dung đề tài
2. Mơ tả các nhóm quyền, quyền và profile
3. Thiết kế giao diện ứng dụng
4. Mô tả các giao tác trong đề tài

1

Đặng Quốc Hải

5. Thiết kế cơ sở dữ liệu
6. Các chức năng tìm kiếm
7. Chức năng Control file, Logfile...
8. Truy vấn dữ liệu
9. Tạo cursor
10.Viết trigger, Package
1. Khảo sát mục tiêu và phạm vi đề tài
2. Phân tích và thiết kế mơ hình quan hệ
3. Mơ tả các chức năng truy vấn, tìm kiếm
4. Mô tả các yêu cầu ràng buộc

2

Phạm Quốc Bảo

5. Chức năng xem SGA, PGA, Session..
6. Tìm hiểu kết nối ứng dụng với Oracle
7. Tìm hiểu và tạo database bằng dbca
8. Truy vấn dữ liệu
9. Viết hàm function và thủ tục Procedure

10.Làm phần Sequence mã tự động tăng
TP. Hồ Chí Minh, ngày tháng

Thư ký
(Ký, ghi rõ họ tên)

Nhóm trưởng
(Ký, ghi rõ họ tên)

năm 2020


Đặng Quốc Hải

TUẦN 1. KHẢO SÁT HIỆN TRẠNG VÀ PHÂN TÍCH YÊU CẦU
1. Giới thiệu chung về đề tài
Ngày nay, cơng nghệ thơng tin có những bước phát triễn mạnh mẽ, trong đó phải
kể đến các ứng dụng phần mềm. Một số công việc làm bằng thủ công đã dẫn đến việc
tốn sức, tốn công lại hao tốn quá nhiều thời gian nên dần dần được chuyển sang hệ
thống tự động hóa. Từ đó đem lại sự thuận tiện trong cơng việc cho con người cũng
như góp phần làm cho hoạt động mua bán mang tính chuyên nghiệp và đạt hiệu quả
hơn. Kết quả của nhu cầu thực tế đó là sự ra đời của nhiều phần mềm, công cụ quản lý
và xử lý các công việc thay cho con người như trước đây.
Trong quản lý cửa hàng văn phòng phẩm, với số lượng các mặt hàng ngày càng đa
dạng và phong phú về cả chủng loại cũng như nhà sản xuất. Do đó, việc xây dụng
phần mềm “Quản lý cửa hàng văn phòng phẩm” giúp cho người bán dể dàng quản lý
tình tình mua bán cũng như tình trạng hàng hóa trong cửa hàng. Đây là một cơng cụ
cần thiết và hiệu quả, giúp cho quản lý công việc dể dàng hơn, tiết kiệm thời gian và
công sức đáng kể.
Cũng tương tự như một siêu thị mini, cửa hàng văn phòng phẩm cửa đề tài đặt ra là

một cửa hàng loại nhỏ, kinh doanh lưu trữ đủ mọi thể loại hàng hóa và bày bán đủ
những thứ cần thiết như đồ dùng học tâp, văn phòng phẩm... Với nhiều loại mặt hàng
không đồng nhất về thể loại khiến cho việc quản lý một cửa hàng văn phịng phẩm
khơng phải là điều dể dàng, thậm chí nếu khơng có cách thức quản lý phù hợp sẻ gây
ra các nhầm lẫn và thất thốt hàng hóa khơng đáng có. Do vậy, để giúp các chủ cửa
hàng có được sự quản lý chặt chẽ và doanh thu và đem lại sự phục vụ cho khách hàng
một các tốt nhất có thể, phần mềm quản lý cửa hàng văn phịng phẩm tích hợp các
chức năng dành riêng cho chửa hàng văn phòng phẩm và được nhiều cửa hàng hưởng
ứng, đưa vào ứng dụng một cách hiệu quả.
2. Phạm vi và mục tiêu đề tài
a. Mục tiêu đề tài


Mục tiêu của đề tài đặt ra là xây dựng hệ thống quản lý cửa hàng văn phòng phẩm,
hỗ trợ cho việc quản lý thông tin các mặt hàng, thông tin nhân viên, thông tin khách
hàng và hỗ trợ cửa hàng có được phong cách làm việc chuyên nghiệp, quản lý hiệu
quả các hoạt động kinh doanh sản phẩm văn phịng, hướng tới hình ảnh, phong cách
phục vụ Văn minh - Lịch sự - Hiện đại đến khách hàng, tạo một ưu thế cạnh tranh
trước các đối thủ trong ngành.
b. Phạm vi đề tài
Đề tài được xây dựng cho cửa hàng quản lý văn phịng phẩm quy mơ vừa và nhỏ.
Đồ án được thực hiện trên cơ sở môn: Công nghệ .NET, hệ quản trị cơ sở dữ liệu
Oracle với sự hỗ trợ: Visual Studio 2013, Oracle Database 19c.
3. Mô tả nội dung đề tài
a. Cơ cấu tổ chức và cách thức hoạt động
Chủ cửa hàng: Chịu trách nhiệm điều hành chung của cửa hàng. Kiểm tra các hoạt
động mua bán của nhân viên, hoạt động xuất nhập kho. Lên kế hoạch nhập văn phòng
phẩm khi cần thiết và liên hệ với các nhà cung cấp.
Nhân viên bán hàng: Làm việc trực tiếp với khách hàng, chăm sóc khách hàng, kiểm
tra số lượng tồn và hóa đơn hằng ngày, ghi chép hóa đơn bán hàng.

Cách thức hoạt động:
 Quản lý nhập văn phòng phẩm: Bộ phận quản lý căn cứ vào nhu cầu sử dụng
của khách hàng, số lượng hàng hóa tối thiểu, số lượng hàng tồn trong kho để lập
kế hoạch nhập hàng hóa.
 Quản lý bán văn phịng phẩm: Khi khách hàng cần mua văn phịng phẩm thì
nhan viên sẻ in hóa đơn thanh tốn cho khách hàng. Đối với khách hàng mua
với số lượng lớn, chủ cửa hàng sẻ ký kết hợp đồng với khách hàng sau đó xuất
hàng hóa cho khách hàng khi đã thanh tốn đầy đủ số tiền.
 Báo cáo kết quả kinh doanh: Kết thúc hàng tháng, nhân viên báo cáo tình trạng
hoạt động của cửa hàng, nộp hóa đơn đã bán được và sổ của cửa hàng cho chủ
cửa hàng.
b. Xác định bài tốn
Input:
 Các thơng tin về sản phẩm ( Mã sản phẩm, tên sản phẩm, loại sản phẩm, số lượng
tồn, đơn giá nhập, đơn giá bán)


 Các thông tin về nhân viên ( Mã nhân viên, họ tên, điện thoại, chức vụ, địa chỉ..)
 Các thông tin về nhà cung cấp ( Mã nhà cung cấp, tên nhà cung cấp, điện thoại..)
 Thông tin về quá trình mua bán sản phẩm ( Thời gian bán, mã sản phẩm, số lượng,
đơn giá, khách hàng...)
 Thông tin về quá trình nhập sản phẩm ( Thời gian nhập, mã sản phẩm, số lượng,
đơn giá nhập, nhà cung cấp...)
Ouput:
 Danh sách hóa đơn bán sản phẩm
 Doanh thu trong tháng
c. Các chức năng bài tốn
Xây dựng chưng trình quản lý cửa hàng văn phịng phẩm bằng ngơn ngữ C#. Chương
trình gồm các chức năng sau:
 Nhập hàng: Khi nhập hàng thì cần tìm nhà cung cấp để đặt hàng, việc đặt hàng

thành cơng. Nhân viên nhập hàng đó vào trong kho và thực hiện thanh toán tiền
cho nhà cung cấp .Sau đó tiến hành thống kê, sắp xếp, phân loại hàng hóa theo
từng nhóm hàng, đơn giá.
 Xuất hàng: Khách hàng lựa chọn hàng hóa, sau đó đặt hàng. Nhân viên chấp nhận
đơn hàng mà khách hàng đã chọn và tiến hành nhập vào đơn hàng. Khách hàng
thanh toán tiền, nhân viên cập nhập lại kho hàng và thống kê lại lượng hàng trong
kho.
 Thống kê: Sau mỗi tháng nhân viên sẽ quản lý việc thống kê tháng đó nhập những
loại hàng nào, và chi phí của việc nhập là bao nhiêu. Tương tự như vậy nhân viên
cũng quản lý được việc xuất hàng. Thông qua thống kê nhập và xuất sẽ tính được
doanh thu tháng đó lời hay lỗ.
 Tìm kiếm: Quản lý được thơng tin khách hàng, nhà cung cấp một cách nhanh
chóng. Tìm kiếm hàng hóa dễ dàng.





Quản lý thông tin sản phẩm
Nhập dữ liệu các sản phẩm
Thêm mới một sản phẩm
Xóa một sản phẩm
Sửa thơng tin về sản phẩm

Quản lý giao dịch mua- bán hàng hóa
 Nhập dữ liệu khách hàng
 Thêm mới một khách hàng
 Xóa một khách hàng
 Sửa thơng tin về khách hàng
 Thoát



4. Bảng mô tả các yêu cầu ràng buộc
ST
T

Ràng buộc

1

UNIQUE

2

CHECK

Nội dung








3

4

DEFAULT


TRIGGER








Số mã mỗi bảng phải là duy nhất, không được trùng lặp
Thuộc tính tên phải riêng biệt, khơng được trùng
Thuộc tính số lượng phải lớn hơn hoặc bằng 0
Thuộc tính giới tính chỉ thuộc nam hoặc nữ
Lương của nhân viên phải lớn hơn hoặc bằng 2000
VND
Ngày lập hóa đơn phải nhỏ hơn hoặc bằng ngày hiện tại
Nếu thuộc tính địa chỉ khơng nhập thì mặc định là
TP.HCM
Lương mặc định của nhân viên mới là 2000 đồng
Đơn giá nhập hàng <= đơn giá bán
Tuổi của nhân viên làm phải >=18
Kiểm tra số lượng tồn kho
Cập nhật tăng lương cho nhân viên
Kiểm tra số lượng sản phẩm sau khi nhập thêm vào
kho?

5. Bảng mơ tả các chức năng truy vấn, tìm kiếm, tổng hợp dữ liệu
ST
T


Chức năng

1

Truy vấn

2

Tìm kiếm

Mơ tả
 Cho biết thơng tin của khách hàng khi có mã X nào đó
 Cho biết sản phẩm thuộc loại hàng nào
 Cho biết có bao nhiêu hóa đơn được lập trong
ngày/tháng đó
 Cho biết số lượng tồn sản phẩm X trong cửa hàng
 Trong ngày 20/9/2020 có bao nhiêu khách hàng mua
hàng có địa chỉ ở Tân Phú?
 Cho biết tên sản phẩm có số lượng tồn lớn nhất?
 Cho biết tên của nhân viên chưa bán được sản phẩm
nào?
 Tìm kiếm khách hàng
 Tìm kiếm nhà cung cấp
 Tìm kiếm sản phẩm


6. Bảng mơ tả các danh mục nhóm quyền, quyền, profile trong đồ án
ST
T

1

Danh mục

Nhóm quyền
2
Quyền

3
Profile

Mơ tả
Quyền A: Chủ sở hữu
Quyền B: Quản lý
Quyền C: Nhân viên
Quyền D: Khách hàng
Chủ sở hữu có tồn quyền trong phần mềm
Nhân viên có quyền thêm/ xóa/ sửa thơng tin khách hàng
Nhân viên có quyền lập hóa đơn
Quản lý có quyền quản lý thơng tin nhân viên
Khách hàng có quyền xem thơng tin sản phẩm
Mật khẩu đăng nhập không được nhập sai tối đa 3 lần
Chỉ định thời gian khóa tài khoản đăng nhập sai là 1
ngày
 Quy định thời gian xử lý CPU cho một session của user













7. Bảng mô tả các giao tác được cài đặt trong đồ án
ST
T
1

Giao tác
Nhập/ Xuất
sản phẩm

2

Nội dung
- Khi thêm 1 sản phẩm từ nhà cung cấp vào cửa hàng thì
số lượng tồn của sản phẩm đó trong kho phải tăng thêm
1.
- Khi thêm 1 sản phẩm mà số lượng tồn của sản phẩm
trong kho không thay đổi thì giao tác sẽ bị hủy
-

8. Phân tích và thiết kế mơ hình quan hệ


9. Thiết kế giao diện hệ thống, giao diện chức năng

a. Giao diện hệ thống
 Form đăng nhập

 Form trang chủ


b. Giao diện chức năng
 Form nhân viên

 Form khách hàng


 Form nhà cung cấp

 From sản phẩm


 Form hóa đơn nhập

 Form hóa đơn bán


TUẦN 2. KẾT NỐI ỨNG DỤNG
1. Kết nối ứng dụng Winform với Oracle
a. Thêm thư viện Oracle
Bước 1: Truy cập vào trang web: />

Bước 2: Mở visual studio lên, vào Tools => Nuget Packege Manager

Bước 3: Click chuột phải vào Solution, chọn Manager Nuget Packages



b. Code kết nối
// Thư viện
using Oracle.ManagedDataAccess.Client;
using System.Data.OleDb;
//Tạo class kết nối như sau
String strconnect="Data Source=(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST =localhost)
(PORT =1523))(CONNECT_DATA = (SERVER = DEDICATED)(SERVICE_NAME =QuanLyCHVPP)));
Password=Chedoao99; User ID=SYSTEM";
public void ketnoi()
{
sqlcon = new OracleConnection(strconnect);
sqlcon.Open();
}
public void ngatketnoi()
{
sqlcon.Close();
}

c. Thực hiện kết nối trên 2 máy tính


Lưu ý: Để thực hiện kết nối, chúng ta tắt Fileware trước
 Thay đổi địa chỉ IP của 2 máy tính minh họa như hình

 Tiến hành kết nối bằng cách thay host: localhost thành host: 181.103.21.3
2. Thực hiện các lệnh trên SQLPlus và Sqldeloper
 Thực hiện với Oracle Enterprise Manager


 Thực hiện trên SQLPlus



 Thực hiện các lệnh cơ bản trên SQLDeverlop

3. Thiết kế màn hình đăng nhập với các user khác nhau
a. Màn hình kết nối


b. Code đăng nhập
public Boolean kiemtraketnoi()
{
String pass = txtpass.Text.Trim();
String port = txtPort.Text.Trim();
String host = txtHost.Text.Trim();
String user = cboUsername.SelectedItem.ToString().Trim();
String oracle = @"Data Source=(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST =
"+host+")(PORT ="+port+"))(CONNECT_DATA = (SERVER = DEDICATED)(SERVICE_NAME
=QuanLyCHVPP)));Password="+pass+";User ID="+user+"";
try
{
OracleConnection cn = new OracleConnection(oracle);
cn.Open();
cn.Close();
}
catch (Exception)
{
return false;
}

return true;
}
public static String taikhoan = matkhau = "";
private void btnConn_Click(object sender, EventArgs e)
{
if (kiemtraketnoi())
{
taikhoan = cboUsername.Text.Trim();
matkhau = txtpass.Text.Trim();
FrmTrangChu frm = new FrmTrangChu();
frm.serverIndex = cboUsername.SelectedIndex;
frm.Show();
cboUsername.Text = "";
txtpass.Text = "";
}
else
{
MessageBox.Show("Đăng nhập thất bại, Sai tên người dùng hoặc mậtkhẩu",
"Thông báo đăng nhập thất bại", MessageBoxButtons.OKCancel, MessageBoxIcon.Error);
cboUsername.Text = "";
txtpass.Text = "";
}
}

4. Thiết kế chức năng hệ thống với nhiều lựa chọn
a. Tạo file kết nối Oracle
namespace _09_DAMH_QuanLyCuaHangVPP_Oracle
{
class KetNoiOracle
{

public OracleConnection sqlcon;
public OracleCommand sqlcom;
public OracleDataAdapter sqlda;
public OracleDataReader sqldr;
public DataSet ds = new DataSet();


string strconnect="Data Source=(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST
=localhost)(PORT =1523))(CONNECT_DATA = (SERVER = DEDICATED)(SERVICE_NAME
=QuanLyCHVPP)));Password=Chedoao99;User ID=SYSTEM";
public void ketnoi()
{
sqlcon = new OracleConnection(strconnect);
sqlcon.Open();
}
public void ngatketnoi()
{
sqlcon.Close();
}
public void thucthiketnoi(string strsql)
{
ketnoi();
sqlcom = new OracleCommand(strsql, sqlcon);
sqlcom.ExecuteNonQuery();
ngatketnoi();
}
public DataTable getDataTable(string sql, string tblName)
{
ketnoi();
OracleDataAdapter da = new OracleDataAdapter(sql, sqlcon);

da.Fill(ds, tblName);
ngatketnoi();
return ds.Tables[tblName];
}
public OracleDataAdapter getDataAdapter(string sql, string tblName)
{
ketnoi();
OracleDataAdapter da = new OracleDataAdapter(sql, sqlcon);
da.Fill(ds, tblName);
ngatketnoi();
return da;
}
public void loaddatagridview(DataGridView dg, string strselect)
{
ds.Clear();
sqlda = new OracleDataAdapter(strselect, strconnect);
sqlda.Fill(ds, "tenbang");
dg.DataSource = ds.Tables[0];
}
public void loaddatagridview1(DataGridView dg, DataSet ds1, string strselect)


{
ds1.Clear();
sqlda = new OracleDataAdapter(strselect, strconnect);
sqlda.Fill(ds1, "tenbang");
dg.DataSource = ds1.Tables[0];
}
public void loadcombobox(ComboBox cb, string strselect, byte chiso)
{

ketnoi();
sqlcom = new OracleCommand(strselect, sqlcon);
sqldr = sqlcom.ExecuteReader();
while (sqldr.Read())
{
cb.Items.Add(sqldr[chiso].ToString());
}
ngatketnoi();
}
public void loadtextbox(TextBox cb, string strselect)
{
ketnoi();
sqlcom = new OracleCommand(strselect, sqlcon);
sqldr = sqlcom.ExecuteReader();
while (sqldr.Read())
{
cb.Text = sqldr[0].ToString();
}
ngatketnoi();
}
public bool kt(string dauvao, string strsql, byte chiso)
{
bool ok = false;
ketnoi();
sqlcom = new OracleCommand(strsql, sqlcon);
sqldr = sqlcom.ExecuteReader();
while (sqldr.Read())
{
if (sqldr[chiso].ToString().ToLower() == dauvao.ToLower())
ok = true;

}
ngatketnoi();
return ok;
}
public bool kttrungkhoa(string dauvao, string strsql)
{
bool ok = false;


ketnoi();
sqlcom = new OracleCommand(strsql, sqlcon);
sqldr = sqlcom.ExecuteReader();
while (sqldr.Read())
{
if (sqldr[0].ToString().ToLower() == dauvao.ToLower())
ok = true;
}
ngatketnoi();
return ok;
}
public DataTable ExecuteQuery(string query, object[] parameter = null)
{
DataTable data = new DataTable();
using (OracleConnection connection = new OracleConnection(strconnect))
{
connection.Open();
OracleCommand command = new OracleCommand(query, connection);
if (parameter != null)
{
string[] listPara = query.Split(' ');

int i = 0;
foreach (string item in listPara)
{
if (item.Contains('@'))
{
command.Parameters.Add(item, parameter[i]);
i++;
}
}
}
OracleDataAdapter adapter = new OracleDataAdapter(command);
adapter.Fill(data);
connection.Close();
}
return data;
}
public void loatextbox(TextBox tb, string strselect, byte chiso)
{
ketnoi();
sqlcom = new OracleCommand(strselect, sqlcon);
sqldr = sqlcom.ExecuteReader();
while (sqldr.Read())
{
tb.Lines[0] = (sqldr[chiso].ToString());
}
ngatketnoi();


}
}

}

b. Code cho các chức năng trong form

c.


d. Form chức năng
 Chức năng xem SGA

 Chức năng xem PGA

 Chức năng xem Process


 Chức năng xem Instance

 Chức năng xem Database

 Chức năng Session


TUẦN 3. THIẾT KẾ CÁC CHỨC NĂNG
1. Thiết kế các chức năng xem control file, data file, online redo log file
a. Thực hiện trên sqlplus/ sqldeveloper


×