You are on page 1of 21

HNG DN XY DNG PHN MM QUN L NH SCH 1 Yucungdng

1.1 Danhschccyucu
STT 1 2 3 4 5 Tn yu cu Lp phiu nhp sch Lp ha n bn sch Tra cu sch Lp bo co thng Thay i qui nh Biu mu BM1 BM2 BM3 BM5 Q6 Qui nh Q1 Q2 Ghi ch

1.2 Danhschccbiumuvquinh
1.2.1 Biumu1vquinh1
BM1: STT 1 2 Sch Th loi Phiu Nhp Sch Ngy nhp: ..................................... Tc gi S lng n gi nhp

Q1: Ch nhp cc u sch c lng tn t hn 300.

1.2.2 Biumu2vquinh2
BM2: STT 1 2 Sch Ha n Bn Sch Ngy lp ha n: ................................ S lng n gi bn Th loi H tn khch hng: ..............................

Q2: Ch bn cho cc khch hng n khng qu 20.000 v u sch c lng tn sau khi bn t nht l 20.

1.2.3 Biumu3
BM3: STT 1 2 Tn Sch Danh Sch Sch Th Loi Tc Gi S Lng

1.2.4 Biumu5
Biu mu 5.1 BM5.1:
STT 1 2 Sch Bo Co Tn Thng: ......................................... Tn u Pht Sinh Tn Cui

1.2.5 Quinh6
Q6: Ngi dng c th thay i cc qui nh nh sau : + Q1 : Thay i s lng nhp ti thiu, lng tn ti thiu trc khi nhp. + Q2 : Thay i tin n ti a, lng tn ti thiu sau khi bn . + Q4 : S dng hay khng s dng qui nh ny.

2 XydnglpgiaotipCSDL
2.1 Chc nng
Lp Database m nhim vic giao tip vi c s d liu cho ton ng dng. Tt c vic tng tc vi CSDL d liu din ra bt c ni no trong ng dng u c thc hin thng qua lp ny.

2.2 Mc ch
S d chng ta phi xy dng lp ny l nhm mang li tnh d bo tr cng nh tnh tin ha cho h thng. Nu sau ny cn thay i mi trng ng dng (sang Oracle, Access, Db2 ...) th chng ta ch vic chnh sa lp Database ny m khng cn quan tm n phn cn li ca ng dng.

2.3 Lp Database
2.3.1 LpDatabase Thuc tnh o Sqlconn : SqlConnection Phng thc o New : Hm to (Constructor) o Execute : Thc thi mt cu lnh truy vn v tr v kt qu l mt DataTable dng cho cc cu lnh Select * from ... o ExecuteNonQuery : Thc thi mt cu lnh truy vn khng quan tm n kt qu tr v. Dng cho cc cu lnh Insert, Delete, Update ... o ExecuteScalar : Thc thi 1 cu lnh truy vn tr v 1 gi tr duy nht

2.3.2 Mngun
C# using using using using using using

System; System.Collections.Generic; System.Text; System.Data; System.Data.OleDb; System.Windows.Forms;

namespace QLNS { class Database { //Thuoc tinh protected string m_connectionString; protected OleDbConnection connection; protected OleDbDataAdapter da = null; protected OleDbCommand command; //Phuong thuc public Database() { m_connectionString = "Provider = Microsoft.Jet.OleDb.4.0; Data Source=QLNS.mdb"; } //Ket noi public void connect() { try { connection = new OleDbConnection(ConnectionString); connection.Open(); } catch (Exception ex) { MessageBox.Show("Khng th kt ni c vi Server\n" + ex.Message, "Li chng trnh"); //Application.Exit(); } } //Tat ket noi public void disconnect() { try { connection.Close(); } catch (Exception ex) { MessageBox.Show(ex.Message);

} } //Lay ra du lieu ra table public DataTable executeQuery(String sqlString) { connect(); DataSet ds = new DataSet(); da = new OleDbDataAdapter(sqlString, connection); da.Fill(ds); disconnect(); return ds.Tables[0]; } //Dung cho cac thao tac insert, delete, update public void executeNonQuery(string sqlString) { connect(); command = new OleDbCommand(sqlString, connection); command.ExecuteNonQuery(); disconnect(); } //Lay 1 gia tri du lieu ra public object executeScalar(string sqlString) { connect(); command = new OleDbCommand(sqlString, connection); object o = command.ExecuteScalar(); disconnect(); return o; } public string ConnectionString { get { return m_connectionString; } set { m_connectionString = value; } } } }

