You are on page 1of 67

Báo cáo đồ án tốt nghiệp chuyên ngành Tin học Mỏ

LỜI CẢM ƠN

Em xin chân thành cảm ơn quý thầy, cô trong khoa CNTT, Bộ môn Tin học Mỏ
trường Đại Học Mỏ-Địa chất đã tận tình giảng dạy, truyền đạt những kiến thức quý
báu và tạo điều kiện cho em thực hiện đồ án này. Trong quá trình làm đồ án tốt
nghiệp, cũng như là trong quá trình làm bài báo cáo, khó tránh khỏi sai sót, rất
mong nhận được những ý kiến đóng góp của thầy, cô và các bạn để đồ án tốt nghiệp
của em ngày một hoàn thiện hơn.
Dưới sự hướng dẫn và chỉ đạo tận tình của thầy giáo Đặng Văn Nam đã giúp em
hoàn thành đồ án tốt nghiệp này. Trong thời gian làm việc với thầy, em không
ngừng tiếp thu thêm nhiều kiến thức bổ ích mà còn học tập được tinh thần làm việc,
thái độ nghiên cứu khoa học nghiêm túc, hiệu quả, đây là những điều rất cần thiết
cho em trong quá trình học tập và công tác sau này. Em xin chân thành cảm ơn thầy
đã chỉ bảo tận tình giúp em hoàn thành đồ án tốt nghiệp trong thời gian qua.
Xin chân thành cám ơn sự giúp đỡ của anh Đặng Văn Bắc và gia đình đã hỗ trợ,
cung cấp tài liệu liên quan và tạo điều kiện để em có thể tìm hiểu sâu sát nghiệp vụ
bán hàng nói riêng và bài toán quản lý bán hàng nói chung.
Qua đây xin chân thành cám ơn sự động viên của gia đình cũng như sự giúp đỡ tận
tình của tất cả các bạn đã tạo điều kiện thuận lợi cho tôi trong cuộc sống cũng như
trong học tập.
Sinh viên thực hiện
Vũ Văn Lịch

Sinh viên: Vũ Văn Lịch 1 Tin học Mỏ K54


Báo cáo đồ án tốt nghiệp chuyên ngành Tin học Mỏ

MỤC LỤC

Sinh viên: Vũ Văn Lịch 2 Tin học Mỏ K54


Báo cáo đồ án tốt nghiệp chuyên ngành Tin học Mỏ

DANH MỤC HÌNH ẢNH

Sinh viên: Vũ Văn Lịch 3 Tin học Mỏ K54


Báo cáo đồ án tốt nghiệp chuyên ngành Tin học Mỏ

DANH MỤC BẢNG BIỂU

Sinh viên: Vũ Văn Lịch 4 Tin học Mỏ K54


Báo cáo đồ án tốt nghiệp chuyên ngành Tin học Mỏ

LỜI MỞ ĐẦU

Ra đời vào những năm 50 của thế kỷ XX máy tính và công nghệ đã có những bước
phát triển vượt bậc về cả chất lượng và số lượng. Nó đã trở thành một nhân tố
không thể thiếu trong đời sống hiện đại của nhân loại trong thời đại hiện nay- thời
đại công nghệ số.
Ngày nay cùng với sự phát triển của khoa học công nghệ, công nghệ thông tin đã
trở thành một phần không thể thiếu trong mọi lĩnh vực hoạt động đời sống của con
người. Đặc biệt tại các nước phát triển thì tin học đã được đưa vào ứng dụng trong
quản lí từ rất lâu và đúng một vai trò quan trọng trong các nghành công nghiệp và
dịch vụ, trong khi tại Việt Nam điều này vẫn còn khá mới mẻ đối với các tổ chức,
doanh nghiệp.
Trước đây, việc quản lí chủ yếu dựa trên giấy tờ sổ sách, thực hiện một cách thủ
công, mất thời gian, thiếu chính xác, gây ảnh hưởng tới việc kinh doanh, sản xuất
thì trong những năm gần đây, với sự bùng nổ công nghệ thông tin, tin học đã và
đang dần thay thế những việc làm thủ công và ngày càng khẳng định vai trò quan
trọng của mình. Với việc phát triển kinh tế như hiện nay, hàng ngày, hàng giờ các
doanh nghiệp luôn phải xử lí một khối lượng dữ liệu khổng lồ, nếu như không áp
dụng một phần mềm quản lí thì sẽ không thể đưa ra được các báo cáo chính xác và
kịp thời để hỗ trợ trong việc đưa ra các quyết định kinh doanh.
Là một sinh viên công nghệ thông tin em hiểu rất rõ vai trò của tin học trong cuộc
sống hiện nay. Đặc biệt là trong lĩnh vực tin học hóa công tác quản lý. Trong đợt
thực tập tốt nghiệp lần này em lựa chọn tìm hiểu về ngôn ngữ lập trình C#, là ngôn
ngữ thông được sử dụng rộng rãi, hỗ trợ xây dựng phần mềm quản lý được dùng
phổ biến ở các cơ quan hiện nay để quản lý các cơ sở dữ liệu, đồng thời nó cũng là
một ngôn ngữ lập trình tiện dụng.
Được sự đồng ý của trường Đại học Mỏ Địa Chất, Khoa Công nghệ thông tin, Bộ
môn Tin học mỏ, cùng sự ủng hộ, động viên và giúp đỡ tận tình của thầy giáo Đặng
Văn Nam, em đã chọn đề tài: “Xây dựng chương trình quản lý bán hàng cho cửa
hàng gia dụng Xuân Bắc”.
Chương trình này được thiết kế nhằm đáp ứng được các yêu cầu: quản lý nhập
hàng, bán hàng, báo cáo thống kê doanh thu, công nợ, quản lý công nợ…
Ngoài phần lời cảm ơn, mở đầu, kết luận và phụ lục nội dung báo cáo của em được
chia làm 4 chương:
Chương 1: GIỚI THIỆU CHUNG VỀ ĐỀ TÀI.
Chương 2: PHÂN TÍCH THIẾT KẾ HỆ THỐNG VỀ XỬ LÝ VÀ DỮ LIỆU.

Sinh viên: Vũ Văn Lịch 5 Tin học Mỏ K54


Báo cáo đồ án tốt nghiệp chuyên ngành Tin học Mỏ

Chương 3: MÔI TRƯỜNG PHÁT TRIỂN HỆ THỐNG.


Chương 4: THIẾT KẾ VÀ XÂY DỰNG CHƯƠNG TRÌNH.
Trong quá trình làm đồ án tốt nghiệp, cũng như là trong quá trình làm bài báo cáo,
khó tránh khỏi sai sót, rất mong nhận được những ý kiến đóng góp của thầy, cô và
các bạn để đồ án tốt nghiệp của em ngày một hoàn thiện hơn.
Em xin chân thành cảm ơn !
Sinh viên: Vũ Văn Lịch

Sinh viên: Vũ Văn Lịch 6 Tin học Mỏ K54


Báo cáo đồ án tốt nghiệp chuyên ngành Tin học Mỏ

GIỚI THIỆU CHUNG VỀ ĐỀ TÀI (Chương 1)

Tổng quan về cửa hàng gia dụng Xuân Bắc. (1.1)

Tên cửa hàng: Cửa hàng gia dụng Xuân Bắc.


Trụ sở chính: Km3 - Đường 16 - Xuân Kỳ - Đông Xuân - Sóc Sơn - Hà Nội.
Điện thoại: 043.884 2378 – DĐ: 098 447 2651 – 01657848445.
Cửa hàng gia dụng Xuân Bắc tại Km3 - Đường 16 - Xuân Kỳ - Đông Xuân - Sóc
Sơn - Hà Nội. Cửa hàng chuyên mua bán đồ gia dụng nhà bếp của các nhà cung cấp
trong và ngoài nước. Ngoài ra cửa hàng còn cung cấp các sản phẩm điện, điện tử
phục vụ đời sống sinh hoạt.
Cửa hàng gia dụng Xuân Bắc là một cửa hàng chuyên bán tất cả các loại mặt hàng
đồ gia dụng. Hoạt động độc lập không chịu sự quản lý của công ty nào nhưng phải
dưới quyền chịu sự quản lý của nhà nước pháp luật. Chấp hành đầy đủ các loại thuế
do nhà nước qui định.
Bài toán quản lý bán hàng. (1.2)
Cửa hàng là một trung tâm bán hàng. Nguồn hàng đa dạng có thể do nhà cung cấp,
các nhà sản xuất trong và ngoài nước. Đối tượng bán hàng là người tiêu dùng xung
quanh khu vực, cửa hàng nhỏ…
Khách hàng tự do lựa chọn và trao đổi nếu đồng ý khi khách hàng đã ưng ý loại
mặt hàng đó sẽ đề nghị với chủ cửa hàng hai bên cùng thỏa thuận làm thủ tục xong
và khách hàng đến bàn thanh toán tiền cho chủ cửa hàng.
Trong quá trình thanh toán chủ cửa hàng phải viết hóa đơn có ghi rõ họ tên, địa chỉ,
điện thoại… đồng thời phải ghi rõ thời hạn bảo hành cho từng loại sản phẩm (nếu
có).
Trong khi thanh toán tiền cửa hàng còn xem xét có thể cho khách hàng nợ lại
không. Nếu cho nợ lại thì số tiền sẽ được lưu lại, có lãi xuất không nếu có tính lãi
xuất là bao nhiêu hay tính lãi xuất theo ngân hàng qui định.
Các thủ tục đó xong cửa hàng có nhiệm vụ lắp ráp cho khách hàng và hướng dẫn
cách sử dụng cho khách hàng về ưu nhược điểm của sản phẩm.
Sau một tuần, một tháng chủ cửa hàng sẽ dựa vào các sổ sách, hóa dơn chứng từ(sổ
nhập hàng, nhật ký xuất bán hàng, phiếu nhập hàng, hóa đơn xuất, nhập…) để tổng
hợp lượng hàng đã xuất bán, lượng hàng tồn kho, mặt hàng nào sắp hết, cần phải
nhập những mặt hàng bán chạy nhất tháng và thống kê sổ nợ của khách nếu có. Để
thống kê số nợ của khách, chủ cửa hàng dựa vào các hóa đơn bán hàng để tổng hợp,
rồi yêu cầu khách nợ thanh toán.

Sinh viên: Vũ Văn Lịch 7 Tin học Mỏ K54


Báo cáo đồ án tốt nghiệp chuyên ngành Tin học Mỏ

Tính cấp thiết của đề tài. (1.3)


Như ở trên đã trình bày, việc quản lý bán hàng tại cửa hàng Xuân Bắc chủ yếu
thông qua sổ sách và giấy tờ, thực hiện một cách thủ công, mất thời gian và thiếu
chính xác, gây ảnh hưởng tới việc kinh doanh. Quá trình bán hàng hiện tại dựa trên
nhớ giá sản phẩm nhập vào, gây nhiều sai sót cũng như khó khăn. Qua khảo sát em
nhận thấy một số vấn đề như sau:
Khi khách hàng đến mua hàng thì người chủ cửa hàng phải kiểm tra xem mặt hàng
đó còn hay không và kiểm tra giá cả mặt hàng đó dựa trên trí nhớ,phiếu nhập hàng...
Việc tra cứu tìm kiếm thông tin về sản phẩm còn mất rất nhiều thời gian, công sức,
chỉ có thể xem qua các tờ logo quảng cáo của nhà cung cấp, hoặc phiếu nhập hàng
nhưng lại không đầy đủ và chính xác.
Công tác quản lý cửa hàng máy tính chỉ bằng phương pháp thủ công, việc triết xuất
thông tin, cập nhập hàng hóa, việc ghi chép lưu trữ chỉ trên sổ sách, không có những
trang web quảng cáo cho cửa hàng nên việc bán hàng trở nên kém hiệu quả, tốn
công sức cho việc thống kê, báo cáo tổng hợp, ngoài ra còn có thể dẫn đến thiếu
thông tin, thừa thông tin, sai lệch giữa các thông tin.
Trong quá trình kinh doanh chủ cửa hàng hầu như không thống kê được lợi nhuận
cũng như hàng tồn hàng hết của cửa hàng.
Đó là những thực tế còn tồn tại trong việc quản lý cửa hàng thủ công hiện nay. Với
sự phát triển của công nghệ hiện nay tại sao ta lại không ứng dụng nó vào trong
thực tế này. Vì vậy yêu cầu đặt ra là cần xây dựng một chương trình quản lý bán
hàng hỗ trợ lưu trữ thông tin, thống kê một cách nhanh chóng và chính xác.
Đây là bài toán thực tế, có tính ứng dụng cao và hiện tại cửa hàng đã trang bị máy
tính. Sau khi chương trình xây dựng xong có thể cài đặt và sử dụng được ngay.
Mục tiêu của đề tài. (1.4)
Mục tiêu của đề tài sau khi hoàn thành cần đạt được là:
Xây dựng được chương trình quản lý bán hàng thực hiện được các công việc sau:
Thực hiện việc quản lý (thêm, sửa, xóa) các danh mục: Hàng hóa; Hóa đơn bán
hàng; Hàng hóa trả lại; Hàng hóa bảo hành một cách nhanh gọn, đơn giản và chính
xác
Quản lý kho hàng.
Quản lý công nợ khách hàng; Hỗ trợ tra cứu lịch sử thanh toán trả nợ của khách
hàng.
Cho phép tìm kiếm thông tin về hàng hoá một cách nhanh nhất đáp ứng nhu cầu của
người sử dụng.

