Hệ thống quản lý siêu thị mini bằng mã vạch Cùng với sự phát triển của công nghệ mô hình quản lý hàng hóa cổ điển của các siêu thị như xưa không còn phù hợp nữa thì thay vào đó người ta
Trang 1LUẬN VĂN TỐT NGHIỆP ĐẠI HỌC Tên đề tài:
HỆ THỐNG QUẢN LÝ SIÊU THỊ MINI BẰNG MÃ VẠCH
MSSV: C1200418
TRƯỜNG ĐẠI HỌC CẦN THƠ
KHOA CÔNG NGHỆ THÔNG TIN & TRUYỀN THÔNG
BỘ MÔN HỆ THỐNG THÔNG TIN
Cần thơ, 2014
Trang 2LUẬN VĂN TỐT NGHIỆP ĐẠI HỌC
HỆ THỐNG QUẢN LÝ SIÊU THỊ MINI BẰNG MÃ VẠCH
Thông tin - Khoa Công nghệ Thông tin & Truyền thông, Trường Đại học Cần Thơ vào ngày 09 tháng 12 năm 2014
Mã số đề tài:
Có thể tìm hiểu luận văn tại:
• Thư viện Khoa Công nghệ Thông tin, Trường Đại học Cần Thơ
• Website: http://www.cit.ctu.edu.vn/
TRƯỜNG ĐẠI HỌC CẦN THƠ
KHOA CÔNG NGHỆ THÔNG TIN & TRUYỀN THÔNG
BỘ MÔN HỆ THỐNG THÔNG TIN
Trang 3Hệ thống quản lý siêu thị mini bằng mã vạch
Lời đầu tiên em xin gửi lời cảm ơn sâu sắc đến quý Thầy Cô khoa CNTT & TT Trường Đại Học Cần Thơ đã dùng hết tâm huyết của mình dạy dỗ và truyền đạt vốn kiến thức quý báo cho em không chỉ là nền tảng cho quá trình thực hiện luận văn mà còn là hành trang quí báu nhất để em bước vào đời một cách vững chắc và tự tin.Khi nhận đề tài luận văn tốt nghiệp em cảm thấy rất vinh dự nhưng có phần lo lắng vì em nhận thấy kiến thức mình còn quá hạn hẹp, không biết sẽ làm thế nào để
hoàn thành tốt đề tài Tuy nhiên, cũng nhờ thầy TS Nguyễn Thái Nghe giúp đỡ và
luôn tạo mọi điều kiện tốt nhất để em có thể sử dụng các thiết bị và máy móc của trường
Em xin gửi lời cám ơn chân thành và biết ơn sâu sắc đến thầy TS Nguyễn Thái
Nghe đã tận tình hướng dẫn, giúp đỡ em suốt trong quá trình thực hiện luận văn để em
có thể hoàn thành tốt bài luận văn tốt nghiệp này
Em xin chân thành cảm ơn đến thư viện khoa CNTT & TT đã cung cấp tài liệu cho em trong quá trình làm luận văn
Bài luận văn được thực hiện trong khoảng thời gian gần 19 tuần Bước đầu đi vào thực tế, tìm hiểu về lĩnh vực sáng tạo, kiến thức em còn hạn chế và còn nhiều bỡ ngỡ
Do vậy không thể tránh khỏi những thiếu sót là điều chắc chắn, em rất mong nhận được những ý kiến đóng góp quý báo của quý thầy cô và các bạn để bài luận văn của
em được hoàn thiện hơn
Một lần nữa em xin gởi lời cám ơn đến tất cả thầy cô Khoa CNTT & TT của
Trường Đại Học Cần Thơ, giáo viên hướng dẫn TS Nguyễn Thái Nghe cùng với thầy phản biện ThS Phan Tấn Tài và ThS Trần Nguyễn Minh Thái đã giúp đỡ em để
hoàn thành tốt luận văn
Cuối cùng em xin chúc quý thầy cô dồi dào sức khỏe, niềm tin để tiếp tục thực hiện sứ mệnh cao quý của mình là truyền đạt kiến thức của mình cho thế hệ mai sau
Trang 4Hệ thống quản lý siêu thị mini bằng mã vạch
LỜI CẢM ƠN 1
KÝ HIỆU VÀ VIẾT TẮT 4
TÓM TẮT 5
ABSTRACT 6
CHƯƠNG I TỔNG QUAN 1
I ĐẶT VẤN ĐỀ 1
II LỊCH SỬ GIẢI QUYẾT VẤN ĐỀ 1
III MỤC TIÊU 3
IV PHẠM VI ĐỀ TÀI 3
V PHƯƠNG PHÁP NGHIÊN CỨU 4
1 Khảo sát hệ thống 4
2 Thu thập tài liệu 4
3 Phân tích và thiết kế chi tiết 4
4 Thực nghiệm 4
CHƯƠNG II CƠ SỞ LÝ THUYẾT 6
I NGÔN NGỮ LẬP TRÌNH C# 6
1 Giới thiệu ngôn ngữ lập trình C# 6
2 Ngôn ngữ C# và một số ngôn ngữ khác 6
II HỆ QUẢN TRỊ CSDL SQL SERVER 7
1 Hệ quản trị CSDL là gì? 7
2 Giới thiệu về sql server 7
3 Các đối tượng CSDL 8
III CÔNG NGHỆ KỸ THUẬT 8
1 Giới thiệu về ADO.NET 8
2 Mục tiêu chính của ADO.NET 8
3 Các thành phần chính của ADO.NET 8
4 Các lớp của ADO.NET 9
IV TÌM HIỂU VỀ MÃ VẠCH 11
1 Phát triển hệ thống thông tin với mã vạch 11
2 Công nghệ mã vạch 11
3 Phân loại mã vạch và các chuẩn mã vạch 11
4 Giới thiệu mã vạch 14
5 Cách tạo ra mã vạch EAN-13 17
6 Sử dụng mã vạch trong hệ thống thông tin 25
7 Cách nhận diện mã vạch và đăng ký mã vạch trên sản phẩm 25
8 Thiết bị đi kèm theo mã vạch 26
9 QR-Code (Mã phản hồi nhanh) 27
Trang 5Hệ thống quản lý siêu thị mini bằng mã vạch
CHƯƠNG III NỘI DUNG VÀ KẾT QUẢ NGHIÊN CỨU 28
I KHẢO SÁT HIỆN TRẠNG 28
1 Mô tả hoạt động hệ thống 28
1.1 Quy trình quản lý nhập hàng 28
1.2 Quy trình quản lý bán hàng 28
1.3 Quy trình quản lý kho hàng 29
1.4 Hoạt động của bộ phận kế toán 29
1.5 Hoạt động phòng tin học 29
2 Một số biểu mẫu sử dụng 30
2.1 Hóa đơn nhập hàng 30
2.2 Hoá đơn xuất hàng 31
2.3 Hóa đơn bán lẻ 31
2.4 Phiếu thu 32
II CÁC MÔ HÌNH 33
1 Mô hình thực thể quan niệm (CDM) 33
2 Mô hình dữ liệu luận lý (LDM) 33
3 Mô hình dữ liệu vật lý (PDM) 36
4 Lưu đồ dòng dữ liệu (DFD) 47
III PHÂN TÍCH THIẾT KẾ CHƯƠNG TRÌNH 49
1 Sơ đồ chức năng 49
2 Lưu đồ giải thuật 50
2.1 Lưu đồ hoạt động của hệ thống 50
2.2 Lưu đồ thêm mặt hàng 50
2.3 Lưu đồ tìm kiếm mặt hàng 51
2.4 Lưu đồ cập nhật danh mục CSDL 51
2.5 Lưu đồ lập hóa đơn 52
IV GIỚI THIỆU PHẦN MỀM 52
1 Giao diện đăng nhập 52
2 Giao diện chính 53
3 Giao diện chức năng 53
3.1 Quản lý Hệ Thống 53
3.2 Quản lý danh mục 54
3.3 Quản lý nhập – xuất hàng hóa 61
3.4 Tìm kiếm thông tin 67
3.5 Chức năng quản lý quỹ tiền mặt 68
3.6 Chức năng thống kê 70
3.7 Quản lý in mã vạch bị lỗi 72
3.8 Chức năng dự báo doanh số bán hàng 73
Trang 6Hệ thống quản lý siêu thị mini bằng mã vạch
KẾT LUẬN 76 TÀI LIỆU THAM KHẢO 77
•ANSI: American National Standards Institude
•CNTT & TT: Công nghệ thông tin và truyền thông
•CSDL: Cơ Sở Dữ Liệu
•CDM: Conceptual Data Modal
•DFD: Data Flow Diagram
•EAN: European Article Numbering System
•IIS: Internet Information Server
•LDM: Logical Diagram Modal
•PDM: Physiscal Diagram Modal
•RDBMS: Relational Database Management System
•SQL: Structured Query Language
•UCC: Uniform Code Council
•XML: Extensible Markup Language
Trang 7Hệ thống quản lý siêu thị mini bằng mã vạch
Cùng với sự phát triển của công nghệ mô hình quản lý hàng hóa cổ điển của các siêu thị như xưa không còn phù hợp nữa thì thay vào đó người ta nghiên cứu ra một phần mềm ứng dụng rất khoa học đó là mã vạch (Barcode) để quản lý Với việc ứng dụng mã vạch đó ta có thể tạo ra mã vạch để dán lên các sản phẩm cần quản lý giúp cho nhân viên có thể dễ dàng quản lý, thời gian nhanh chóng mang lại hiệu quả cao, nó
sẽ đem lại nhiều lợi ích cho doanh nghiệp vừa và nhỏ hiện nay Với những lý do trên
nên em quyết định chọn đề tài: ”Hệ thống quản lý siêu thị mini bằng mã vạch”
Phần mềm ngoài chức năng bán hàng còn có thể in mã vạch theo kích cỡ khác nhau theo chuẩn Code EAN-13 và có thể dự báo được doanh số bán hàng của các tháng tiếp theo
Trong quá trình thực hiện đề tài em đã sử dụng những kiến thức học được trên ghế nhà trường, vì vậy trong hệ thống em lập trình bằng ngôn ngữ C# Net và hệ quản trị CSDL SQL Server 2008 để xây dựng ứng dụng Sau khi hệ thống được xây dựng hoàn chỉnh có thể áp dụng thực tế vào việc quản lý siêu thị mini ở các địa bàn trên thành phố Cần Thơ
Kết quả sau quá trình thực hiện:
•Xây dựng thành công phần mềm” Hệ thống quản lý siêu thị mini bằng mã
Trang 8Hệ thống quản lý siêu thị mini bằng mã vạch
ABSTRACT
Today society is growing, the management practices of traditional goods in the supermarket will be difficult to meet the handling of large quantities of goods Of the difficult to process information quickly and efficiently in time requires a certain modern solutions to address and that is information technology It also has a strong impact to the social activities, it changes the way live, work, study of man The scope
of information technology is increasingly being expanded in many areas: communication, branding, management of human activities But the benefits of software applications brings significant: management, data storage, computation with
a large amount of information accurately and quickly bring high efficiency, reduce manpower and effort
Along with the development of technology management model classic merchandise stores like the old no longer relevant, then instead we study an application software which is very scientific Barcode (Barcode) to govern the application barcode which we can generate barcodes for pasting up the necessary management products help employees can easily manage, time quickly bring high efficiency, it will bring many benefits for small and medium businesses today For the
above reasons, so I decided to choose the theme: "Management System with barcode
mini supermarket" Software sales outside the function also prints bar codes
according to standard sizes EAN-13 code and can predict sales in the future
In the process of implementing themes they have used the knowledge learned in school, so the children in the new system programming language C# Net and SQL Server database management system in 2008 to build the application After the system
is fully constructed reality can be applied to the management of mini supermarkets in the locality in the city of Can Tho
The result of the implementation process:
• Build successful "software management system using barcode mini
supermarket"
• Create multiple barcode with different sizes (bar code scanner identifies 100%)
• Forecast sales in the future
Trang 9Hệ thống quản lý siêu thị mini bằng mã vạch
I ĐẶT VẤN ĐỀ
Ngày nay, khi cuộc sống người dân đang từng bước được nâng cao thì nhu cầu
về mua sắm, vui chơi giải trí ngày càng được chú trọng Do đó, các doanh nghiệp cũng quan tâm ưu tiên cho việc phát triển các khu thương mại mua sắm nhằm đáp ứng nhu cầu tiêu dùng của người dân Siêu thị mini là một hình thức khu mua sắm có hiệu quả trong việc đáp ứng các nhu cầu tiêu dùng của mọi người thuộc mọi tầng lớp Với sự phát triển ngày càng rộng, yêu cầu tin học hóa các quy trình nghiệp vụ quản lý bán hàng trong siêu thị là điều tất yếu, nhằm mục đích làm đơn giản hóa các nghiệp vụ nhập hàng, xuất hàng và thống kê số lượng hàng hóa cũng như làm cho khả năng phục
vụ khách hàng trở nên nhanh chóng và hiệu quả
Ta thử xét xem nếu quản lý bán hàng thủ công thì quy trình bán hàng nó sẽ như thế nào: siêu thị sẽ quản lý bán hàng mình theo kho, khi nhập hàng thì nhân viên sẽ viết phiếu nhập với đầy đủ các thông tin mã hàng, tên hàng…phải dùng máy tính tay
để cộng các khoản tiền nhằm chi trả cho nhà cung cấp, hàng hóa sau khi vào kho sẽ được nhân viên kiểm tra lại thông qua phiếu nhập nhằm xác định chính xác các hàng hóa nhập vào Khi khách hàng đến mua hàng, nhân viên thu ngân có nhiệm
vụ phải viết hóa đơn cho khách hàng nhằm liệt kê ra tất cả hàng hóa mà khách hàng đã mua và tính tổng số tiền mà khách hàng chi trả, tất cả các hoạt động này thực hiện điều rất tốn nhiều thời gian đồng thời việc lưu giữ các hóa đơn nhập hàng, xuất hàng rất phức tạp
Nếu số lượng khách hàng đến quá đông cùng mua hàng thì việc tính tiền và viết hóa đơn thanh toán sẽ mất nhiều thời gian làm khách hàng phải chờ đợi Và đây là điều mà các nhà quản lý siêu thị không hề muốn Để giải quyết vấn đề trên thì việc phát triển một phần mềm “Quản lý bán hàng bằng mã vạch” là một điều tối ưu
Phần mềm này cũng là công cụ quản lý hàng hóa hiệu quả, làm đơn giản hóa việc lập các hóa đơn giấy tờ cũng như việc lưu trữ, cung cấp thông tin một cách nhanh chóng và chính xác làm cơ sở cho việc ra quyết định trong kinh doanh, phục vụ hữu hiệu cho việc quản lý và phát triển siêu thị
II LỊCH SỬ GIẢI QUYẾT VẤN ĐỀ
Hiện nay trên địa bàn thành phố Cần Thơ có nhiều siêu thị mini được dựng nên như: Siêu thị tự chọn Ngọc Tiên, siêu thị mini mart Phương Thịnh, siêu thị mini mart Toàn Tâm…tất cả đều là một hệ thống chuyên mua bán với nhiều hình thức: bán sỉ, bán lẻ…Nguồn hàng chủ yếu do các nhà cung cấp, các nhà sản xuất hoặc các công ty trong và ngoài nước cung cấp Khách hàng của siêu thị thường là những người tiêu dùng, các tiệm tạp hóa nhỏ Trong siêu thị bán đa dạng các mặt hàng: hàng may mặc, nước giải khát, đồ dùng gia đình, dụng cụ học tập, các thiết bị điện….Trong siêu thị có
Trang 10Hệ thống quản lý siêu thị mini bằng mã vạch
các quầy bán hàng, quầy thu ngân…Do hàng hóa nhiều với số lượng lớn nên đa số các siêu thị điều sử dụng phần mềm quản lý siêu thị bằng mã vạch để giải quyết vấn đề Phần mềm quản lý hàng hóa siêu thị bằng mã vạch được kế thừa từ các mô hình hoạt động của các siêu thị hiện có trên thực tế Đồng thời ứng dụng công nghệ mới bằng việc quản lý hàng hóa thông qua mã vạch với mục đích làm cho chương trình có thể đáp ứng được nhu cầu quản lý ngày càng phức tạp với khối lượng thông tin ngày càng lớn dễ dàng triển khai cũng như trong ứng dụng
Khi xã hội ngày càng phát triển đồng thời có nhiều siêu thị được thành lập lên nên sự cạnh tranh của các siêu thị là một điều không thể tránh khỏi, do đó cần phải bổ sung một số vấn đề mới cho chức năng quản lý hàng hóa được hoàn thiện hơn
- Vấn đề liên quan việc quản lý hàng hóa trong siêu thị
Yêu cầu việc nhập, xuất hàng hóa nhanh chóng, chính xác và hiệu quả
Giải pháp: Những mặt hàng khi nhập từ những nhà cung cấp về nếu chưa có mã vạch đòi hỏi phải tạo được phần mềm thiết kế mã vạch bao gồm thông tin: mã sản phẩm, tên sản phẩm, giá sản phẩm…và có chức năng in ra mã vạch theo nhiều kích cỡ khác nhau tùy theo sản phẩm lớn hay nhỏ Với chức năng đó thì khi nhập, xuất hàng chỉ sử dụng máy quét mã vạch để lưu lại thông tin mặt hàng
- Vấn đề hóa đơn bán hàng
Yêu cầu việc bán hàng có chương trình cộng điểm tích lũy cho khách hàng đối với những khách hàng có thẻ khách hàng thân thiết Những hóa đơn bán sỉ, nhân viên trong siêu thị có thể giao hàng cho khách hàng ở xa khi khách hàng yêu cầu
Giải pháp: Quy định rõ mức tiền trong hóa đơn của khách hàng khi khách hàng mua hàng với số tiền từ 100 000 đồng trở lên (100 000đ 1 điểm) Khi khách hàng mua hàng với số lượng nhiều thì phần mềm sẽ có chức năng bán hàng với giá sỉ và lưu lại thông tin khi khách hàng cần giao hàng tận nơi
- Vấn đề liên quan đến nghiệp vụ báo cáo thống kê
Yêu cầu lập báo cáo thống kê phải dựa theo nhiều tiêu chí khác nhau
Giải pháp: xây dựng chức năng báo cáo thống kê theo các tiêu chí: mặt hàng bán chạy nhất trong tháng; thống kê doanh thu theo ngày, tháng; thống kê hàng tồn kho
- Vấn đề hỗ trợ khách hàng tìm hiểu thông tin sản phẩm
Muốn biết được siêu thị hiện đang có những mặt hàng nào có thể đáp ứng được nhu cầu mua sắm của mình, khách hàng phải trực tiếp đến các quầy hàng để xem, như thế sẽ gây khó khăn cho khách hàng và tốn nhiều thời gian Ngoài ra, siêu thị có nhiều quầy hàng trong một khuôn viên rộng lớn, nếu hàng hóa không được sắp xếp theo chủng loại một cách thuận tiện cho việc tìm kiếm thì khách hàng sẽ không tìm thấy được mặt hàng họ cần Mặc dù các sản phẩm trong siêu thị có thể đáp ứng được nhu cầu của họ
Giải pháp: Cung cấp chức năng hỗ trợ khách hàng tìm kiếm sản phẩm theo nhóm hàng Chức năng này cho phép khách hàng xem các thông tin cơ bản về mặt hàng mà
họ cần tìm bao gồm: nhãn hiệu, giá cả, thể tích, trọng lượng, quầy hàng… Do đó,
Trang 11Hệ thống quản lý siêu thị mini bằng mã vạch
khách hàng có thể xác định được mặt hàng họ cần, phù hợp với khả năng tài chính mà không phải tốn nhiều thời gian để tìm kiếm
III MỤC TIÊU
Mục tiêu của đề tài “ Hệ thống quản lý siêu thị mini bằng mã vạch” có thể ứng
dụng vào việc bán hàng của một số siêu thi mini vừa và nhỏ, tự động hóa các khâu nhập liệu bằng tay trong quá quản lý hàng hóa củng như bán hàng Đồng thời đáp ứng được một số chức năng sau:
•Quản lý danh mục (mặt hàng, ngành hàng, nhóm hàng, nhà cung cấp, khách hàng, nhân viên, hình thức thanh toán, hình thức khuyến mãi)
•Quản lý nhập, xuất kho
•Quản lý hóa đơn bán sỉ, bán lẻ
•Quản lý danh sách các phiếu thu, phiếu chi
•Quản lý việc thống kê mặt hàng bán chạy theo ngành, nhóm hàng
•Quản lý in mã vạch theo chuẩn Code EAN-13
•Dự báo doanh thu bán hàng của các tháng tiếp theo
IV PHẠM VI ĐỀ TÀI
Qua quá trình tìm hiểu và nghiên cứu về mô hình hoạt động của các siêu thị mini trên địa bàn thành phố Cần Thơ đa số các mặt hàng trong siêu thị điều được quản lý bằng mã vạch và theo chuẩn Code EAN-13 Phạm vi ứng dụng của để tài quản lý hàng hóa bằng cách xây dựng phần mềm với một số tính năng sau:
- Quản lý nhân viên: nhân viên trong siêu thị được quản lý với những thông tin:
mã số nhân viên, tên nhân viên, ngày sinh, giới tính, địa chỉ…
- Quản lý khách hàng thân thiết: mã khách hàng, tên khách hàng, ngày sinh, địa chỉ, số điện thoại
- Quản lý mặt hàng trong siêu thị: mặt hàng trong siêu thị được quản lý với những thông tin sau: mã mặt hàng, tên mặt hàng, giá bán lẻ, giá bán sỉ, đơn vị tính…
- Quản lý nhập xuất kho: mỗi khi nhập xuất hàng hóa trong siêu thị cần lưu trữ thông tin: mã phiếu nhập, ngày nhập xuất, tổng giá trị nhập xuất…
- Quản lý kho:
+ Nhập hàng theo hóa đơn mua hàng của siêu thị
+ Hàng được nhập kho dựa trên: mã hàng, ngành hàng, số lượng, đơn giá + Hàng xuất ra quầy cũng được theo dõi bởi mã hàng, tên hàng, ngành hàng, số lượng xuất
+ Báo cáo lượng hàng xuất theo định kỳ
+ Báo cáo hàng tồn và giá trị tồn trong kỳ
+ Báo cáo nhập hàng theo định kỳ
- Quản lý bán lẻ:
+ Lập hóa đơn bán hàng theo đơn giá bán lẻ
Trang 12Hệ thống quản lý siêu thị mini bằng mã vạch
+ Báo cáo doanh thu theo ngày, tháng
- Quản lý bán sỉ:
+ Lập hóa đơn bán hàng theo đơn giá sỉ với số lượng nhiều
+ Báo cáo doanh thu theo ngày, tháng
- Quản lý khách hàng thân thiết:
+ Lập phiếu khách hàng thân thiết và tích lũy điểm cho khách hàng
- Quản lý phiếu thu khi khách hàng mua sỉ và nhân viên giao hàng tận nơi khi khách hàng có yêu cầu
+ Lập phiếu thu khi khách hàng cần giao hàng
2 Thu thập tài liệu
- Tham khảo đề tài luận văn của các sinh viên khóa trước
- Trực tiếp lại các siêu thị Mini Ngọc Tiên, siêu thị Ngọc Anh… tham khảo các mặt hàng có in mã vạch và tìm hiểu quy trình nhập hàng và xuất hàng của các siêu thị
- Tìm hiểu cách in mã vạch của một số Siêu thị mini
- Tìm hiểu và phân tích các biểu mẫu do giáo viên hướng dẫn cung cấp
- Tham khảo giáo viên hướng dẫn về cách thức quản lý hàng hóa của một số siêu thị mini trên địa bàn Cần Thơ
- Tìm hiểu các ngôn ngữ lập trình và chọn một ngôn ngữ thích hợp để cài đặt chương trình
3 Phân tích và thiết kế chi tiết
- Phân tích thiết kế các mô hình CDM, PDM, LDM, DFD
- Phân tích thiết kế chương trình
4 Thực nghiệm
- Thiết kế mô hình giải thuật:
+ Thiết kế mô hình CDM, DFD
+ Thiết kế sơ đồ chức năng
+ Thiết kế các lưu đồ giải thuật
- Môi trường cài đặt:
Sử dụng phần mềm:
Trang 13Hệ thống quản lý siêu thị mini bằng mã vạch
•C#.NET 2012 làm ngôn ngữ lập trình
•Hệ quản trị CSDL SQL Server 2008 để thiết kế CSDL
•Sử dụng chương trình PowerDesigner 15.1, Star UML, Windesign để vẽ các mô hình: CDM, LDM, PDM, DFD
•Một số phần mềm khác: Photoshop CS6, paint…
•Tích hợp công cụ Crystal report để tạo báo cáo thống kê
- Nhập liệu và kiểm thử: Cài đặt phần mềm, chạy thử nghiệm và kiểm tra lỗi và
khắc phục lỗi, ứng dụng in mã vạch cho mặt hàng và quét mã vạch
Trang 14Hệ thống quản lý siêu thị mini bằng mã vạch
I NGÔN NGỮ LẬP TRÌNH C#
1 Giới thiệu ngôn ngữ lập trình C#
Ngôn ngữ C# khá đơn giản, chỉ khoảng 80 từ khóa và hơn mười mấy kiểu dữ liệu được xây dựng sẵn Tuy nhiên, ngôn ngữ C# có ý nghĩa cao khi nó thực thi những khái niệm lập trình hiện đại C# bao gồm tất cả những hỗ trợ cho cấu trúc, thành phần component, lập trình hướng đối tượng Những tính chất đó hiện diện trong một ngôn ngữ lập trình hiện đại Và ngôn ngữ C# hội đủ những điều kiện như vậy, hơn nữa nó được xây dựng trên nền tảng của hai ngôn ngữ mạnh nhất là C++ và Java
Trọng tâm của ngôn ngữ hướng đối tượng là lớp Những lớp thì định nghĩa những kiểu dữ liệu mới, cho phép người phát triển mở rộng ngôn ngữ để tạo mô hình tốt hơn để giải quyết vấn đề Ngôn ngữ C# chứa những từ khóa cho việc khai báo những kiểu lớp đối tượng mới và những phương thức hay thuộc tính của lớp, và cho việc thực thi đóng gói (encapsulation), sự kế thừa (inheritance), và đa hình (polymorphism), ba thuộc tính cơ bản của bất cứ ngôn ngữ lập trình hướng đối tượng C# là ngôn ngữ mạnh mẽ và cũng mềm dẻo, 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 … Định nghĩa một lớp trong ngôn ngữ C# không đòi hỏi phải chia ra tập tin tiêu đề
và tập tin nguồn giống như trong ngôn ngữ C++ Trong ngôn ngữ C#, những cấu trúc cũng được hỗ trợ
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ả
2 Ngôn ngữ C# và một số ngôn ngữ khác
Chúng ta đã từng nghe đến những ngôn ngữ khác như Visual Basic, C++ và Java
Có lẽ chúng ta cũng tự hỏi sự khác nhau giữa ngôn ngữ C# và những ngôn ngữ đó Và cũng tự hỏi tại sao lại chọn ngôn ngữ này để học mà không chọn một trong những ngôn ngữ kia Có rất nhiều lý do và chúng ta hãy xem một số sự so sánh giữa ngôn ngữ C# với những ngôn ngữ khác giúp chúng ta phần nào trả lời được những thắc mắc Microsoft nói rằng C# mang đến sức mạnh của ngôn ngữ C++ với sự dễ dàng của ngôn ngữ Visual Basic
Chúng ta có thể viết nhiều chương trình với ít mã nguồn hơn nếu dùng C#
Trang 15Hệ thống quản lý siêu thị mini bằng mã vạch
Mặc dù C# loại bỏ một vài các đặc tính của C++, nhưng bù lại nó tránh được những lỗi mà thường gặp trong ngôn ngữ C++ Điều này có thể tiết kiệm được hàng giờ hay thậm chí hàng ngày trong việc hoàn tất một chương trình
Một điều quan trọng khác với C++ là mã nguồn C# không đòi hỏi phải có tập tin header.Tất cả mã nguồn được viết trong khai báo một lớp
C# cũng từ bỏ ý tưởng đa kế thừa như trong C++ Và sự khác nhau khác là C# đưa thêm thuộc tính vào trong một lớp giống như trong Visual Basic Và những thành viên của lớp được gọi duy nhất bằng toán tử “.” khác với C++ có nhiều cách gọi trong các tình huống khác nhau
Cũng giống như C/C++, C# là ngôn ngữ phân biệt chữ thường với chữ hoa, điều này có nghĩa rằng hai câu lệnh writeLine thì khác với WriteLine và cũng khác với WRITELINE Đáng tiếc là C# không giống như VB, môi trường phát triển C# sẽ không tự sửa các lỗi này
Một ngôn ngữ khác rất mạnh và phổ biến là Java, giống như C++ và C# được phát triển dựa trên C Điểm giống nhau C# và Java là cả hai cùng biên dịch ra mã trung gian: C# biên dịch ra MSIL còn Java biên dịch ra bytecode Sau đó chúng được thực hiện bằng cách thông dịch hoặc biên dịch just-in-time trong từng máy ảo tương ứng Tuy nhiên, trong ngôn ngữ C# nhiều hỗ trợ được đưa ra để biên dịch mã ngôn ngữ trung gian sang mã máy C# chứa nhiều kiểu dữ liệu cơ bản hơn Java và cũng cho phép nhiều sự mở rộng với kiểu dữ liệu giá trị
Tương tự như Java, C# cũng từ bỏ tính đa kế thừa trong một lớp, tuy nhiên mô hình kế thừa đơn này được mở rộng bởi tính đa kế thừa nhiều giao diện
II HỆ QUẢN TRỊ CSDL SQL SERVER
1 Hệ quản trị CSDL là gì?
Một hệ quản trị CSDL là một hệ thống các chương trình hổ trợ các tác vụ quản
lý, khai thác dữ liệu theo mô hình dữ liệu quan hệ
2 Giới thiệu về sql server
SQL (Structured Query Language) là ngôn ngữ dùng để truy vấn CSDL, hay nói cách khác đây là ngôn ngữ truy vấn cho phép lấy thông tin về từ các bảng dữ liệu SQL Server là một hệ thống quản lý CSDL (Relational Database Management System (RDBMS) ) sử dụng Transact-SQL để trao đổi dữ liệu giữa Client computer và SQL Server computer Một RDBMS bao gồm databases, database engine và các ứng dụng dùng để quản lý dữ liệu và các bộ phận khác nhau trong RDBMS
SQL Server được tối ưu để có thể chạy trên môi trường CSDL rất lớn (Very Large Database Environment) lên đến Tera-Byte và có thể phục vụ cùng lúc cho hàng ngàn user SQL Server có thể kết hợp "ăn ý" với các server khác như Microsoft Internet Information Server (IIS), E-Commerce Server, Proxy Server
SQL Server phát triển dựa trên nhiều ấn bản như: Enterprise, Standard, Personal, Developer, Desktop Engine, Win CE, Trial
Trang 16Hệ thống quản lý siêu thị mini bằng mã vạch
Các đặc điểm của SQL:
- SQL là ngôn ngữ được sử dụng cho các hệ quản trị cơ sở dữ liệu (CSDL)
- SQL cho phép thao tác với CSDL
- SQL là ngôn ngữ chuẩn được đưa ra bởi ANSI (American National Standards Institude)
- SQL có thể thực thi câu truy vấn với CSDL
- SQL có thể lấy dữ liệu ra từ CSDL
- SQL có thể chèn những bản ghi vào CSDL
- SQL có thể xóa những bản ghi trong CSDL
- SQL có thể cập nhật thêm những bản ghi vào CSDL
- SQL rất dễ học
3 Các đối tượng CSDL
Chúng bao gồm các đối tượng như : database, table, view, stored procedure … nêu trên cùng một số CSDL khác
SQL server quản lý cùng lúc nhiều CSDL, chia làm 2 loại :
- CSDL hệ thống (system databases ): dùng để lưu trữ thông tin quản lý toàn bộ
hệ thống SQL server Có 4 CSDL hệ thống, đó là: master, model, tempdb, msdb
- CSDL người dùng ( user databases ) : là CSDL do người dùng tạo ra
III CÔNG NGHỆ KỸ THUẬT
1 Giới thiệu về ADO.NET
ADO.NET là một tập các lớp nằm trong bộ thư viện lớp cơ sở của NET Framework, cho phép các ứng dụng windows (như C#, VB.NET) hay ứng dụng web (như ASP.NET) thao tác dễ dàng với các nguồn dữ liệu Thông thường, các nguồn dữ liệu là một cơ sở dữ liệu, nhưng nó cũng có thể là một file văn bản, bảng tính Excel, hoặc một tập tin XML
2 Mục tiêu chính của ADO.NET
Cung cấp các lớp để thao tác với CSDL
Tích hợp chặt chẽ với XML (Extensible Markup Language) nghĩa là chúng ta
có thể nạp dữ liệu từ một tệp XML và thao tác như một CSDL, sau đó cũng có thể lưu kết quả ngược trở lại tệp XML
Tương tác với nhiều nguồn dữ liệu thông qua mô tả dữ liệu chung
Tối ưu truy cập nguồn dữ liệu (OLE DB & SQL server)
Làm việc trên môi trường Internet
Trang 17Hệ thống quản lý siêu thị mini bằng mã vạch
4 Các lớp của ADO.NET
Các lớp của ADO.NET được đặt trong Namespace:
Do đề tài này sử dụng SQL Server 2008 để lưu trữ dữ liệu lên ở đây chỉ đề cập
đến lớp System.Data.SqlClient, vì lớp này dùng để truy xuất đến CSDL SQL Server
Các hàm (đối tượng) thường sử dụng trong lớp này là:
- Đối tượng SqlConnection
+ Chức năng: dùng để tạo kết nối tới SQL Server
+ Cách khai báo:
SqlConnection con = new SqlConnection("Data Source = ServerName; Initial Catalog = DatabaseName; Integrated Security = true");
Hoặc có thể khai báo như sau:
SqlConnection con = new SqlConnection("Data Source=ServerName;Initial Catalog=DatabaseName; User ID=YourUserID; Password=YourPassword");
- Đối tượng SqlCommand
+ Chức năng: dùng để thực thi câu truy vấn SQL (select, insert, update, delete) + Cách khai báo:
Select dữ liệu
1 Khởi tạo SqlCommand đồng thời thêm vào câu truy vấn SQL và đối tượng kết nối conn
SqlCommand cmd = new SqlCommand("select CategoryName from Categories", con);
2 Gọi thực thi để lấy kết quả truy vấn
SqlDataReader rdr = cmd.ExecuteReader();
Insert dữ liệu
1 Khai báo câu truy vấn insert
string insertString = @"insert into Categories(CategoryName,
Description)values ('Miscellaneous', 'Whatever doesn''t fit elsewhere')";
2 Khởi tạo đối tượng SqlCommand với câu truy vấn insertString và kết nối conn
SqlCommand cmd = new SqlCommand(insertString, con);
3 Gọi ExecuteNonQuery để gửi câu truy vấn insertString
cmd.ExecuteNonQuery();
Trang 18Hệ thống quản lý siêu thị mini bằng mã vạch
Update dữ liệu
1 Khai báo câu truy vấn update
string updateString = @" update Categories set CategoryName = 'Other'
where CategoryName = 'Miscellaneous'";
2 Khởi tạo đối tượng SqlCommand với câu truy vấn updateString
SqlCommand cmd = new SqlCommand(updateString);
3 Thiết lặp thuộc tính Connection
cmd.Connection = con;
4 Gọi ExecuteNonQuery để gửi câu truy vấn updateString
cmd.ExecuteNonQuery();
Delete dữ liệu
1 Khai báo câu truy vấn delete
string deleteString = @"delete from Categories where CategoryName = 'Other'";
2 Khởi tạo đối tượng Sqlcommand
SqlCommand cmd = new SqlCommand();
3 Thiết lặp thuộc tính CommandText
- Đối tượng SqlDataAdapter
+ Chức năng: dùng để đưa dữ liệu từ một hay nhiều bảng vào đối tượng DataTable thông qua phương thức Fill
+ Cách khai báo:
1 Khởi tạo đối tượng SqlDataAdaptervới câu truy vấn SQl và kết nối conn
SqlDataAdapter sqlDataAdapter = new SqlDataAdapter (" select CategoryName from Categories ", con);
2 Khởi tạo đối tượng DataTable
DataTable dataTable =new DataTable ;
3 Điền dữ liệu từ SqlDataAdapter vào DataTable
sqlDataAdapter.Fill(dataTable) ;
- Đối tượng SqlReader : cung cấp một data stream tới kết quả
- Đối tượng SqlError : lưu trữ thông tin về lỗi và cảnh cáo (warning)
- Đối tượng SqlException : các ngoại lệ trong trường hợp SQL Server lỗi
- Đối tượng SqlParameter : tham số biến command
- Đối tượng SqlTransaction : transaction của SQL Server
Trang 19Hệ thống quản lý siêu thị mini bằng mã vạch
IV TÌM HIỂU VỀ MÃ VẠCH
1 Phát triển hệ thống thông tin với mã vạch
Sự xuất hiện của mã số, mã vạch đã đem đến một kỉ nguyên mới về việc trao đổi thông tin chính xác Chúng là một công cụ cho phép các công ty trên khắp thế giới trao đổi thông tin với khách hàng hay các bộ phận trong doanh nghiệp một cách nhanh chóng và chính xác mã không cần văn bản Công cụ ứng dụng này đang phát triển một cách nhanh chóng
Đây là một hệ thống sử dụng công nghệ mã vạch trong việc lưu trữ, xữ lý và biểu diễn thông tin một cách nhanh chóng Nó kết hợp các phần cứng, phần mềm để tạo ra sản phẩm đáp ứng nhu cầu của các cá nhân và tổ chức
Từ việc ứng dụng mã vạch làm cho hệ thống thông tin ngày càng phát triển nó sẽ
tự động hóa các khâu nhập, xuất dữ liệu
2 Công nghệ mã vạch
Mã số mã vạch (MSMV) là một trong các công nghệ nhận dạng và thu thập dữ liệu tự động các đối tượng là sản phẩm, dịch vụ…dựa vào việc ấn định một mã số (hoặc chữ số) cho đối tượng cần phân định và thể hiện mã đó dưới dạng mã vạch để thiết bị (máy quét) có thể đọc được
Mã số mã vạch được thu nhận bằng một máy quét mã vạch, là một máy thu nhận hình ảnh của mã vạch in trên các bề mặt và chuyển thông tin chứa trong mã vạch đến máy tính hay các thiết bị cần thông tin này Nó thường có một nguồn sáng kèm theo thấu kính, để hội tụ ánh sáng lên mã vạch, rồi thu ánh sáng phản xạ về một cảm quang chuyển hóa tín hiệu ánh sáng thành tín hiệu điện Ngoài ra, nhiều máy quét mã vạch còn có thêm mạch điện tử xử lý tín hiệu thu được từ cảm quang để chuyển thành tín hiệu phù hợp cho kết nối với máy tính
3 Phân loại mã vạch và các chuẩn mã vạch
Tùy theo dung lượng thông tin, dạng chức năng thông tin được mã hóa cũng như mục đích sử dụng mà người ta chia ra làm nhiều loại, trong đó có các dạng thông dụng hiện có trên thị trường mà ta thấy gồm có: UPC, EAN, Code 39, Interleaved 2 hoặc 5, Codabar và Code 128, các loại mã 2D Ngoài ra, trong một số mã vạch người ta còn phát triển nhiều phiên bảng khác nhau, có mục đích sử dụng khác nhau Như UPC có version là UPC-A, UPC-B, UPC-C, UPC-D và UPC-E; EAN có các version EAN-8, EAN-13,EAN-14; Code 128 gồm có code 128-Auto, code 128-A,code-128-B, code-128-C
UPC (Universal Product Code)
UPC gồm có 2 phần: phần mã vạch mà máy có thể đọc được và phần số mà con người có thể đọc được
Số của UPC gồm 12 ký số, không bao gồm ký tự Đó là các mã số dùng để nhận diện mỗi một sản phẩm tiêu dùng riêng biệt
Trang 20Hệ thống quản lý siêu thị mini bằng mã vạch
Nhìn ký hiệu UPC như hình bên ta thấy tổng cộng gồm 12 ký số:
Ký số thứ 1: Ở đây là số 0, gọi là ký số hệ thống số (number system digit) hoặc còn
gọi là “Family code” Nó nằm trong phạm vi của 7 con số định rõ ý nghĩa và chủng lọai của sản phẩm như sau:
* 5 - Phiếu lãnh hàng hóa
* 4 - Dành cho người bán lẻ sử dụng
* 3 - Thuốc và các mặt hàng có liên quan đến y tế
* 2 - Các món hàng nặng tự nhiên như thịt và nông sản
* 0, 6, 7 - Gán cho tất cả các mặt hàng khác như là một phần nhận diện của nhà sản xuất
Năm ký số thứ 2: Trong mẫu này, tượng trưng là 12345, chỉ mã người bán (Vendor
Code), mã doanh nghiệp hay mã của nhà sản xuất (Manufacturer code) Ở Hoa kỳ, mã này được cấp bởi hiệp hội UCC (The Uniform Code Council) và mã được cấp cho người bán hoặc nhà sản xuất là độc nhất Như vậy khi hàng hóa lưu thông trên thị trường bằng mã UPC thì chỉ cần biết được 5 ký số này là có thể biết được xuất xứ của hàng hóa
Năm ký số kế tiếp: Dành cho người bán gán cho sản phẩm của họ Người bán tự tạo
ra 5 ký số này theo ý riêng của mình để mã hóa cho sản phẩm
Ký số cuối cùng: Ở đây là số 5, là ký số kiểm tra, xác nhận tính chính xác của toàn bộ
số UPC
UPC được phát triển thành nhiều phiên bản (version) như A, B,
UPC-C, UPC-D và UPC-E trong đó UPC-A được coi như phiên bản chuẩn của UPUPC-C, các phiên bản còn lại được phát triển theo những yêu cầu đặc biệt của ngành công nghiệp
EAN (European Article Number)
EAN là bước phát triển kế tiếp của UPC Về cách mã hóa nó cũng giống hệt như UPC nhưng về dung lượng nó gồm 13 ký số trong đó 2 hoặc 3 ký số đầu tiên là ký số
“mốc”, dùng để biểu thị cho nước xuất xứ Các ký số này chính là “mã quốc gia” của sản phẩm được cấp bởi Tổ chức EAN quốc tế (EAN International Organization)
EAN này được gọi là EAN-13 để phân biệt với phiên bản EAN-8 sau này gồm 8
ký số
Trang 21Code 39 được phát triể
Nó không có chiều dài cố đị
thông tin hơn bên trong nó Do tính linh h
rãi trong bán lẻ và sản xuất B
đến 9 và 7 ký tự đặc biệt
Code 128
INTERLEAVED 2 OF 5
Interleaved 2 of 5 là m
Ưu điểm của Interleaved 2 of 5 l
nên có thể lưu trữ được nhiề
UPC và EAN dù là 2 lọai mã vạch có tính chất chuyên nghiệp và qu
à dung lượng có giới hạn và chỉ mã hóa được số, không m
c phát triển sau UPC và EAN là ký hiệu chữ và số thông d
ố định như UPC và EAN do đó có thể lưu tr
n bên trong nó Do tính linh họat như vậy, Code 39 được ư
ả ất Bộ ký tự này bao gồm tất cả các chữ hoa, các ký s
khác
INTERLEAVED 2 OF 5
Interleaved 2 of 5 là một lọai mã vạch chỉ mã hóa ký số chứ không m
a Interleaved 2 of 5 là nó có độ dài có thể thay đổi được v
ợc nhiều lượng thông tin hơn trong một khỏang không gian không
ạch ngày càng quan tâm đến mã vạch 2 chiều (2D Barcode) vđộc đáo của nó không có mặt trong các ký hiệ
ệu 2 chiều nhằm vào ba ứng dụng chính:
ên các món hàng với kích thước nhỏ: Nếu in mã vạch tuyế
ch 1D thông dụng, trên các món hàng nhỏ thì thường gặ
ều (2D Barcode) vì
t trong các ký hiệu tuyến tính
ạch tuyến tính, tức là ờng gặp trở ngại về
Trang 22Hệ thố
GVHD: Nguyễn Thái Nghe
Với sự phát triển của m
Quét tầm xa: Khi sử dụ
cao mà có thể in ở độ phân giả
các mẫu ký tự, ký hiệu và các con s
trắng biểu diễn thông tin số
Tìm hiểu mã vạch EAN
Về dung lượng nó gồm 13 ký s
dùng để biểu thị cho nước xu
phẩm được cấp bởi tổ chức EAN qu
Cấu trúc của EAN-13
i dung thông tin: Công nghệ 2 chiều cho phép mã hóa 1 lượng lớn thông tin trong
ẹ ả lượng thông tin lưu trong cùng một ký hiệu m
ữ ệu nhỏ gọn (trong ngành gọi là PDF - Portable Data File) Do
ã 2D, có thể không cần đến CSDL bên trong máy vi tính
ử dụng các ký hiệu 2D, máy in không đòi hỏi in
độ phân giải thấp vì trong ký hiệu 2D, các mảng điể
ớ Điều này dẫn đến việc cho phép quét mã vạch 2D
n 50 feet (khoảng 15m)
u barcode 2D có thể được chia làm 2 loại:
ếp chồng (Stacked Codes): như Code 16K, Code 49, PDF
ận (Matrix Codes): như Data Matrix, Maxicode,Softstrip,
ã vạch
(Barcode) theo định nghĩa là phương pháp lưu trữ và truy
ọi là ký mã vạch (Barcode symbology) Ký mã v
ch, là 1 ký hiệu tổ hợp các khoảng trắng và vạch thẳng
u và các con số Sự thay đổi trong độ rộng của v hay chữ số dưới dạng mà máy có thể đọc đư
ch EAN-13
m 13 ký số trong đó 2 hoặc 3 ký số đầu tiên là ký s
c xuất xứ Các ký số này chính là “ mã quố
c EAN quốc tế (EAN International Organization)
ên trong máy vi tính
ỏi in ở độ phân giải
ả điểm (pixel) hoặc ạch 2D ở 1 khoảng
Code 16K, Code 49, PDF-417
Data Matrix, Maxicode,Softstrip,
truyền tải thông
ch (Barcode symbology) Ký mã vạch hay gọi
ng để biểu diễn
a vạch và khoảng được
u tiên là ký số “mốc”,
ốc gia” của sản (EAN International Organization)
Trang 23Hệ thống quản lý siêu thị mini bằng mã vạch
Ta dựa vào giá trị của số thứ 13 trong mã số để xác định tính chẳn lẻ của 6 số tiếp theo ta quy ước A là số lẻ và B là số chẳn
Trong mã vạch tiêu chuẩn EAN-13 vì số 13( số đầu tiên là ở bên trái) là số 8 nên
6 số bên trái được thể hiện theo bảng sau:
Bảng: Xác định 6 số phía bên trái
Tổng số môđun trong mã vạch tiêu chuẩn EAN-13 là:
12 số( bên trái và bên phải) x 7 môđun = 84
Mỗi giá trị số được thực hiện trong mã vạch bằng 7 môđun theo 3 bộ mã A,B,C như sau:
6 số bên trái thể hiện theo
bộ mã A và B
6 số bên phải thể hiện theo
bộ mã C Vạch biên
(Bắt đầu)
Vạch biên (Kết thúc) Vạch giữa
Trang 24Hệ thống quản lý siêu thị mini bằng mã vạch
Giá trị số Thể hiện theo bộ mã
Bảng: Chuyển đổi giá trị số sang mã nhị phân
Cấu tạo vạch biên và vạch giữa được nêu trong bảng sau:
Số môđun Bộ mã
Các kích thước định danh của mã vạch EAN-13:
Trong kích thước chuẩn (độ phóng đại 1) độ rộng của mỗi môđun là 0.33mm
Độ rộng của mã vạch như sau:
- Độ rộng vạch của mỗi chữ số: 7 môđun = 2.31 mm
- Độ rộng của vạch biên: 3 môđun =0.99 mm
- Độ rộng của vạch giữa: 5 môđun =1.65 mm
Cách xác định chữ số kiểm tra
+Mã số EAN-13 là một dãy số gồm 13 chữ số nguyên (từ số 0 đến số 9), trong dãy số chia ra làm 4 nhóm, mỗi nhóm có ý nghĩa như sau :
- Nhóm 1: Từ trái sang phải, ba chữ số đầu là mã số về quốc gia
- Nhóm 2: Tiếp theo gồm bốn chữ số là mã số về doanh nghiệp
- Nhóm 3: Tiếp theo gồm năm chữ số là mã số hàng hóa
- Nhóm 4: Số cuối cùng(bên phải) là số về kiểm tra
P M I C
8 93 5002 30101 0
Trang 25Hệ thống quản lý siêu thị mini bằng mã vạch
Theo quy ước trên, số kiểm tra (C) có ý nghĩa về quản lý đối với việc đăng nhập, đăng xuất cảu các loại sản phẩm hàng hóa của từng loại doanh nghiệp Cách xác định (C) được minh họa theo ví dụ sau:
Ví dụ: Mã số 8 9 3 5 0 0 2 3 0 1 0 1 – C
Bước 1 – Xác định nguồn gốc hàng hóa: 893 là mã số hàng hóa của quốc gia
Việt Nam; 5002 là mã số doanh nghiệp thuộc quốc gia Việt Nam; 30101 là mã số hàng hóa của doanh nghiệp
Lấy giá trị của (4) làm tròn theo bội số của 10 (60) sát nhất với giá trị của (4) trừ
đi giá trị của (4) ta có : 60 – 60 = 0 Như vậy C =0
Trong trường hợp này mã số EAN-13 có mã số hàng hóa đầy đủ là :
Trang 26Hệ thống quản lý siêu thị mini bằng mã vạch
- Đầu tiên tạo Class EAN-13 bao gồm:
+ Tạo một số biến quan trọng cần sử dụng trong Class:
Begin
Input CountryCode Input ManufacturerCode
Trang 27Hệ thống quản lý siêu thị mini bằng mã vạch
Các _fWidth, _fHeight, _fFontSize,_fSacle là biến được khởi tạo với kích thước chiều cao, chiều rộng, kiểu chữ, kích cỡ mã vạch
Các biến _aOddLeft, _aEvenLeft, _aRight, _sQuiteZone là tất cả các cơ quan đại diện của chuỗi đồ họa / không gian, đại diện cho các phần khác nhau của một mã vạch EAN-13 Về cơ bản, "1" đại diện cho một đường đen và một '0' đại diện cho một không gian Một phương pháp thay thế để sử dụng một chuỗi có thể được sử dụng một biểu diễn nhị phân, nơi một bit 0 sẽ là một không gian và một bít 1 là một vạch đen _sLeadTail đại diện cho vạch biên và _sSeparator đại diện cho vạch giữa
// Khởi tạo một số biến cần dùng
private float _fWidth = 29.29f;
private float _fHeight = 8.93f;
private float _fFontSize = 6.0f;
private float _fScale = 1.0f;
private string [] _aOddLeft = { "0001101" , "0011001" , "0010011" , "0111101" ,
private string _sQuiteZone = "000000000" ;
private string _sLeadTail = "101" ;
private string _sSeparator = "01010" ;
private string _sCountryCode = "00" ;
private string _sManufacturerCode;
private string _sProductCode;
private string _sChecksumDigit;
+ Viết hàm vẽ mã vạch EAN-13 lên trên picturebox trong winform:
Bước đầu tiên cho chức năng DrawEan13 là tạo ra một thể hiện
của lớp Ean13, và sau đó thiết lập các mã quốc gia, mã nhà sản xuất, mã sản phẩm, và
mã kiểm tra (được tính ở hàm CalculateChecksumDigit) Một khi các thuộc tính được thiết lập, khi thao tác được thực hiện thì tác động chức
năng DrawEan13Barcode được thực hiện, thông qua một đối tượng đồ họa và
một điểm, mà chỉ ra vị trí bắt đầu để vẽ, điều này sẽ tạo ra các mã vạch được rút ra trong hộp hình ảnh bắt đầu từ điểm (0, 0)
private void DrawEan13( )
{
System.Drawing.Graphics g = this picBarcode.CreateGraphics( );
g.FillRectangle( new System.Drawing.SolidBrush(System.Drawing.SystemColors.Control), new Rectangle(0, 0, picBarcode.Width, picBarcode.Height));
// khởi tạo một thể hiện của lớp EAN13
Trang 28Hệ thống quản lý siêu thị mini bằng mã vạch
upc = new Ean13( );
upc.CountryCode = " ";
upc.ManufacturerCode = " ";
upc.ProductCode = " ";
upc.Scale = ( float )Convert.ToDecimal(cboScale.Items [cboScale.SelectedIndex]);
upc.DrawEan13Barcode( g, new System.Drawing.Point( 0, 0 ) ;
g.Dispose( );
}
+ Viết hàm tạo ta số kiểm tra số cuối cùng (ChecksumDigit)
Chức năng đầu tiên DrawEan13Barcode gọi hàm CalculateChecksumDigit,
trong đó sử dụng mã quốc gia, mã nhà sản xuất, và mã sản phẩm để tính toán kiểm tra
tổng hợp của mã vạch
public void CalculateChecksumDigit( )
{
// cộng các mã số của mã quốc gia, nhà sản xuất, mã sản phẩm
string sTemp = this CountryCode + this ManufacturerCode + this ProductCode; int iSum = 0;
int iDigit = 0
for ( int i = sTemp.Length; i >= 1; i )
{
iDigit = Convert.ToInt32( sTemp.Substring( i - 1 1 ) )
// chuyển sang kiểu số
if ( i % 2 == 0 ) // nếu là số chẳn nhân cho 3
int iCheckSum = ( 10 - ( iSum % 10 ) ) % 10;
this ChecksumDigit = iCheckSum.ToString( );
}
+ Viết hàm chuyển các số cá nhân của nhà sản xuất, mã sản phẩm thành
chuổi đại diện của đồ họa mã vạch
Tiếp đến ta sử dụng hàm ConvertToDigitPattern chức năng này có số cá nhân
của mã quốc gia, mã nhà sản xuất, và mã sản phẩm, chuyển đổi chúng thành các chuỗi
mã nhị phân đại diện của đồ họa mã vạch (được xác định trong bảng Chuyển đổi giá trị số sang mã nhị phân)
private string ConvertToDigitPatterns( string inputNumber, string [] patterns)
{
System.Text.StringBuilder sbTemp = new StringBuilder( );
Trang 29Hệ thống quản lý siêu thị mini bằng mã vạch
Các inputNumber sẽ là một trong hai số nhà sản xuất, hoặc mã sản phẩm,
và các mô hình sẽ là_aOddLeft, _aEvenLeft, hoặc mảng _aRight tùy thuộc vào
việc inputNumber là số nhà sản xuất hoặc mã sản phẩm
Các ConvertLeftPatterns được sử dụng để tạo ra các mô hình được xem xét trong bảng xác định số chẵn lẻ Các ConvertLeftPatterns xác định mã quốc gia, và
dựa và mã quốc gia để xác định tính chẳn lẻ của sáu số tiếp theo các thao tác chuyển đổi mã quốc gia thích hợp
private string ConvertLeftPattern( string sLeft )
Trang 30Hệ thống quản lý siêu thị mini bằng mã vạch
Mỗi mã quốc gia có chức năng chuyển đổi riêng biệt của nó CountryCode0 là
một mã vạch UPC-A do đó, nó sẽ chỉ sử dụng các mô hình lẻ chẵn lẻ trong bảng xác
định số chẳn lẻ CountryCode1 qua CountryCode9 từng sử dụng các mô hình cân bằng
thích hợp được xét trong phần xác định số chẵn lẻ
private string CountryCode1( string sLeft )
{
System.Text.StringBuilder sReturn = new StringBuilder( );
sReturn.Append( ConvertToDigitPatterns( sLeft.Substring( 0, 1 ), this _aOddLeft ) );
sReturn.Append( ConvertToDigitPatterns( sLeft.Substring( 1, 1 ), this _aOddLeft ) );
sReturn.Append( ConvertToDigitPatterns( sLeft.Substring( 2, 1 ), this _aEvenLeft ) ) sReturn.Append( ConvertToDigitPatterns( sLeft.Substring( 3, 1 ), this _aOddLeft ) ); sReturn.Append( ConvertToDigitPatterns( sLeft.Substring( 4, 1 ), this _aEvenLeft ) ); sReturn.Append( ConvertToDigitPatterns( sLeft.Substring( 5 1 ), this _aEvenLeft ) );
return sReturn.ToString( );
}
+ Cuối cùng viết hàm DrawEan13Barcode tạo mã vạch kèm theo mã sản phẩm,
tên sản phẩm, đơn giá
Các chức năng sử dụng các chức năng CalculateChecksumDigit để tính toán số
kiểm tra tổng hợp chính xác, hàm ConvertLeftPatterns được thực hiện, và sau đó
là chức năng ConvertToDigitPatterns được sử dụng để chuyển đổi mã sản phẩm và
kiểm tra số tổng của các số mã vạch EAN-13 thành một chuỗi
Khi mã hàng hóa đã được chuyển đổi sang một chuỗi đại diện, các mã sử dụng
chuỗi đại diện để làm cho mã vạch, 1 sẽ tạo ra những vạch mà đen, và 0 sẽ tạo ra các
không gian trống của hình Nếu mã vẽ một hình chữ nhật, nó cũng sẽ đưa vào xem xét
để điều chỉnh hình chữ nhật để cho phép không gian cho số của nhà sản xuất và mã
sản phẩm Một khi mã vạch đầu tiên được tạo ra, các mã sau đó xác định vị trí và tiếp
tục tạo ra
public void DrawEan13Barcode(System.Drawing Graphics g, System.Drawing Point pt)
{
Trang 31Hệ thống quản lý siêu thị mini bằng mã vạch
float width = this Width * this Scale;
float height = this Height * this Scale;
float lineWidth = width / 113f;
System.Drawing.Drawing2D GraphicsState gs = g.Save();
g.PageUnit = System.Drawing GraphicsUnit Millimeter;
g.PageScale = 1;
System.Drawing SolidBrush brush = new
System.Drawing SolidBrush (System.Drawing Color Black);
float xPosition = 0;
System.Text StringBuilder strbEAN13 = new System.Text StringBuilder ();
System.Text StringBuilder sbTemp = new System.Text StringBuilder ();
this _sQuiteZone, this _sLeadTail, sLeftPattern, this _sSeparator,
ConvertToDigitPatterns(sTemp.Substring(7), this _aRight));
string sTempUPC = strbEAN13.ToString();
float fTextHeight = g.MeasureString(sTempUPC, font).Height;
if ((i > 12 && i < 55) || (i > 57 && i < 101))
g.FillRectangle(brush, xPosition+15, yStart, lineWidth, height ,fTextHeight) els
Trang 32Hệ thống quản lý siêu thị mini bằng mã vạch
g.FillRectangle(brush, xPosition+15, yStart, lineWidth, height);
// Vẽ chữ số của mã quốc gia
g.DrawString(sTemp.Substring(0, 1), font, brush, new
System.Drawing PointF (xPosition, yPosition));
xPosition += (g.MeasureString(sTemp.Substring(0, 1), font).Width + 43 * lineWidth) (g.MeasureString(sTemp.Substring(1, 6), font).Width);
g.DrawString(sTemp.Substring(1, 6), font, brush, new
System.Drawing PointF (xPosition, yPosition));
xPosition += g.MeasureString(sTemp.Substring(1, 6), font).Width + (11 * lineWidth);
// Vẽ chữ số của mã nhà sản xuất
g.DrawString(sTemp.Substring(7), font, brush, new
System.Drawing PointF (xPosition, yPosition));
// Vẽ tên của hàng hóa
float xPosition1 = (xStart+3) - g.MeasureString( this CountryCode.Substring(0, 1), font).Width;
float yPosition1 = yStart - 3;
g.DrawString( bien _tenH.Substring(0), font, brush, new
System.Drawing PointF (xPosition1, yPosition1));
xPosition1 += (g.MeasureString( bien _tenH.Substring(0), font).Width + 1 * lineWidth)
- (g.MeasureString( bien _tenH.Substring(0), font).Width);
// Vẽ giá của mặt hàng
float xPosition2 = xStart +1 + g.MeasureString( this CountryCode.Substring(0, 1), font).Width;
float yPosition2 = yStart + 10;
g.DrawString( bien _ten.Substring(0), font, brush, new
System.Drawing PointF (xPosition2, yPosition2));
xPosition2 += g.MeasureString( bien _ten.Substring(0), font).Width + (1 * lineWidth) - (g.MeasureString( bien _ten.Substring(0), font).Width); ;
float xPosition3 = xStart +6 + g.MeasureString( this CountryCode.Substring(0, 1), font).Width;
float yPosition3 = yStart + 10;
g.DrawString( bien _gia.Substring(0), font, brush, new
System.Drawing PointF (xPosition3, yPosition3));
xPosition3 += (g.MeasureString( bien _gia.Substring(0), font).Width + 1 * lineWidth) - (g.MeasureString( bien _gia.Substring(0), font).Width);
float xPosition4 = xPosition3 +8;
Trang 33Hệ thống quản lý siêu thị mini bằng mã vạch
float yPosition4 = yStart + 10;
g.DrawString( bien _dong.Substring(0), font, brush, new
System.Drawing PointF (xPosition4, yPosition4));
g.Restore(gs);
}
6 Sử dụng mã vạch trong hệ thống thông tin
Sử dụng mã vạch trọng hệ thống thông tin có ứng dụng sau:
Nhận dạng tự động thay thế ghi chép bằng tay giúp giảm nhân công tiết kiệm thời gian, dẫn đến tăng hiệu suất công việc
Với cấu trúc được tiêu chuẩn hóa, an toàn và đơn giản, mã số mã vạch cho phép nhận dạng chính xác vật phẩm và dịch vụ, thay thế khâu “nhập” và “truy cập” dữ liệu bằng tay, do đó cho kết quả chính xác
Mã vạch giúp thu thập và cung cấp thông tin nhanh, giúp cho người dùng và nhà quản lý có thể có quyết định đúng đắn
7 Cách nhận diện mã vạch và đăng ký mã vạch trên sản phẩm
Cách nhận diện mã vạch
Để nhận diện được tất cả mã vạch người ta có thể nhìn vào hình dạng và cấu trúc của mã vạch để nhận biết Mỗi loại mã vạch có đặc điểm và cấu trúc riêng của nó Chẳng hạn như đối với mã vạch EAN-8 thì chiều dài mã vạch gồm có 8 chữ số và không có chử cái Đối với mã vạch EAN-13 thì chiều dài gồm 13 chữ số và ta có thể nhìn vào 3 chữ số đầu tiên của mã vạch để nhận biết mã vạch đó xuất xứ từ quốc gia nào:
Các ký số của một số quốc gia thông dụng như sau :
00-13: USA & Canada 20-29:In-Store 30-37: France
40-44: Germany 45: Japan (also 49) 46: Russian Federation
477: Lithuania 479: Sri Lanka 480: Philippines
49: Japan (JAN-13) 50: United Kingdom 520: Greece
Trang 34Hệ thống quản lý siêu thị mini bằng mã vạch
600 & 601: South Africa 609: Mauritius 611: Morocco
746: Dominican Republi 750: Mexico 759: Venezuela
859: Czech Republic 860: Yugloslavia 869: Turkey
87: Netherlands 880: South Korea 885: Thailand
Một trong những nhiệm vụ quan trọng nhất của doanh nghiệp khi áp dụng mã số mã vạch là quản lý mã mặt hàng (mã I) của mình theo nguyên tắc mỗi mã số tương ứng với một loại sản phẩm duy nhất, không được nhầm lẫn Những sản phẩm khác nhau về tính chất (ví dụ như bia và nước ngọt), về khối lượng, về bao gói… đều phải được cho những mã số mặt hàng khác nhau Những mã số này sẽ sử dụng lâu dài cùng với sự tồn tại của mặt hàng đó Những mặt hàng này khi được cải tiến (thay đổi trọng lượng, cách bao gói…) đều phải được cấp mã mặt hàng mới
8 Thiết bị đi kèm theo mã vạch
- Máy quét mã vạch đây là một loại máy thu nhận hình ảnh của mã vạch in trên các bề mặt và chuyển thông tin chứa trong mã vạch đến máy tính hay các thiết bị cần thông tin này Nó thường có một nguồn sáng kèm theo thấu kính, để hội tụ ánh sáng
Trang 35Hệ thố
GVHD: Nguyễn Thái Nghe
lên mã vạch rồi thu ánh sán ph
sáng thnahf tín hiệu điện
Máy in mã vạch là máy in chuyên d
chi phí rất thấp mà hoàn toàn có th
dàng Theo sơ đồ sau:
i thu ánh sán phản xạ về cảm quang sau đó chuyển hóa tín hi
ch là máy in chuyên dụng, thường được kết nối với máy tính, nh
ạch
t số thiết bị hỗ trợ như máy vi tính Với mộ
ột máy quét mã vạch cầm tay và một phần m
ưu thông hợp pháp trên thị trường, trưng bày chúng trong các c
và nhanh chóng tính tiền bằng một phần mềm Công nghệ
p mà hoàn toàn có thể trang bị, quản lý và điều khiển chúng m
Code (Mã phản hồi nhanh)
ắ ủa Quick Response (tạm dịch “Mã phản hồi nhanh”)
ạch có thể được đọc bởi máy đọc mã vạch hay smartphone (
ức năng chụp ảnh với ứng dụng chuyên biệt để
ng module màu đen được xắp xếp ngẫu nhiên trong mững module này mã hóa cho bất kì dữ liệu trực tuyình ảnh, thông tin, chi tiết về sản phẩm, quảng cáo cho s
ả ồi nhanh”) Đây là
ch hay smartphone (điện
Trang 36Hệ thố
GVHD: Nguyễn Thái Nghe
Điểm khác nhau giữa m
nắm giữ hay chia sẻ Các m
và chỉ có thể lưu giữ 20 số chữ
tin hàng ngàn ký tự chữ số
dụng sẽ giúp ích rất nhiều cho ng
Mã truyền thống
QR Code được phát tri
gian so với các loại mã vạch truy
có trên quầy hàng từ đó nhân viên l
Trong phiếu đặt hàng có ghi rõ thông tin v
- Bộ phận nhân viên doanh chuy
phận kế toán lập phiếu chi bao g
cung cấp, người nhận, số tiề
- Mỗi lần nhập hàng ti
giá, nhập tại kho nào
1.2 Quy trình quả
- Mỗi mặt hàng khi nh
được in sẳn trên bao bì và có in s
( khối lượng ) Ngoài ra có m
có mã vạch như: ly thủy tinh, chén d
tin học tạo ra mã vạch để dán vào các m
lưu trữ hàng hóa Nhân viên bán hàng s
ống quản lý siêu thị mini bằng mã vạch
ữa mã QR và mã vạch truyền thống là lượng dữ
ẻ Các mã vạch truyền thống có các đường vạch thẳng d
ữ ố chữ số, trong khi các mã QR hai chiều có thể
ự ữ số Mã QR nắm giữ nhiều thông tin hơn và tính ch
ấ ều cho người dùng trong mọi lĩnh vực
đó nhân viên lập danh sách các mặt hàng để lập phi
t hàng có ghi rõ thông tin về nhà cung cấp và các loại hàng cNhân viên kinh doanh thông qua nhà quản lý siêu thị rồi gửi đơ
nhân viên kinh doanh lập phiếu nhập hàng bao gồm: thông tin
p, danh sách mặt hàng, số lượng, đơn giá, ngày cập nh
doanh chuyển phiếu nhập hàng sang bộ phận k
u chi bao gồm: Mã nhà cung cấp, tên nhà cung c
ền đã thanh toán cho nhà cung cấp
p hàng tiến hành cập nhật lại danh mục hàng hóa như
ản lý bán hàng
t hàng khi nhập về kho có một số mặt hàng được dán tem
và có in sẳn giá bán, các thông số có liên quan đNgoài ra có một số trường hợp một số hàng hóa khi nh
y tinh, chén dĩa và một số mặt hàng nhựa…thì đdán vào các mặt hàng đó để thuận tiện cho vi
n viên bán hàng sẽ quét mã vạch của các mặt hàng mà khách
m: thông tin đầy
p nhật theo mẩu có
n kế toán để bộ
p, tên nhà cung cấp, địa chỉ nhà
c hàng hóa như: số lượng đơn
c dán tem hoặc mã vạch
có liên quan đến mặt hàng đó hàng hóa khi nhập về kho chưa
đòi hỏi bộ phận
n cho việc quản lý và
t hàng mà khách
Trang 37Hệ thống quản lý siêu thị mini bằng mã vạch
hàng đã chọn bằng máy đọc mã vạch và lưu vào máy tính để in hóa đơn bán hàng cho khách
- Nếu khách hàng mua trả tiền ngay thì bộ phận bán hàng sẽ giao hàng trực tiếp
và thanh toán trực tiếp
+ Thành tiền = số lượng * đơn giá
+ Tiền VAT = thành tiền * thuếVAT(%)
+ Tiền khuyến mãi = thành tiền * khuyến mãi(%)
+ Thanh toán = thành tiền + tiền VAT – tiền khuyến mãi
- Nếu khách hàng là tập thể thì có thể đặt hàng và thanh toán trước hoặc thanh toán sau khi nhận hàng nếu còn nợ thì lưu hóa đơn có số tiền nợ đó Nếu có đơn đặt hàng thì trên hóa đơn ghi thông tin về khách hàng, số lượng mua và loại hàng mua
- Khi có đơn mua hàng thì bộ phận kinh doanh xem xét đơn hàng đồng thời so sánh lượng hàng tồn kho để báo với các hàng tạp hóa nhỏ số lượng hàng cần cung cấp
- Khi số lượng hàng hóa trên quầy hàng ít hoặc đã hết thì nhân viên bán hàng sẽ yêu cầu bộ phận xuất kho xuất hàng hóa lên quầy hàng để bán Mỗi lần xuất kho đều phải làm phiếu xuất kho bao gồm: Mã phiếu xuất, thời gian xuất, xuất tại kho, tên hàng hóa, số lượng, đơn giá
1.3 Quy trình quản lý kho hàng
- Bộ phận quản lý kho đặt mã số hàng hóa( Mã vạch) Mã vạch là bộ mã mang tính chất pháp lý giữa siêu thị và người tiêu dùng, mỗi một mặt hàng kinh doanh đều
có một mã số riêng biệt để phân biệt với những mặt hàng khác
- Một mã mặt hàng có độ dài 13 ký tự theo cấu trúc của hệ thống mã vạch Barcode quốc tế đối với những mặt hàng có in sẵn mã vạch của nhà sản xuất Nếu một mặt hàng nào không có sẳn mã vạch hay nếu có mà mã vạch không có khả năng tin cậy thì mặt hàng đó sẽ được dùng mã nội bộ của siêu thị để làm mã bán hàng
- Khi đặt hàng của nhà cung cấp: hàng ngày quản lý kho sẽ thống kê hàng tồn trong kho để đề xuất nhập hàng lên tổ trưởng, tổ quản lý kho
1.4 Hoạt động của bộ phận kế toán
Phòng kế toán cũng có chức năng giống như một số phòng kế toán của một số tổ chức khác, thực hiện các nhiệm vụ:
- Kế toán hàng hóa
- Thống kê doanh thu
Kế toán hàng hóa: Kiểm kê quá trình nhập xuất hàng hóa, các chứng từ, phiếu nhập, phiếu xuất, thống kê doanh thu, thống kê nợ…
1.5 Hoạt động phòng tin học
- In tem dán vào hàng hóa
- Lập báo cáo kinh doanh hàng ngày
- Lập báo cáo khi có nhu cầu
- Bảo trì phần mềm
Trang 38Hệ thống quản lý siêu thị mini bằng mã vạch
2 Một số biểu mẫu sử dụng
2.1 Hóa đơn nhập hàng
Trang 39Hệ thống quản lý siêu thị mini bằng mã vạch
2.2 Hoá đơn xuất hàng
2.3 Hóa đơn bán lẻ