Tình hình nghiên cứu Do mật độ xuất nhập hàng của các kho ngày càng lớn nên việc quản lý hiện nay là rất khó khăn và có nhiều sai sót khi thực hiện việc nhập xuất, tính toán thủ công,
Trang 1LỜI CẢM ƠN
Trong suốt quá trình thực hiện đề tài khóa luận tốt nghiệp: “Xây dựng phần mềm quản lý kho tại công ty DTS Đại Từ - Thái Nguyên ” ngoài sự cố gắng hết mình của bản thân, trong quá trình làm đề tài em đã nhận được sự giúp đỡ tận tình từ phía nhà trường, thầy cô, gia đình và bạn bè
Em xin gửi lời cảm ơn sâu sắc đến thầy ThS Nguyễn Hồng Tân đã tận tình hướng dẫn, chỉ bảo em trong suốt quá trình làm đề tài này
Em xin gửi lời cảm ơn đến các thầy cô trong Khoa Công nghệ thông tin, Trường Đại học Công nghệ thông tin và Truyền thông, Đại học Thái Nguyên đã dành thời gian hướng dẫn và giúp đỡ em tận tình trong quá trình làm đề tài này
Em xin cảm ơn các cô, chú, anh, chị trong Công ty TNHH phát triển và phân phối công nghệ số DTS đã giúp đỡ và hướng dẫn, truyền đạt những kinh nghiệm thực tế trong suốt thời gian em thực tập tại công ty
Em cũng gửi lời cảm ơn tới gia đình và bạn bè đã luôn quan tâm, động viên, giúp
đỡ và tạo điều kiện cho em để em có điều kiện tốt nhất để hoàn thành đề tài này
Trong quá trình thực hiện đề tài, mặc dù em đã có nhiều cố gắng nhưng do hạn chế về thời gian cũng như kinh nghiệm nên đề tài này chắc chắn còn mắc phải những thiếu sót, rất mong được sự góp ý kiến của các thầy cô và các bạn để bài báo cáo của em được hoàn thiện hơn
Em xin chân thành cảm ơn!
Thái nguyên, ngày 01 tháng 06 năm 2015
Sinh viên thực hiện
Thân Thế Minh
Trang 2LỜI CAM ĐOAN
Tôi xin cam đoan:
a Những nội dung trong luận văn này là do tôi thực hiện dưới sự hướng dẫn trực tiếp của ThS Nguyễn Hồng Tân
b Mọi tham khảo dùng trong luận văn đều được trích dẫn rõ ràng và trung thực về tên tác giả, tên công trình, thời gian và địa điểm công bố
Mọi sao chép không hợp lệ, vi phạm quy chế đào tạo, hay gian trá, tôi xin chịu hoàn toàn trách nhiệm
Thái nguyên, ngày 01 tháng 06 năm 2015
Sinh viên
Thân Thế Minh
Trang 3MỤC LỤC
LỜI MỞ ĐẦU 7
CHƯƠNG 1 9
CƠ SỞ LÝ THUYẾT 9
1.1 Giới thiệu về Công ty TNHH phát triển và phân phối công nghệ số DTS 9
1.1.1 Giới thiệu 9
1.1.2 Hiện trạng hệ thống 10
1.1.3 Mô tả quá trình quản lý 11
1.1.4 Yêu cầu hệ thống 16
1.1.5 Các thay đổi chính khi đưa hệ thống phần mềm vào xử lý 17
1.2 Lựa chọn công nghệ lập trình 17
1.2.1 Tổng quan về ngôn ngữ lập trình CSharp 17
1.3 Giới thiệu về quản lý kho 28
1.3.1 Khái niệm về kho 28
1.3.3 Chức năng của kho 28
CHƯƠNG 2 31
PHÂN TÍCH THIẾT KẾ HỆ THỐNG CHO BÀI QUẢN LÝ KHO 31
2.1 Tổng quan về bài toán quản lý kho 31
2.2 Phân tích yêu cầu thành modul chức năng 32
2.3 Giới thiệu quy trình nghiệp vụ của công tác quản lý kho 34
2.4 Phân tích thiết kế hệ thống quản lý kho 37
2.5 Xây dựng sơ sở dữ liệu 40
Bảng 2 11: Bảng chi tiết phiếu xuấtCHƯƠNG 3 43
CHƯƠNG TRÌNH THỰC NGHIỆM 44
3.1 Đặt vấn đề 44
3.2 Các chức năng của chương trình 44
3.2.1 Giao diện chương trình chính 45
3.2.2 Chức năng Quản trị hệ thống 46
3.2.3 Chức năng Quản lý Chung 47
3.2.5 Chức năng Quản lý Nhập-Xuất 51
3.2.6 Chức năng Tổng hợp Báo cáo 52
Trang 4KẾT LUẬN 57 TÀI LIỆU THAM KHẢO 58
Trang 5DANH MỤC HÌNH VẼ
Hinh 1.1: Sơ đồ quy trình nhập hàng 12
Hinh 1.2: Sơ đồ quy trình xuất hàng 13
Hình 1.3: Quy trình đổi hàng 14
Hình 1.4: Sơ đồ quy trình bảo hành cho khách 15
Hình 1.5: Sơ đồ quy trình đổi hành với nhà cung cấp 16
Hình 2.1: Biểu đồ usecase hệ thống 37
Hình 2.2: Biểu đồ UC Đăng nhập hệ thống 38
Hình 2.3: Biểu đồ UC Quản lý kho 38
Hình 2.4: Biểu đồ UC chức năng Thống kê, báo cáo 39
Hình 2.5: Biểu đồ trình tự của hệ thống 39
Hình 2.6: Sơ đồ quan hệ dữ liệu 41
Hình 3.1: Giao diện chương trình chính 45
Hình 3 2: Giao diện các chức năng hệ thống 46
Hình 3 3: Giao diện Form Quản lý Nhân viên 47
Hình 3 4: Giao diện Form Quản lý Nhà cung cấp 47
Hình 3.5: Giao diện Form Quản lý Kho vật tư 48
Hình 3.6: Giao diện Form Quản lý Vật tư 49
Hình 3.7: Giao diện Form Quản lý Khách hàng 50
Hình 3.8: Giao diện Form Phiếu nhập kho 51
Hình 3 9: Giao diện Form Phiếu xuất kho 52
Hình 3 10: Hộp thoại chọn khoảng thời gian Lập Báo cáo nhập 53
Hình 3.11: Báo cáo Nhập kho trong kỳ 53
Hình 3.12: Hộp thoại chọn khoảng thời gian Lập Báo cáo xuất 54
Hình 3.13: Báo cáo Xuất kho trong kỳ 54
Hình 3.14: Form báo cáo tồn kho 55
Trang 6DANH MỤC BẢNG BIỂU
Bảng 2 1: Bảng Vật tư 41
Bảng 2 2: Bảng Kho vật tư 41
Bảng 2.3: Bảng Tồn kho 41
Bảng 2 4: Bảng Nhà cung cấp 42
Bảng 2 5: Bảng Khách hàng 42
Bảng 2 6: Bảng Nhân viên 42
Bảng 2 8: Bảng phiếu nhập 43
Bảng 2 9: Bảng chi tiết phiếu nhập 43
Bảng 2 10: Bảng phiếu xuất 43
Trang 7LỜI MỞ ĐẦU
Lý do chọn đề tài
Cùng với sự phát triển của thế giới và xu hướng hội nhập kinh tế quốc tế, nước ta đang dần đổi mới và bước vào thời kỳ công nghiệp hoá - hiện đại hoá, vừa xây dựng cơ sở vật chất, kĩ thuật vừa phát triển nền kinh tế đất nước Do đó, ngành Công nghệ thông tin có vai trò quan trọng trong quá trình xây dựng và phát triển đất nước
Ngày nay, khi công nghệ đã gắn liền với cuộc sống con người ở mọi lĩnh vực, mọi ngành nghề Microsoft Windows có phạm vi ảnh hưởng cũng như tầm quan trọng
to lớn Những ứng dụng cũng như lợi ích mà nó mang lại cho chúng ta thật sự rất hữu ích Chính vì vậy mà ngày càng có nhiều những phần mềm cũng như những ngôn ngữ lập trình ra đời giúp cho tư duy của chúng ta tăng lên và đem lại giá trị cao cho đời sống Trong đó, C# là cách nhanh và tốt nhất để lập trình cho Microsoft Windows Khả năng của ngôn ngữ này cho phép những người chuyên nghiệp hoàn thành bất kỳ điều gì nhờ sử dụng ngôn ngữ lập trình MSWindows nào khác Đối với nhiều doanh nghiệp, trong đó có Công ty TNHH phát triển và phân phối công nghệ số DTS, công việc quản lý kho là rất quan trọng Tuy nhiên, việc tính toán nhu cầu và dự kiến khối lượng hàng dự trữ đều được xác định dựa vào số liệu quá khứ kết hợp với những phân tích chủ quan của nhà quản lý
Xuất phát từ những lý do trên nên em đã chọn đề tài: “ Xây dựng phần mềm
quản lý kho cho công ty DTS - Thái Nguyên ” làm đề tài đồ án tốt nghiệp cho mình
Qua đó, xây dựng được một demo chương trình trong công tác quản lý kho bằng việc sử dụng ngôn ngữ C# và ứng dụng tại Công ty TNHH phát triển và phân phối công nghệ số DTS
Trang 8 Tình hình nghiên cứu
Do mật độ xuất nhập hàng của các kho ngày càng lớn nên việc quản lý hiện nay
là rất khó khăn và có nhiều sai sót khi thực hiện việc nhập xuất, tính toán thủ công, các khâu còn chưa thật sự gắn bó với nhau dẫn đến việc quản lý thông tin của một loại hàng hóa có thể được nhập đi nhập lại nhiều lần Hiện nay trong nhiều doanh nghiệp
đã có các phần mềm quản lý kho cũng như có nhiều người nghiên cứu và xây dựng được chương trình quản lý kho, tuy nhiên chưa có chương trình hay phần mềm nào ứng dụng phương pháp quản lý dự trữ trong quản lý kho Từ đó em đề xuất giải pháp này để áp dụng kiến thức được học và giải quyết vấn đề thực tế đặt ra
Phạm vi và phương pháp nghiên cứu
Phạm vi nghiên cứu: Đề tài nghiên cứu những khái niệm cơ bản và những ứng
dụng của ngôn ngữ C# để áp dụng vào việc xây dựng bài toán quản lý kho
Phương pháp nghiên cứu:
- Tìm hiểu kiến thức chuyên ngành, kiến thức thực tế
- Tìm hiểu các kiến thức liên quan
- Tiến hành thực nghiệm: xây dựng giải pháp cho vấn đề đặt ra bằng các kiến thức thu thập được
Kết cấu
Ngoài lời mở đầu và kết luận, nội dung chính đề tài của em gồm ba chương: Chương 1 : Cơ sở lý thuyết và tổng quan về hệ thống quản lý kho tại Công ty TNHH phát triển và phân phối công nghệ số DTS
Chương 2 : Phân tích thiết kế hệ thống
Chương 3 : Xây dựng chương trình
Trong quá trình thực hiện đề tài đồ án tốt nghiệp, do những giới hạn nhất định
về tài liệu, kiến thức và thời gian nên em không tránh khỏi những sai sót Em rất mong các thầy cô thông cảm và góp ý
Trang 9CHƯƠNG 1
CƠ SỞ LÝ THUYẾT 1.1 Giới thiệu về Công ty TNHH phát triển và phân phối công nghệ số DTS
1.1.1 Giới thiệu
Công ty TNHH phát triển và phân phối công nghệ số DTS được thành lập ngày 20/04/2011
Tên, văn phòng đại diện công ty:
Văn phòng đại diện Công ty TNHH phát triển và phân phối công nghệ số DTS:
Ki ốt 2+3 bến xe khách đại từ - Thị trấn Hùng Sơn – Đại Từ - Thái Nguyên
Vốn điều lệ: 1.200.000.000 đồng (Một tỷ, hai trăm triệu đồng)
Vốn hoạt động: 3.000.000.000 đông (Ba tỷ đồng)
Trụ sở giao dịch: Ki ốt 2+3 bến xe khách đại từ - Thị trấn Hùng Sơn – Đại Từ - Thái Nguyên
Chuyên ngành hoạt đồng gồm: Các loại máy văn phòng ( máy tính bộ, laptop, máy in, máy chiếu, máy fax, thiết bị quan sát, thiết bị mạng, linh kiện máy tính, văn phòng phẩm…), …
Người đại diện theo pháp luật của Công ty:
Hiện nay công ty cung cấp các dịch vụ chính:
- Tư vấn, thiết kế, cung cấp, lắp đặt và bảo trì các hệ thống mạng LAN, Wireless LAN, WAN,…hệ thống camera quan sát…
- Cung cấp, sửa chữa các thiết bị máy tính, máy văn phòng, linh kiện điện tử…
Mục tiêu phát triển trước mắt và lâu dài của DTS là phấn đấu trở thành công ty hàng đầu về thương mại và dịch vụ trong lĩnh vực công nghệ thông tin, có uy tín lớn
Trang 10cho cán bộ, nhân viên có thu nhập ổn định và mức sống được cải thiện ngày càng cao hơn
Để thực hiện tốt mục tiêu đó, lãnh đạo công ty đã chỉ rõ định hướng phát triển sao cho vừa phát huy hết mức những sức mạnh vốn có để đáp ứng ngày càng cao những yêu cầu của khách hàng, vừa giữ vững và tăng tốc độ phát triển trên tất cả các mặt doanh số, nhân lực, dịch vụ…
Hiện nay, công việc kinh doanh của công ty đã và đang hoạt động khá ổn định
và từng bước phát triển Lượng hàng nhập khẩu về công ty phục vụ cho khách hàng ngày một lớn và đa dạng về chủng loại sản phẩm, vì thế công việc quản lý hàng hóa ngày càng trở nên phức tạp hơn Nhằm giảm bớt khó khăn trong quản lý hàng hóa, công ty quyết định xây dựng phần mềm quản lý kho hàng riêng nhằm hoàn thiện hơn cho phần mềm quản lý chung đang xây dựng và bước đầu đưa vào thử nghiệm
1.1.2 Hiện trạng hệ thống
Trong quá trình khảo sát thực tế tại công ty DTS, việc quản lý kho( gồm hoạt động nhập kho, xuất kho) cho các nhân viên có chức năng Nếu thực hiện bằng phương pháp thủ công thì vất vả và khó khăn cho người quản lý kho
Hiện nay công việc quản lý của công ty đang được tiến hành xây dựng và ứng dụng thử nghiệm phần mềm quản lý chung cho tất cả công việc Trong khi phần mềm công ty chưa hoàn thiện vẫn còn trong thời gian thử nghiệm là chính Công việc kinh doanh của công ty ngày một phát triển, lượng hàng nhập về công ty lớn và đa dạng, phong phú về chủng loại Bên cạnh đó có những vấn đề nảy sinh phức tạp Nên công việc quản lý kho vẫn được thực hiện bằng tay để đề phòng trường hợp phần mềm xảy
ra lỗi Công việc này vẫn sẽ vẫn được thực hiện cho đến khi phần mềm của công ty được hoàn thiện
Công việc sẽ chẳng có gì khó khắn nếu số lượng hàng của công ty là ít nhưng khi lượng hàng lớn thì công việc quản lý hàng trở lên khá phức tạp, mất thời gian và
có thể nhầm lẫn nhất là số lượng tồn hàng nhập mới và nhập lại vẫn thuộc hàng tồn của công ty…Vì vậy để giải quyết vẫn đề này, thì tốt nhất là xây dựng riêng một phần mềm đảm bảo cho quá trình quản lý kho hàng chuyên dụng có thể chỉ đáp ứng ở một góc độ nào đó trong toàn bộ yêu cầu của quá trình quản lý của cả công ty
Trang 111.1.3 Mô tả quá trình quản lý
Quy trình quản lý kho hàng của công ty máy tính DTS được mô tả theo từng quy trình nhỏ như sau:
1.1.3.1 Quy trình nhập hàng
Hàng ngày thủ kho sẽ thường xuyên kiểm tra số kho và kiểm kê lượng hàng thực tế trong kho Khi thấy hàng trong kho cần phải nhập thêm để đảm bảo cho quá trình hoạt động bán hàng của công ty Thủ kho sẽ nhập Báo cáo tồn kho gửi cho lãnh đạo công ty Nhận Báo cáo tồn kho và Báo cáo từ bộ phận kinh doanh, đồng thời cập nhật thông tin một số sản phẩm trên thị trường để sản phẩm, hàng hóa của công ty đa dạng, phong phú, đáp ứng yêu cầu chất lượng và thị hiếu người dùng từ đó lãnh đạo công ty sẽ có quyết định cần nhập thêm mặt hàng gì Sau khi xem xét lãnh đạo công ty
sẽ gửi yêu cầu nhập hàng cho bộ phận kinh doanh Bộ phận kinh doanh dựa vào yêu cầu sẽ lập Phiếu nhập hàng và gửi Phiêu nhập hàng này cho nhà cung cấp Nhà cung cấp sẽ căn cứ vào Phiếu nhập hàng lập một hợp đồng bán hàng với công ty Rồi gửi hàng cho công ty Hàng tới công ty, nhân viên có trách nhiệm sẽ ra nhận hàng Khi nhận đúng hàng sẽ viết phiếu giao cho thủ kho nhập hàng vào kho Thủ kho trước khi nhận hàng vào kho sẽ tiến hàng kiểm tra hàng lần cuối Hàng đúng với Phiếu nhập thì nhập kho, ngược lại thì giao cho đơn vị có trách nhiệm xử lý và giải quyết Thông tin hàng hóa trên phiếu nhập kho sẽ được lưu vào sổ nhập kho
Trang 13Sơ đồ quy trình xuất hàng:
Hinh 1.2: Sơ đồ quy trình xuất hàng 1.1.3.3 Quy trình đổi hàng
Hàng sau khi được xuất cho khách đem về sử dụng do nguyên nhân kỹ thuật nào đó Khách hàng mang đến cửa hàng và yêu cầu đổi hàng theo quy định của công
ty Nhân viên bán hàng sẽ tiếp nhận yêu cầu bằng cách kiểm tra hàng Nếu hàng do lỗi
kỹ thuật sẽ làm thủ tục nhập kho: nhân viên cửa hàng sẽ nhận hàng và viết phiếu nhập, sau đó mang tới kho nhập, thông tin trên phiếu nhập sẽ được thủ kho lưu vào sổ nhập kho
Đồng thời nhân viên bán hàng sẽ kiểm tra hàng mà khách muốn đổi hiện có trong kho không bằng cách gửi yêu cầu kiểm tra hàng tồn kho cho thủ kho Thủ kho tiếp tục cập nhập số nhập và số xuất để kiểm tra hàng và gửi thông báo hàng tồn cho nhân viên bán hàng Nếu hàng hết thì thông báo cho khách hàng chuyển đổi sang mặt hàng khác, nếu khách không đồng ý thì tiến hành trả tiền cho khách Trong trường hợp ngược lại thì đổi hàng ( quy trình diễn ra tiếp theo tương tự như quá trình xuất mới) Nhân viên bán hàng sẽ viết phiếu xuất và cử người lấy hàng và giao hàng cho khách Thông tin về hàng hóa trên phiếu xuất sẽ được thủ kho lưu vào sổ xuất kho
Trang 14Quy trình đổi hàng:
Hình 1.3: Quy trình đổi hàng 1.1.3.4 Quy trình bảo hành cho khách
Khách có yêu cầu bảo hành xuất trình giấy biên bản nhận Đơn vị kỹ thuật tiến hành kiểm tra hàng Nếu hàng do những nguyên nhân, sự cố khác ngoài kỹ thuật sẽ thông báo cho khách hàng công ty không chịu trách nhiệm bảo hành cho sản phẩm, ngược lại sẽ tiến hành bảo hành ngay cho khách nếu khách có yêu cầu, nếu khách không có yêu cầu cần bảo hành ngay hoặc tùy thuộc vào vấn đề kỹ thuật mà bộ phận
kỹ thuật phải lưu hàng xử lý sau Khi đó bộ phận kỹ thuật sẽ viết biên bản nhận cho khách hàng Trường hợp hàng hết hạn bảo hành mà khách vẫn yêu cầu được sửa chữa thì nhân viên kỹ thuật sẽ lập phiếu sửa chữa hàng cho khách Hàng sau khi đã được bảo hành vẫn chưa đến thời hạn hẹn khách hoặc hàng mà nhân viên kỹ thuật của công
ty không thể xử lý được thì sẽ viết phiếu nhập bảo hành đem nhập kho Khi có phiếu, thủ kho sẽ nhận hàng bảo hành và lưu thông tin trên phiếu nhập hàng bảo hành vào số nhập Khi đến hẹn, khách mang giấy biên nhận đến nhận hàng Sẽ giao phiếu biên
Trang 15nhận cho bộ phận kỹ thuật, nhân viên kỹ thuật có trách nhiệm sẽ kiểm tra thông tin Đúng sẽ viết phiếu xuất hàng bảo hành với mặt hàng đã được bảo hành Cử người xuống kho lấy hàng cho khách Thủ kho nhận phiếu và xuất hàng Thông tin trên phiếu xuất hàng bảo hành sẽ được lưu vào sổ xuất kho và số hàng bảo hành Kết thúc quá trình nhận và trả bảo hành cho khách
Sơ đồ quy trình bảo hành cho khách:
Hình 1.4: Sơ đồ quy trình bảo hành cho khách 1.1.3.5 Quy trình đổi, bảo hành với nhà cung cấp
Cứ sau khoảng một thời gian quy định, thủ kho sẽ thống kê danh sách những hàng đổi và hàng bảo hành rồi gửi danh sách này cho Đơn vị kinh doanh Đơn vị này
có trách nhiệm viết phiếu xuất mang đến nhận hàng để mang đi đổi hàng, bảo hành Những mặt hàng mà công ty chấp nhận đổi, bảo hành hoặc không đổi, bảo hành sau đó vẫn được mang về nhập vào kho Những mặt hàng được bảo hành sẽ xuất trả cho khách bình thường, còn những mặt hàng không được chấp nhận đổi, bảo hành sẽ để
Trang 16chờ xử lý của lãnh đạo công ty Quá trình nhập hàng về công ty cũng diễn ra tương tự như quá trình nhập mới
Sơ đồ quy trình đổi hành với nhà cung cấp:
Hình 1.5: Sơ đồ quy trình đổi hành với nhà cung cấp
1.1.4 Yêu cầu hệ thống
- Hệ thống phải quản lý được quy trình nhập hàng chung cho tất cả các hình thức nhập: nhập mới, nhập đổi lại, nhập bảo hành Trong yêu cầu này, nhân viên quản lý kho hàng sẽ phải thực hiện các chức năng: Nhập, sửa, xóa, tìm kiếm, update dữ liệu
- Hệ thống phải quản lý được quy trình xuất hàng chung cho tất cả các hình thức xuất: Xuất bán, xuất bảo hành trả cho khách, xuất đổi, bảo hành với Nhà cung cấp Cũng giống như quy trình nhập kho, quy trình quản lý hàng xuất kho cũng phải thực hiện được các chức năng: Nhập, xóa, sửa, tìm kiếm, update dữ liệu
- Hệ thống cũng phải đưa ra tất cả các báo cáo cần thiết khi có yêu cầu bất kỳ lúc nào
Trang 171.1.5 Các thay đổi chính khi đưa hệ thống phần mềm vào xử lý
Thay đổi chính khi đưa hệ thống quản lý vào sử dụng là lợi ích về mặt thời gian xử
lý công việc, nhưng cũng đòi hỏi một số thay đổi về thói quen làm việc của các nhân viên
Các kết quả đạt được khi thay đổi:
- Tổng hợp nhanh báo cáo về tình hình lượng hàng hóa trong kho chính xác
và nhanh nhất
- Cung cấp gợi ý cho việc nhập hàng mới,…
- Đưa ra nhanh các thông báo, báo cáo tổng hợp khi cần thiết
1.2 Lựa chọn công nghệ lập trình
1.2.1 Tổng quan về ngôn ngữ lập trình CSharp
Ngôn ngữ C# khá đơn giản nhưng nó có ý nghĩa cao khi thực thi 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
Trong ngôn ngữ C# mọi thứ liên quan đến khai báo lớp đều được tìm thấy trong phần khai báo của nó Định nghĩa một lớp trong ngôn ngữ C# không đòi hỏi phải chia
ra tập tin header và tập tin nguồn giống như trong ngôn ngữ C++
C# cũng hỗ trợ giao diện interface, nó được xem như một cam kết với một lớp cho những dịch vụ mà giao diện quy định Trong ngôn ngữ C#, một lớp có thể kế thừa
từ duy nhất một lớp cha, tức là không cho đa kế thừa, nhưng một lớp có thể thực thi nhiều giao diện Khi một lớp thực thi một giao diện thì nó sẽ cung cấp chức năng thực thi giao diện
Trong ngôn ngữ C#, những cấu trúc cũng được hỗ trợ, nhưng khái niệm về ngữ nghĩa của nó thay đổi khác với C++ Trong C#, một cấu trúc được giới hạn là kiểu dữ liệu nhỏ gọn, và khi tạo thể hiện thì nó yêu cầu ít hơn về hệ điều hành với bộ nhớ so với một lớp Một cấu trúc thì không thể kế thừa từ một lớp hay được kế thừa nhưng một cấu trúc có thể thực thi một giao diện
Ngôn ngữ C# cung cấp những đặc tính hướng thành phần(component-oriented), như là những thuộc tính, những sự kiện Lập trình hướng thành phần được hỗ trợ bởi CLR cho phép lưu trữ metadata với mã nguồn cho một lớp
Trang 181.2.1.1 Tại sao phải sử dụng ngôn ngữ C#
C# là ngôn ngữ đơn giản
C# là ngôn ngữ hiện đại
C# là ngôn ngữ hướng đối tượng
C# là ngôn ngữ mạnh mẽ và cũng mềm dẻo
C# là ngôn ngữ ít từ khóa
1.2.1.2 Nền tảng ngôn ngữ C#
Lớp, đối tượng và kiểu dữ liệu (type)
Điều cốt lõi của lập trình hướng đối tượng là tạo ra các kiểu mới, nó có thể là một bảng dữ liệu, một tiểu trình, hay một nút lệnh trong cửa sổ Kiểu được định nghĩa như một dạng vừa có thuộc tính chung và các hành vi của nó
Cũng như nhiều ngôn ngữ lập trình hướng đối tượng khác, kiểu trong C# được định nghĩa là một lớp (class) và các thể hiện của từng lớp gọi là đối tượng (object)
Để định nghĩa một lớp trong C#, ta sử dụng từ khóa class, sau đó đến tên lớp Thân của lớp được nằm trong dấu {}
Chú ý: sau khai báo lớp trong C# không có dấu ;
và sử dụng; hay khai báo biến và khởi gán trong lúc khai báo
int x; // khai báo biến trước
x = 5; // sau đó khởi gán giá trị và sử dụng
int y = x; // khai báo và khởi gán cùng lúc
Hằng
Hằng là một biến nhưng giá trị không thay đổi theo thời gian Khi cần thao tác trên một giá trị xác định ta dùng hằng Khai báo hằng tương tự khai báo biến và có thêm từ khóa const ở trước Hằng một khi khởi động xong không thể thay đổi được nữa
const int HANG_SO = 100;
Trang 19Kiểu liệt kê
Enum là một cách thức để đặt tên cho các trị nguyên (các trị kiểu số nguyên, theo nghĩa nào đó tương tự như tập các hằng), làm cho chương trình rõ ràng, dễ hiểu hơn Enum không có hàm thành viên Ví dụ tạo một enum tên là Ngay như sau:
Enum Ngay {Hai, Ba, Tu, Nam, Sau, Bay, ChuNhat};
Theo đó Enum ngày có bảy giá trị nguyên đi từ 0 = Hai, 1 = Ba, 2 =Tư … 7 = ChuNhat
Chuỗi
Chuỗi là kiểu dựng sẵn trong C#, nó là một chuổi các ký tự đơn lẻ Khi khai báo một biến chuỗi ta dùng từ khoá string Ví dụ khai báo một biến string lưu chuỗi "Hello World"
string myString = "Hello World";
Định danh
Định danh là tên mà người lập trình chọn đại diện một kiểu, phương thức, biến, hằng, đối tượng… của họ Định danh phải bắt đầu bằng một ký tự hay dấu “_” Định danh không được trùng với từ khoá C# và phân biệt hoa thường
Bất kỳ câu lệnh định lượng giá trị được gọi là một biểu thức (expression) Phép gán sau cũng được gọi là một biểu thức vì nó định lượng giá trị được gán (là 32)
x = 32;
vì vậy phép gán trên có thể được gán một lần nữa như sau
y = x = 32; Sau lệnh này y có giá trị của biểu thức x = 32 và vì vậy y = 32
Trang 20Các lệnh rẽ nhánh không điều kiện
Có hai loại câu lệnh rẽ nhánh không điều kiện Một là lệnh gọi phương thức: khi trình biên dịch thấy có lời gọi phương thức nó sẽ tạm dừng phương thức hiện hành
và nhảy đến phương thức được gọi cho đến hết phương thức này sẽ trở về phương thức
cũ
Lệnh rẽ nhánh có điều kiện
Các từ khóa if-else, while, do-while, for, switch-case, dùng để điều khiển dòng chảy chương trình C# giữ lại tất cả các cú pháp của C++, ngoại trừ switch có vài cải tiến
Ghi chú: Khối lệnh là một tập các câu lện trong cặp dấu “{…}” Bất kỳ nơi đâu
có câu lệnh thì ở đó có thể viết bằng một khối lệnh
Biểu thức logic là biểu thức cho giá trị dúng hoặc sai (true hoặc false) Nếu
“biểu thức logic” cho giá trị đúng thì “khối lệnh” hay “khối lệnh 1” sẽ được thực thi,
Trang 21ngược lại “khối lệnh 2” sẽ thực thi Một điểm khác biệt với C++ là biểu thức trong câu lệnh if phải là biểu thức logic, không thể là biểu thức số
Trang 22Khối_lệnh sẽ được thực hiện cho đến khi nào biểu thức còn đúng Nếu ngay từ đầu biểu thức sai, khối lệnh sẽ không được thực thi
Khi chương trình thực thi, CLR gọi hàm Main() đầu tiên, hàm Main() là đầu vào của chương trình, và mỗi chương trình đều phải có một hàm Main()
Để khai báo một phương thức, ta phải xác định kiểu giá trị trả về, tên phương thức, và các tham số càn thiết cho phương thức thực hiện
Chú thích
Một chương trình tốt là một chương trình có các dòng chú thích kèm theo Các đoạn chú thích này sẽ không được biên dịch và cũng không tham gia vào chương trình
Mục đích chính của nó là làm cho đoạn mã nguồn rõ ràng và dễ hiểu
Cũng giống như trong C++, trong ngôn ngữ C# chúng ta có 2 cách chú thích
Để chú thích trên một dòng thì ta bắt đầu bằng 2 ký tự “//” Khi trình biên dịch gặp 2
ký tự này thì sẽ bỏ qua dòng đó
Trang 23Ví dụ: // khởi tạo đối tượng để chú thích trên nhiều dòng thì ta bắt đầu bởi ký tự
“/*” và kết thúc bởi “*/”
Ứng dụng Console
Ví dụ đơn giản trên được gọi là ứng dụng Console, ứng dụng này giao tiếp với người dùng thông qua bàn phím và không có giao diện người dùng (GUI) Trong các chương trình xây dựng các ứng dụng nâng cao trên Windows hay trên Web thì ta mới
sự dụng giao diện đồ họa Trong giáo trình này, sẽ sử dụng thuần túy các ứng dụng console
Namespace
NET cung cấp một thư viện các lớp đồ sộ và thư viện này có tên là FCL ( Framework Class Library), trong đó Console là một lớp nhỏ trong thư viện Do đó sẽ nảy sinh vấn đề là người lập trình không thể nhớ hết được tên của các lớp trong NET Framework Đặc biệt là sau này ta có thể tạo ra một lớp mà lớp này lại trùng với lớp đã
có trong thư viện, điều này dẫn đến sự tranh chấp khi biên dịch vì C# chỉ cho phép một tên duy nhất
Giải pháp để giải quyết vấn đề là việc tạo ra một không gian tên namespace, namespace sẽ hạn chế phạm vi của 1 tên, làm cho tên này chỉ có ý nghĩa trong vùng đã định nghĩa
Từ khóa using
Để cho chương trình trở lên gọn hơn, không mất thời gian phải viết từng namespace cho từng đối tượng, C# cung cấp từ khóa using, sau từ khóa này là một namespace với mô tả đầy đủ trong cấu trúc phân cấp của nó
Truy cập dữ liệu với ADO.NET
Trong thực tế, có rất nhiều ứng dụng cần tương tác với cơ sở dữ liệu .NET Framework cung cấp một tập các đối tượng cho phép truy cập vào cơ sở dữ liệu, tập các đối tượng này được gọi chung là ADO.NET
ADO.NET tương tự với ADO, điểm khác biệt chính ở chỗ ADO.NET là một kiến trúc dữ liệu rời rạc, không kết nối (Disconnected Data Architecture) Với kiến trúc này, dữ liệu được nhận về từ cơ sở dữ liệu và được lưu trên vùng nhớ cache của máy người dùng Người dùng có thể thao tác trên dữ liệu họ nhận về và chỉ kết nối đến
cơ sở dữ liệu khi họ cần thay đổi các dòng dữ liệu hay yêu cầu dữ liệu mới
Trang 24Việc kết nối không liên tục đến cơ sở dữ liệu đã đem lại nhiều thuận lợi, trong
đó điểm lợi nhất là việc giảm đi một lưu lượng lớn truy cập vào cơ sở dữ liệu cùng một lúc, tiết kiệm đáng kể tài nguyên bộ nhớ Giảm thiểu đáng kể vấn đề hàng trăm ngàn kết nối cùng truy cập vào cơ sở dữ liệu cùng một lúc
ADO.NET kết nối vào cơ sở dữ liệu để lấy dữ liệu và kết nối trở lại để cập nhật
dữ liệu khi người dùng thay đổi chúng Hầu hết mọi ứng dụng đều sử dụng nhiều thời gian cho việc đọc và hiển thị dữ liệu, vì thế ADO.NET đã cung cấp một tập hợp con các đối tượng dữ liệu không kết nối cho các ứng dụng để người dùng có thể đọc và hiển thị chúng mà không cần kết nối vào cơ sở dữ liệu Các đối tượng ngắt kết nối này làm việc tương tự đối với các ứng dụng Web
1.2.2 Hệ quản trị cơ sở dữ liệu SQL Server 2005
1.2.2.1 Giới thiệu về SQL Server 2005
SQL Server 2005 là một hệ thống quản lý cơ sở dữ liệu (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 2005 được tối ưu để có thể chạy trên môi trường cơ sở dữ liệu rất lớn, lên đến Tera-byte và có thể phục vụ cùng lúc cho hàng ngàn user SQL Server
2005 có thể kết hợp tốt với các server khác nhau như: Microsoft Internet Information Server (IIS), E-Commerce Server, Proxy Server, …
SQL Server 2005 là hệ quản trị cơ sở dữ liệu quan hệ hiện nay cho các ứng dụng dữ liệu của doanh nghiệp
SQL Server 2005 hỗ trợ các loại cơ sở dữ liệu dưới đây:
Cơ sở dữ liệu hệ thống:
o Tạo ra bởi SQL Server để lưu trữ thông tin về SQL Server
o Để quản lý cơ sở dữ liệu người dùng
Cơ sở dữ liệu người dung:
o Do người dùng tạo ra
o Lưu trữ dữ liệu người dùng
Cơ sở dữ liệu mẫu:
o SQL Server phân phối kèm theo một số cơ sở dữ liệu mẫu
Trang 25o AdventureWorks là cơ sở dữ liệu mẫu mới được giới thiệu trong
Cơ chế xử lý cơ sở dữ liệu của SQL Server 2005 được bổ sung tính năng mới cũng như nâng cao những khã năng về lập trình như bổ sung kiểu dữ liệu mới, kiểu dữ liệu XML và khác nữa
Các phiên bản của SQL Server 2005:
Enterprise Edition
o Hỗ trợ: 32-bit và 64-bit
o Không hạn chế kích thước cơ sở dữ liệu
o Hỗ trợ Xử lý giao dịch trực tuyến (OLTP)
o Khã dụng và khã cỡ cao
Trang 26 Standard Edition
o Đủ cho các công ty vừa và nhỏ
o Gồm các tính năng cơ bản như: thương mại điện tử, nhà kho dữ liệu, giải pháp ứng dụng doanh nghiệp
o Phiên bản nhỏ gọn có thể download từ Internet
o Chỉ có dịch vụ cơ sở dữ liệu, không hỗ trợ những công cụ quản lý
Ưu điểm của SQL Server 2005:
Nâng cao quản lý dữ liệu doanh nghiệp
Nâng cao hiệu suất cho người lập trình
Trang 273 CrystalReports (trong trường hợp có báo cáo)
4 Setup của chương trình
Đối với phần bảo mật của hệ thống thì được thể hiện trong phần chức năng Đăng Nhập Nếu đăng nhập không thành công ba lần thì chương trình tự động thoát Hoặc là yêu cầu khởi động lại
Đối với phần sao lưu dữ liệu thì chỉ nhắc nhở người sử dụng nên backup dữ liệu sau 1 tháng để phòng hờ dữ liệu
Cách backup dữ liệu như sau:
Khởi động chương trình SQLSERVER2005, vào SQLserver group vào (local)(window NT), vào databases, rồi kích chuột phải vào All tasks, rồi kích vào attach databases, sau đó tìm nơi chứa file doan.MDF là attach cơ sở dữ liệu được hoàn thành
Trong cửa sổ của (local)(window NT) nhấp chuột phải vào biểu tượng và chọn Stop để dừng máy chủ Sau đó vào thư mục chứa dữ liệu Copy hai file <tên nguồn doan>.mdf, và <tên nguồn doan>_log.ldf (chú ý là tên nguồn doan là giống nhau), lưu vào một ổ đĩa khác, hoặc folder khác để sau này lấy file đó phục hồi dữ liệu
hệ thống
Để sử dụng tiếp chương trình , vào biểu tượng và chọn Start để phục hồi lại máy chủ
Trang 281.3 Giới thiệu về quản lý kho
1.3.1 Khái niệm về kho
Kho bao gồm các sản phẩm hay nguyên liệu, nhiên liệu đang lưu trong kho, đang trên đường vận chuyển, đang chờ sản xuất dở dang…và cả những thành phẩm đang chờ bán Hay nói cách khác, dự trữ bao gồm:
Tất cả các sản phẩm, hàng hoá mà doanh nghiệp có để bán
Tất cả nguyên vật liệu, phụ tùng mà doanh nghiệp lưu giữ và sử dụng để sản xuất ra các sản phẩm hay cung cấp dịch vụ
Cần chú ý phân biệt: hàng dự trữ và hàng ế thừa
Các loại hình kinh doanh khác nhau có các loại dự trữ khác nhau
1.3.2 Lợi ích của quản lý kho
Quản lý kho nhằm đáp ứng tốt hơn nhu cầu của khách hàng
- Cung cấp đúng những gì khách hàng cần
- Đáp ứng được sự thay đổi của nhu cầu về số lượng
- Tạo sự ổn định của dòng khách hang
- Tạo sự phát triển lâu dài
Quản lý kho tạo điều kiện sản xuất linh hoạt và an toàn
- Đáp ứng nhu cầu mở rộng sản xuất theo dự báo
- Đón trước những rủi ro trong cung ứng nguyên vật liệu hoặc chậm hàng nhập: Thay đổi thời gian vận chuyển, hàng gửi không đúng lúc, hàng kém chất lượng…
- Tạo sự ổn định và an toàn trong sản xuất kinh doanh
Quản lý kho hiệu quả góp phần giảm chi phí trong kinh doanh
- Cân đối nhu cầu nguyên vật liệu tốt hơn
- Hàng hoá được bảo vệ tốt
Trang 29Chức năng ngăn ngừa tác động của lạm phát:
Tồn kho giúp doanh nghiệp tiết kiệm một lượng chi phí đáng kể khi nguyên vật liệu hay hàng hóa tăng giá dưới tác động của lạm phát Trong trường hợp này tồn kho
sẽ là một hoạt động đầu tư tốt nhưng cần phải tính toán kỹ lưỡng các chi phí và rủi ro
có thể xảy ra
Chức năng khấu trừ theo số lượng:
Nhiều nhà cung ứng sẵn sàng chiết khấu cho những đơn hàng có khối lượng lớn Điều này có thể làm giảm giá mua hàng hóa, nguyên vật liệu nhưng sẽ dẫn đến làm tăng chi phí tồn kho Nhà quản trị cần phải xác định lượng hàng tối ưu để có thể hưởng được chiết khấu, đồng thời chi phí tồn trữ tăng không đáng kể
1.3.4 Những chi phí liên quan đến kho
Chi phí kho:
Chi phí này nhằm bảo đảm hàng hóa dự trữ, chi phí cho kho tàng (thuê hoặc khấu hao hàng năm nhà kho), chi phí khai thác kho (tiền lương và bảo hiểm xã hội cho nhân viên kho, tiền thuê hoặc khấu hao hàng năm máy móc thiết bị, ánh sáng…), chi phí bảo dưỡng thiết bị, chi phí bảo hiểm, chi phí quản lý
Chi phí sụt giá hàng trong quá trình dự trữ trong kho:
Phải phân biệt hai nguyên nhân sụt giá: - Sụt giá do lỗi thời liên quan đến những mặt hàng theo mốt hoặc công nghệ tiến triển nhanh, sụt giá do hư hỏng, chẳng hạn do những tai nạn khi chuyên chở, bay hơi, trộm cắp, hoặc bị phá bởi những loại gặm nhấm…
Chí phí đặt hàng:
Đó là những chi phí cho mỗi lần DN bắt đầu quá trình mua để tái dự trữ Loại chi phí này bao gồm những chi phí có liên quan đến đơn hàng như: chi phí các mẫu đơn sử dụng và chi phí xử lý các đơn đặt hàng, thư tín, điện thoại, đi lại, tiền lương và bảo hiểm xã hội của nhân viên mua (tìm người cung ứng, thương lượng, thảo đơn đặt hàng, thúc dục, nhắc nhở…), của nhân viên kế toán (ghi chép, thanh toán hóa đơn v.v), chi phí bố trí thiết bị, chi phí cho công tác kiểm tra về số và chất lượng hàng hóa Khi chúng ta sản xuất một lô hàng sẽ phát sinh một chi phí cho việc chuyển đổi qui trình do sự thay đổi sản phẩm từ giai đoạn trước sang giai đoạn tiếp theo Kích thước
lô hàng càng lớn thì tồn kho vật tư càng lớn, nhưng chúng ta đặt hàng ít lần trong năm