Sinh viên: Vũ Văn Lịch 8 Tin học Mỏ K54


Báo cáo đồ án tốt nghiệp chuyên ngành Tin học Mỏ

Thực hiện các báo cáo - thống kê theo yêu cầu của nghiệp vụ bán hàng chính xác và
nhanh chóng như: Thống kê lượng hàng hoá tồn đọng theo mặt hàng hoặc loại hàng;
Thống kê doanh thu của cửa hàng theo theo gian
Hệ thống giúp phân quyền cho người sử dụng nên mang tính bảo mật. Tránh được
sự xâm nhập phá hoại từ bên ngoài.
Giao diện tiếng việt, trực quan đáp ứng được yêu cầu của một phần mềm ứng dụng
nói chung, chương trình hoạt động tốt, ổn định trên môi trường Windown.
Báo cáo đồ án tốt nghiệp hoàn thành đầy đủ chương, mục và các nội dung liên quan
đúng thời gian quy định và theo yêu cầu trình bày của Bộ môn Tin học Mỏ.
Nội dung nghiên cứu. (1.5)
Để hoàn thành được các mục tiêu như đã đặt ra ở trên, em sẽ tập trung nghiên cứu
vào các nội dung sau:
Khảo sát hiện trạng của bài toán, thu thập tài liệu có liên quan từ cửa hàng xây dựng
bài toán sát với yêu cầu thực tế.
Thu thập dữ liệu thực tế bao gồm các hóa đơn bán hàng, phiếu nhập hàng… phục
vụ việc chạy và kiểm thử hệ thống phần mềm và các bảng dữ liệu khác có liên quan.
Phân tích và thiết kế hệ thống: Xây dựng các sơ đồ phân cấp chức năng, biểu đồ
luồng dữ liệu, biểu đồ thực thể liên kết và thiết kế cơ sở dữ liệu của hệ thống.
Lập trình và chạy kiểm thử: Trên cơ sở kết quả thực hiện các công việc ở trên tiến
hành lập trình phần mềm và chạy các bộ dữ liệu đã thu thập để phát hiện các lỗi
phát sinh và kiểm tra tính đúng đắn của các kết quả tính toán tổng hợp.
Viết báo cáo kết quả thực hiện đề tài.
Cài đặt chạy chương trình tại đơn vị sử dụng.
Phạm vi nghiên cứu. (1.6)
Bài toán quản lý bán hàng là một bài toán rất rộng với nhiều công việc như quản lý
hàng tồn hàng còn, công nợ, hóa đơn bán hàng, quản lý thu chi... do đó để giải
quyết triệt để bài toán thì cần phải có kiến thức chuyên sâu và nhiều thời gian mới
có thể giải quyết được. Do thời gian làm đồ án có hạn và kiến thức còn hạn chế nên
em không thể thực hiện hết được tất cả mọi vấn đề. Do đó, đề tài được giới hạn lại,
quản lý đơn giản theo yêu cầu thực tế của cửa hàng. Các chức năng hạn chế như
sau:
Phần mềm chỉ quản lý bán đồ gia dụng nhà bếp, không quản lý đổi trả ga
Phần mềm không quản lý đơn vị nhập hàng, lịch sử nhập hàng.
Phần mềm không quản lý công nợ với nhà cung cấp.
Phần mềm không thống kê sản phẩm bán chạy...

Sinh viên: Vũ Văn Lịch 9 Tin học Mỏ K54


Báo cáo đồ án tốt nghiệp chuyên ngành Tin học Mỏ

PHÂN TÍCH THIẾT KẾ HỆ THỐNG VỀ XỬ LÝ VÀ DỮ LIỆU (Chương 2)


Phân tích thiết kế hệ thống về xử lý. (2.1)
Các chức năng của hệ thống. (2.1.1)
Như em đã trình bày ở trên, bài toán quản lý bán hàng là một bài toán rất rộng với
nhiều công việc như quản lý hàng tồn hàng còn, công nợ, hóa đơn bán hàng, quản lý
thu chi... vì vậy sẽ mất thời gian và công sức mà có thể sẽ có sai sót. Yêu cầu đặt ra
là cần phải xây dựng được một hệ thống mới có khả năng quản lý bán hàng nhanh
hơn, chính xác hơn, thao tác sử dụng đơn giản, dễ dàng, giao diện thân thiện hơn
với người có trình độ công nghệ thông tin thấp.
Qua quá trình khảo sát và phân tích bài toán, sử dụng phương pháp phân tích từ trên
xuống, Hệ thống phần mềm “Quản lý bán hàng tại cửa hàng gia dụng Xuân Bắc”
bao gồm những chức năng sau:
Chức năng 1: Đăng nhập. (a)
Mục đích: Các chức năng quan trọng của hệ thống được bảo vệ, chỉ có người có
quyền mới được phép sử dụng. Để sử dụng được các chức năng này của hệ thống hệ
thống, yêu cầu người dùng phải có tài khoản đăng nhập. Nếu đăng nhập thành công
sẽ cho phép thao tác với các chức năng này. Tránh đc sự xâm nhập phá hoại từ bên
ngoài cũng như sơ ý của người thiếu trình độ chuyên môn về quản lý bán hàng.
Đầu vào: Tài khoản và mật khẩu quản trị.
Chức năng 2: Đăng xuất.
Mục đích: Thoát khỏi quyền đăng nhập.
Chức năng 3: Đổi mật khẩu.
Mục đích: Thay đổi mật khẩu quyền quản trị khi cần thiết.
Đầu vào: Mật khẩu hiện tại của tài quản quản trị và mật khẩu mới.
Chức năng 4: Thoát.
Mục đích: Thoát khỏi chương trình.
Chức năng 5: Sao lưu cơ sở dữ liệu.
Mục đích: Sao lưu cơ sở dữ liệu hệ thống hiện tại thành một tập tin duy nhất, khi
gặp sự cố có thể khôi phục lại.
Chức năng 6: Phục hồi cơ sở dữ liệu.
Mục đích: Phục hồi lại cơ sở dữ liệu khi cơ sở dữ liệu hiện tại gặp sự cố.
Chức năng 7: Quản lý chi tiết đơn hàng.
Mục đích: Quản lý việc bán lẻ thông qua mã hàng hóa. Hỗ trợ lưu đơn hàng và
thông tin thanh toán đơn hàng tự động.
Đầu vào: Mã sản phẩm, số lượng, đơn giá.
Đầu ra: Hóa đơn thanh toán, thông tin đơn hàng, thông tin khách hàng mua.

Sinh viên: Vũ Văn Lịch 10 Tin học Mỏ K54


Báo cáo đồ án tốt nghiệp chuyên ngành Tin học Mỏ

Chức năng 8: Quản lý bán hàng.


Mục đích: Quản lý thông tin đơn hàng, thông tin khách hàng mua, hỗ trợ tìm kiếm,
xem chi tiết đơn hàng theo yêu cầu hoặc ngày tháng.
Chức năng 9: Quản lý danh mục.
Mục đích: Quản lý thêm sửa xóa nhóm hàng, loại mặt hàng mà cửa hàng hiện đang
kinh doanh.
Chức năng 10: Quản lý công nợ.
Mục đích: Quản lý công nợ khách hàng, hỗ trợ tra cứu lịch sử thanh toán.
Chức năng 11: Quản lý kho hàng.
Mục đích: Quản lý kho hàng của cửa hàng, hỗ trợ tìm kiếm hàng hóa theo nhóm
hàng, theo loại sản phẩm..
Chức năng 12: Nhập hàng.
Mục đích: Nhập hàng hóa vào kho theo mã sản phẩm. Nếu hàng hóa chưa tồn tại
trong kho có thể thêm mới hàng hóa.
Đầu vào: Mã sản phẩm, số lượng sản phẩm nhập vào, giá nhập của sản phẩm.
Thông tin sản phẩm nhập sẽ được lưu trữ vào kho.
Chức năng 13: Nhập hàng tồn đầu kì.
Mục đích: Lúc ban đầu khởi tạo CSDL bán hàng hoặc trong quá trình hoạt động cửa
hàng có thể sẽ kinh doanh mặt hàng mới. Chức năng nhập hàng tồn đầu kì cho phép
người sử dụng thêm mới sản phẩm vào kho của cửa hàng.
Đầu vào: Mã sản phẩm, tên sản phẩm, số lượng, giá nhập…..
Chức năng 14: Trả hàng.
Mục đích: Những hàng hóa lỗi hoặc tồn kho quá lâu chủ cửa hàng sẽ trả lại nhà
cung cấp. Việc trả hàng dựa trên phần mềm rất đơn giản, người sử dụng chỉ cần
cung cấp mã sản phẩm và số lượng trả lại. Việc còn lại phần mềm sẽ tự động lưu trữ
cũng như trừ số lượng trong kho.
Đầu vào: Mã sản phẩm trả lại, số lượng trả lại.
Chức năng 15: Quản lý trả hàng
Mục đích: Lưu trữ thông tin trả lại sản phẩm. Hỗ trợ tìm kiếm danh sách hàng hóa
trả lại theo ngày.
Chức năng 16: Tra cứu sản phẩm.
Mục đích: Trong quá trình bán hàng chủ cửa hàng có thể không nhớ thông tin của
sản phẩm cũng như giá nhập vào, điều này gây khó khăn cho việc bán hàng. Chức
năng trên cho phép nhập vào mã sản phẩm để tra cứu thông tin sản phẩm. Phần
mềm sẽ liệt kê tất cả thông tin của sản phẩm thông qua mã sản phẩm mà người dùng
cung cấp.

Sinh viên: Vũ Văn Lịch 11 Tin học Mỏ K54


Báo cáo đồ án tốt nghiệp chuyên ngành Tin học Mỏ

Đầu vào: Mã sản phẩm.


Chức năng 17: Bảo hành.
Mục đích: Trong quá trình kinh doanh, 1 số sản phẩm khách hàng mua về sử dụng
và bị lỗi do sản phẩm. Khách hàng sẽ đem đến cửa hàng để bảo hành. Chủ cửa hàng
có nhiệm vụ tiếp nhận sản phẩm và lưu thông tin khách hàng. Chức năng trên cho
phép người dùng lưu trữ thông tin sản phẩm bảo hành cũng như thông tin khách
hàng tiện cho việc bảo hành và trả lại sản phẩm cho khách hàng khi bảo hành xong.
Đầu vào: Tên khách hàng, địa chỉ, số điện thoại, mã sản phẩm, ngày bảo hành, lỗi
sản phẩm …
Chức năng 18: Quản lý bảo hành.
Mục đích: Lưu trữ thông tin bảo hành, cho phép người dùng tra cứu thông tin bảo
hành theo ngày tháng hoặc tình trạng bảo hành. Cho phép sửa xóa cập nhật lại thông
tin bảo hành của khách hàng.
Chức năng 19: Báo cáo công nợ khách hàng.
Mục đích: Thống kê công nợ của khách hàng, hỗ trợ xuất ra word, pdf ...
Chức năng 20: Báo cáo hàng tồn.
Mục đích: Trong quá trình kinh doanh việc kiểm tra hàng hóa trong kho vô cùng
cần thiết và quan trọng. Việc tra cứu tìm kiếm hay kiểm kê thủ công mất rất nhiều
thời gian và sai sót không đáng có. Với chức năng trên quá trình kiểm kê kho vô
cùng đơn giản.
Chức năng 21: Báo cáo thống kê hàng hết.
Mục đích: Trong quá trình kinh doanh việc kiểm tra hàng hết hay sắp hết rất quan
trọng. Việc tra cứu tìm kiếm hay kiểm kê thủ công mất rất nhiều thời gian và sai sót
không đáng có.
Chức năng 22: Báo cáo doanh thu theo sản phẩm.
Mục đích: Trong quá trình kinh doanh, doanh thu của cửa hàng là yếu tố quan trọng
nhất cho sự tồn tại và phát triển của cửa hàng. Nếu chủ cửa hàng không nắm bắt
được doanh thu để điều chỉnh hoạt động kinh doanh một cách hợp lý có thể dẫn tới
thua lỗ hoặc phá sản. Với tình hình hiện tại, dựa trên việc quản lý thủ công sẽ rất
khó khăn hoặc cũng có thể không thống kê được doanh thu hàng tháng của cửa
hàng. Với chức năng trên dựa trên dữ liệu cung cấp khi nhập hàng và thông tin các
đơn hàng đã bán, phần mềm dễ dàng đưa ra doanh thu một cách chính xác và nhanh
chóng.
Chức năng 23: Báo cáo doanh thu theo đơn hàng.
Mục đích: Báo cáo doanh thu theo đơn hàng.
Chức năng 24: Báo cáo doanh thu theo loại hàng.

Sinh viên: Vũ Văn Lịch 12 Tin học Mỏ K54


Báo cáo đồ án tốt nghiệp chuyên ngành Tin học Mỏ

Mục đích: Báo cáo doanh thu theo loại hàng.


