3.2.1 Phỏt hiện thực thể
3.2.2. Phỏt hiện kiểu liờn kết
A B
1 n
A n n B
Nhúm thuốc 1 n Danh mục Thuốc
Đơn vị tớnh 1 n Danh mục Thuốc
→ Thực thể trung gian là Chi tiết hoỏ đơn để phỏ vỡ liờn kết nhiều - nhiều
→ Thực thể trung gian là Chi tiết phiếu nhập để phỏ vỡ liờn kết nhiều - nhiều
→ Thực thể trung gian là Thuốc Hủy để phỏ vỡ liờn kết nhiều - nhiều
3.2.3 Phỏt hiện thuộc tớnh
1.DM_NhomThuoc(Manhom, Tennhom,MoTa)
Danh mục Thuốc n n Phiếu nhập
Danh mục Thuốc n n Phiếu hủy
Nhõn viờn 1 n Phiếu hủy
Nhõn viờn 1 n Phiếu nhập
Nhõn viờn 1 n Phiếu chi
Nhõn viờn 1 n Húa đơn bỏn
Nhõn viờn 1 n Phiếu thu
Danh mục Thuốc n n Húa đơn bỏn
Nước sản xuất 1 n Danh Mục Thuốc
DMT_ChiDinh,DMT_ChongChiDinh,DMT_Cachdung,DMT_HanDung,DM T_NSX,
MaTu , Madonvitinh,DMT_GhiChu)
3. DM_KhachHang(Makh, Tenkh, Diachi, Dienthoai, Email,ghichu) 4.HD_BanThuoc(HDB_Ma,Makh,HDB_NgayBan,HDB_GioBan,NV_ Ma,HDB_TongTien,HDB_ThanhToan)
5.HD_ChiTietHDB(HDB_Ma,DMT_Ma,HDB_SoLuongBan,HDB_Don GiaBan)
6.PhieuThu(PT_Ma,HDB_Ma, NV_MA,PT_Ngaythu, PT_SoTien, PT_Ghichu,Makh)
8.NhanVien(NV_Ma,NV_HoTen,NV_CMND,NV_Ngaysinh,NV_Que Quan, NV_DCLienHe,NV_Tel,NV_Email)
9.PhieuNhapThuoc(PNH_SoPhieu,MaNCC,NV_Ma,PNH_NgayNhap,P NH_GioNhap,PNH_NguoiGiao,PNH_Tongtien,PNH_DaThanhToan)
10.ChiTiet_PhieuNhap(PNH_SoPhieu,DMT_Ma,PNH_ngaysanxuat, PNH_NgayHetHanPNH_Soluongnhap,PNH_DonGia,PNH_soluongcon) 11.PhieuChi(PC_SoPhieu, PN_SoPhieu,NV_Ma ,PC_Ngaychi, ,PC_ Sotien,PC_ Ghichu)
12.DM_NhaCC(NCC_Ma,NCC_Ten,NCC_DaiDien,NCC_DiaChi,NCC _DienThoai,NCC_Website,NCC_MaSoThue,NCC_SoDKKD,NCC_TaiKhoan,NC_ NGayBD)
13. PhieuHuy(Sophieuhuy, NV_Ma, Ngayhuy, Tongtien) 14. CT_ThuocHuy(Sophieuhuy, DMT_Ma, Soluonghuy)
15. NSD(Manv, TenDN, Matkhau, Quyenhan) 16. TuThuoc(MaTu,TenTu)
17. DonViTinh(Madvitinh, Dvtinh,MoTa)
3.2.4 Thiết kế cỏc bảng cơ sở dữ liệu
Dựa trờn sự liờn kết giữa cỏc thực thể liờn kết và mụ hỡnh phõn ró chức năng của hệ thống, chỳng ta tiến hành thiết kế cụ thể là xỏc định cỏc Table ( bảng CSDL) của chương trỡnh
3.2.4.1.Bảng DM_KhachHang lưu trữ thụng tin về cỏc khỏch hàng giao dịch với cửa hàng
Tờn trường Kiểu trường Độ rộng Mụ tả Makhach Text 4 Mó khỏch hàng
Tenkhach Text 30 Tờn khỏch hàng
Diachi Text 50 Địa chỉ khỏch
Dienthoai Number Điện thoại khỏch hàng
Email Text 50 Email của khỏch hàng
3.2.4.2.Bảng DM_NCC lưu trữ thụng tin chi tiết về nhà cung cấp, chuyờn cung cấp cỏc mặt hàng cho cửa hàng .
Tờn trường Kiểu trường Độ rộng Mụ tả NCC_Ma Text 4 Mó nhà cung cấp
NCC_Ten Text 30 Tờn nhà cung cấp
NCC_Diachi Text 50 Địa chỉ của nhà cung cấp
NCC_DienThoai Number Số điện thoai nhà cung cấp
NCC_SODKKD Number Số Fax của nhà cung cấp
NCC_Email Text 50 Email của nhà cung cấp
NCC_MaSoThue Text 12 Mó số thuế nhà cung cấp
3.2.4.3.Bảng NhanVien lưu trữ mọi thụng tin chi tiết về cỏc nhõn viờn của cửa hàng
Tờn trường Kiểu trường Độ rộng Mụ tả NV_Ma Text 10 Mó nhõn viờn
NV_HoTen Text 30 Tờn nhõn viờn
NV_NgaySinh Date/Time Ngày sinh nhõn viờn
NV_QQuan Text 100 Quờ quỏn nhõn viờn
NV_DiaChiLHe Text 100 Địa chỉ của nhõn viờn
NV_Tel Number 1 Điện thoại của nhõn viờn
NV_Email Text 25 Hũm thư của nhõn viờn
3.2.4.4. Bảng DM_NhomThuoc lưu trữ thụng tin về cỏc nhúm Thuốc
Tờn trường Kiểu trường Độ rộng Mụ tả Manhom Text 5 Mó nhúm Thuốc
Tennhom Text 30 Tờn nhúm thuốc
MoTa Text 50 Mụ tả
3.2.4.5.Bảng DonViTinh lưu trữ thụng tin về đơn vị tớnh của Thuốc
Tờn trường Kiểu trương Độ rộng Mụ tả Madonvitinh Text 5 Mó đơn vị tớnh
3.2.4.6.Bảng.DM_Thuoc lưu trữ chi tiết cỏc thụng tin về cỏc loại Thuốc hiện cú của cửa hàng
Tờn trường Kiểu trường Độ rộng Mụ tả
DMT_Ma Text 5 Mó Thuốc
MaNhom Text 5 Mó nhúm Thuốc
DMT_Ten Text 30 Tờn Thuốc
DMT_ThanhPhan Text 100 Thành phần Thuốc
DMT_ChiDinh Text 100 Chỉ định Thuốc
DMT_ChongChiDinh Text 100 Chống chỉ định
DMT_Cachdung Text 100 Cỏch dựng và liều dựng
DMT_HanDung Date/Time Hạn dựng trong bao lõu
MaTu Text 5 Chỗ để thuốc
Madonvitinh Text 5 Đơn vị TÍnh
Manuoc Text 5 Nước sản xuất
MaNCC Text 5 Nhà cung cấp
DMT_GhiChu Text 100 Ghi chỳ
DMT_SODK Number Số đăng ký của Thuốc
3.2.4.7.Bảng HD_BanThuoc lưu trữ thụng tin chi tiết về cỏc hoỏ đơn bỏn Thuốc
Tờn trường Kiểu trương Độ rộng Mụ tả
HDB_Ma Auto number Số hoỏ đơn bỏn Thuốc
MaKh Text 5 Mó khỏch hàng
NV_Ma Text 5 Ngày lập hoỏ đơn
HDB_NgayBan Datetime Mó nhõn viờn lập hoỏ đơn
HDB_GioBan Datetime Hạn trả nợ tiền
HDB_TongTien Number Tổng tiền Thuốc
3.2.4.9.Bảng PhieuThu lưu trữ thụng tin về cỏc khoản phải thu của cửa hàng
Tờn trường Kiểu trường Độ rộng Mụ tả PT_MA Auto number Số phiếu thu
HDB_Ma Number Số hoỏ đơn bỏn Thuốc
NV_Ma Text 5 Mó nhõn viờn thu tiền
Makh Text 5 Khỏch khỏch hàng
PT_soTien Number Số tiền thu
PT_Ngày Thu Date Time Ngày Thu
PT_Ghi Chu Text 100 Ghi chỳ về phiếu thu
3.2.4.10. Bảng PhieuNhapThuoc lưu trữ thụng tin về loại Thuốc nhập của cửa hàng nhập của cửa hàng
Tờn trường Kiểu trường Độ rộng Mụ tả PNH_SoPhieu Auto Number Số phiếu nhập Thuốc
Makh Text 5 Mó khỏch hàng
NCC_Ma Text 5 Mó nhà cung cấp
NV_Ma Text 5 Mó nhõn viờn nhận hàng
PNH_Ngaynhap Datetime Ngày nhập Thuốc
PNH_GioNhap Datetime Giờ nhập
PNH_TongTien Number Tổng tiền nhập
PNH_DaThanhToan Number SỐ tiền thanh toỏn
Tờn trường Kiểu trương Độ rộng Mụ tả HDB_Ma Number Số hoỏ đơn bỏn Thuốc
DMT_Ma Text 5 Mó Thuốc bỏn
HDB_SoLuongBan Number Số lượng Thuốc bỏn
3.2.5.11.ChiTiet_PhieuNhap lưu trữ chi tiết thụng tin về cỏc Thuốc nhập
Tờn trường Kiểu trường Độ rộng Mụ tả PC_SoPhieu AutoNumber Số phiếu chi
PNH_SoPhieu Number Số phiếu nhập Thuốc
PC_NgayChi Datetime Ngày chi tiền
NV_Ma Text 5 Mó nhõn viờn
PC_SoTien Number Số tiền đó chi
PC_GhiChu Text 100 Ghi chỳ
3.2.5.12.Bảng PhieuChi lưu trữ thụng tin về cỏc khoản phải chi của cửa hàng
Tờn trường Kiểu trường Độ rộng Mụ tả PC_SoPhieu AutoNumber Số phiếu chi
PNH_SoPhieu Number Số phiếu nhập Thuốc
PC_NgayChi Datetime Ngày chi tiền
NV_Ma Text 5 Mó nhõn viờn
PC_SoTien Number Số tiền đó chi
PC_GhiChu Text 100 Ghi chỳ
3.2.5.13.Bảng PhieuHuy lưu trữ thụng tin về phiếu huỷ hàng
Tờn trường Kiểu trường Độ rộng Mụ tả Sophieuhuy Int 4 Số phiếu huỷ
NV_Ma Text 5 Mó nhõn viờn lập phiếu
Ngayhuy Datetime Ngày lập phiếu huỷ
Sophieuhuy Number Số phiếu huỷ Thuốc
DMT_Ma Text 5 Mó hàng cần huỷ
Soluonghuy Number Số lượng Thuốc cần huỷ
3.2.5.15.Bảng TuThuoc lưu trữ thụng tỡn về chỗ để thuốc
Tờn trường Kiểu trường Độ rộng Mụ tả
MaTu Text 5 Mó tủ thuốc
TenTu Text 30 Tờn tủ thuốc
MoTa Text 100 Mụ Tả
3.2.5.16.Bảng Nsd lưu trữ thụng tin về người sử dụng
Tờn trường Kiểu trường Độ rộng Mụ tả
NV_ma Text 5 Mó nhõn viờn
TenDN Text 30 Tờn đăng nhập của nv
MatKhau Text 10 Mật khẩu truy cập
QuyenHan Number Quyền hạn
CHƯƠNG 4.CÁC CễNG CỤ SỬ DỤNG VÀ THIẾT KẾ GIAO DIỆN
4.1.Cỏc cụng cụ sử dụng
4.1.1.Lập trỡnh bằng visual Basic.
4.1.1.1.Giới thiệu về Visual Basic
• Visual Basic là một sản phẩm của Microsoft và là một chương trỡnh 32 bit chỉ chạy trờn nền Window 95 trở nờn .
• Visual Basic là một ngụn ngữ lập trỡnh theo kiểu hướng đối tượng
• Cú thể thấy ngay được thao tỏc khi thiết kế . • Cho phộp chỉnh sửa dễ dàng .
Form
Định nghĩa:Form là một mẫu thiết kế dựng trong chương trỡnh.
Giải thớch:khi thiết kế một chương trỡnh tức là đó tạo ra một hay nhiều cửa sổ cho chương trỡnh đú.Một chương trỡnh Windows ban đầu thường cú mụt cửa sổ chớnh và trong quỏ trỡnh làm việc cú thể phỏt triển thờm nhiều cửa sổ con.Khi gọi Visual Basic, luụn cú sẵn một form cho thiết kế .
Project:Khi thiết kế một chương trỡnh bằng Visual Basic luụn phải qua hai bước chớnh:
a.Thiết kế giao diện
b.Viờt lệnh:
Dựng cỏc lệnh của Visual Basic để quy định cỏch ứng sử cho mỗi form và cho mỗi control.Khi viết Form như vậy tức là đó tạo lờn một dự ỏn bao gồm tất cả cỏc yếu tố để tạo nờn chương trỡnh .Mỗi dự ỏn bao gồm nhiều Form , mỗi Form sẽ tạo thành một File trờn đĩa .Ngoài ra cần tạo ra một vài Form để chứa mó lệnh riờng để xử lý một số thao tỏc đặc biệt , một File nữa dựng để quản lý toàn bộ dự ỏn chương trỡnh .Như vậy , một Project bao gồm:
• Một File *.FRM cho mỗi Form thiết kế.
• Một File Binary *.FRM cho mỗi Form thiết kế mà cú cỏc control cú cỏc dữ liệu đặc biệt .
• Cỏc File*.Bas cho cỏc mó lệnh.
• Một File*.RES chứa resourse(tài nguyờn ) cho dự ỏn .Tài nguyờn ở đõy là cỏc Bitmap,icon...dựng trong chương trỡnh .
• Một File duy nhất *.VBM cho toàn bộ dự ỏn.
• Ngoài ra với cỏc chương trỡnh cao cấp cũn cú File *.VBX,*.OCX.
4.1.1.2.Đối tượng và cỏch sử dụng đối tượng
a.Đối tượng (Object)
Visual Basic là một ngụn ngữ lập trỡnh kiểu đối tượng , làm việc với Visual Basic chớnh là làm việc với cỏc đối tượng .
Đặc điểm của cỏc đối tượng trong chương trỡnh : • Mỗi đối tương đều cú một tờn để phõn biệt .
• Mỗi đối tượng cú thể cú nhiều hoạt động và cỏc hoạt động này gọi là Method(phương thức) của nú.
• Truy xuất đối tượng. Truy xuất đối tượng tức là đặt giỏ trị cho cỏc Property cho đối tượng ,hay gọi phương thức hoạt động cho cỏc đối tượng đú hoạt động .Bất cứ khi nào truy xuất đối tượng đều được viết theo cỳ phỏp sau:
<Tờn đối tượng >.<Tờn Property hay Method>
b.Viết lệnh cho đối tượng
Khi đặt một đối tượng lờn form thỡ lỳc đầu nú chưa hoạt động .Ta cần phải viết lệnh để cho nú làm việc .
• Double Click cho đối tượng .
• Cửa sổ lệnh khiện ra ,Khi đú hóy viết lệnh cho đụi tượng này . • Sử dụng cửa sổ để viết mó lệnh .
Mỗi phần mó lệnh cho một sự kiện xảy ra trờn một đối tượng đều cú hai dũng đầu tiờn là Sub và cuối cựng là END Sub.Cần phải giữ nguyờn hai dũng này và viết mó lệnh vào giữa hai dũng đú .
• Cửa sổ lệnh cũng giống như bất kỳ một cửa sổ soạn thảo nào đó dựng trờn Window
• Visual Basic cú đặc điểm tự kiểm tra cỳ phỏp khi viết mó lệnh .Khi viết xong một dũng lệnh và qua một dũng khỏc thỡ Visual Basic tự động kiểm tra cõu lệnh vừa viết ,nếu sai thỡ sẽ bỏo cũn lại thỡ tự động đổi chữ thường , chữ hoa cho chương trỡnh được rừ ràng.
• Mỗi dũng lệnh trong Visual Basic đều phải được viết trờn một dũng , khụng được ngắt giữa dũng nửa chừng.
c. Biến
Khỏi niệm:Biến được dựng để lưu tam thời cỏc giỏ trị để tớnh toỏn trong quỏ trỡnh xử lý chương trỡnh .
Khi xử lý một chương trỡnh luụn cần phải lưu trữ một giỏ trị nào để tớnh toỏn , để so sỏnh hay tớnh toỏn chựng với nhau và thực hiện cỏc tỏc vụ khỏc nhau dựa vào cỏc kết quả so sỏnh hay tớnh toỏn trờn chỳng.Visual Basic hay bất cứ một ngụn ngữ lập trỡnh nào khỏc đều dựng cỏc biến chương trỡnh để lưu giữ cỏc giỏ trị đú . Cỏc giỏ trị lưu trữ trong cỏc biến cú thể cú cỏc giỏ trị khỏc nhau , cú thể là một dũng chữ hay một con số ...Dạng giỏ trị đú gọi là kiểu dữ liệu .
• Một biến được đặc trưng bằng một cỏi tờn.Biến khụng cú sẵn trong chương trỡnh.Muốn sử dụng biến phải tạo ra nú gọi là khai bỏo.
• Cỏch khai bỏo biến và sử dụng biến , thời gian sống .
• Khai bỏo biến trong chương trỡnh bằng một trong cỏc dũng lệnh như sau :
• DIM/Static/Public/Global<Tờn biến> as <kiểu dữ liệu >.
• Khai bỏo với từ khoỏ Dim, Static dựng để khai bỏo cho những lệnh cục bộ trong Sub hoặc Function đú mà thụi .Khai bỏo với từ khoỏ Public và Global(khai bỏo biến toàn cục ) dựng để khai bỏo
Đối với biến cục bộ thỡ thời gian sống của nú chỉ nằm trong sub hoặc Function mà nú được khai bỏo mà thụi.Đối với biến toàn cục thỡ thời gian sống của nú là toàn bộ thời gian khi chương trỡnh đang chạy .
4.1.1.3.Cỏc kiểu dữ liệu trong Visual Basic.
Khi khai bỏo một biến trong chương trỡnh tức là đó định ra một khoảng bộ nhớ để lưu giỏ trị , khoảng thời gian đú lớn hay nhỏ tuỳ thuộc vào biến đú khai bỏo kiểu gỡ.Khi dựng biến trong chương trỡnh , điều quan trọng là xỏc định kiểu biến cho phự hợp với cỏc giỏ trị mà ta đặt vào.Visual Basic cho phộp khai bỏo kiểu dữ liệu chuẩn như sau:
Byte 1 byte 0 đến 255
Integer 2 byte -32768 đến 32768
Long 4 byte -2.1.4.483.684 tới 2.14.483.674
Single 4 byte -3,402823E38 tới -1,401298E-45
-1,401298E-45 tới 3,402823E38
Double 8 byte -1,79769E308 tới -4.94065E-324
4,94065E-324 tới 1,79769E308
Current 8 byte -9223337203685477,5808 tới
22337203685477
Boolean 2 byte True và False
String 1 Byte cú thể lờn đến 2 mũ 31 ký tự mỗi ký tự
Date 8 byte
Variant 16 Byte
4.1.1.4.Cỏc toỏn tử
Toỏn tử tớnh toỏn:
+ cộng hai số với nhau - Trừ hai số với nhau * nhõn hai số với nhau / chia, trả về kiểu số thực
\ chia lấy nguyờn mod chia lấy dư ^ lấy luỹ thừa
Cỏc toỏn tử so sỏnh:
cỏc toỏn tử so sỏnh dựng để so sỏnh hai giỏ trị nào đú và luụn trả về kiểu Boolean , tức là chỉ trả về hai giấ trị True hay False.
Toỏn tử í nghĩa
> So sỏnh xem số thứ nhất lớn hơn số thứ hai hay khụng < So sỏnh xem số thứ nhất nhỏ hơn số thứ hai hay khụng
= So sanh xem số thứ nhất bằng số thứ hai hay khụng
>= So sanh số thứ nhất cú lớn hơn hoặc bắng số thứ hai <= So sỏnh số thứ nhất cú nhỏ hơn hoặc bằng số thứ hai <> So sỏnh xem số thứ nhất cú khỏc số thứ hai hay khụng
Cỏc toỏn tử luận lý:cỏc toỏn tử luận lý luõn trả về cỏc giỏ trị luận lý
và cỏc số hạng cũng là kiểu luận lý .
Toỏn tử í nghĩa
And Trả về giỏ trị true nếu cả hai số hạng đều là True và ngược lại Or Trả về giỏ tri true nếu một trong hai là True, trả về False nếu
cả hai là False
Not Trả về True nếu số hạng là False và trả về False nếu số hạng là True
4.1.1.5.Cỏc kiểu cấu trỳc
• Cõu lệnh IF: Cỳ phỏp 1:
end if Cỳ phỏp 2:
If<biểu thức logic> Then ...
Else ... End If
• Cấu trỳc Select...case
í nghĩa:Là một cấu trỳc chọn lựa theo một biến hay một điều kiện nào đú .Cấu trỳc này sử dụng trong trường hợp cần xột nhiều điều kiện chọn lựa xảy ra trờn một biến nào đú
Cỳ phỏp:
Select case<Biến hay biểu thức điều kiện > Case<giỏ trị 1> <Cõu lệnh 1> ... Case<Giỏ trị n> <Cõu lệnh n> [Case Else <cõu lệnh Else>] End select
í nghĩa:Là một cấu trỳc lặp với số bước lặp cố định .Cấu trỳc này thường được sử dụng khi bạn biết trước số vũng lặp .Ở cấu trỳc này cõu lệnh được thực hiện cho đến khi hết số bước lặp .
Cỳ phỏp:
For Counter=Start To End [Step step] <Cõu lệnh>
[Exit For] <Cõu lệnh> Next[Counter] Trong đú:
-Counter:Biến đếm kiểu số nguyờn . -Start:Giỏ trị bắt đầu của Counter. -End:Giỏ trị kết thỳc của Counter. Step:Bước nhảy sau mỗi lần lặp
• Cấu trỳc của Do..while
í nghĩa:Là một cấu trỳc thực hiện cho đến khi biểu thức điều kiện thực sự được thoả món .Ở điều kiện này khi gặp điều kiện thoả món thỡ vũng lặp dừng.Nếu cõu lệnh sai thỡ bỏ qua cỏc cõu lệnh và thực hiện cỏc lệnh phớa dưới dũng Loop.
Cỳ phỏp:
<Cõu lệnh > Loop Hoặc cú thể dựng cỳ phỏp Do <Cõu lệnh > [Exit Do] <cõu lệnh >
loop Until <Điều kiện>
• Cấu trỳc With
í nghĩa:
Cõu lệnh With cho phộp truy cập đến thuộc tớnh của đối tượng mà khụng cần phải gọi đầy đủ tờn đối tượng và tờn thuộc tớnh .
Cỳ phỏp:
With Đối tượng
.Thuộc tớnh 1=Thuộc tớnh .Thuộc tớnh 2=Thuộc tớnh ...
End with
4.1.1.6.Thủ tục
Trong quỏ trỡnh viết một chương trỡnh , đụi khi cú một đoạn lệnh nào đú cứ viết đi viết lại nhiều lần giống nhau , điều này vừa tốn cụng lại vừa làm
tờn , khi cần thực hiện đoạn mó đú chỉ cần gọi tờn của nú.Đoạn mó này định riờng và gọi qua tờn của nú gọi là thủ tục hay Modul trong chương trỡnh .
Cỏch định nghĩa một thủ tục .
Một thủ tục trước khi muốn sử dụng phải định nghĩa nú.Dựng từ khoỏ Sub để khai bỏo thủ tục này .
Private/Public Sub<tờn thủ tục>
... ’Cỏc lệnh mà thủ tục cần thực hiện End Sub ‘Kết thỳc thủ tục
Nếu khai bỏo từ khoỏ Public , thủ tục này cú thể được gọi để sử dụng trong bất kỳ form nào trong chương trỡnh .
Nếu khai bỏo bằng từ khoa Private, thủ tục chỉ cú thể dựng được trong