Xy dng mn hnh chnh


ng nhp ng xut

Xy dng h thng menu


Menu H thng

Menu Danh Mc

Menu Qun l Menu Bo co, thng k

Qun l ngi dng Thay i qui nh Thot Danh mc sch Danh mc tc gi Danh mc th loi Danh mc khch hng Lp phiu nhp sch Lp phiu bn sch Lp bo co thng

Xy dng chc nng danh mc

4.1 Mn hnh th loi sch

Xy dng lp TheLoai

class TheLoai { private int m_maTheLoai; public int MaTheLoai { get { return m_maTheLoai; } set { m_maTheLoai = value; } } private string m_tenTheLoai; public string TenTheLoai { get { return m_tenTheLoai; } set { m_tenTheLoai = value; } } public static DataTable LayDanhSachTheLoai() { string sql; sql = "Select MaTheLoai, TenTheLoai From TheLoai "; Database db = new Database(); DataTable dt; dt = db.executeQuery(sql); } return dt;

public void ThemTheLoaiSach() { string sql; sql = "Insert into TheLoai(TenTheLoai) values ("; sql += "'" + m_tenTheLoai + "')"; Database db = new Database(); db.executeNonQuery(sql); } public void XoaTheLoaiSach() { string sql; sql = "Delete From TheLoai Where maTheLoai = " + m_maTheLoai.ToString(); Database db = new Database(); db.executeNonQuery(sql); } public void CapNhatTheLoaiSach() { string sql; sql = "Update TheLoai Set TenTheLoai='" + m_tenTheLoai + "'"; sql += " Where MaTheLoai = " + m_maTheLoai.ToString(); Database db = new Database();

db.executeNonQuery(sql); } public void LayThongTinTheLoaiSach(int maTheLoai) { string sql; DataTable dt = new DataTable(); sql = "Select * From TheLoai Where MaTheLoai = " + maTheLoai.ToString(); Database db = new Database(); dt = db.executeQuery(sql); if (dt != null && dt.Rows.Count > 0) { m_maTheLoai = Convert.ToInt32(dt.Rows[0]["MaTheLoai"]); m_tenTheLoai = Convert.ToString(dt.Rows[0]["TenTheLoai"]); } } }

Cc hm x l ca TheLoaiSach_Form

TheLoaiSach_Form_Load
private void frmDanhMucTheLoai_Load(object sender, EventArgs e) { HienThiDanhSachTheLoaiSach(); } private void HienThiDanhSachTheLoaiSach() { dgvTheLoaiSach.DataSource = TheLoai.LayDanhSachTheLoai(); SoanLai(); } private void SoanLai() { txtTenTheLoai.Text = ""; }

Khi ngi dng bm vo 1 hng th hin th thng tin chi tit ca th loi sch ta dng s kin SelectionChanged ca dgvTheLoaiSach
private void dgvTheLoaiSach_SelectionChanged(object sender, EventArgs e) { if (dgvTheLoaiSach.SelectedRows.Count > 0) { int maTheLoai =

Convert.ToInt32(dgvTheLoaiSach.SelectedRows[0].Cells[0].Value); TheLoai tl = new TheLoai(); tl.LayThongTinTheLoaiSach(maTheLoai); //nap thong tin theloai len cac control tren form txtTenTheLoai.Text = tl.TenTheLoai;

} }

, btnThem, btnXoa, btnSua, btnSoanLai


private void btnThem_Click(object sender, EventArgs e) { TheLoai tls = new TheLoai(); tls.TenTheLoai = txtTenTheLoai.Text; tls.ThemTheLoaiSach(); MessageBox.Show("Thm th loi mi thnh cng", "Qun l nh sch"); HienThiDanhSachTheLoaiSach(); } private void btnXoa_Click(object sender, EventArgs e) { if (dgvTheLoaiSach.SelectedRows.Count > 0) { int maTheLoai = Convert.ToInt32(dgvTheLoaiSach.SelectedRows[0].Cells[0].Value); TheLoai tl = new TheLoai(); tl.MaTheLoai = maTheLoai; tl.XoaTheLoaiSach(); HienThiDanhSachTheLoaiSach(); } } private void btnSua_Click(object sender, EventArgs e) { if (dgvTheLoaiSach.SelectedRows.Count > 0) { int maTheLoai = Convert.ToInt32(dgvTheLoaiSach.SelectedRows[0].Cells[0].Value); TheLoai tl = new TheLoai(); tl.MaTheLoai = maTheLoai; tl.TenTheLoai = txtTenTheLoai.Text; tl.CapNhatTheLoaiSach(); MessageBox.Show("Cp nht thng tin th loi thnh cng", "Qun l nh sch");

HienThiDanhSachTheLoaiSach(); } } private void btnSoanLai_Click(object sender, EventArgs e) { SoanLai(); }