Chức năng 25: Thông tin phần mềm.
Mục đích: Cung cấp thông tin phần mềm. Thông tin tác giả.
Chức năng 26: Trợ giúp.
Mục đích: Là một file hướng dẫn sử dụng. Giúp người dùng dễ tiếp cận với các
chức năng của chương trình.
Gom nhóm chức năng. (2.1.2)
Trên đây đã liệt kê 26 chức năng của phần mềm, các chức năng được đánh số từ 1
đến 26. Để tiến hành xây dựng các chức năng chính của hệ thống, ta tiến hành gom
các chức năng tương tự và có liên quan đến nhau trong quá trình xử lý thành từng
nhóm. Sau khi đã tìm hiểu và nghiên cứu kỹ từng chức năng, hệ thống được phân ra
thành 7 nhóm chính như sau:
Hệ thống: Nhóm chức năng này sẽ bao gồm các chức năng về đăng nhập, đăng xuất
hệ thống, đổi mật khẩu quản trị, thoát khỏi ứng dụng…
Bán hàng: Nhóm chức năng này tập hợp các chức năng về bán lẻ, quản lý bán hàng,
quản lý danh mục hàng hóa…
Kho hàng: Nhóm chức năng này tập hợp các chức năng về việc lưu trữ hàng hóa,
quản lý việc nhập hàng vào kho, nhập hàng tồn đầu kì, hỗ trợ trả hàng, quản lý trả
hàng …
Tra cứu sản phẩm: Nhóm chức năng này hỗ trợ người dùng tra cứu thông tin sản
phẩm trong kho hàng thông qua mã sản phẩm được cung cấp từ người dùng.
Bảo hành: Nhóm chức năng này bao gồm các chức năng hỗ trợ người dùng trong
việc lưu trữ thông tin bảo hành sản phẩm, tra cứu sản phẩm bảo hành…
Báo cáo: Nhóm chức năng này bao gốm các chức năng hỗ trợ người dùng thống kê
báo cáo doanh thu, hàng tồn, hàng hết…
Trợ giúp: Nhóm chức năng này tập hợp các chức năng hướng dẫn và sử dụng phần
mềm, cũng như giới thiệu về phần mềm, tác giả, bản quyền của phần mềm…
Trong 7 nhóm chức năng của hệ thống ở trên thì ba nhóm chức năng quan trọng
nhất đó là nhóm chức năng bán hàng, nhóm chức năng kho hàng và nhóm chức
năng báo cáo . Trong đó nhóm chức năng bán hàng sẽ tập trung các chức năng trợ
giúp người dùng lưu thông tin bán hàng một cách nhanh chóng và chính xác, nhóm
chức năng kho hàng sẽ tập trung các chức năng liên quan đến quá trình lưu trữ
thông tin sản phẩm trong kho cũng như nhập hàng trả hàng của cửa hàng, còn nhóm
chức năng báo cáo sẽ tập trung các chức năng hỗ trợ người dùng xuất báo cáo
daonh thu, hàng tồn, công nợ… một cách chi tiết và khoa học. Việc gom nhóm
được minh hoạ cụ thể theo sở đồ dưới đây.

Sinh viên: Vũ Văn Lịch 13 Tin học Mỏ K54


Báo cáo đồ án tốt nghiệp chuyên ngành Tin học Mỏ

Chức năng 1
Chức năng 2
Chức năng 3 Thao tác hệ thống
Chức năng 4 Quản lý hệ thống

Chức năng 5
Thao tác cơ sở dữ liệu
Chức năng 6

Chức năng 7
Thao tác bán hàng
Chức năng 8

Chức năng 9 Quản lý danh mục Quản lý bán hàng

Chức năng 10 Quản lý công nợ

Chức năng 11
Chức năng 12 Quản lý kho
Chức năng 13
Quản lý kho hàng

Chức năng 14
Quản lý trả hàng
Chức năng 15

Chức năng 16 Tra cứu sản phẩm

Chức năng 17
Quản lý bảo hành
Chức năng 18
Chức năng 19
Thống kê sản phẩm
Chức năng 20

Chức năng 21
Chức năng 22 Thống kê doanh thu Báo cáo thống kê
Chức năng 23

Chức năng 24 Thống kê công nợ

Sinh viên: Vũ Văn Lịch 14 Tin học Mỏ K54


Báo cáo đồ án tốt nghiệp chuyên ngành Tin học Mỏ

Chức năng 25
Trợ giúp
Chức năng 26
Xây dựng biểu đồ phân cấp chức năng của hệ thống. (2.1.3)
Từ quá trình phân tích ở trên ta xây dựng được biểu đồ phân cấp chức năng của
phần mềm quản lý bán hàng cửa hàng gia dụng Xuân Bắc như sau:

Sinh viên: Vũ Văn Lịch 15 Tin học Mỏ K54


Báo cáo đồ án tốt nghiệp chuyên ngành Tin học Mỏ

Hình 2.1: Sơ đồ phân cấp chức năng của hệ thống.

Sinh viên: Vũ Văn Lịch 16 Tin học Mỏ K54


Báo cáo đồ án tốt nghiệp chuyên ngành Tin học Mỏ

Xây dựng biểu đồ luồng dữ liệu của hệ thống. (2.2)


Xây dựng biểu đồ luồng dữ liệu mức ngữ cảnh. (2.2.1)

Hình 2.2: Sơ đồ dữ liệu mức ngữ cảnh của hệ thống.

Sinh viên: Vũ Văn Lịch 17 Tin học Mỏ K54


Báo cáo đồ án tốt nghiệp chuyên ngành Tin học Mỏ

Xây dựng biểu đồ luồng dữ liệu mức đỉnh. (2.2.2)


Kho “Hệ thống”: Chứa thông tin tài khoản người dùng của hệ thống…
Kho “Đơn hàng”: Chứa thông tin đơn hàng, chi tiết đơn hàng, khách hàng mua sản
phẩm của cửa hàng
Kho “Sản phẩm”: Chứa thông tin sản phẩm của toàn bộ cửa hàng bao gồm thông tin
sản phẩm, số lượng, giá nhập…
Kho “Trả hàng”: chứa những dữ liệu liên quan các đợt trả hàng của cửa hàng lại nhà
cung cấp.
Kho “Bảo hành”: dùng để lưu thông tin khách hàng, sản phẩm bảo hành…
Kho “Danh mục”: dùng để lưu thông tin nhóm sản phẩm, loại sản phẩm…

Sinh viên: Vũ Văn Lịch 18 Tin học Mỏ K54


Báo cáo đồ án tốt nghiệp chuyên ngành Tin học Mỏ

Hình 2.3: Biểu đồ luồng dữ liệu mức đỉnh của hệ thống.

Sinh viên: Vũ Văn Lịch 19 Tin học Mỏ K54


Báo cáo đồ án tốt nghiệp chuyên ngành Tin học Mỏ

Xây dựng các biểu đồ luồng dữ liệu mức dưới đỉnh. (2.2.3)
Biểu đồ mức dưới đỉnh của chức năng hệ thống. (a)

Hình 2.4: Biểu đồ luồng dữ liệu mức dưới đỉnh của chức năng “Hệ thống”.

Sinh viên: Vũ Văn Lịch 20 Tin học Mỏ K54


Báo cáo đồ án tốt nghiệp chuyên ngành Tin học Mỏ

Biểu đồ mức dưới đỉnh của chức năng bán hàng.

Hình 2.5: Biểu đồ luồng dữ liệu mức dưới đỉnh của chức năng “Bán hàng”.

Sinh viên: Vũ Văn Lịch 21 Tin học Mỏ K54


Báo cáo đồ án tốt nghiệp chuyên ngành Tin học Mỏ

Biểu đồ mức dưới đỉnh của chức năng kho hàng.

Hình 2.6: Biểu đồ luồng dữ liệu mức dưới đỉnh của chức năng “Kho hàng”.

Sinh viên: Vũ Văn Lịch 22 Tin học Mỏ K54


Báo cáo đồ án tốt nghiệp chuyên ngành Tin học Mỏ

Biểu đồ mức dưới đỉnh của chức năng tra cứu sản phẩm.

Thông tin tra cứu


SẢN PHẨM
NGƯỜI DÙNG

Yêu cầu tra cứu


TRA CỨU SẢN PHẨM

Hình 2.7: Biểu đồ luồng dữ liệu mức dưới đỉnh của chức năng “Tra cứu”.
Biểu đồ mức dưới đỉnh của chức năng bảo hành.

Đáp ứng yêu cầu

BẢO HÀNH
NGƯỜI DÙNG

Yêu cầu bảo hành BẢO HÀNH

QUẢN LÝ BẢO HÀNH


Gửi yêu cầu và đáp ứng

Hình 2.8: Biểu đồ luồng dữ liệu mức dưới đỉnh của chức năng “Bảo hành”.

Sinh viên: Vũ Văn Lịch 23 Tin học Mỏ K54


Báo cáo đồ án tốt nghiệp chuyên ngành Tin học Mỏ

Biểu đồ mức dưới đỉnh của chức năng báo cáo.

Hình 2.9: Biểu đồ luồng dữ liệu mức dưới đỉnh của chức năng “Báo cáo”.

Sinh viên: Vũ Văn Lịch 24 Tin học Mỏ K54


Báo cáo đồ án tốt nghiệp chuyên ngành Tin học Mỏ

Biểu đồ mức dưới đỉnh của chức năng trợ giúp.

Yêu cầu trợ giúp

Đáp ứng yêu cầu

TRỢ GIÚP
NGƯỜI DÙNG

NGƯỜI DÙNG

THÔNG TIN PHẦN MỀM


Gửi yêu cầu
Hệ thống trả lời

Hình 2.10: Biểu đồ luồng dữ liệu mức dưới đỉnh của chức năng “Trợ giúp”.
Phân tích thiết kế hệ thống về dữ liệu. (2.3)
Dữ liệu đóng một vai trò vô cùng quan trọng trong hệ thống. Tất cả các hoạt động
của hệ thống đều liên quan đến cơ sở dữ liệu: dữ liệu vào, dữ liệu ra. Mỗi một chức
năng của hệ thống khi hoạt động đều cần đến dữ liệu liên quan. Vì vậy việc thiết kế
cơ sở dữ liệu là một công việc quan trọng quyết định đến chất lượng của cả hệ
thống.
Dữ liệu được tổ chức theo mô hình quan hệ vì những lý do sau:
Đơn giản: các dữ liệu được biểu diễn dưới 1 dạng duy nhất là quan hệ, chính là các
bảng giá trị, nó khá tự nhiên và gần gũi với người dùng.
Chặt chẽ: các khái niệm được hình thức hóa cao, cho phép áp dụng các công cụ toán
học, thuật toán.
Trừu tượng hóa cao: mô hình chỉ dừng lại ở mức quan niệm, nghĩa là độc lập với
mức vật lý, với sự cài đặt, với các thiết bị, nhờ đó làm tăng tính độc lập giữa dữ liệu
và chương trình.
Cung cấp các ngôn ngữ truy vấn ở mức cao như SQL, dễ sử dụng và đã trở thành
chuẩn.
Vì vậy em lựa chọn mô hình quan hệ để thiết kế dữ liệu cho chương trình.
Mô tả cơ sở dữ liệu. (2.3.1)
Trong hệ thống có các tài nguyên sau:

Sinh viên: Vũ Văn Lịch 25 Tin học Mỏ K54


Báo cáo đồ án tốt nghiệp chuyên ngành Tin học Mỏ

Admin: bao gồm các thông tin chi tiết về tài khoản đăng nhập hệ thống.
BaoHanh: bao gồm thông tin về khách hàng và sản phẩm đem đến bảo hành.
ChiTietDonHang: bao gồm thông tin chi tiết về các đơn hàng .
KhachHangMua: thông tin về khách hàng mua hàng tại cửa hàng.
DonHang: thông tin các đơn hàng mua hàng.
LoaiHang: thông tin về các loại hàng.
NhomHang: thông tin về nhóm hàng.
SanPham: bao gồm thông tin chi tiết về sản phẩm của cửa hàng..
TraHang: bao gồm thông tin về trả hàng.
LichSuThanhToan: bao gồm thông tin về thanh toán nợ của khách hàng.
Thiết kế cấu trúc cơ sở dữ liệu. (2.3.2)
Bảng 2.1: Bảng Admin.
BẢNG DỮ LIỆU ADMIN
Tên trường Kiểu dữ liệu Ghi chú
TaiKhoan Char(25) Tài khoản – khóa chính
MatKhau Char(25) Mật khẩu
Bảng 2.2: Bảng Bảo hành.
BẢNG DỮ LIỆU BẢO HÀNH
Tên trường Kiểu dữ liệu Ghi chú
TenKH Char(50) Tên khách hàng - khóa chính
MaSP Char(15) Mã sản phẩm – khóa chính
NgayBH DATE Ngày bảo hành – khóa chính
NgayHen DATE Ngày hẹn trả sản phẩm
DiaChi TEXT Địa chỉ khách hàng
DienThoai INT Số điện thoại khách hàng
LoiBH TEXT Lỗi sản phẩm bảo hành
TrangThai TINYINT Trạng thái bảo hành của sản phẩm
Bảng 2.3: Bảng Đơn hàng.
BẢNG DỮ LIỆU ĐƠN HÀNG
Tên trường Kiểu dữ liệu Ghi chú
MaDH Char(15) Mã đơn hàng – khóa chính
NgayBan DATE Ngày bán – khóa chính
TongTien INT Tổng giá trị đơn hàng
ThanhToan INT Số tiền thanh toán
ConNo INT Số tiền còn nợ

