MaTT Char(4) Mã tình tr ng TenTT Nvarchar(20) Tên tình tr ng MoTaTT Nvarchar(200) Mô t tình tr ng
Table PhanQuyen
B ng II.2.23 Các thu c tính c a Phân quy n Tên c t Lo i d li u Mô t Tên c t Lo i d li u Mô t
MaQuyen Char(4) Mã quy n
TenQuyen Nvarchar(20) Tên quy n
MoTa Nvarchar(max) Mô t
II.3 Trigger
SQL Trigger là m t ho c m t t p các câu l nh SQL đ c l u tr trong CSDL và s đ c kích ho t b i s ki n mà nó theo dõi trên b ng d li u. S ki n đó g n li n v i thao tác INSERT, UPDATE hay DELETE.
ôi khi ng i ta xem trigger là m t d ng đ c bi t c a th t c th ng trú n u xét v m t mã l nh vi t trong thân trigger.
u đi m c a trigger
S d ng trigger đ ki m tra tính toàn v n c a csdl.
Trigger có th b t l i logic nghi p v (business logic) m c csdl.
Có th dùng trigger là m t cách khác đ thay th vi c th c hi n nh ng công vi c h n gi theo l ch.
Trigger r t hi u qu khi đ c s d ng đ ki m soát nh ng thay đ i c a d li u trong b ng.
Nh c đi m c a trigger
Trigger ch là m t ph n m r ng c a vi c ki m tra tính h p l c a d li u ch không thay th đ c hoàn toàn công vi c này.
Trigger ho t đ ng ng m trong csdl, không hi n th t ng giao di n. Do đó, khó ch ra đ c đi u gì x y ra t ng csdl.
Trigger th c hi n các update lên b ng d li u vì th nó làm gia t ng l ng công vi c lên csdl và làm cho h th ng ch y ch m l i
Các trigger đ c s d ng trong khóa lu n:
S_F_CAPNHAT_GIABAN (table CT_DonHang)
S_T_DELETE_TONKHO_DONHANG (table CT_DonHang) S_T_INSERT_TONKHO_DONGHANG (table CT_DonHang) S_T_UPDATE_TONKHO_DONHANG (table CT_DonHang) S_T_DELETE_CTKHUYENMAI (table CT_DotKM)
S_T_DELETE_THANHTIEN_PHIEUNHAP (table CT_PhieuNhap) S_T_DELETE_TONKHO (table CT_PhieuNhap)
S_T_INSERT_THANHTIEN_PNHAP (table CT_PhieuNhap) S_T_INSERT_TONKHO (table CT_PhieuNhap)
S_T_UPDATE_THANHTIEN_PHIEUNHAP (table CT_PhieuNhap) S_T_UPDATE_TONKHO (table CT_PhieuNhap)
S_T_CAPNHAT_HUYDONHANG (table DonHang) S_T_CAPNHAT_LOAIKH (table DonHang)
S_T_DELETE_CONGNO_THANHTOAN (table ThanhToan) S_T_INSERT_CONGNO_THANHTOAN (table ThanhToan) S_T_UPDATE_CONGNO_THANHTOAN (table ThanhToan)
II.4 S đ ch c n ng II.4.1 Winform Hình II.4.1.1 : S đ ch c n ng Winform Winform Tùy chinh h th ng Qu n lý d li u S n ph m Khách hàng Nhân viên Nhà cung c p Qu n lý User Sao l u, ph c h i Tùy ch nh giao di n Hình nh Qu n lý bán hàng Bán hàng Qu n lý đ n hàng Phi u nh p T n kho Báo cáo t khuy n mãi
Phi u thanh toán Công n
II.4.2 Webform Hình II.4.1.2 : S đ ch c n ng Webform Website Qu n Tr Ng i Dùng Xem s n ph m Tìm ki m ng Nh p/ ng ký Mua hàng Ph n h i
Xem thông tin khác
H tr tr c tuy n ng nh p Qu n lí đ n hàng Qu n lí ng i dùng Qu n lí s n ph m Th ng kê truy c p
Ch ng III: TH C HI N TÀI
Ch ng này s trình bày chi ti t quá trình xây d ng và thi t k ng d ng qu n lý bán hàng và Website mua hàng tr c tuy n. u ch ng là ph n trình bày v môi tr ng th c hi n winform và webform cùng các b công c h tr quá trình thi t k . Microsoft Visual Studio 2008 là môi tr ng làm vi c chính v i s h tr c a các b công c h tr . C s d li u đ c xây d ng và qu n lý v i h qu n tr c s d li u SQL Server 2008.
III.1 Gi i thi u công c , môi tr ng làm vi c:
III.1.1 Microsoft Visual Studio 2008
Là môi tr ng phát tri n tích h p đ c phát tri n b i Microsoft, ph c v các l p trình viên trong vi c phát tri n ph n m m.
Microsoft Visual Studio đ c dùng đ phát tri n console (thi t b đ u cu i) và GUI (giao di n ng i dùng đ h a) cùng v i các trình ng d ng nh Window Forms, các WebSite, c ng nh các ng d ng, d ch v web.
Visual Studio h tr nhi u ngôn ng l p trình nh C/C++,VB.NET, C#,…ngoài ra còn h tr c XML/SXLT, HTML/XHTML, JavaScript và CSS,…
Visual Studio có nh ng ch c n ng c b ng: so n th o mã, trình g l i, thi t k .
Winform designer là công c t o giao di n đ h a cho winform, giao di n sinh đ ng, d n m b t, bao g m các phím b m, thanh tác v , các box đa d ng có th di chuy n, kéo ra và nhúng vào form d dàng.
Trong project này, winform đ c xây d ng trên visual studio trên ngôn ng C# cùng v i giao di n đ c h tr c a b DevExpress 12.1
III.1.2 ASP.NET
ASP.NET là m t n n t ng ng d ng web (web application framework)
đ c phát tri n và cung c p b i Microsoft, cho phép nh ng ng i l p trình t o ra nh ng trang web đ ng, nh ng ng d ng web và nh ng d ch v web. L n
c a .NET framework, là công ngh n i ti p c a Microsoft's Active Server Pages(ASP). ASP.NET đ c biên d ch d i d ng Common Language Runtime (CLR), cho phép nh ng ng i l p trình vi t mã ASP.NET v i b t k ngôn ng nào đ c h tr b i .NET language.
u đi m: ASP.Net cho phép l a ch n m t trong các ngôn ng l p trình mà b n yêu thích: Visual Basic.Net, J#, C#,… Trang ASP.Net đ c biên d ch tr c. Thay vì ph i đ c và thông d ch m i khi trang web đ c yêu c u,
ASP.Net biên d ch nh ng trang web đ ng thành nh ng t p tin DLL mà Server có th thi hành nhanh chóng và hi u qu . Y u t này là m t b c nh y v t
đáng k so v i k thu t thông d ch c a ASP.
Quá trình x lý t p tin ASPX:
III.1.3 ADO.NET
ADO.NET là m t ph n c a .NET Framework, nó đ c xem là “b th vi n l p” ch u trách nhi m x lý d li u trong ngôn ng MS.NET. ADO.NET
đ c thi t k v i d ng d li u “ng t k t n i”, ngh a là chúng ta có th l y c m t c u trúc ph c t p c a d li u t database, sau đó ng t k t n i v i database r i m i th c hi n các thao tác c n thi t. ây là m t s ti n b v m t thi t k b i vì thi t k ADO tr c đây luôn c n duy trì m t k t n i trong quá trình thao tác d li u
Tr c ADO.NET, Microsoft đã có ADO là m t b th vi n đ x lý các thao tác liên quan đ n d li u. ADO có tính linh ho t, d s d ng và đ c tích h p trong các ngôn ng nh Visual Basic, ASP 3.0. Có th coi ADO.NET là m t th h ti p theo c a ADO. ADO.NET k th a t t c nh ng u đi m c a ADO, đ ng th i v i ý t ng thi t k hoàn toàn m i ADO.NET có m t di n m o khác h n so v i ti n thân c a nó. M t vài đ c đi m n i b t c a ADO.NET mà ADO không có nh sau:
ADO.NET đ c thi t k hoàn toàn d a vào XML ADO.NET đ c thi t k hoàn toàn h ng đ i t ng.
Các đ i t ng chính trong ADO.NET:
Connection: i t ng qu n lý đóng /m k t n i t i Database.Có 2 d ng Connection tu theo ngu n d li u là gì (OleDb hay SQL Server) đó là
OleDbConnection và SqlConnection
Command : i t ng th c hi n các câu l nh t ng tác truy v n, rút trích d li u t database khi đã thi t l p k t n i t i d li u và tr v k t qu . T ng t nh Connection, Command c ng có 2 d ng tu theo ngu n d li u là gì (OleDb hay SQL Server) đó là OleDbCommand và SqlCommand
DataReader : i t ng x lý đ c d li u, đ c thi t k phù h p cho các ng d ng web. Ch X lý 1 dòng d li u t i m t th i đi m. Phù h p v i ng d ng web vì x lý nhanh, nh không chi m b nh . C ng có 2 d ng tùy theo d li u ngu n : OleDbDataReader và SqlDataReader. D li u c a đ i t ng
DataAdapter : ây là đ i t ng r t quan tr ng c a ADO.NET, nó là c u n i c a database và dataset (dataset là đ i t ng ng t k t n i), b i vì đ i t ng “ng t k t n i” dataset không th liên l c tr c ti p v i database nên nó c n m t
đ i t ng trung gian l y d li u t database cho nó. Và đó chính là
DataAdapter. Vì DataAdpater khi thao tác v i Database v n ph i duy trì k t n i nên nó đ c li t kê vào d ng “k t n i”, nh ng b n ch t là ph c v cho vi c “ng t k t n i
III.1.4 Power AMC
Là m t ph n m m h tr đ c l c trong vi c thi t k mô hình quan h , mô hình CDM, PDM, ERD, ER,... trong môn phân tích thi t k h th ng thông tin
Thi t k Conceptual Data model (CDM) b ng s đ th c th k t h p
Phát sinh Physical Data Model (PDM) t ng ng trên m t DBMS đ c ch n.
Phát sinh k ch b n t o CSDL trên m t DBMS đích.
Phát sinh ràng bu t toàn v n tham chi u (referential integrity triggers) n u chúng đ c h tr b i CSDL đích.
Cho phép hi u ch nh và in các model
Phát sinh ng c l i các Database và các application đang t n t i.
nh nghiã các thu c tính m r ng có các đ i t ng PDM. III.1.5 SQL Server
Ph n m m c a hãng IBM sáng l p kho ng đ u nh ng n m 1970 (SEQUEL: Structure English QUEry Language)
Sau ngôn ng Sequel đ c vi t ng n l i thành SQL(Structure Query Language)
V i r t nhi u phiên b n c a SQL Server: 1986, 1992, 1999, 2000,2005, 2008, 2011(Beta).
SQL Server là h qu n tr CSDL Client/Server:
Thêm, s a, xóa thông tin l u trong các l c đ
H tr các tính n ng b o m t, sao l u ph c h i, c p quy n truy nh p III.1.6 DevExpress 12.1
DevExpress là m t Framework đ c vi t cho n n t ng .NET
Framework. Nó cung c p các control và công ngh đ ph c v cho quá trình phát tri n ph n m m. Thành ph n c a DevExpress g m:
WinForms Controls: Cung c p các control cho WinForms.
ASP.NET Controls: Cung c p các control cho WebForms.
WPF Controls: Cung c p các control cho WPF.
Silverlight Controls: Cung c p các control cho Silverlight.
XtraCharts: Control cung c p các lo i bi u đ .
XtraReports: Cung c p các control t o báo cáo.
XPO: Cung c p môi tr ng làm vi c v i database.
XAF: M t công ngh m i giúp vi c phát tri n ph n m m m t cách nhanh chóng.
DevExpress là 1 component library h tr giao di n cho .NET Framework c c m nh, h tr C#, VB, ASP.NET, WPF, Silver Light.
DevExpress v i giao di n thân thi n, h tr đ c l c trong tìm ki m nâng cao, hi n th hình nh. Ph n tr giúp c a DevExpress c c k t t v i demo và tutorial đ y đ .
Trong khóa lu n này, DevExpress đ c s d ng v i các công c ch y u là Ribbon Form, GridControl, LookAndFeel, SkinManager,...
III.2 Xây d ng h th ng WinForm:
III.2.1 Thi t k winform theo mô hình 3 l p a) Ki n trúc, đ c đi m c a mô hình 3 l p
Mô hình 3 l p đ c c u thành t : Presentation Layers (l p trình di n), Business Layers (l p nghi p v ), và Data Layers (l p d li u). Các l p s giao ti p v i nhau thông qua các d ch v (services) mà m i l p cung c p đ t o nên ng d ng. L p này không c n bi t bên trong l p kia s ho t đ ng th nào mà ch c n bi t l p kia cung c p các d ch v gì cho mình và s d ng d ch v .
Hình III.2.1.1 : T ch c Mô hình 3 l p
Presentation Layers
L p này làm nhi m v giao ti p v i ng i dùng cu i đ thu th p d li u và hi n th k t qu /d li u thông qua các thành ph n trong giao di n ng i s d ng. L p này s d ng các d ch v do l p Business Logic cung c p.
Trong .NET thì có th s d ng winform, ASP.NET ho c Mobile Form
đ th c hi n l p này.
L p này có các 2 thành ph n chính là User Interface Componets và User Interface Process Components.
UI Components: là nh ng ph n t ch u trách nhi m thu th p và hi n th thông tin cho ng i dùng cu i. Trong ASP.NET thì nh ng thành ph n này có th là các TextBox, các Button, DataGrid…
UI Process Components: là thành ph n ch u trách nhi m qu n lý các qui trình chuy n đ i gi a các UI Components. Ví d ch u trách nhi m qu n lý các
màn hình nh p d li u trong m t lo t các thao tác đnh tr c nh các b c trong m t Wizard…
L p này không nên s d ng tr c ti p các d ch v c a l p Data mà nên s d ng thông qua các d ch v c a l p Business Logic.
Business Logic Layer
L p này th c hi n các nghi p v chính c a h th ng, s d ng các d ch v do l p Data Access cung c p, và cung c p các d ch v cho l p Presentation. L p này c ng có th s d ng các d ch v c a các nhà cung c p th 3 đ th c hi n công vi c c a mình.
Trong l p này có các thành ph n chính là Business Components, Business Entities và Service Interface.
Service Interface: là giao di n l p trình mà l p này cung c p cho l pPresentation s d ng. L p Presentation ch c n bi t các d ch v thông qua giao di n này mà không c n ph i quan tâm đ n bên trong l p này đ c hi n th c nh th nào.
Business Entities: là nh ng th c th mô t nh ng đ i t ng thông tin mà h th ng x lý. Các Business Entities này c ng đ c dùng đ trao đ i thông tin gi a l p Presentation và l p Data Layers.
Business Components: là nh ng thành ph n chính th c hi n các d ch v mà Service Interface cung c p, ch u trách nhi m ki m tra các ràng bu c logic (constraints), các qui t c nghi p v (Business Rules), s d ng các d ch v bên ngoài khác đ th c hi n các yêu c u c a ng d ng.
Data Layers
L p này th c hi n các nghi p v liên quan đ n l u tr và truy xu t d li u c a ng d ng. Th ng l p này s s d ng các d ch v c a các h qu n tr c s d li u nh SQL Server, Oracle,… đ th c hi n nhi m v c a mình. Trong l p này có các thành ph n chính là Data Access Logic, Data Sources, Servive Agents)
Data Access Logic Components (DAL) là thành ph n chính ch u trách nhi m l u tr vào và truy xu t d li u t các ngu n d li u – Data Sources nh
RDMBS, XML, File systems…. Trong .NET Các DAL này th ng đ c hi n th c b ng cách s d ng th vi n ADO.NET đ giao ti p v i các h c s d li u ho c s d ng các O/R Mapping Frameworks đ th c hi n vi c ánh x các
đ i t ng trong b nh thành d li u l u tr trong CSDL.
Service Agents: là nh ng thành ph n tr giúp vi c truy xu t các d ch v bên ngoài m t cách d dàng và đ n gi n nh truy xu t các d ch v n i t i. b) Ý ngh a c a vi c ng d ng mô hình 3 l p
Khi m i ti p xúc v i Winform và ADO.NET, vi c l p trình tr nên ph c t p khi project ngày càng l n và ph c t p. Vì th đ qu n lý các thành ph n c a h th ng c ng nh b o v đ không b nh h ng b i các thay đ i, chúng ta s nhóm các thành ph n có cùng ch c n ng l i v i nhau và phân chia trách nhi m cho t ng nhóm đ công vi c không b ch ng chéo và nh h ng l n nhau.
các công vi c c a t ng l p là đ c l p v i nhau. Vi c thay đ i m t l p không làm thay đ i các l p còn l i, thu n ti n h n cho quá trình phát tri n và b o trì ph n m m.
Cách làm thông th ng khi xây d ng winform là m i vi c đ u đ c đ y vào trong 1 form và x lý tr c ti p trong form đó. Tuy nhiên, khi có s thay