4.2 Mn hnh danh mc sch


4.2.1 Thit k mn hnh

4.2.2 Loadd liu cho cc ComboBox S kin formload ca frmDanhMucSach


private void frmDanhMucSach_Load(object sender, EventArgs e) { // load du lieu cho combobox dgvcbTheLoai tren datagridview dgvcbTheLoai.DataSource = TheLoai.LayDanhSachTheLoai(); dgvcbTheLoai.DisplayMember = "TenTheLoai";

dgvcbTheLoai.ValueMember = "MaTheLoai"; // load du lieu cho combobox dgvcbTacGia tren datagridview dgvcbTacGia.DataSource = TacGia.LayDanhSachTacGia(); dgvcbTacGia.DisplayMember = "TenTacGia"; dgvcbTacGia.ValueMember = "MaTacGia"; // load du lieu cho combobox cbTheLoai cbTheLoai.DataSource = TheLoai.LayDanhSachTheLoai(); cbTheLoai.DisplayMember = "TenTheLoai"; cbTheLoai.ValueMember = "MaTheLoai"; // load du lieu cho combobox cbTacGia cbTacGia.DataSource = TacGia.LayDanhSachTacGia(); cbTacGia.DisplayMember = "TenTacGia"; cbTacGia.ValueMember = "MaTacGia"; HienThiDanhSachSach(); }

Xydng chc nng tra cu

5.1 Thit k mn hnh

5.2 Xy dng hm tra cu trong lp Sach


Trong lp Sach ta xy dng them hm tra cu sch
public static DataTable TraCuuSach(string tenSach) {

string sql; sql = "Select MaSach, MaTheLoai, MaTacGia, TenSach, GiaBan, SoLuongTon From Sach "; sql += " where TenSach like '%" + tenSach + "%'"; Database db = new Database(); DataTable dt; dt = db.executeQuery(sql); } return dt;

5.3 Thc hin tra cu


private void btnTraCuu_Click(object sender, EventArgs e) { string tenSach = txtTenSach.Text; dgvSach.DataSource = Sach.TraCuuSach(tenSach); }

6 Xydngchc nng qunl


6.1 Ha n bn sch
6.1.1 Thit k mn hnh

6.1.2 Lp HoaDon Hm them mi ha n


public void ThemHoaDon() { string sql; Database db = new Database(); // Tao maHoaDon sql = "Select max(MaHoaDon) from HoaDon"; int maHoaDon = Convert.ToInt32(db.executeScalar(sql)); m_maHoaDon = maHoaDon + 1;

sql = "Insert into HoaDon(MaHoaDon, MaKhachHang, NgayLap) values ("; sql += m_maHoaDon.ToString() + ","; sql += m_maKhachHang.ToString() + ","; sql += "'" + m_ngayLap + "')"; db.executeNonQuery(sql);

6.1.3 Lp ChiTietHoaDon Hm thm chi tit ha n


public void ThemChiTietHoaDon() { string sql; Database db = new Database(); sql = "Insert into ChiTietHoaDon(MaCTHoaDon, MaHoaDon, MaSach, SoLuong, DonGiaBan) values ("; sql += m_maChiTietHoaDon.ToString() + ","; sql += m_maHoaDon.ToString() + ","; sql += m_maSach.ToString() + ","; sql += m_soLuong.ToString() + ","; sql += m_donGiaBan.ToString() + ")"; db.executeNonQuery(sql); }

6.1.4 X l ca mn hnh lp ha n Form load


private void frmPhieuBanSach_Load(object sender, EventArgs e) { // load du lieu cho combobox dgvcbTheLoai tren datagridview dgvcbTheLoai.DataSource = TheLoai.LayDanhSachTheLoai(); dgvcbTheLoai.DisplayMember = "TenTheLoai"; dgvcbTheLoai.ValueMember = "MaTheLoai"; // load du lieu cho combobox dgvcbTacGia tren datagridview dgvcbSach.DataSource = Sach.LayDanhSach(); dgvcbSach.DisplayMember = "TenSach"; dgvcbSach.ValueMember = "MaSach"; // load du lieu cho combobox cbKhachHang cbKhachHang.DataSource = KhachHang.LayDanhSachKhachHang(); cbKhachHang.DisplayMember = "TenKhachHang"; cbKhachHang.ValueMember = "MaKhachHang"; }

S kin khi thay i tn sch


private void dgvChiTietHoaDon_CellValueChanged(object sender,

DataGridViewCellEventArgs e) { if (e.ColumnIndex == 0 && e.RowIndex >= 0) { int maSach = Convert.ToInt32(dgvChiTietHoaDon.Rows[e.RowIndex].Cells[0].Value); Sach s = new Sach(); s.LayThongTinSach(maSach); dgvChiTietHoaDon.Rows[e.RowIndex].Cells[1].Value = s.MaTheLoai; dgvChiTietHoaDon.Rows[e.RowIndex].Cells[2].Value = s.GiaBan; dgvChiTietHoaDon.Rows[e.RowIndex].Cells[3].Value = 0; } }

Lu ha n
private void btnLuu_Click(object sender, EventArgs e) { // Them hoa don HoaDon hd = new HoaDon(); hd.MaKhachHang = Convert.ToInt32(cbKhachHang.SelectedValue); hd.NgayLap = dtpNgayLap.Value; hd.ThemHoaDon(); // Them chi tiet hoa don for (int i=0; i<dgvChiTietHoaDon.RowCount; i++) { ChiTietHoaDon cthd = new ChiTietHoaDon(); cthd.MaHoaDon = hd.MaHoaDon; cthd.MaChiTietHoaDon = i + 1; cthd.MaSach = Convert.ToInt32(dgvChiTietHoaDon.Rows[i].Cells[0].Value); cthd.SoLuong = Convert.ToInt32(dgvChiTietHoaDon.Rows[i].Cells[3].Value); cthd.DonGiaBan = Convert.ToInt32(dgvChiTietHoaDon.Rows[i].Cells[2].Value); cthd.ThemChiTietHoaDon(); // Cap nhat so luong ton Sach s = new Sach(); s.MaSach = cthd.MaSach; s.CapNhatSoLuongTon(-cthd.SoLuong); } MessageBox.Show("Thm th loi mi thnh cng", "Qun l nh sch"); }

7 Xydngchc nngbocothngk
Xydng bo co s lng sch bn trong thng

7.1 Xy dng cu truy vn


SELECT s.TenSach, tl.TenTheLoai, s.Giaban, sum (ct.SoLuong) as SoLuong from chitiethoadon ct, sach s, hoadon hd, theloai tl where ct.masach = s.masach and ct.mahoadon = hd.mahoadon and s.matheloai = tl.matheloai and month(hd.ngaylap) = 10 and year(hd.ngaylap) = 2008 group by s.TenSach, tl.TenTheLoai, s.Giaban

7.2 Xy dng report


Project Add new item chn Crystal Report Chn Using the Report Wizard t tn crBaoCaoThang

Chn Create New Connection Chn Add command

Database File

Chn file QLNS.mdb

Nhp cu truy vn

Chn tt c cc trng trong command

Grouping (B qua) Record Selection (B qua) Report style Chn Table

7.3 Xy dng form hin th bo co frmHienThiBaoCao

Trong form ny c hm Gn bo co cn hin th :


public void GanBaoCaoCanHienThi(object cr) { crystalReportViewer1.ReportSource = cr; }

7.4 Xy dng form bo co thng frmBaoCaoThang

Cc hm x l
private void frmBaoCaoThang_Load(object sender, EventArgs e) { for (int thang = 1; thang <= 12; thang++) { cbThang.Items.Add(thang); } cbThang.SelectedIndex = 0; for (int nam = DateTime.Now.Year; nam >= DateTime.Now.Year - 3; nam--) { cbNam.Items.Add(nam); } } private void btnLapBaoCao_Click(object sender, EventArgs e) { // tao report document crBaoCaoThang cr = new crBaoCaoThang(); int thang = Convert.ToInt32(cbThang.Text); int nam = Convert.ToInt32(cbNam.Text); DataTable dt = BaoCao.LapBaoCaoThang(thang,nam); cr.SetDataSource(dt); // gan table cho report // tao frm hien thi reportviewer frmHienThiBaoCao frm = new frmHienThiBaoCao(); frm.GanBaoCaoCanHienThi(cr); frm.ShowDialog(); }

8 Xydng chc nng h thng

You might also like