Sinh viên: Vũ Văn Lịch 26 Tin học Mỏ K54


Báo cáo đồ án tốt nghiệp chuyên ngành Tin học Mỏ

Bảng 2.4: Bảng Chi tiết đơn hàng


BẢNG DỮ LIỆU CHI TIẾT ĐƠN HÀNG
Tên trường Kiểu dữ liệu Ghi chú
MaDH Char(15) Mã đơn hàng – khóa chính
MaSP Char(15) Mã sản phẩm – khóa chính
SoLuong INT Số lượng từng sản phẩm
GiaBan INT Giá bán từng sản phẩm
Bảng 2.5: Bảng Khách hàng mua
BẢNG DỮ LIỆU KHÁCH HÀNG MUA
Tên trường Kiểu dữ liệu Ghi chú
MaDH Char(15) Mã đơn hàng – khóa chính
TenKH Char(50) Tên khách hàng
DiaChi TEXT Địa chỉ khách hàng
DienThoai INT Số điện thoại khách hàng
Bảng 2.6: Bảng Loại hàng
BẢNG DỮ LIỆU LOẠI HÀNG
Tên trường Kiểu dữ liệu Ghi chú
MaLoaiHang Char(15) Mã loại hàng – khóa chính
TenLoaiHang Char(50) Tên loại hàng
MaNhom Char(15) Mã nhóm hàng
MoTa TEXT Mô tả
Bảng 2.7: Bảng Nhóm hàng
BẢNG DỮ LIỆU NHÓM HÀNG
Tên trường Kiểu dữ liệu Ghi chú
MaNhom Char(15) Mã nhóm hàng – khóa chính
TenNhom Char(50) Tên nhóm hàng
MoTa TEXT Mô tả
Bảng 2.8: Bảng Trả hàng.
BẢNG DỮ LIỆU TRẢ HÀNG
Tên trường Kiểu dữ liệu Ghi chú
MaSP Char(15) Mã sản phẩm – khóa chính
NgayTra DATE Ngày trả – khóa chính
SoLuong INT Số lượng trả
GhiChu TEXT Ghi chú

Sinh viên: Vũ Văn Lịch 27 Tin học Mỏ K54


Báo cáo đồ án tốt nghiệp chuyên ngành Tin học Mỏ

Bảng 2.9: Bảng Sản phẩm.


BẢNG DỮ LIỆU SẢN PHẨM
Tên trường Kiểu dữ liệu Ghi chú
MaSP Char(15) Mã sản phẩm – khóa chính
TenSP Char(50) Tên sản phẩm
MoTa TEXT Mô tả
ThongSoKyThuat TEXT Thông số kỹ thuật
MaLoaiHang Char(15) Mã loại hàng
SoLuong INT Số lượng còn trong kho
DonViTinh Char(50) Đơn vị tính
GiaNhap INT Giá nhập cảu sản phẩm
Bảng 2.10: Bảng Lịch sử thanh toán.
BẢNG DỮ LIỆU LỊCH SỬ THANH TOÁN
Tên trường Kiểu dữ liệu Ghi chú
MaDH Char(15) Mã đơn hàng
NgayThanhToan DATE Ngày thanh toán
TienThanhToan INT Số tiền thanh toán
ConNo TEXT Còn nợ

Sinh viên: Vũ Văn Lịch 28 Tin học Mỏ K54


Báo cáo đồ án tốt nghiệp chuyên ngành Tin học Mỏ

Xây dựng mô hình thực thể liên kết E-R. (2.3.3)

Hình 2.11: Sơ đồ thực thể liên kết E-R.


Quan hệ giữa các thực thể như sau:
LoaiHang có quan hệ 1-N với SanPham: Mỗi một loại hàng có nhiều sản phẩm.
NhomHang có quan hệ 1-N với LoaiHang: Mỗi một nhóm hàng có loại hàng.
SanPham có quan hệ 1-N với BaoHanh: Mỗi một sản phẩm có thể có nhiều bảo
hành.
ChiTietDonHang có quan hệ 1-N với SanPham: Mỗi một đơn hàng có thể có nhiều
sản phẩm.

Sinh viên: Vũ Văn Lịch 29 Tin học Mỏ K54


Báo cáo đồ án tốt nghiệp chuyên ngành Tin học Mỏ

DonHang có quan hệ 1-N với ChiTietDonHang: Mỗi một đơn hàng có thể có nhiều
chi tiết đơn hàng.
SanPham có quan hệ 1-N với TraHang: Mỗi một sản phẩm có thể cónhiều trả hàng.
DonHang có quan hệ 1-1 với KhachHangMua: Mỗi một đơn hàng có một khách
hàng mua.
DonHang có quan hệ 1-N với LichSuThanhToan: Mỗi một đơn hàng có thể thanh
toán nhiều lần.
LoaiHang có quan hệ 1-N với SanPham: Mỗi một loại hàng có nhiều sản phẩm.
LoaiHang có quan hệ 1-N với SanPham: Mỗi một loại hàng có nhiều sản phẩm.
LoaiHang có quan hệ 1-N với SanPham: Mỗi một loại hàng có nhiều sản phẩm.
LoaiHang có quan hệ 1-N với SanPham: Mỗi một loại hàng có nhiều sản phẩm.
Hệ quản trị cơ sở dữ liệu (2.3.4).
Cơ sở dữ liệu là tập hợp các bản ghi (record) thông tin. Một trong những nhiệm vụ
quan trọng của hệ thống máy tính là lưu trữ và xử lý dữ liệu.
Hệ quản trị cơ sở dữ liệu (Database Management Systems DBMS) được thiết kế để
quản lý khối lượng dữ liệu lớn. Mục đích chính của hệ quản trị cơ sở dữ liệu là:
Cung cấp môi trường và công cụ để lưu trữ và truy xuất dữ liệu từ cơ sở dữ liệu một
cách hiệu quả.
Lưu giữ thông tin về người dùng của hệ quản trị cơ sở dữ liệu và những tác vụ mà
người dùng này có thể tương tác với dữ liệu được lưu trữ
Có 3 loại người dùng cho hệ quản trị CSDL:
Người lập trình ứng dụng: Là người phát triển ứng dụng để người dùng cuối có thể
tương tác với cơ sở dữ liệu.
Người dùng cuối: Người dùng cuối có thể tương tác với cơ sở dữ liệu thông qua
chương trình ứng dụng.
Người quản trị cơ sở dữ liệu: Là người có nhiệm vụ thiết kế CSDL, thu thập thông
tin về dữ liệu cần được lưu trữ, bảo trì CSDL hoặc bảo mật cho hệ thống.
Dùng hệ quản trị CSDL để lưu trữ có những ưu điểm sau:
Giảm thiểu sự dư thừa dữ liệu.
Tránh được sự không đồng nhất về dữ liệu.
Dữ liệu được chia sẻ.
Dữ liệu được bảo mật an toàn hơn.
Tính nhất quán của dữ liệu sẽ được đảm bảo.
Xây dựng cơ sở dữ liệu. (2.3.5)

Sinh viên: Vũ Văn Lịch 30 Tin học Mỏ K54


Báo cáo đồ án tốt nghiệp chuyên ngành Tin học Mỏ

Dựa trên sự thiết kế cơ sở dữ liệu phần (2.2.3) và sự lựa chọn hệ quản trị cơ sở dữ
liệu SQLite(Chương III) ta đi xây dựng cơ sở dữ liệu cho chương trình. Bộ dữ liệu
của chương trình được tạo ra với tên “QuanLyCHXB.db”bao gồm 9 bảng sau:
Admin: bao gồm các thông tin chi tiết về tài khoản đăng nhập hệ thống.
BaoHanh: bao gồm thông tin về khách hàng và sản phẩm đem đến bảo hành.
ChiTietDonHang: bao gồm thông tin chi tiết về các đơn hàng bao gồm mã sản
phẩm, số lượng, giá...
KhachHangMua: thông tin về khách hàng mua hàng tại cửa hàng.
DonHang: thông tin các đơn hàng mua hàng.
LoaiHang: thông tin về các loại hàng.
NhomHang: thông tin về nhóm hàng.
SanPham: bao gồm thông tin chi tiết về sản phẩm của cửa hàng..
TraHang: bao gồm thông tin về trả hàng.
LichSuThanhToan: bao gồm thông tin về lịch sử thanh toán nợ của khách hàng.
Các bảng này được xây dựng theo cấu trúc được thiết kế ở phần (2.2.2). Dưới đây là
cơ sở dữ liệu dùng trong chương trình.

Hình 2.12: Cấu trúc cơ sở dữ liệu.

Sinh viên: Vũ Văn Lịch 31 Tin học Mỏ K54


Báo cáo đồ án tốt nghiệp chuyên ngành Tin học Mỏ

Xây dựng mối quan hệ giữa các bảng (2.3.6).

Hình 2.13: Biểu đồ liên kết giữa các bảng.

Sinh viên: Vũ Văn Lịch 32 Tin học Mỏ K54


Báo cáo đồ án tốt nghiệp chuyên ngành Tin học Mỏ

MÔI TRƯỜNG PHÁT TRIỂN HỆ THỐNG (Chương 3)


Như đã trình bày ở những chương trước, sau khi đã lựa chọn đề tài và tiến hành
phân tích thiết kế hệ thống, xây dựng các chức năng cho hệ thống em tiến hành thảo
luận đi tới lập trình xây dựng phần mềm.
Để xây dựng 1 phần mềm ứng dụng thì có rất nhiều ngôn ngữ có thể lựa chọn như
VB 6.0, VB.Net, PHP,C++, Perl… Các ngôn ngữ trên đã được cung cấp đầy đủ
chức năng cần thiết để xây dựng 1 phần mềm ứng dụng. Nhưng trong các ngôn ngữ
trên em thấy C#.Net là phù hợp với đề tài của em nhất. Lý do em quyết định chọn
C#.NET để xây dựng phần mềm quản lý bán hàng là ngôn ngữ này là ngôn ngữ lập
trình mà em có hiểu biết nhất so với các ngôn ngữ kể trên. Nguyên nhân thứ 2 chính
là ngôn ngữ C#.NET là một ngôn ngữ dẫn xuất từ C và C++ nhưng nó lại được tạo
từ nền tảng phát triển hơn, là một ngôn ngữ đơn giản,hiện đại, hướng đối tượng,
mềm dẻo,có ít từ khóa và quan trọng là nó rất phổ biến.Xây dựng phần mềm trên
winform của C#.NET thì gần gũi, dễ dàng,có thể tùy chỉnh giao diện nhanh chóng.
Sau khi lựa ngôn ngữ C#.Net để xây dựng phần mềm thì việc còn lại là lựa chọn cơ
sở dữ liệu cho phần mềm. Với lập trình với C# ta có thể chọn SQL Server đó cũng
là một lựa chọn rất hay và phổ biến. Nhưng đề tài của em là tìm hiểu, xây dựng
phần mềm quản lý bán hàng cho của hàng Xuân Bắc là 1 cửa hàng đồ gia dụng với
quy mô nhỏ, dữ liệu cần quản lý không nhiều. Vì vậy việc sử dụng SQL Sever gây
dư thừa không cần thiết. Ngoài ra để sử dụng SQL Sever ta phải tiến hành cài đặt
SQL Sever trên máy người sử dụng, trong khi đó với SQLite ta có thể sử dụng ngay
cơ sở dữ liệu mà không cần bất bỳ yêu cầu cài đặt nào. Với sự hướng dẫn của thầy
Đặng Văn Nam em quyết định lựa chọn SQLite để quản lý dữ hiệu của phần mềm.
Với nhiều ưu điểm, do SQLite không cần phải cấu hình và dữ liệu được lưu trữ
thành các tập tin trên đĩa thật sự nên nó đang trở thành lựa chọn phổ biến cho các
phần mềm vừa và nhỏ. SQLite có thể thay thế cho các CSDL quan hệ tầm doanh
nghiệp trong một số tình huống như kiểm thử, demo minh họa,... do SQLite chạy
khá nhanh và không cần cài đặt.

Để có thể hiểu rõ hơn về ngôn ngữ, cơ sở dữ liệu… mà em đã chọn để xây dựng hệ


thống, dưới đây em xin trình bày kỹ hơn về những ưu, nhược điểm, cũng như một
vài đặc điểm của ngôn ngữ lập trình C# và cơ sở dữ liệu SQLite để mọi người có
thể hiểu rõ hơn lý do em chọn cũng như hiểu rõ hơn về phần mềm của em.
Giới thiệu chung về .NET. (3.1)
.NET Framework.

Sinh viên: Vũ Văn Lịch 33 Tin học Mỏ K54


Báo cáo đồ án tốt nghiệp chuyên ngành Tin học Mỏ

