Trong vòng 15 năm đầu, có rất nhiều chuyên gia Tin Học và công ty tạo các chương trình thông dịch Interpreters và biên dịch Compilers cho ngôn ngữ làm BASIC trở nên rất phổ thông.. Visua
Trang 1TRƯỜNG ĐẠI HỌC KINH DOANH VÀ CÔNG NGHỆ HÀ NỘI
KHOA CÔNG NGHỆ THÔNG TIN
BÁO CÁO ĐỒ ÁN VISUAL BASIC
Quản Lý Cửa Hàng Máy Tính (VB.net)
Sinh viên thực hiện: ………
Mã sinh viên: ………
Lớp: ………
Hà Nội
Trang 2Mục Lục Phần 1: Tổng quan về VB và lí do chọn đề tài
1.1Sơ lược về lịch sử của VB.NET
1.2 Sơ lược về Visual Basic.NET
1.3Sơ lược về NET
1.3.1 .NET Servers
1.3.2 .NET Framework
Phần 2: Thiết kế phần mềm
2.1 Thiết Kế CSDL
2.2 Thiết Kế Giao Diện
2.3 Thiết Kế Chức Năng
1
Trang 3Phần I Tổng quan về VB.net và lý do chon đề tài quản lý cửa hàng máy tính
1.1 Sơ lược về lịch sử của VB.NET
Ngôn ngữ BASIC (Beginner's All Purpose Symbolic Instruction Code) đã có từ năm 1964 BASIC rất dễ học và dễ dùng Trong vòng 15 năm đầu, có rất nhiều chuyên gia Tin Học và công
ty tạo các chương trình thông dịch (Interpreters) và biên dịch (Compilers) cho ngôn ngữ làm BASIC trở nên rất phổ thông
Năm 1975, Microsft tung ra thị trường sản phẩm đầu tay Microsoft BASIC và tiếp đó Quick BASIC (còn gọi là QBASIC) thành công rực rỡ
Quick BASIC phát triển trong nền Windows nhưng vẫn khó khăn khi tạo giao diện kiểu Windows Sau đó nhiều năm, Microsoft bắt đầu tung ra 1 sản phẩm mới cho phép ta kết hợp ngôn ngữ dễ học BASIC và môi trường phát triển lập trình với giao diện bằng hình ảnh (Graphic User Interface - GUI) trong Windows Đó là Visual Basic Version 1.0
Sự chào đời của Visual Basic Version 1.0 vào năm 1991 thật sự thay đổi bộ mặt lập trình trong Công Nghệ Tin Học
Trước đó, ta không có 1 giao diện bằng hình ảnh (GUI) với một IDE (Integrated Development Environment) giúp các chuyên gia lập trình tập trung công sức và thì gìờ vào các khó khăn liên
hệ đến doanh nghiệp của mình Mỗi người phải tự thiết kế giao diện qua thư viện có sẵn Windows API (Application Programming Interface) trong nền Windows Điều này tạo ra những trở ngại không cần thiết làm phức tạp việc lập trình
Visual Basic giúp ta bỏ qua những hệ lụy đó, chuyên gia lập trình có thể tự vẽ cho mình giao diện cần thiết trong ứng dụng (application) 1 cách dễ dàng và như vậy, tập trung nổ lực giải đáp các vần đề cần giải quyết trong doanh nghiệp hay kỹ thuật
2
Trang 4Ngoài ra, còn nhiều công ty phụ phát triển thêm các khuôn mẫu (modules), công cụ (tools, controls) hay ứng dụng (application) phụ giúp dưới hình thức VBX cộng thêm vào giao diện chính càng lúc càng thêm phong phú
Khi Visual Basic phiên bản 3.0 được giới thiệu, thế giới lập trình lại thay đổi lần nữa Kỳ này, ta
có thể thiết kế các ứng dụng (application) liên hệ đến Cơ Sở Dữ Liệu (Database) trực tiếp tác động (interact) đến người dùng qua DAO (Data Access Object) Ứng dụng này thưòng gọi là ứng dụng tiền diện (front-end application) hay trực diện
Phiên bản 4.0 và 5.0 mở rộng khả năng VB nhắm đến Hệ Điều Hành Windows 95
Phiên bản 6.0 cung ứng 1 phương pháp mới nối với Cơ Sở Dữ Liệu (Database) qua sự kết hợp của ADO (Active Data Object) ADO còn giúp các chuyên gia phát triển mạng nối với Cơ Sở
Dữ Liệu (Database) khi dùng Active Server Pages (ASP)
Lưu ý ở đây, tất cả các khái niệm và công dụng của Modules, Tools, Controls, DAO, ADO hay ASP sẽ được từ từ trình bày trong các bài học kế
Tuy nhiên, VB phiên bản 6.0 (VB6) không cung ứng tất cả các đặc trưng của kiểu mẫu ngôn ngữ lập trình khuynh hướng đối tượng (Object Oriented Language - OOL) như các ngôn ngữ C++, Java
Thay vì cải thiện hay vá víu thêm thắc vào VB phiên bản 6.0, Microsoft đã xoá bỏ tất cả làm lại
từ đầu các ngôn ngữ lập trình mới theo kiểu OOL rất hùng mạnh cho khuôn nền NET Framework Đó là các ngôn ngữ lập trình Visual Basic.NET và C# (gọi là C Sharp) Sau đó, nhiều ngôn ngữ lập trình khác cũng thay đổi theo tỷ như smalltalk.NET, COBOL.NET, làm Công Nghệ Tin Học trở nên phong phú hơn, đa dạng hơn
Tất cả những thay đổi này nhằm đáp ứng kịp thời sự đòi hỏi và nhu cầu phát triển cấp bách trong kỹ nghệ hiện nay
1.2 Sơ lược về Visual Basic.NET
Visual Basic.NET (VB.NET) là ngôn ngữ lập trình khuynh hướng đối tượng (Object Oriented
3
Trang 5Programming Language) do Microsoft thiết kế lại từ con số không Visual Basic.NET (VB.NET) không kế thừa VB6 hay bổ sung, phát triển từ VB6 mà là một ngôn ngữ lập trình hoàn toàn mới trên nền Microsoft 's NET Framework Do đó, nó cũng không phải là VB phiên bản 7 Thật sự, đây là ngôn ngữ lập trình mới và rất lợi hại, không những lập nền tảng vững chắc theo kiểu mẫu đối tượng như các ngôn ngữ lập trình hùng mạnh khác đã vang danh C++, Java mà còn dễ học, dễ phát triển và còn tạo mọi cơ hội hoàn hảo để giúp ta giải đáp những vấn
đề khúc mắc khi lập trình Hơn nữa, dù không khó khăn gì khi cần tham khảo, học hỏi hay đào sâu những gì xảy ra bên trong hậu trường OS, Visual Basic.NET (VB.NET) giúp ta đối phó với các phức tạp khi lập trình trên nền Windows và do đó, ta chỉ tập trung công sức vào các vấn
đề liên quan đến dự án, công việc hay doanh nghiệp mà thôi
Trong khóa học này, các bạn sẽ bắt đầu làm quen với kiểu lập trình dùng Visual Basic.NET (VB.NET) và dĩ nhiên, các khái niệm và thành phần cơ bản của NET Framework
Nếu ta để ý tên của Visual Basic.NET (VB.NET), ta thấy ngay ngôn ngữ lập trình này chuyên trị tạo ứng dụng (application) dùng trong mạng, liên mạng hay trong Internet Tuy nhiên, khi học bất cứ một ngôn ngữ lập trình mới nào, ta cũng cần 'tập đi trước khi tập chạy' Do đó, ta sẽ tập trung vào việc lập trình các ứng dụng (applications) trên nền Windows và đó cũng là mục tiêu chính yếu của khóa học cơ bản Visual Basic.NET
1.3 Sơ lược về NET
.NET là tầng trung gian giữa các ứng dụng (applications) và hệ điều hành (OS) Tầng NET cung cấp mọi dịch vụ cơ bản giúp ta tạo các công dụng mà ứng dụng (application) đòi hỏi, giống như hệ điều hành cung cấp các dịch vụ cơ bản cho ứng dụng (application), tỷ như: đọc hay viết các tập tin (files) vào dĩa cứng (hard drive), Tầng này bao gồm 1 bộ các ứng dụng (application) và hệ điều hành gọi là NET Servers Như vậy, NET gần như là một bộ sưu tập (collection) các nhu liệu và khái niệm kết hợp trộn lẫn nhau làm việc nhằm tạo giải đáp các vấn
đề liên quan đến thương nghiệp của ta Trong đó:
* Tập hợp các đối tượng (objects) được gọi là NET Framework và
* Tập hợp các dịch vụ yểm trợ mọi ngôn ngữ lập trình NET gọi là Common Laguage Runtime (CLR)
Hãy quan sát thành phần cơ bản của NET:
4
Trang 6.NET Framework
.NET Servers
.NET Devices
Hardware Components
1.3.1 NET Servers
Mục tiêu chính của NET là giúp ta giảm thiểu tối đa công việc thiết kế hệ thống tin học phân tán (distributed system) Đa số công việc lập trình phức tạp đòi hỏi đều được thực hiện ở hậu phương (back end) trong các máy cung cấp dịch vụ (servers) Microsoft đã đáp ứng với bộ sưu tập '.NET Enterprise Servers', bộ này chuyên trị và yểm trợ mọi đặc tính (features) hậu phương cần có cho một hệ thống tin học phân tán (distributed system)
Bộ sưu tập '.NET Enterprise Servers' bao gồm:
* Server Operationg Systems: MS Windows Server, Advanced Server và Data Center Server
* Clustering và Load Balancing Systems: MS Application Center, MS Cluster Server
* Database System: MS SQL Server (SQL đọc là sư cô, à không, 'si cồ')
* E-Mail System: MS Exchange Server
* Data-transformation engine trên cơ sở XML: MS Biz Talk Server
* Accessing Legacy Systems: Host Integration Server
Tất cả các máy server này cung cấp mọi dịch vụ cần thiết cho các ứng dụng (application) về .NET và là nền tảng xây dựng hệ thống Tin Học cho mọi dự án lập trình
1.3.2 NET Framework
Đối với Visual Basic.NET (VB.NET), tất cả mọi thứ đều thay đổi tận gốc rễ Một trong những thành phần quan trọng của NET là NET Framework Đây là nền tảng cho mọi công cụ phát triển các ứng dụng (application) NET
.NET Framework bao gồm:
* Môi trường vận hành nền (Base Runtime Environment)
5
Trang 7* Bộ sưu tập nền các loại đối tượng (a set of foundation classes)
Môi trường vận hành nền (Base Runtime Environment) hoạt động giống như hệ điều hành cung cấp các dịch vụ trung gian giữa ứng dụng (application) và các thành phần phức tạp của hệ thống Bộ sưu tập nền các loại đối tượng (a set of foundation classes) bao gồm 1 số lớn các công dụng đã soạn và kiểm tra trước, tỷ như: giao lưu với hệ thống tập tin (file system access) hay ngay cả các quy ước về mạng (Internet protocols), nhằm giảm thiểu gánh nặng lập trình cho các chuyên gia Tin Học Do đó, việc tìm hiểu NET Framework giúp ta lập trình dễ dàng hơn vì hầu như mọi công dụng đều đã được yểm trợ
Ta xem NET Framework như là một tầng công dụng trừu tượng cung cấp dịch vụ trên hệ điều hành (nhìn dưới khía cạnh cung cấp dịch vụ):
User Applications
.NET Framework
Hệ điều hành (OS)
Device Drivers
Harware Components (Cương liệu)
Để mọi ngôn ngữ lập trình sử dụng được các dịch vụ cung cấp bởi NET Framework, Microsoft tạo ra 1 tiêu chuẩn chung cho ngôn ngữ lập trình gọi là Common Language Specifications (CLS) Tiêu chuẩn này giúp các chương trình biên dịch (compilers) làm việc hữu hiệu Microsoft sáng chế ra Visual Basic.NET (VB.NET), Visual C++.NET và C# (đọc là C Sharp) cho nền NET Framework và cũng không quên phổ biến rộng rãi CLS trong Công Nghệ Tin Học giúp các ngôn ngữ lập trình khác làm việc trong nền NET, tỷ như: COBOL.NET,
Smalltalk.NET,
Lý do chọn đề tài quản lý cửa hàng máy tính
Vì đề tài này rất thân thuộc với đời sống hiện tại
6
Trang 8Phần 2: Thiết Kế Phần Mềm
2.1 Thiết kế CSDL
- Cơ sở dữ liệu được thiết kế bằng MS SQL Server Management để thuân tiện cho việc quản lý, thêm sửa dữ liệu với vb.net
- CSDL gồm 6 bảng bao gồm:
1 Bảng DangNhap để đăng nhập vào phần mềm :
Mã Đăng Nhập : MaDN
Mật Khẩu: MatKhau
2 Bảng QL_NhanVien để quản lý nhân viên cửa hàng:
Mã Nhân Viên: MaNV
Tên Nhân Viên: TenNV
Giới Tính: GioiTinh
Địa Chỉ: DiaChi
Số điện thoại: SDT
Lương: Luong
3 Bảng QL_KhachHang
Mã Khách Hàng: MaKH
Mã Hàng: MaHang
Tên Khách Hàng: TenKhachHang
SĐT: SDT
Giới Tính: GioiTinh
Địa Chỉ: DiaChi
4 Bảng QL_HoaDonChiTiet
Mã Hóa Đơn: MaHD
Mã Khách Hàng: MaKH
Mã Hàng: MaHang
Tên Hàng: TenHang
Số Lượng : SoLuong
Đơn Giá: DonGia
7
Trang 9Tổng Tiền: TongTien
5 Bảng QL_HangHoa
Mã Hàng: MaHang
Tên Hàng: TenHang
Số Lượng Nhập: SoLuongNhap
Đơn Giá: DonGia
Xuất Sứ: XuatSu
6 Relationship
8
Trang 102.2 Thiết Kế Giao Diện và Giao Diện Demo
Gồm 6 Form
1 Form Đăng Nhập
2 Form Menu
9
Trang 113 Form Quản Lý Khách Hang
10
Trang 124 Form Quản Lý Hàng Hóa
11
Trang 135 Form Quản Lý Bán Hàng
12
Trang 146 Form Quản Lý Nhân Viên
13
Trang 162.3 Thiết Kế Chức Năng
Mỗi Form đều được thiết kế các chức năng Thêm,Sửa,Xóa,Tìm kiếm, Thoát form(các form thực hiện như nhau)
1 Khai Báo
Private _DBAccess As New DataBaseAccess
Private _isLoading As Boolean = False
Private _isEdit As Boolean = False
Public Sub New(isEdit As Boolean)
InitializeComponent()
_isEdit = isEdit
End Sub
2 Chức Năng Thêm
- Code Hàm
- Private Function ThemKH() As Boolean
- Dim sqlQuery As String = "INSERT INTO QL_KhachHang (MaKH, TenKhachHang, SDT, GioiTinh, DiaChi)"
- sqlQuery += String.Format("VALUES ('{0}','{1}','{2}','{3}','{4}')", _
- txtmakh.Text, txttenkh.Text, txtsdt.Text, txtgioitinh.Text, txtdiachi.Text)
- Return _DBAccess.ExecuteNoneQuery(sqlQuery)
End Function
- Code Tác vụ click
- Private Sub cmdthem_Click(sender As Object, e As EventArgs) Handles cmdthem.Click
- Dim frm As New frmQLKhachHang(False)
If isEmpty() Then
- MessageBox.Show("nhap gia tri trc khi ghi vao database", "Error", MessageBoxButtons.OK)
- Else
- 'kiem tra truong du lieu khi thuc hien them/sua'
- If _isEdit Then ' neu la edit thi goi ham update '
- If UpdateKH() Then
- MessageBox.Show("s a d li u thành công", "Thong Tin", ử ữ ệ MessageBoxButtons.OK)
- Me.DialogResult = Windows.Forms.DialogResult.OK
- Else
- MessageBox.Show("Sua Bi loi ", "Error", MessageBoxButtons.OK)
- Me.DialogResult = Windows.Forms.DialogResult.No
- End If
- Else
- If ThemKH() Then ' neu la them thi goi ham insert '
- MessageBox.Show("D li u đã đ ữ ệ ượ c thêm thành công", "Thông Báo", MessageBoxButtons.OK)
- Me.DialogResult = Windows.Forms.DialogResult.Yes
Else
- MessageBox.Show("L i Thêm D li u", "Error", ỗ ữ ệ
MessageBoxButtons.OK)
- Me.DialogResult = Windows.Forms.DialogResult.No
- Me.Close()
- End If
15
Trang 17End If
- If frm.DialogResult = Windows.Forms.DialogResult.OK Then
- Me.LoadDataOnGridView()
- End If
- End Sub
3 Chức năng tìm kiếm theo combobox ( chỉ cần nhập thứ cần tìm ko cần click)
Private Sub TimKiem1(value As String, ByVal value2 As String)
Dim sqlQuery As String = _
String.Format("SELECT * FROM dbo.QL_NhanVIen")
If Me.cmbtimkiem.SelectedIndex = 0 Then 'Tim theo Student ID
sqlQuery += String.Format(" WHERE MaNV LIKE '{0}%'", value2)
ElseIf Me.cmbtimkiem.SelectedIndex = 1 Then 'Tim theo Student Name
sqlQuery += String.Format(" WHERE TenNV LIKE '{0}%'", value2)
ElseIf Me.cmbtimkiem.SelectedIndex = 2 Then
sqlQuery += String.Format(" WHERE GioiTinh LIKE '{0}%'", value2)
End If
Dim dTable As DataTable = _DBAccess.GetDataTable(sqlQuery)
Me.datavnv.DataSource = dTable 'Load Lai dl vao bang
With Me.datavnv
Columns(0).HeaderText = "Mã Nhân Viên"
Columns(1).HeaderText = "Tên Nhân Viên"
Columns(2).HeaderText = "Gi i Tính" ớ
Columns(3).HeaderText = "Đ a Ch " ị ỉ
Columns(4).HeaderText = "S Đi n Tho i" ố ệ ạ
Columns(5).HeaderText = "L ươ ng"
End With
End Sub
4 Chức năng sửa
- Code Hàm
Private Function UpdateKH() As Boolean
Dim sqlQuery As String = String.Format("UPDATE QL_KhachHang Set
TenKhachHang='{0}', SDT='{1}', GioiTinh='{2}',DiaChi='{3}' Where MaKH='{4}'", Me.txttenkh.Text, Me.txtsdt.Text, Me.txtgioitinh.Text, Me.txtdiachi.Text,
Me.txtmakh.Text)
Return _DBAccess.ExecuteNoneQuery(sqlQuery)
End Function
- code đầy đủ tác vụ click
Private Sub cmdsua_Click(sender As Object, e As EventArgs) Handles cmdsua.Click
Dim frm As New frmQLKhachHang(True)
frm.txtmakh.ReadOnly = True 'Chi cho doc, truong nay khong cho phep thay doi khi sua du lieu
With Me.datavqlkh
frm.txtmakh.Text = Rows(.CurrentCell.RowIndex).Cells("MaKH").Value
frm.txttenkh.Text = Rows(.CurrentCell.RowIndex).Cells("TenKhachHang").Value frm.txtsdt.Text = Rows(.CurrentCell.RowIndex).Cells("SDT").Value
frm.txtgioitinh.Text = Rows(.CurrentCell.RowIndex).Cells("GioiTinh").Value frm.txtdiachi.Text = Rows(.CurrentCell.RowIndex).Cells("DiaChi").Value End With
frm.ShowDialog()
If frm.DialogResult = Windows.Forms.DialogResult.OK Then 'Sua du lieu thanh cong thi load lai du lieu vao gridview
Me.LoadDataOnGridView()
End If
End Sub
16