.NET Framework là một thư viện class có thể được sử dụng với một ngôn ngữ .NET
để thực thi các việc từ thao tác chuỗi cho đến phát sinh ra các trang web động
(ASP.NET), phân tích XML và reflection. .NET Framework được tổ chức thành tập
hợp các namespace, nhóm các class có cùng chức năng lại với nhau, thí dụ như
System.Drawing cho đồ hoạ, System.Collectionscho cấu trúc dữ liệu và
System.Windows.Forms cho hệ thống Windows Forms.
Cấp cao hơn nữa được cung cấp bởi khái niệm này là assembly. Một assembly là
một file hoặc nhiều file được liên kết với nhau (thông qua file al.exe), chứa đựng
nhiều namespace và object. Các chương trình cần các các lớp để thực thi một chức
năng đặc biệt nào đó sẽ tham chiếu các assembly chẳng hạn như
System.Drawing.dll và System.Windows.Forms.dll cũng như các core library (lưu
trong file mscorlib.dll).
Đặc trưng của .NET
.NET Framework là cơ sở hạ tầng cho việc xây dựng, triển khai và chạy các ứng
dụng và dịch vụ Web. Nó cung cấp một môi trường đa ngôn ngữ, dựa trên nền các
chuẩn với hiệu nǎng cao, cho phép tích hợp những đầu tư ban đầu với các ứng dụng
và dịch vụ thế hệ kế tiếp và giải quyết những thách thức của việc triển khai và vận
hành các ứng dụng trên quy mô Internet. Cơ sở hạ tầng NET Framework bao gồm
ba phần chính là Bộ thực hiện ngôn ngữ chung (Common Language Runtime), một
tập phân cấp các thư viện lớp hợp nhất (Unified Class Libraries) và ASP.NET.
Thực tế .NET Framework là kết quả của hai dự án lớn của Microsoft:
Dự án đầu tiên nhằm mục đích cải tiến công việc phát triển các ứng dụng trên nền
Windows, hãy nhìn cụ thể vào công việc cải tiến COM (Component Object Model -
Mô hình Đối tượng Thành phần) của Microsoft.
Dự án thứ hai tập trung tạo ra nền tảng cho việc chuyển giao phần mềm như một
dịch vụ. Sản phẩm này đã cải thiện đáng kể nǎng suất cho người phát triển, đơn giản
hóa công việc triển khai và thực thi ứng dụng một cách đáng tin cậy.
Dự án cũng đưa ra một khái niệm hoàn toàn mới trong việc tính toán: khái niệm của
các dịch vụ Web (các ứng dụng được "ghép nối lỏng") và các thành phần được thiết
kế cho mô hình tính toán hỗn tạp hiện tại thông qua truyền thông có sử dụng các
giao thức Internet chuẩn như XML và SOAP.
Ưu điểm của .NET.
Dùng chung cho nhiều ngôn ngữ lập trình như VB, C#.
Tạo ứng dụng độc lập với môi trường phần cứng bên dưới.
Cho phép viết ứng dụng bằng nhiều ngôn ngữ tương thích .NET.
Tự động quản lý tài nguyên.

Sinh viên: Vũ Văn Lịch 34 Tin học Mỏ K54


Báo cáo đồ án tốt nghiệp chuyên ngành Tin học Mỏ

Dễ dàng triển khai ứng dụng.


Giới thiệu chung về ngôn ngữ C#. (3.2)
Nhiều người tin rằng không cần thiết có một ngôn ngữ lập trình mới. Java, C++,
Perl, Microsoft Visual Basic, và những ngôn ngữ khác được nghĩ rằng đã cung cấp
tất cả những chức năng cần thiết.
Ngôn ngữ C# là một ngôn ngữ được dẫn xuất từ C và C++, nhưng nó được tạo từ
nền tảng phát triển hơn. Microsoft bắt đầu với công việc trong C và C++ và thêm
vào những đặc tính mới để làm cho ngôn ngữ này dễ sử dụng hơn. Nhiều trong số
những đặc tính này khá giống với những đặc tính có trong ngôn ngữ Java. Không
dừng lại ở đó, Microsoft đưa ra một số mục đích khi xây dựng ngôn ngữ này.
Những mục đích này được được tóm tắt như sau:
C# là ngôn ngữ đơn giản.
C# loại bỏ một vài sự phức tạp và rối rắm của những ngôn ngữ như Java và c++,
bao gồm việc loại bỏ những macro, những template, đa kế thừa, và lớp cơ sở ảo
(virtual base class). Chúng là những nguyên nhân gây ra sự nhầm lẫn hay dẫn đến
những vấn đề cho các người phát triển C++. Nếu chúng ta là người học ngôn ngữ
này đầu tiên thì chắc chắn là ta sẽ không trải qua những thời gian để học nó! Nhưng
khi đó ta sẽ không biết được hiệu quả của ngôn ngữ C# khi loại bỏ những vấn đề
trên.
Ngôn ngữ C# đơn giản vì nó dựa trên nền tảng C và C++. Nếu chúng ta thân thiện
với C và C++ hoậc thậm chí là Java, chúng ta sẽ thấy C# khá giống về diện mạo, cú
pháp, biểu thức, toán tử và những chức năng khác được lấy trực tiếp từ ngôn ngữ C
và C++, nhưng nó đã được cải tiến để làm cho ngôn ngữ đơn giản hơn. Một vài
trong các sự cải tiến là loại bỏ các dư thừa, hay là thêm vào những cú pháp thay đổi.
Ví dụ như, trong C++ có ba toán tử làm việc với các thành viên là::, . , và ->. Để
biết khi nào dùng ba toán tử này cũng phức tạp và dễ nhầm lẫn. Trong C#, chúng
được thay thế với một toán tử duy nhất gọi là . (dot). Đối với người mới học thì điều
này và những việc cải tiến khác làm bớt nhầm lẫn và đơn giản hơn.
C# là ngôn ngữ hiện đại.
Điều gì làm cho một ngôn ngữ hiện đại? Những đặc tính như là xử lý ngoại lệ, thu
gom bộ nhớ tự động, những kiểu dữ liệu mở rộng, và bảo mật mã nguồn là những
đặc tính được mong đợi trong một ngôn ngữ hiện đại. C# chứa tất cả những đặc tính
trên.
C# là ngôn ngữ hướng đối tượng.
Những đặc điểm chính của ngôn ngữ hướng đối tượng (Object-oriented language) là
sự đóng gói (encapsulation), sự kế thừa (inheritance), và đa hình (polymorphism).

Sinh viên: Vũ Văn Lịch 35 Tin học Mỏ K54


Báo cáo đồ án tốt nghiệp chuyên ngành Tin học Mỏ

C# hỗ trợ tất cả những đặc tính trên. Phần hướng đối tượng của C# sẽ được trình
bày chi tiết trong một chương riêng ở phần sau.
C# là ngôn ngữ mạnh mẽ và cũng mềm dẻo.
Như đã đề cập trước, với ngôn ngữ C# chúng ta chỉ bị giới hạn ở chính bởi bản thân
hay là trí tưởng tượng của chúng ta. Ngôn ngữ này không đặt những ràng buộc lên
những việc có thể làm. C# được sử dụng cho nhiều các dự án khác nhau như là tạo
ra ứng dụng xử lý văn bản, ứng dụng đồ họa, bản tính, hay thậm chí những trình
biên dịch cho các ngôn ngữ khác.
C# là ngôn ngữ ít từ khóa.
C# là ngôn ngữ sử dụng giới hạn những từ khóa. Phần lớn các từ khóa được sử dụng
để mô tả thông tin. Chúng ta có thể nghĩ rằng một ngôn ngữ có nhiều từ khóa thì sẽ
mạnh hơn. Điều này không phải sự thật, ít nhất là trong trường hợp ngôn ngữ C#,
chúng ta có thể tìm thấy rằng ngôn ngữ này có thể được sử dụng để làm bất cứ
nhiệm vụ nào. Bảng sau liệt kê các từ khóa của ngôn ngữ C#.
Bảng 3.1: Từ khóa của ngôn ngữ C#.
abstract Default foreach object sizeof unsafe
as delegate goto operator stackalloc ushort
base do if out static using
bool double implicit override string virtual
break else in params struct volatile
enum int private switch void case
event interface protected this while catch
explicit internal public throw char extern
is readonly true checked false lock
ref try class finally long return
typeof const fixed sbyte uint continue
null short unchecked
float new sealed ulong decimal for

C# là ngôn ngữ hướng module.


Mã nguồn C# có thể được viết trong những phần được gọi là những lớp, những lớp
này chứa các phương thức thành viên của nó. Những lớp và những phương thức có
thể được sử dụng lại trong ứng dụng hay các chương trình khác. Bằng cách truyền
các mẫu thông tin đến những lớp hay phương thức chúng ta có thể tạo ra những mã
nguồn dùng lại có hiệu quả.

Sinh viên: Vũ Văn Lịch 36 Tin học Mỏ K54


Báo cáo đồ án tốt nghiệp chuyên ngành Tin học Mỏ

C# sẽ là một ngôn ngữ phổ biến.


C# là một trong những ngôn ngữ lập trình mới nhất. Nhưng ngôn ngữ này có một số
lý do để trở thành một ngôn ngữ phổ biến. Một trong những lý do chính là
Microsoft và sự cam kết của .NET là Microsoft muốn ngôn ngữ C# trở nên phổ
biến. Micorosoft .NET là một lý do khác để đem đến sự thành công của C#. .NET là
một sự thay đổi trong cách tạo và thực thi những ứng dụng.
Ngoài hai lý do trên ngôn ngữ C# cũng sẽ trở nên phổ biến do những đặc tính của
ngôn ngữ này được đề cập trong mục trước như: đơn giản, hướng đối tượng, mạnh
mẽ...
Ứng dụng và lợi ích của C#
C# có thể được sử dụng để xây dựng các ứng dụng như: ứng dụng game, ứng dụng
cho doanh nghiệp, ứng dụng cho các thiết bị di động, các ứng dụng quản lý đơn
giản, các ứng dụng phân tán, phức tạp trải rộng qua nhiều thành phố và đất nước
C# hỗ trợ khả năng chuyển đổi dễ dàng giữa các ngôn ngữ, hỗ trợ các giao thức
internet chung, triển khai đơn giản, hỗ trợ các tài liêu XML
Chính vì những lý do đó mà em lựa chọn ngôn ngữ C#.NET để xây dựng chương
trình này.
Giới thiệu về cơ sở dữ liệu SQLite. (3.3)
Được giới thiệu từ năm 2000 để giúp các ứng dụng quản lý dữ liệu của mình thuận
tiện hơn, SQLite là một bộ thư viện dùng trong lập trình để hiện thực một SQL
Database Engine có khả năng tự tổ chức quản lý dữ liệu, không cần server, không
cần cấu hình mà vẫn hỗ trợ đầy đủ các tính năng quản lý giao tác. SQLite hiện đang
là SQL Database Engine mã nguồn mở theo mô hình dữ liệu quan hệ đang được sử
dụng nhiều nhất trên thế giới do tính cơ động cao, dễ sử dụng, gọn nhẹ, hiệu quả và
tin cậy.
Một số đặc điểm chính của SQLite
Đảm bảo đầy đủ 4 đặc tính ACID của các giao tác: tuy cực kỳ nhỏ gọn nhưng các
giao tác làm việc với SQLite được đảm bảo đầy đủ 4 tính chất cơ bản của giao tác là
tính nguyên tổ (Atomic), tính nhất quán (Consistent), tính cô lập (Isolated), và tính
bền vững (Durable) thậm chí sau khi hệ thống bị crash hoặc gặp các sự cố về nguồn
điện.
Không cần cấu hình: với SQLite chúng ta sẽ không cần phải cài đặt hay quản trị nó
SQLite có gần như toàn bộ các đặc tính phổ biến của SQL theo chuẩn SQL92. Tuy
nhiên còn một số tính năng như RIGHT OUTER JOIN, FULL OUTER JOIN, FOR
EACH STATEMENT TRIGGER,... chưa được hỗ trợ. Toàn bộ Database được lưu

Sinh viên: Vũ Văn Lịch 37 Tin học Mỏ K54


Báo cáo đồ án tốt nghiệp chuyên ngành Tin học Mỏ

trữ trong 1 tập tin trên đĩa duy nhất. Hỗ trợ CSDL lên tới hằng TetraByte, trong đó
các kiểu dữ liệu chuỗi và blobs lên tới hằng GigaByte.
Bộ thư viện quản lý rất nhỏ, gọn: dưới 500 KB cho bản đầy đủ tính năng, và có thể
ít hơn nếu loại bớt một số đặc tính. Cụ thể, kích thước phiên bản SQLite 3.7.17
(Phiên bản hiện tại, mới nhất của SQLite) ít hơn 350 KB trên hệ điều hành 32 bit và
ít hơn 409 KB trên các hệ thống 64 bit.
Hầu hết các thao tác trên dữ liệu thông thường đều chạy nhanh hơn các Database
Engine theo kiểu Client/Server phổ biến khác. Đơn giản và dễ sử dụng bộ API
tương ứng. Mã nguồn mở được viết bằng ANSI-C, được comment rất tốt và có thể
tái sử dụng với bất cứ mục đích gì.
SQLite có thể được tải về và nhúng vào các dự án khác nhau dưới hình thức một
Single ANSI-C source-code file. Tự tổ chức lưu trữ (self-contained) mà không phải
phụ thuộc vào các thư viện bên ngoài. Đây là một đặc điểm khá quan trọng khiến
SQLite trở thành CSDL phù hợp để nhúng vào các thiết bị di động hoặc tích hợp
vào các ứng dụng muốn chạy mà không cần phải điều chỉnh cấu hình hệ thống.
Trong bộ thư viện SQLite có sẵn 1 client đơn giản giao tiếp theo chế độ dòng lệnh
(Command-Line Interface – CLI) tên là sqlite3 (trên môi trường Windows là tiện
ích sqlite3.exe) để có thể được dùng để quản trị CSDL SQLite
Ứng dụng cơ sở dữ liệu SQLite:
Do đặc điểm được thiết kế của SQLite ngay từ đầu, nên CSDL nhúng này phù hợp
với một số tình huống sử dụng như sau:
SQLite có thể sử dụng như định dạng tập tin thích hợp cho các ứng dụng: trước đây
các tập tin cấu hình có thể được lưu dưới dạng file .ini, rồi sau đó là .xml,... tuy
nhiên chúng ta sẽ cần phải viết hoặc phụ thuộc vào việc sử dụng các parser phù hợp.
Sử dụng SQLite không những giúp chúng ta khắc phục được yếu điểm này mà
chương trình của chúng ta lại còn có thể chạy trên nhiều nền tảng khác nhau.
SQLite có thể sử dụng làm CSDL cho các thiết bị điện tử. Quả thật SQLite đang là
sự lựa chọn phổ biến về Database Engine cho các thiết bị điện tử như PDA, điện
thoại di động, MP3 Player, các hộp set-top box và nhiều loại thiết bị điện tử khác.
SQLite nhỏ, sử dụng bộ nhớ, không gian lưu trữ và băng thông đĩa hiệu quả, tin cậy
mà không cần phải quản trị bởi các quản trị viên chuyên nghiệp. Nếu bạn đang viết
ứng dụng trên các thiết bị chạy iOS như iPhone, iPad,... hay các thiết bị chạy
Android hoặc Windows Mobile,... thì SQLite chính là CSDL phù hợp cho các thiết
bị di động này.

Sinh viên: Vũ Văn Lịch 38 Tin học Mỏ K54


Báo cáo đồ án tốt nghiệp chuyên ngành Tin học Mỏ

SQLite có thể sử dụng như CSDL cho các website. Do SQLite không cần phải cấu
hình và dữ liệu được lưu trữ thành các tập tin trên đĩa thật sự nên nó đang trở thành
lựa chọn phổ biến cho các website vừa và nhỏ.
SQLite có thể thay thế cho các CSDL quan hệ tầm doanh nghiệp trong một số tình
huống như kiểm thử, demo minh họa,... do SQLite chạy khá nhanh và không cần cài
đặt
Một số điểm hạn chế của SQLite:
Ngoài các ưu điểm được ca tụng nhiều trên website của SQLite, nếu đem so với các
CSDL mạnh khác như Oracle Dabase, SQL Server,... thì SQLite sẽ bọc lộ một số
yếu điểm sau:
Tính đồng thời: SQLite sử dụng cơ chế khóa coarse-gained locking có thể hỗ trợ
nhiều người đọc dữ liệu, nhưng chỉ có 1 người có thể ghi dữ liệu một lúc mà thôi.
Nối kết mạng: mặc dù SQLite có thể được chia sẻ thông qua các network file
systems, tuy nhiên độ trễ giữa các hệ thống tập tin này sẽ ảnh hưởng nghiêm trọng
tới hiệu suất thực hiện của SQLite. Tệ hại hơn nữa là, các lỗ hỏng trong việc triển
khai các hệ thống tập tin trong môi trường mạng có thể gây ra nhiều lỗi do các tập
tin có thể bị mở và điểu chỉnh từ xa
Phù hợp với các ứng dụng có qui mô dữ liệu nhỏ: trong thời đại bùng nổ thông tin
như hiện nay, SQLite không phải là lựa chọn lý tưởng để đáp ứng các nhu cầu xử lý
trên 1 khối lượng dữ liệu lớn, phát sinh liên tục
Một số công cụ làm việc với SQLite:
SQLite3 (http://www.sqlite.org)
SQLite Database Browser (http://sqlitebrowser.sourceforge.net/index.html)
SQLite Expert Professional (www.sqliteexpert.com)
SharpPlus Sqlite Developer (http://www.sqlitedeveloper.com)
SQLite Man (http://www.sqliteman.com)
SQLiteManager (http://www.sqlabs.net/sqlitemanager.php)
Navicate (http://www.navicate.com)
...
Trên trang chủ của CSDL SQLite ở địa chỉ http://www.sqlite.org, các bạn có thể
tham khảo các tài liệu chính thức của SQLite và tải về mã nguồn, thư viện SQLite
đã được biên dịch cho các hệ điều hành khác nhau của SQLite.
Giới thiệu về Crystal Report. (3.4)
Crystal Report là phần mềm thiết kế báo cáo chuyên nghiệp được tích hợp trong các
phiên bản của Visual Studio. Phiên bản Studio .Net của Microsoft được tích hợp
Crystal Report 8.5.

Sinh viên: Vũ Văn Lịch 39 Tin học Mỏ K54


Báo cáo đồ án tốt nghiệp chuyên ngành Tin học Mỏ

Bản thân Crystal Report là một phần mềm tạo báo cáo độc lập với rất nhiều chức
năng thiết kế báo biểu và dịch vụ. Người dùng có thể kết nối đến nhiều nguồn dữ
liệu khác nhau bằng các ODBC Driver. Báo biểu khi tạo ra có thể được lưu trữ bằng
file .rpt 1 cách độc lập, ở dạng có dữ liệu hoặc không có dữ liệu. Sau đó, file .rpt có
thể được chuyển tới người dùng khác và mở bằng Crystal Report hay có thể kết hợp
với các ứng dụng được viết bằng VB.Net,C++ hay C#...
Xét về mặt thiết kế báo biểu, Crystal Report cung cấp đầy đủ các chức năng định
dạng dữ liệu và các chức năng phân nhóm, tính toán, sub – report và kể cả khả năng
lập trình formula dựa trên các formula field. Người dùng ngoài việc sử dụng
formula field còn có thể tự xây dựng bộ thư viện hàm của riêng mình và đưa vào
Crystal Report thông qua các DLL. Bên cạnh khả năng thiết kế các báo biểu thông
thường, Crystal Report còn cung cấp chức năng thiết kế biểu đồ dựa trên nguồn
CSDL lấy từ chương trình.
Xét về mặt sử dụng báo biểu, công cụ hiển thị của Crystal Report cho phép người
dùng tương tác rất linh hoạt. Báo biểu hiển thị có thể được lọc lại các dữ liệu cần
thiết hay xem một phần báo biểu bằng cách sử dụng hiển thị dữ liệu dạng cây. Các
Section trong báo biểu cũng có thể mở rộng hay thu hẹp để hiển thị hay che bớt
những dữ liệu không cần thiết. Một khi báo cáo đã được cây dựng, người dùng còn
có thể Export sang các dạng khác như Word, Excel,HTML…
Bằng cách tích hợp Crystal Report, Visual Studio .Net đem lại cho người dùng một
công cụ tạo báo biểu hiệu quả, tiết kiệm nhiều thời gian so với việc sử dụng đối
tượng in ấn để tự phát sinh báo biểu.

Sinh viên: Vũ Văn Lịch 40 Tin học Mỏ K54


Báo cáo đồ án tốt nghiệp chuyên ngành Tin học Mỏ

THIẾT KẾ VÀ XÂY DỰNG CHƯƠNG TRÌNH (Chương 4)


Thiết kế chương trình. (4.1)
Việc thiết kế chương trình căn cứ vào các phân tích và thiết kế hệ thống về chức
năng, về xử lý và các thông tin vào ra theo yêu cầu của hệ thống như đã nên ở các
chương trước và tham khảo các tài liệu.
Từ chức năng tổng thể của hệ thống, có thể chia thành các chức năng hệ thống con.
Theo biểu đồ phân cấp chức năng đã nêu ở chương II, hệ thống có thể chia thành 7
hệ thống con: Hệ thống, Bán hàng, Kho hàng, Bảo hành, Tra cứu, Báo cáo và Trợ
giúp.
Các hệ thống con lại được chia thành các module thực hiện các chức năng nhỏ hơn
như sau:
Hệ thống con Hệ thống bao gồm:
Module đăng nhập hệ thống.
Module đổi mật khẩu người dùng.
Module đăng xuất khỏi hệ thống.
Module thoát khỏi hệ thống.
Module sao lưu dữ liệu.
Module phục hồi dữ liệu.
Hệ thống con Bán hàng bao gồm:
Module bán lẻ.
Module quản lý đơn hàng.
Module quản lý, thêm, sửa, xóa danh mục.
Module công nợ khách hàng.
Hệ thống con Kho hàng bao gồm:
Module kho hàng.
Module nhập hàng.
Module thêm hàng đầu kỳ.
Module trả hàng.
Module quản lý trả hàng.
Hệ thống con Tra cứu bao gồm:
Module tra cứu sản phẩm.
Hệ thống con Bảo hành bao gồm:
Module bào hành.
Module quản lý bảo hành.
Hệ thống con Báo cáo bao gồm:
Module báo cáo thống kê hàng tồn kho.

Sinh viên: Vũ Văn Lịch 41 Tin học Mỏ K54


Báo cáo đồ án tốt nghiệp chuyên ngành Tin học Mỏ

Module báo cáo thống kê hàng hết.


Module báo cáo doanh thu theo đơn hàng, loại hàng, sản phẩm.
Module báo cáo công nợ khách hàng.
Hệ thống con Trợ giúp bao gồm:
Module trợ giúp.
Module thông tin phần mềm.
Tuy nhiên quy mô và mức độ phức tạp của các module cũng có khác nhau, tùy chức
năng mà nó đảm nhận. Trong các hệ thống con nói trên, các module thuộc hệ thống
con bán hàng, kho hàng, báo cáo là những module chính và phức tạp hơn cả.
Sử dụng Module đăng nhập để đăng nhập và sử dụng những chức năng quản lý của
hệ thống. Các module đăng xuất, thoát, đổi mật khẩu giúp cho người dùng tăng tính
bảo mật thông tin của hệ thống. Ngoài ra hệ thống còn cung cấp 2 chức năng sao
lưu và phục hồi CSDL nhằm giúp người dùng an toàn thông tin. Người dùng hoàn
toàn có thể tự sao lưu phục hồi CSDL định kỳ, có thể dùng lại khi cần thiết.
Sử dụng Module bán hàng để nhập thông tin bán hàng, quản lý thông tin bán hàng,
quản lý danh mục…. Trong module bán hàng có các module nhỏ như: bán hàng lẻ,
quản lý đơn hàng, quản lý danh mục, công nợ khách hàng…để phục vụ cho công
tác bán hàng của cửa hàng.
Ngoài ra, sau khi nhập có đầy đủ thông tin cần thiết về ta cũng có thể sử dụng
module xem lịch sử thanh toán công nợ của khách hàng, cũng như dùng hệ thống
con Báo cáo để in ấn báo biểu.
Sử dụng Module kho hàng để quản lý thông tin sản phẩm trong kho, nhập hàng vào
kho… Trong module kho hàng có các module nhỏ như: kho hàng, nhập hàng, nhập
hàng tồn đầu kỳ, thêm mới sản phẩm, tra cứu tìm kiếm sản phẩm trong kho hàng…
để phục vụ cho công tác lưu trữ, quản lý kho của cửa hàng. Ngoài ra, sau khi nhập
có đầy đủ thông tin cần thiết về ta cũng có thể sử dụng module Báo cáo để in ấn báo
biểu tồn kho, sản phẩm hết hàng.
Sử dụng Module tra cứu sản phẩm tra cứu thông tin sản phẩm, phục vụ công tác bán
hàng. Ngoài ra có thể sử dụng module trợ giúp để được hướng dẫn sử dụng hệ
thống.
Sử dụng Module báo cáo để thống kê báo cáo sản phẩm tồn kho, sản phẩm hết
hàng… Trong module báo cáo có các module nhỏ như: báo cáo doanh thu, báo cáo
công nợ…để phục vụ cho công tác thống kê, báo cáo của cửa hàng.
Thiết kế giao diện. (4.2)
Giao diện của chương trình được dựa trên những nguyên tắc chính sau:

Sinh viên: Vũ Văn Lịch 42 Tin học Mỏ K54


Báo cáo đồ án tốt nghiệp chuyên ngành Tin học Mỏ

Đảm bảo sự tương tác giữa người và máy một cách trực quan, đơn giản, thuận lợi,
dễ nhìn và dễ đọc.
Đầy đủ những chức năng mà hệ thống đảm nhận.
Đảm bảo sự ràng buộc chặt chẽ về trình tự giải toán trên máy tính. Nghĩa là phải có
trật tự logic hợp lý.
Các chức năng có thể tham chiếu và gọi được lẫn nhau theo một tương quan hợp lý,
logic và thuận lợi cho người dùng.
Tương tác người - máy thông qua các cửa sổ hỏi đáp sao cho thuận tiện, dễ dùng,
tránh rườm rà, lặp lại các thao tác. Có khả năng thoát ra dễ dàng.
Thân thiện với môi trường Window.
Trên tinh thần đó, cùng với đề mục các chức năng không nhiều lắm, chương trình
được thiết kế với các giao diện dạng cửa sổ và các nút bấm. Các form cửa sổ được
thiết kế nhìn rất trực quan, chức năng của từng nút được thể hiện bằng tiếng Việt
trên bề mặt nút. Các hình thức giao tiếp khác là dạng các hộp thoại với những câu
nhắc hợp lý, phù hợp với ngữ cảnh, có đề xuất các giá trị ngầm định để người sử
dụng dễ hiểu và không nhầm lẫn.
Dưới đây là một số Form giao diện chính của chương trình:

Sinh viên: Vũ Văn Lịch 43 Tin học Mỏ K54


Báo cáo đồ án tốt nghiệp chuyên ngành Tin học Mỏ

Hình 4.1: Giao diện chính của chương trình.


Đây là giao diện khi khởi động chương trình, tại đây ta có thể tra cứu thông tin sản
phẩm cũng như xem trợ giúp để sử dụng chương trình. Các chức năng được sắp xếp
theo dạng menu. Trong các menu có các menu item đảm nhiệm chức năng nhỏ hơn,

Sinh viên: Vũ Văn Lịch 44 Tin học Mỏ K54


Báo cáo đồ án tốt nghiệp chuyên ngành Tin học Mỏ

được hiển thị qua các button. Để sử dụng các chức năng quản lý người dùng phải
đăng nhập tài khoản quản trị. Dưới đây là giao điện khi người dùng đăng nhập hệ
thống.

Hình 4.2: Giao diện đăng nhập của hệ thống.


Sau khi đăng nhập các chức năng quản trị bị ẩn sẽ được bật như Bán hàng, Kho
hàng, Bảo hành … Các chức năng hệ thống như đổi mật khẩu, đăng xuất, Sao lưu,
phục hồi CSDL.

Hình 4.3: Giao diện của hệ thống sau khi đăng nhập.
Sau khi lựa chọn các chức năng từ thanh Menu, chương trình sẽ giao tiếp với người
sử dụng qua các form, mỗi form có nhiệm vụ và chức năng khác nhau. Dưới đây em
đưa ra một số form của chương trình.

Sinh viên: Vũ Văn Lịch 45 Tin học Mỏ K54


Báo cáo đồ án tốt nghiệp chuyên ngành Tin học Mỏ

Hình 4.4: Giao diện form sao lưu dữ liệu hệ thống.


Chức năng này hỗ trợ người dùng tạo 1 bản sao của cơ sở dữ liệu hiện tại thành một
tập tin duy nhất.

Hình 4.5: Giao diện form phục hồi dữ liệu hệ thống.


Chức năng này hỗ trợ người dùng phục hồi cơ sở dữ liệu đã sao lưu khi cơ sở dữ
liệu hiện tại xảy ra sự cố. Ngoài ra người dùng có thể xem lại csdl của thời gian
trước đã sao lưu lại.

Sinh viên: Vũ Văn Lịch 46 Tin học Mỏ K54


Báo cáo đồ án tốt nghiệp chuyên ngành Tin học Mỏ

Hình 4.6: Giao diện form bán lẻ.


Là chức năng quan trọng của chương trình, cho phép người dùng tạo đơn hàng,
thêm sản phẩm bán vào đơn hàng, tự động tính tổng giá trị hóa đơn… và hỗ trợ
thanh toán đơn hàng.

Hình 4.7: Giao diện form thanh toán đơn hàng


Khách hàng có thể thanh toán hết hoặc thanh toán 1 phần. Thông tin khách hàng nợ
và đơn hàng sẽ được lưu vào CSDL. Chương trình còn hỗ trợ in hóa đơn bán hàng,
dưới đây là form hóa đơn bán hàng sau khi thanh toán.

Sinh viên: Vũ Văn Lịch 47 Tin học Mỏ K54


Báo cáo đồ án tốt nghiệp chuyên ngành Tin học Mỏ

Hình 4.8: Hóa đơn bán hàng của hệ thống.


Sau khi bán hàng, thông tin đơn hàng, khách hàng mua được lưu trong CSDL.
Chương trình hỗ trợ quản lý thông tin đơn hàng qua module quản lý đơn hàng. Giao
diện form quản lý đơn hàng như sau:

Sinh viên: Vũ Văn Lịch 48 Tin học Mỏ K54


Báo cáo đồ án tốt nghiệp chuyên ngành Tin học Mỏ

Hình 4.9: Giao diện form quản lý đơn hàng.


Chức năng này hỗ trợ lưu thông tin, cập nhật, thay đổi thông tin đơn hàng. Ngoài ra
người dùng có thể xem lịch sử thanh toán nợ của đơn hàng cũng như in hóa đơn bán
hàng như trên đã trình bày. Dưới đây là form lịch sử thanh toán nợ của khách hàng.

Hình 4.10: Giao diện form lịch sử thanh toán.

Sinh viên: Vũ Văn Lịch 49 Tin học Mỏ K54


Báo cáo đồ án tốt nghiệp chuyên ngành Tin học Mỏ

Hình 4.11: Giao diện form quản lý danh mục.

Hình 4.12: Giao diện form kho hàng.

Sinh viên: Vũ Văn Lịch 50 Tin học Mỏ K54


Báo cáo đồ án tốt nghiệp chuyên ngành Tin học Mỏ

Hình 4.13: Giao diện form thêm sản phẩm.

Hình 4.14: Giao diện menu báo cáo.


Chức năng này hỗ trợ người dùng thống kê, báo cáo tình trạng sản phẩm trong kho
cũng như doanh thu, công nợ khách hàng. Dưới đây là form báo cáo hàng tồn xuất
từ chương trình.

Sinh viên: Vũ Văn Lịch 51 Tin học Mỏ K54


Báo cáo đồ án tốt nghiệp chuyên ngành Tin học Mỏ

Hình 4.15: Giao diện form báo cáo hàng tồn.


Bẫy lỗi và giải quyết. (4.3)
Trong chương trình, cũng đã sử dụng các kỹ thuật bẫy lỗi nhằm tránh các lỗi thao
tác. Ví dụ như Các ô textbox dùng để nhập dữ liệu dạng “number” thì không thể
nhập dữ liệu dạng “text”, nhập dữ liệu không hợp lệ, không tìm thấy dữ liệu, hoặc
thoát ra theo ý muốn, ... Với mỗi lỗi như vậy, chương trình đều có thông báo lỗi và
đề xuất cách giải quyết hoặc thoát ra. Dưới đây là một số thông báo kiểm soát của
chương trình”.

Sinh viên: Vũ Văn Lịch 52 Tin học Mỏ K54


Báo cáo đồ án tốt nghiệp chuyên ngành Tin học Mỏ

Hình 4.16: Một số thông báo kiểm soát của chương trình.
Chạy chương trình và kiểm thử. (4.4)
Sau quá trình phân tích thiết kế hệ thống và các bước lập trình hoàn tất, hệ thống
phần mềm cần phải được chạy và kiểm tra kết quả. Quá trình chạy và kiểm thử phần
mềm được thực hiện nhiều lần và theo các yêu cầu của kiểm thử hệ thống phần
mềm nói chung. Đây là khâu cuối cùng trước khi sử dụng phần mềm, nhằm kiểm
tra, phát hiện những sai sót trong quá trình lập trình và đánh giá độ chính xác các
kết quả tính toán của phần mềm. Trong phần mềm này với mỗi một chức năng sau
khi hoàn thành đều được chạy kiểm thử bằng nhiều bộ dữ liệu khác nhau. Sau nhiều
lần chạy thử và chỉnh sửa, phần mềm đã chạy ổn định và kết quả thu được là chính
xác, đáp ứng được các yêu cầu đặt ra.

Sinh viên: Vũ Văn Lịch 53 Tin học Mỏ K54


Báo cáo đồ án tốt nghiệp chuyên ngành Tin học Mỏ

KẾT LUẬN - HƯỚNG PHÁT TRIỂN CỦA ĐỀ TÀI


Sau một thời gian nghiên cứu, tìm hiểu về bài toán kết hợp với sự đam mê, nỗ lực,
sự đầu tư về thời gian, công sức và trí tuệ của bản thân, em đã hoàn thành đề tài của
mình. Đề tài đã hoàn thành theo đúng thời gian quy định, thực hiện đầy đủ các
nhiệm vụ, yêu cầu từ khâu phân tích thiết kế hệ thống đến khâu lập trình kiểm thử.
Chương trình được xây dựng đã thực hiện đầy đủ các yêu cầu và nhiệm vụ đã nêu
trong chương I, hoàn thiện được tất cả các chức năng hệ thống đã đề ra trong
chương II. Chương trình đã được chạy thử và kiểm tra trên các máy tính khác, kết
quả mang lại khá khả quan, phần mềm chạy ổn định, không có lỗi và đều đảm bảo
độ tin cậy của các kết quả tính toán. Ngoài ra chương trình đã được cài đặt và chạy
thử ngoài thực tế tại Cửa hàng gia dụng Xuân Bắc và nhận được phản hồi tích cực
từ đơn vị sử dụng. Cụ thể chương trình đã thực hiện được các chức năng sau:
Chương trình được thiết kế hỗ trợ đầy đủ các chức năng theo yêu cầu, và đảm bảo
các quy trình sát với thực tế. Trong đó tập trung và hoàn thiện được các chức năng
như: Quản lý bán hàng; Quản lý Kho hàng; Tra cứu sản phẩm; Quản lý công nợ;
Quản lý bảo hành…
Hỗ trợ khả năng bảo mật, sao lưu, phục hồi và tránh mất mát dữ liệu.
Chức năng phân quyền rõ ràng, chính xác, an toàn cao, thỏa mãn yêu cầu bảo mật
của hệ thống với các quyền: quản trị và người dùng.
Các dữ liệu liên quan đến công tác quản lý bán hàng được cập nhật thường xuyên
và có độ chính xác cao do hệ thống đã loại bỏ được các lỗi cơ bản do người dùng
nhập liệu sai.
Cho phép kiểm kê kho hàng và thực hiện các báo cáo thống kê một cách đơn giản
và chính xác theo tháng, quý, năm.
Phần mềm được viết hoàn toàn bằng Tiếng Việt, giao diện trực quan dễ sử dụng.
Các menu, công cụ được trình bày logic, hợp lý đảm bảo thao tác nhanh chóng và
chính xác.
Tuy nhiên, bài toán quản lý bán hàng là một một bài toán phức tạp, lượng công việc
lớn, cần kiến thức chuyên môn và yêu cầu độ chính xác cao. Hơn nữa thời gian tìm
hiều, nghiên cứu và hoàn thiện đề tài lại có hạn, mặt khác kiến thức chuyên môn
của bản thân không được tốt, do đó chương trình đã được xây dựng không tránh
khỏi một số hạn chế và thiếu sót nhất định.
Trên cơ sở giới hạn và phạm vi của chương trình, cùng với những hạn chế còn tồn
tại, hướng phát triển của chương trình trong tương lai sẽ hướng vào các vấn đề như:
Xây dựng hoàn thiện và đầy đủ các chức năng cần thiết cho hệ thống.
Điều chỉnh một số chức năng cho phù hợp với yêu cầu sử dụng cho cửa hàng.

Sinh viên: Vũ Văn Lịch 54 Tin học Mỏ K54


Báo cáo đồ án tốt nghiệp chuyên ngành Tin học Mỏ

Thêm chức năng báo cáo mặt hàng bán chạy. Thêm quản lý nhà cung cấp, công nợ
nhà cung cấp khi cửa hàng mở rộng quy mô.
Thêm chức năng quản lý đổi trả Gas.
Trong khoảng thời gian thực hiện đồ án tốt nghiệp, em đã thu nhận được rất nhiều
kiến thức quý báu. Đó là những kiến thức về nghiệp vụ quản lý bán hàng, những
kiến thức về lập trình C#, cũng như quy trình xây dựng và phát triển hệ thống phần
mềm ứng dụng trong thực tế v.v. Đây là dịp để em có điều kiện tổng hợp và ôn lại
những kiến thức đã được trang bị trong suốt 5 năm qua. Kinh nghiệm mà bản thân
em thu được trong khoảng thời gian thực hiện đồ án là vô cùng quan trọng. Đó là
những kinh nghiệm đúc rút trong quá trình nghiên cứu và lập trình một phần mềm
ứng dụng, đó là những kinh nghiệm trong việc tìm kiếm và chọn lọc các tài liệu liên
quan trên mạng, trên sách báo, giáo trình.….
Để hoàn thành được đề tài và đạt được kết quả như mong muốn thì ngoài sự nỗ lực,
cố gắng của bản thân, em còn nhận được sự giúp đỡ tận tình của các thầy cô và của
các bạn sinh viên. Một lần nữa em xin chân thành cảm ơn những ý kiến đóng góp,
sự giúp đỡ nhiệt tình của thầy cô giáo và các bạn sinh viên trong suốt thời gian vừa
qua.
Hà Nội, ngày 06 tháng 06 năm 2014
Sinh viên thực hiện
Vũ Văn Lịch

Sinh viên: Vũ Văn Lịch 55 Tin học Mỏ K54


Báo cáo đồ án tốt nghiệp chuyên ngành Tin học Mỏ

TÀI LIỆU THAM KHẢO


[1].Nguyễn Văn Ba, 2003.Phân tích và thiết kế Hệ thống thông tin. Nhà xuất bản
Đại học Quốc gia, Hà Nội
[2]. Thạc Bình Cường, 2004. Phân tích và thiết kế hệ thống thông tin. Nhà xuất bản
Khoa học Kỹ thuật, Hà Nội.
[3]. Cảnh Chí Thanh, 2011. Báo cáo tổng kết đề tài khoa học và công nghệ cấp bộ.
Trường Đại học Mỏ-Địa chất.
[4]. Một số Đồ án tốt nghiệp của sinh viên ngành Tin học Mỏ, Trường Đại học Mỏ-
Địa chất.

Sinh viên: Vũ Văn Lịch 56 Tin học Mỏ K54


Báo cáo đồ án tốt nghiệp chuyên ngành Tin học Mỏ

PHỤ LỤC
MÃ MỘT SỐ MODULE CHÍNH CỦA CHƯƠNG TRÌNH (A)
Mã module tạo số đơn hàng (1)
public void TaoSoHoaDon()
{
DataTable dem = QuanLyBanLeDAL.TaoSoHoaDon();
foreach (DataRow row in dem.Rows)
{
string date;
date = DateTime.Now.ToShortDateString().Substring(0, 2) +
DateTime.Now.ToShortDateString().Substring(3, 2) +
DateTime.Now.ToShortDateString().Substring(6, 4);
labSoHoaDon.Text = "BHL." + date + "." + row["Dem"].ToString();
}
}
Mã module tính tiền đơn hàng (2)
private void TinhTien()
{
int tongcong = 0;
for (int i = 0; i < dataGridBanHangLe.RowCount - 1; i++)
{
tongcong = tongcong +
int.Parse(dataGridBanHangLe.Rows[i].Cells["ThanhTien"].Value.ToString());
}
labeTongCongBHL.Text = ChuyenSo1(tongcong.ToString());
}
Mã module sao lưu cơ sở dữ liệu (3)
if (Kt == true && progressBarX1.Value ==100)
{
string str = Application.StartupPath + @"\QuanLyCHXB.db";
System.IO.File.Copy(str, textBox1.Text, true);
Kt = false;
MessageBox.Show("Sao lưu dữ liệu thành công. Vui lòng kiểm tra tại thư
mục vừa chọn!");
}

Sinh viên: Vũ Văn Lịch 57 Tin học Mỏ K54


Báo cáo đồ án tốt nghiệp chuyên ngành Tin học Mỏ

Mã module phục hồi cơ sở dữ liệu (4)


if (Kt == true && progressBarX1.Value ==100)
{
string str = Application.StartupPath + @"\QuanLyCHXB.db";

Kt = false;
MessageBox.Show("Phục hồi dữ liệu thành công. Hệ thống sẽ tự khởi
động lại. Anh / Chị vui lòng chờ trong giây lát!");
Application.Restart();
System.IO.File.Copy(textBox1.Text, str, true);
}
Mã module thanh toán đơn hàng (5)
public void ThanhToanDH(Boolean f, string thanhtoan, string tienno, string tenkh,
string diachi, string sdt)
{
if (f == true)
{
string ngaybh1 = dateTimePicker1.Value.ToString("yyyy-MM-dd");
DonHang dh = new DonHang(labSoHoaDon.Text, ngaybh1 ,
int.Parse(ChuyenSo2(labeTongCongBHL.Text)),
int.Parse(ChuyenSo2(labeTongCongBHL.Text)), 0);
QLBLDAL.ThemDonHang(dh);
for (int i = 0; i < dataGridBanHangLe.RowCount; i++)
{
if (dataGridBanHangLe.Rows[i].Cells[1].Value != null)
{
ChiTietDonHang ct = new ChiTietDonHang(labSoHoaDon.Text,
dataGridBanHangLe.Rows[i].Cells["MaSP"].Value.ToString(),
int.Parse(dataGridBanHangLe.Rows[i].Cells["SoLuong"].Value.ToString()),
int.Parse(dataGridBanHangLe.Rows[i].Cells["DonGia"].Value.ToString()));
QLBLDAL.ThemChiTietDonHang(ct);
DataTable sp =
SanPhamDAL.GetListSPMaSP(dataGridBanHangLe.Rows[i].Cells["MaSP"].Value
.ToString());
int soluong = 0;
foreach (DataRow row in sp.Rows)

Sinh viên: Vũ Văn Lịch 58 Tin học Mỏ K54


Báo cáo đồ án tốt nghiệp chuyên ngành Tin học Mỏ

{
soluong = int.Parse(row["SoLuong"].ToString());
}
QLBLDAL.TruKhoSP((soluong -
int.Parse(dataGridBanHangLe.Rows[i].Cells["SoLuong"].Value.ToString())),
dataGridBanHangLe.Rows[i].Cells["MaSP"].Value.ToString());
}
}
if (tenkh != "")
{
if (sdt == null)
{
sdt = "0";
}
KhachHangMua kh = new KhachHangMua(labSoHoaDon.Text, tenkh,
diachi, sdt);
QLBLDAL.ThemKhachHangMua(kh);
}
TaoSoHoaDon();
HoaDonMoi();
}
else
{
string ngaybh1 = dateTimePicker1.Value.ToString("yyyy-MM-dd");
DonHang dh = new DonHang(labSoHoaDon.Text, ngaybh1,
int.Parse(ChuyenSo2(labeTongCongBHL.Text)), int.Parse(thanhtoan),
int.Parse(tienno));
QLBLDAL.ThemDonHang(dh);
for (int i = 0; i < dataGridBanHangLe.RowCount; i++)
{
if (dataGridBanHangLe.Rows[i].Cells[1].Value != null)
{
ChiTietDonHang ct = new ChiTietDonHang(labSoHoaDon.Text,
dataGridBanHangLe.Rows[i].Cells["MaSP"].Value.ToString(),
int.Parse(dataGridBanHangLe.Rows[i].Cells["SoLuong"].Value.ToString()),
int.Parse(dataGridBanHangLe.Rows[i].Cells["DonGia"].Value.ToString()));

Sinh viên: Vũ Văn Lịch 59 Tin học Mỏ K54


Báo cáo đồ án tốt nghiệp chuyên ngành Tin học Mỏ

QLBLDAL.ThemChiTietDonHang(ct);
DataTable sp =
SanPhamDAL.GetListSPMaSP(dataGridBanHangLe.Rows[i].Cells["MaSP"].Value
.ToString());
int soluong = 0;
foreach (DataRow row in sp.Rows)
{
soluong = int.Parse(row["SoLuong"].ToString());
}
QLBLDAL.TruKhoSP((soluong -
int.Parse(dataGridBanHangLe.Rows[i].Cells["SoLuong"].Value.ToString())),
dataGridBanHangLe.Rows[i].Cells["MaSP"].Value.ToString());
}
}
if (sdt == null)
{
sdt = "0";
}
KhachHangMua kh = new KhachHangMua(labSoHoaDon.Text, tenkh,
diachi, sdt);
QLBLDAL.ThemKhachHangMua(kh);
TaoSoHoaDon();
HoaDonMoi();
}
}
Mã module thanh toán nợ (6)
private void butThanhToan_Click(object sender, EventArgs e)
{
ngay1 = ngay1.Substring(6, 4) + "-" + ngay1.Substring(3, 2) + "-" +
ngay1.Substring(0, 2);
int thanhtoan = 0;
foreach (DataRow row in
QuanLyBanLeDAL.GetHoaDonMaHD(labeDonHang.Text).Rows)
{
thanhtoan = int.Parse(row["ThanhToan"].ToString());
}

Sinh viên: Vũ Văn Lịch 60 Tin học Mỏ K54


Báo cáo đồ án tốt nghiệp chuyên ngành Tin học Mỏ

QuanLyBanLeDAL n = new QuanLyBanLeDAL();


DonHang n1 = new
DonHang(labeDonHang.Text,ngay1,int.Parse(TT1),thanhtoan +
int.Parse(ChuyenSo2(txtTienThanhToan.Text)),int.Parse(ChuyenSo2(labeTienNo.T
ext)));
n.UpdateDonHang(n1);
n.ThanhToanNoDH(labeDonHang.Text,
Convert.ToDateTime(DateTime.Now.ToShortDateString()).ToString("yyyy-MM-
dd"),ChuyenSo2(txtTienThanhToan.Text),ChuyenSo2(labeTienNo.Text));
MessageBox.Show("Thanh toán thành công!");
this.Close();
}
Mã module Update sản phẩm (7)
private void butThemMoiSP_Click(object sender, EventArgs e)
{
if (TT1 == "Thêm")
{
if (txtMaSP.Text == "")
{
MessageBox.Show("Anh/Chị chưa cung cấp Mã sản phẩm!");
txtMaSP.Focus();
}
else if (txtTenSP.Text == "")
{
MessageBox.Show("Anh/Chị chưa cung cấp tên sản phẩm!");
txtTenSP.Focus();
}
else if (txtSoLuong.Text == "")
{
MessageBox.Show("Anh/Chị chưa điền số lượng!");
txtSoLuong.Focus();
}
else if (txtDonViTinh.Text == "")
{
MessageBox.Show("Anh/Chị chưa điền đơn vị tính!");
txtDonViTinh.Focus();

Sinh viên: Vũ Văn Lịch 61 Tin học Mỏ K54


Báo cáo đồ án tốt nghiệp chuyên ngành Tin học Mỏ

}
else if (txtGiaNhap.Text == "")
{
MessageBox.Show("Anh/Chị chưa cung cấp giá nhập của sản phẩm!");
txtGiaNhap.Focus();
}
else if (comboLoaiHang.SelectedIndex == -1)
{
MessageBox.Show("Vui lòng chọn loại hàng hóa");
comboLoaiHang.Focus();
}
else
{
if (QuanLyKhoDAL.CheckSP("", txtMaSP.Text).Rows.Count > 0)
{
MessageBox.Show("Mã sản phẩm đã tồn tại. Vui lòng kiểm tra
lại!");
txtMaSP.Focus();
}
else
{
SanPhamDAL n = new SanPhamDAL();
string MaNH = "";
foreach(DataRow row in
QuanLyKhoDAL.MaNhom(comboLoaiHang.SelectedValue.ToString()).Rows)
{
MaNH = row["MaNhom"].ToString();
}
SanPham sp = new
SanPham(txtMaSP.Text.ToUpper(),txtTenSP.Text,richTextMoTa.Text,richTextBox
ThongSo.Text,MaNH,comboLoaiHang.SelectedValue.ToString(),int.Parse(txtSoLu
ong.Text),txtDonViTinh.Text,int.Parse(ChuyenSo2(txtGiaNhap.Text)),1);
if (n.ThemSP(sp))
{
MessageBox.Show("Thêm mới sản phẩm thành công ");
//this.Close();

Sinh viên: Vũ Văn Lịch 62 Tin học Mỏ K54


Báo cáo đồ án tốt nghiệp chuyên ngành Tin học Mỏ

}
}
}
}
else
{
if (txtTenSP.Text == "")
{
MessageBox.Show("Anh/Chị chưa cung cấp tên sản phẩm!");
txtTenSP.Focus();
}
else if (txtSoLuong.Text == "")
{
MessageBox.Show("Anh/Chị chưa điền số lượng!");
txtSoLuong.Focus();
}
else if (txtDonViTinh.Text == "")
{
MessageBox.Show("Anh/Chị chưa điền đơn vị tính!");
txtDonViTinh.Focus();
}
else if (txtGiaNhap.Text == "")
{
MessageBox.Show("Anh/Chị chưa cung cấp giá nhập của sản phẩm!");
txtGiaNhap.Focus();
}
else if (comboLoaiHang.SelectedIndex == -1)
{
MessageBox.Show("Vui lòng chọn loại hàng hóa");
comboLoaiHang.Focus();
}
else
{
SanPhamDAL n = new SanPhamDAL();
string MaNH = "";

Sinh viên: Vũ Văn Lịch 63 Tin học Mỏ K54


Báo cáo đồ án tốt nghiệp chuyên ngành Tin học Mỏ

foreach(DataRow row in
QuanLyKhoDAL.MaNhom(comboLoaiHang.SelectedValue.ToString()).Rows)
{
MaNH = row["MaNhom"].ToString();
}
SanPham sp = new
SanPham(txtMaSP.Text,txtTenSP.Text,richTextMoTa.Text,richTextBoxThongSo.T
ext,MaNH,comboLoaiHang.SelectedValue.ToString(),int.Parse(txtSoLuong.Text),t
xtDonViTinh.Text,int.Parse(ChuyenSo2(txtGiaNhap.Text)),1);
if (n.SuaSP(sp))
{
MessageBox.Show("Thay đổi thông tin sản phẩm thành công ");
this.Close();
}
}
}
}

Sinh viên: Vũ Văn Lịch 64 Tin học Mỏ K54


Báo cáo đồ án tốt nghiệp chuyên ngành Tin học Mỏ

MỘT SỐ MẪU BÁO CÁO, THÔNG KÊ (B)


Dưới đây sẽ trình bày một số mẫu báo cáo thống kê và kết quả chạy chương trình
với những chức năng chính của phần mềm.
Báo cáo doanh thu sản phẩm theo quý (a)

Báo cáo lợi nhuận theo đơn hàng

Sinh viên: Vũ Văn Lịch 65 Tin học Mỏ K54


Báo cáo đồ án tốt nghiệp chuyên ngành Tin học Mỏ

Báo cáo lợi nhuận theo loại hàng.

Sinh viên: Vũ Văn Lịch 66 Tin học Mỏ K54


Báo cáo đồ án tốt nghiệp chuyên ngành Tin học Mỏ

Báo cáo công nợ khách hàng.

Báo cáo sản phẩm hết.

Sinh viên: Vũ Văn Lịch 67 Tin học Mỏ K54

You might also like