1. Trang chủ
  2. » Luận Văn - Báo Cáo

Báo cáo thực tập khảo sát và xây dựng phần mềm quản lý nhân sự

83 2,7K 7
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Báo Cáo Thực Tập Khảo Sát Và Xây Dựng Phần Mềm Quản Lý Nhân Sự
Trường học Trường Đại Học Kinh Tế Quốc Dân
Chuyên ngành Quản Trị Nhân Sự
Thể loại Báo cáo thực tập
Năm xuất bản 2009
Thành phố Hà Nội
Định dạng
Số trang 83
Dung lượng 2,99 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Báo cáo thực tập khảo sát và xây dựng phần mềm quản lý nhân sự

Trang 1

CHƯƠNG 1: KHẢO SÁT HIỆN TRẠNG1.1 Hiện trạng tổ chức

1.1.1 Sơ lược về sự hình thành của Unilever

Vào khoảng những năm 1890,William Lever – một công dân Anh, người sáng lập raUnilever, chính là người đầu tiên tạo dựng nên ngành công nghiệp sản xuất xà phòngvào cuối thế kỷ XIX Thời bấy giờ, loại xà phòng của Lever là Lever’s Pure Honey (mậtong nguyên chất của Lever) được coi là sản phẩm bán chạy nhất Sau một thời gian,Lever lại cho tung ra sản phẩm xà phòng chất lượng cao với tên gọi Sunlight (ánh sángmặt trời) Nhờ vào chiến dịch tiếp thị thành công đã tạo cơ hội cho Lever bứt phá hơnnữa Năm 1890, Lever mở rộng quy mô sản xuất kinh doanh của mình ra khỏi biên giới

nước Anh Ngoài nhà máy tại Mỹ, Lever còn “bành trướng” sang tận Úc, Canada, Đức

và Thụy Sĩ

Cuộc sáp nhập thế kỷ

Cuộc chiến tranh thế giới thứ nhất đã củng cố thêm vị trí của Unilever trên thị trường nộiđịa cũng như quốc tế Lever mở rộng mặt hàng kinh doanh của mình sang lĩnh vực sảnxuất bơ thực vật (margarin) Tháng Giêng 1930, sự hợp nhất giữa Margarine Union vàLever Brothers được thực hiện Một liên minh mới Anh-Hà Lan có tên là Unilever đã rađời Để tránh hệ thống đánh thuế kép, liên minh này quyết định tách thành hai công ty:Unilever PLC có trụ sở tại Anh và Unilever NV đóng trụ sở tại Hà Lan Và dù hai công

ty này có cơ cấu hoạt động gần như độc lập, song Unilever vẫn như một thục thể thốngnhất

Unilever lần lượt sỡ hữu những tên tuổi lớn trên thế giới như Lipton's (Mỹ và Canada),Brooke Bond (Anh), Pepsodent (Mỹ), Bachelors (Anh), Chesebrough-Pond's (Mỹ)…Ngoài mặt hàng chủ yếu buổi ban đầu là xà phòng, Unilever đã mở rộng nhiều chủngloại sản phẩm như trà, kem, dầu gội đầu, kem đánh răng, nước giải khát, phụ gia thựcphẩm…với các nhãn hiệu được “cả thế giới tin dùng” như Lipton, Hellman’s, Ragu,Rama, Magnum, Bertolli, Knorr, Bird’Eyes, Slim-Fast, Dove, Pond, Signal, Close-up,Surf và Omo Và đó cũng chỉ là một con số nhỏ trong tổng số các nhãn hiệu của tậpđoàn

Trang 2

Nếu như vào thập niên 30, 90% lợi nhuận của Unilever có được từ kinh doanh xà phòng

và dầu ăn thì vào đầu thập niên 80, con số này không nhiều hơn 40% vì hãng đã tăngcường sản xuất nhiều chủng loại sản phẩm khác như thực phẩm đông lạnh, phụ gia thựcphẩm, kem, trà và các loại mỹ phẩm, đồ vệ sinh gia đình

Bằng tầm nhìn, khả năng chèo lái con tàu doanh nghiệp trước sóng to gió cả trên thươngtrường, bằng việc tổ chức các khóa đào tạo, các chương trình hỗ trợ nhân viên, các nhàquản lý của Unilever đã mang lại sự thành công vượt ngoài sự mong đợi cho tập đoànnày

1.1.2 Unilever Việt Nam:

Công ty liên doanh Unilever Việt Nam vừa công bố đã chính thức được cấp giấy chứngnhận chuyển đổi thành công ty 100% vốn nước ngoài sau khi mua lại cổ phần của đối

tác trong liên doanh là Tổng công ty Hóa chất Việt Nam (Vinachem) Công ty mới có

tên gọi là Công ty TNHH Quốc tế Unilever Việt Nam (Unilever Vietnam InternationalCompany Limited, gọi tắt là Unilever Việt Nam) và hiện nay chưa có sự thay đổi vềvốn.Unilever là một trong những tập đoàn đa quốc gia cung ứng hàng tiêu dùng hàngđầu thế giới với các ngành hàng thực phẩm và sản phẩm chăm sóc vệ sinh cá nhân và giađình Tập đoàn Unilever bắt đầu nghiên cứu thị trường Việt Nam từ 1988 và chính thức

có mặt tại Việt Nam từ năm 1995, tới nay công ty đã đầu tư hơn 120 triệu đô la Mỹ và

đã trở thành một trong các nhà đầu tư thành công nhất ở Việt Nam Những năm quadoanh nghiệp này luôn đạt tốc độ tăng trưởng bình quân 2 con số mỗi năm và đạt tổngdoanh thu gần bằng 1% GDP của Việt nam năm 2009 Doanh thu trong năm 2009 là 500triệu Euro Nhiều nhãn hàng của Unilever đã trở nên quen thuộc với người dân ViệtNam như: Omo, Sunlight, Dove, Sunsilk, Clear, Lux, Close-up, Lipton, Viso, Sunsilk, P/

S and Knorr mỗi ngày trung bình có tới gần 5 triệu sản phẩm của công ty được tiêuthụ Với tiêu chí tiếp thêm sức sống cho người dân Việt Nam thông qua những sản phẩmchất lượng quốc tế, giá cả hợp lý đảm bảo sức khỏe, vệ sinh và dinh dưỡng Ngoài ra,Unilever luôn chung tay trong việc đẩy mạnh đời sống người dần Việt Nam qua các hoạtđộng từ thiện: chương trình áo trắng ngời sang tương lại, hợp tác với FDI thực hiệnchiến dịch chăm sóc sức khỏe răng miệng cho người dân Việt Nam……

Trang 3

Vào ngày 7 tháng 1 năm 2010 vừa qua, nằm trong khuôn khổ tài trợ thường niên củaQuỹ Unilever Việt Nam (UVF), 20 dự án vệ sinh môi trường và sức khỏe cộng đồngnăm 2009 đã chính thức được công bố và trao tài trợ với tổng số tiền là 4,770,100,000đồng.

Ngày 6/4/2010, trong lễ kỷ niệm 15 năm thành lập công ty tại Việt Nam, UnileverVietnam đã đón nhận Huân chương Lao Động hạng nhất của Chủ tịch nước trao tặng

Tổng vốn đầu tư: 100 triệu USD

Vốn điều lệ: 55 triệu USD

Những ngành hàng chính

Ngành hàng chăm sóc gia đình: Omo, Viso, Surf, Comfort, Sunlight, Vim

Ngành hàng chăm sóc cá nhân: Sunsilk, Clear, Dove, Lifebuoy, Hazeline, Pond's, P/S,Close up, Rexona

Ngành hàng thực phẩm: Lipton, Knorr

Trang 4

1.1.3 Cơ cấu tổ chức:

Hình 1.1: Cơ cấu tổ chức công ty Unilever

Sản phẩm của Unilever có mặt trên khắp 64 tỉnh thành của Việt Nam Tổng số nhân viênvăn phòng và quản lý của công ty Unilever Việt Nam hiên nay khoảng 1400 nhân viên.Unilever Việt Nam cũng như những Unilever ở các quốc gia khác luôn duy trì một sốnhân viên nhất định thông qua các hình thức tuyển dụng, chương trình lãnh đạo tiềmnăng, v…v…Công ty có hệ thống nhà phân phối riêng dày đặt và luôn giữ mối quan hệchặt chẽ trong công việc Mỗi chức danh quản lý ở nhà phân phối sẽ được hỗ trợ, đàotạo, huấn luyện, giám sát và đánh giá cũng như xem xét việc tuyển dụng nhân viên củanhà phân phối

Chủ tich (Chairman): có quyền quyết định cao nhất, chịu trách nhiệm tổ chức và điều

hành mọi hoạt động của công ty Các giám đốc các phòng ban làm việc theo sự phâncông của Giám Đốc điều hành

VP PC (Vice Presedent of Personal Care): Chịu trách nhiệm các chức năng và bộ

phận trong Personal Care Personal Care có 5 Department : Hair, Skin, Oral, Skincleaning, Deo

Hair bao gồm các nhãn hàng: Sunsilk, Clear, Dove

Skin bao gồm các nhãn hàng: Pond’s, Hazeline, Vaseline

Oral bao gồm các nhãn hàng: P/S, Close Up, Tooth Brush

Skin Cleaning bao gồm các nhãn hàng: Lux, Dove, Lifebuoy

Trang 5

Deo bao gồm các nhãn hàng: Rexona, Dove

VP HC (Vice Presedent of Home Care): Chịu trách nhiệm các chức năng và bộ phận

trong HomeCare Home Care có 3 Department : Fab Clean, Fab Con, HHC

Fab Clean bao gồm các nhãn hàng: Omo, Viso, Surf

Fab Con bao gồm các nhãn hàng: Comfort

HHC bao gồm các nhãn hàng: Sunlight, Vim, Cif

VP Foods (Vice Presedent of Foods): Chịu trách nhiệm các chức năng và bộ phận

trong Foods Foods có 3 Department :

Culinary – Knorr

Beverages – Lipton

IceCream

VP CD (Vice Presedent of Customer Development): thực hiện các kế hoạch phát triển

thị trường của công ty, và các chiến lược về số lượng, phân phối, giá cả, hàng hóa và cácdịch vụ khách hàng bằng cách tìm hiểu về khách hàng, tính năng động của thị trường,các chính sách, chiến lược của đối thủ cạnh tranh,…

VP HR (Vice Presedent of Human Resource): Tổ chức tuyển dụng, đào tạo, huấn

luyện, bố trí nhân sự, quản lý hồ sơ nhân viên Ngoài ra còn chịu trách nhiệm về tiềnlương, chính sách phúc lợi, thưởng, công tác phí, … cho nhân viên

VP Finance (Vice Presedent of Finance & Accounting): Tổ chức quản lý toàn bộ

công tác tài chính, kế toán của công ty, hướng dẫn chỉ đạo bộ phận kế toán, giúp bangiám đốc tổ chức công tác thông tin kinh tế, hạch toán kinh tế, phân tích hoạt động kinh

tế và quyết toán với Unilever khu vực

VP SC (Vice Presedent of Supply Chain): Quản lý giám đốc nhà máy (Plant

Manager), bộ phận kế hoạch (Planning), bộ phận mua hàng (Purchasing), bộ phận kho(Warehouse), bộ phận xuất hàng (Distribution Center), bộ phận quản lý chất lượng(Quality Control), bộ phận kỹ thuật sản xuất (Engineer & Technical Services – E&TS),

bộ phận xuất nhập khẩu (Cross Borde Logistics), bộ phận sản xuất (Operation), bộ phậnphục vụ khách hàng (Customer Service-CS), bộ phận xét duyệt tín dụng

Trang 6

VP Corp Dev (Vice Presedent Corporation Development): Đóng vai trò đại diện cho

công ty Unilever Việt Nam làm cầu nối với Unilever quốc tế và những vấn đề liên quanđến nhà nước

VP Mfg (Vice Presedent of Manufacturing): Chịu trách nhiệm các chức năng và các

bộ phận trong khối sản xuất

VP CR (Vice Presedent of Corporate Relationship): là người đại diện Unilever Việt

Nam làm việc với chính phủ, truyền thông và những người có thẩm quyền và các đối tácbên ngoài để tạo hình ảnh công ty, giải quyết các vấn đề hàng nhái, hàng giả gây ảnhhưởng đến hình ảnh và uy tín của công ty Mục tiêu của bộ phận này là cố gắng xâydựng hình ảnh của một công ty đa quốc gia tầm cỡ và là một công ty có trách nhiệmcông dân tại Việt Nam thông qua các công việc từ thiện, tài trợ cho các hoạt động xã hội,các phong trào thể dục thể thao, liên hệ chính quyền địa phương

VP Fds Sol (Vice Presedent of Foods Solution): Chịu trách nhiệm các chức năng và

các bộ phận về giải pháp cho thực phẩm

1.2 Phòng quản trị nhân sự tại công ty Unilever:

QTNS bao gồm việc hoạch địch và sử dụng nguồn nhân lực một cách hiệu quả để

giúp tổ chức và cá nhân đạt đựơc mục tiêu chung

 Bộ phận Nhân sự xây dựng các quy trình và chính sách để quản lý quan hệ laođộng

 Trưởng bộ phận các phòng ban sử dụng những quy trình, chính sách này quản lýnhân viên và thực hiện những hoạt động về nhân sự

 Phát triển tối ưu con người và tổ chức là chìa khóa để dẫn đến thành công Nhânviên sẽ có cơ hội để phát triển năng lực bản thân và hoàn thiện những kĩ năng vàtrên hết là phát huy những tiềm năng ẩn sâu bên trong của mỗi nhân viên Nhờchính sách đào tạo và phát triển và một chế độ đãi ngộ xứng đáng mà Unileverluôn thu hút và giữ chân những người tài giỏi Đó chính là chiếc chìa khóa để tổchức ngày càng hoàn thiện, xây dựng được sự đoàn kết và mang lại hiệu quả kinhdoanh

Trang 7

 Luôn có những câu hỏi được đặt ra để tìm ra phương phát tối ưu, khắc phụcnhững thiếu xót hiện tại Đó chính là cách mà phòng nhân sự cùng với ban lãnhđạo xây dựng một Unilever vững mạnh.

Có thể khái quát nhân sự qua các bước như sau:

Nhu cầu con người theo sơ đồ MasLow

Hình 1.2 Sơ đồ MasLow

Trang 8

Cấu trúc của phòng quản trị nhân sự:

-Human Resources Business Partners (HRBP): có nhiệm vụ liên lạc điều phối cấu trúc tổchức, những chức năng của các phòng ban; tìm hiểu phương hướng phát triển và tiếnhành thay đổi để phù hợp với mục đích kinh doanh nhưng vẫn đảm bảo số nhân viên ổnđịnh; giữ nhân viên có năng lực; cùng với những người quản lý để đáp ứng những mongmuốn và cơ hội phát triển của nhân viên

-Human Resources Shared Services (HRSS): Điều phối và tiếp tục hoàn thiện quy trình,chính sách và hệ thống HR đảm bảo phù hợp với HR của các Unilever quốc tế và chiếnlược kinh doanh; tuyển dụng, chứa dữ liệu nhân viên, lương và tiền trợ cấp, quản trị lựclượng lao động

-HR Expertise Teams (HRET): Quản lý những thông tin của HR (chính sách, dự án, sảnphẩm và nguồn kiến thức); Kết nối với những nhà tư vấn chuyên gia bên ngoài để thuhút, xây dựng, và chia sẻ những bài học kinh nghiệm; kết nối với những người lãnh đạo

HR để đào tạo, phát triển những khóa học cơ bản của HR

Tất cả những phòng ban này liên quan chặt chẽ với nhau và liên quan chặt chẽ vớiUnilever People tạo thành một thể thống nhất trong cơ cấu của Quản Trị Nguồn NhânLực

Trang 9

Hình 1.3 Biểu đồ về số lượng nhân viên

NHẬN XÉT

Sau quá trình khảo sát hiện trạng tại công ty, đặc biệt là hiện trạng tại phòng nhân sự củacông ty, tôi nhận thấy rằng về mặt cấu trúc chung và mối liên hệ trong các bộ phận củaQuản Trị Nguồn Nhân Lực rất tốt Chính nhờ có sự liên hệ giữa các bộ phận trong Nhân

Sự và giữa Nhân Sự với các phòng ban khác đã giúp cho Unilever có một tổ chức chặtchẽ và làm việc hiệu quả Bên cạnh đó, khi đi sâu vào trong từng hoạt động của các bộphận thì vẫn có những bất cập trong công tác quản lý, tuyển dụng, đào tạo, lươngthưởng… Tuy những bất cập đó khá nhỏ nhưng cũng phần nào làm ảnh hưởng tới thờigian và hiệu quả của công việc Một trong những yếu tố quan trong gây nên sự bất cập

đó chính là thông tin, và cách quản lý thông tin

1.3 Hiện trang tin học:

1.3.1 Phần cứng

 Thiết bị: máy tính, máy in, máy chiếu, máy fax, máy photo

 Kết nối mạng cục bộ, Wireless

Trang 10

Tuy nhiên, khi áp dụng cho từng nước có những bất cập, bắt buộc phải theo cơcấu chung Việc rút trích và truy cập do đó phải qua rất nhiều thao tác và tốn thờigian Bên cạnh đó, không có form riêng cung cấp đầy đủ các yêu cầu sau để trợgiúp người sử dụng và người quản lý tìm kiếm thông tin để dễ dàng lập báo cáo

1.4 Hướng phát triển đề tài:

1.4.1 Tóm tắt đề tài:

Đề tài “Khảo sát và xây dựng phần mềm quản lý nhân sự”

Đề tài được thực hiện từ việc nghiên cứu và tìm hiểu về việc quản lý hồ sơ nhân viêntrong công ty Trải qua một thời gian khảo sát, tìm hiểu, tôi quyết định xây dựng phầnmềm quản lý hồ sơ nhân viên dựa trên mô hình 3 lớp của Net Framework Phần mềm sẽ

hỗ trợ những yêu cầu:

 Quản lý thông tin nhân viên

 Quản lý tiền lương

 Lập các báo cáo

 Rút trích dữ liệu theo yêu cầu

1.4.2 Phân tích thiết kế hệ thống

1.4.2.1 Đăng nhập hệ thống theo quyền người sử dụng.

Người dùng đăng nhập vào hệ thống sẽ được phân quyền đăng nhập hệ thống

 Người quản trị đăng nhập với quyền quản trị có thể thực hiện các thao tác trong

hệ thống

Trang 11

 Người quản lý nhân sự, cụ thể ở đây là HRBP (Human Resources BusinessPartner) được phép truy cập vào việc chỉnh sửa, thêm mới positon, tính lương vàphân quyền hệ thống.

 Nhân viên kế toán: có quyền truy cập vào phần quản lý nhân sự và tính lương

 Người quản lý trực tiếp (Line Manager): quyền truy cập và xem thông tin về nhânviên của mình

1.4.2.2 Tạo user và gán quyền:

Chỉ có người quản trị có quyền tạo user và gán quyền cho user đó

1.4.2.3 Đổi password:

Sau khi đăng nhập thì người dùng có thể thay đổi mật khẩu của mình nhằm tăng cườngtính bảo mật

1.4.2.4 Quản lý nhân viên.

Người quản trị có quyền Thêm, Xóa, Sửa nhân viên

 Quản lý hồ sơ nhân viên:

Quản lý chi tiết thông tin về nhân viên: mã nhân viên (employee_id), tên nhân viên(employee_name), vị trí (position_id), giới tính (gender), ngày vào công ty (date_join),ngày được thăng cấp (promote_date), người quản lý trực tiếp (LM_id), HRBP, tình trạnghôn nhân (Marital_Status), ngày sinh (birthday), email, địa chỉ thường trú (R_address),địa chỉ tạm trú (C_address), số thẻ ATM (credit_card), tên ngân hàng (bank_name)

1.4.2.5 Quản lý thông tin về đào tạo (training):

 Theo dõi quá trình đào tạo cho nhân viên ở từng cấp thích hợp

 Lập kế hoạch đào tạo cho từng phòng ban và vị trí cụ thể

 Quản lý chi tiết trình độ chuyên môn, ngoại ngữ, tin học và các kĩ năng khác như:

kĩ năng bán hàng, kĩ năng thuyết trình, kĩ năng phỏng vấn, kĩ năng quản lý nhânviên…

 Quản lý hiệu quả công việc của nhân viên

Do yêu cầu của công ty trong việc quản lý hiệu quả công việc của nhân viên, đâyđồng thời cũng là thước đó năng lực của nhân viên cũng như nắm bắt được yêucầu nguyện vọng của nhân viên trong công ty Đầu năm nhân viên sẽ đưa ra kế

Trang 12

hoạch cho cả năm, sau đó sẽ cùng người quản lý trực tiếp duyệt lại kế hoạch đó.Đến khoảng giữa năm, nhân viên và người quản lý trực tiếp sẽ có dịp ngồi lại đểđánh giá việc thực hiện kế hoạch và đưa ra những phương hướng hoàn thành kếhoạch đó Vào cuối năm là thời điểm để nhân viên và người quản lý trực tiếpđánh giá hiệu quả của kế hoạch đó, những gì đạt được và không đạt được Đồngthời cũng lưu lại nhưng mong muốn của nhân viên với công ty Quá trính nàygiúp cho nhân viên làm việc hiệu quả hơn, tạo động lực nhân viên có cơ hội thăngtiến hay tạo điều kiện luân chuyển công việc và giúp cho nhân viên gắn bó hơnvới công ty.

 Theo dõi quá trình thực hiện công việc của nhân viên

 Quản lý position của nhân viên

Mỗi nhân viên sẽ có một vị trí trong công ty Mỗi vị trí sẽ có những thông tin liênquan đến nó Yêu cầu quản lý position của nhân viên cho phép người quản trị có thểtương tác với hệ thống thông qua chức năng quản lý thông tin về vị trí đó, ví dụ: lương

cơ bản (base pay), lương thưởng vượt chỉ tiêu, trợ cấp, phụ cấp v…v…

1.4.2.6 Yêu cầu quản lý Position

Người quản trị và HRBP có quyền:

 Thêm position mới

 Xóa position

 Sửa position

Các thông tin liên quan đến Position bao gồm: position_id, position_name, grade,department_id, head_count

1.4.2.7 Yêu cầu quản lý Department:

Người quản trị có quyền:

 Thêm Department mới

 Xóa Department

 Sửa Department

Các thông tin liên quan đến Department gồm: department_id, department_name,function_id

Trang 13

1.4.2.8 Yêu cầu quản lý Function:

Người quản trị có quyền:

 Thêm Function mới

 Xóa Function

 Sửa Function

Các thông tin liên quan đến Function gồm: function_id, function_name

1.4.2.9 Yêu cầu quản lý và tính lương

Người quản trị có thể tương tác với hệ thống thông qua chức năng quản lý thông tin vềviệc tính lương cho nhân viên

Lập bảng thanh toán tiền lương cho toàn bộ nhân viên theo từng tháng Bảng này gồmthông tin: employee_id, các loại hệ số (hệ số lương thưởng đạt chỉ tiêu, tiền thưởng docông ty đạt kết quả kinh doanh xuất sắc, hệ số phụ cấp, mức lương tối thiểu và phí côngtác), lương căn bản, BHXH, BHYT, Unikhoe, Bảo hiểm hưu trí, thuế TNCN, lương thựcnhận

1.4.2.10 Yêu cầu về giao diện:

Giao diện hệ thống gồm:

 Giao diện đăng nhập vào hệ thống

 Giao diện chính sau khi đăng nhập

 Quyền quản trị thực hiện mọi thao tác có trong hệ thống:

Đổi user, xóa user và phân quyềnĐổi Password

Thêm, xóa, sửa employee; tìm kiếm employee theo employee, position,department, function

Thêm, xóa, sửa positon; tìm kiếm position theo position, department,function

Thêm, xóa, sửa department; tìm kiếm theo department, functionThêm, xóa, sửa trong các chuẩn tính lương

Truy cập và xem thông tin của các báo cáo

 Quyền HRBP:

Trang 14

Truy cập vào hệ thống.

Đổi Password

Truy cập và thao tác form quản lý thông tin nhân viên

Truy cập và thêm, xóa, sửa position

Truy cập và thao tác form quản lý department

Truy cập và thao tác form quản lý function

Truy cập và thao tác form chuẩn tính lương

Lập báo cáo

 Quyền kế toán:

Truy cập vào hệ thống

Đổi password

Truy cập form quản lý thông tin nhân viên

Truy cập form quản lý position

Truy cập form quản lý department

Truy cập form quản lý function

Truy cập form chuẩn tính lương

Xem báo cáo

CHƯƠNG 2: MÔ HÌNH 3 LỚP TRONG LẬP TRÌNH DOTNET

Trong chương này sẽ tập trung đi vào giới thiệu về mô hình 3 lớp dựa trên công nghệADO.NET và hiệu quả của nó trong việc thiết kế form

2.1 Khái niệm mô hình 3 lớp

2.1.1 Giới thiệu chung về mô hình 3 lớp:

Trang 15

Trong phát triển ứng dụng, để dễ quản lý các thành phần của hệ thống, cũng như không

bị ảnh hưởng bởi các thay đổi, người ta hay nhóm các thành phần có cùng chức năng lạivới nhau và phân chia trách nhiệm cho từng nhóm để công việc không bị chồng chéo vàảnh hưởng lẫn nhau Trong phát triển phần mềm, người ta cũng áp dụng cách phân chiachức năng này Bạn sẽ nghe nói đến thuật ngữ kiến trúc đa tầng/nhiều lớp, mỗi lớp sẽthực hiện một chức năng nào đó, trong đó mô hình 3 lớp là phổ biến nhất 3 lớp này làgì? Là Presentation, Business Logic, và Data Access

Hình 2.1 Mô hình 3 lớp

Các lớp này sẽ giao tiếp với nhau thông qua các dịch vụ(services) mà mỗi lớp cung cấp

để tạo nên ứng dụng, lớp này cũng không cần biết bên trong lớp kia làm gì mà chỉ cầnbiết lớp kia cung cấp dịch vụ gì cho mình và sử dụng nó mà thôi

Lợi ích của mô hình 3 lớp:

Trang 16

Hình 2.2 Mô hình 3 lớp Microsoft đề nghị dùng cho các hệ thống phát triển trên nền NET

Lớp giao diện – Presentation Layer

Presentation Layer làm nhiệm vụ giao tiếp với người dùng cuối để thu thập dữ liệu vàhiển thị kết quả/dữ liệu thông qua các thành phần trong giao diện người sử dụng Lớpgiao diện không thực hiện việc tính toán, kiểm tra, xử lý hay các thao tác liên quan tới cơ

sở dữ liệu

Lớp này sẽ sử dụng các dịch vụ do lớp Business Logic cung cấp Trong NET thì bạn cóthể dùng Windows Forms, ASP.NET hay Mobile Forms để hiện thực lớp này.Trong lớp này có 2 thành phần chính là User Interface Components và User InterfaceProcess Components

UI Components: là những phần tử chịu trách nhiệm thu thập và hiển thị thông tin cho

người dùng cuối Trong ASP.NET thì những thành phần này có thể là các TextBox, cácButton, DataGrid

UI Process Components: là thành phần chịu trách nhiệm quản lý các qui trình chuyển

đổi giữa các UI Components Ví dụ chịu trách nhiệm quản lý các màn hình nhập dữ liệutrong một loạt các thao tác định trước như các bước trong một Wizard

Trang 17

Lớp xử lý - Business Logic Layer

Business Logic Layer thực hiện các nghiệp vụ chính của hệ thống

Lớp này sử dụng các dịch vụ do lớp Data Access cung cấp, và cung cấp các dịch vụ cholớp Presentation Lớp này cũng có thể sử dụng các dịch vụ của các nhà cung cấp thứ 3(3rd parties) để thực hiện công việc của mình(ví dụ như sử dụng dịch vụ của các cổngthanh tóan trực tuyến như VeriSign, Paypal…)

Trong lớp này có các thành phần chính là Business Components, Business Entities vàService Interface

Service Interface là giao diện lập trình mà lớp này cung cấp cho lớp Presentation sử

dụng Lớp Presentation chỉ cần biết các dịch vụ thông qua giao diện này mà không cầnphải quan tâm đến bên trong lớp này được hiện thực như thế nào

Business Entities là những thực thể mô tả những đối tượng thông tin mà hệ thống xử lý.

Trong ứng dụng chúng ta các đối tượng này là các chuyên mục(Category) và bảntin(News) Các business entities này cũng được dùng để trao đổi thông tin giữa lớpPresentation và lớp Data Access

Business Components là những thành phần chính thực hiện các dịch vụ mà Service

Interface cung cấp, chịu trách nhiệm kiểm tra các ràng buộc logic(constraints), các quitắc nghiệp vụ(business rules), sử dụng các dịch vụ bên ngoài khác để thực hiện các yêucầu của ứng dụng

Data Access Layer

Data Access Layer thực hiện các nghiệp vụ liên quan đến lưu trữ và truy xuất dữ liệu củaứng dụng

Thường lớp này sẽ sử dụng các dịch vụ của các hệ quản trị cơ sở dữ liệu như SQLServer, Oracle,… để thực hiện nhiệm vụ của mình

Trong lớp này có các thành phần chính là Data Access Logic, Data Sources, ServiveAgents)

Data Access Logic components (DALC) là thành phần chính chịu trách nhiệm

lưu trữ vào và truy xuất dữ liệu từ các nguồn dữ liệu - Data Sources như RDMBS,XML, File systems… Trong NET Các DALC này thường được hiện thực bằng

Trang 18

cách sử dụng thư viện ADO.NET để giao tiếp với các hệ cơ sở dữ liệu hoặc sửdụng các O/R Mapping Frameworks để thực hiện việc ánh xạ các đối tượng trong

bộ nhớ thành dữ liệu lưu trữ trong CSDL Chúng ta sẽ tìm hiểu các thư viện O/RMapping này trong một bài viết khác

Service Agents là những thành phần trợ giúp việc truy xuất các dịch vụ bên ngòai

một cách dễ dàng và đơn giản như truy xuất các dịch vụ nội tại

2.1.2 Tương tác giữa các lớp:

Tương tác giữa người dùng và lớp giao diện: người dùng tạo ra các điều khiển

trên giao diện, thông qua các điều khiển đó để thực thi các yêu cầu Ở đây vai tròcủa lớp xử lý chính là nhận ra các yêu cầu và xử lý các yêu cầu đó

Tương tác giữa lớp giao diện và lớp dữ liệu: mỗi điều khiển giao diện là “bề mặt

hiển thị” nội dung của một nguồn dữ liệu (Data Source) là một DataTable nào đótrong lớp dữ liệu hoặc một column nào đó của DataTable Ta chỉ định điều nàybằng cách ấn định thuộc tính Data Source của điều khiển giao diện

Lớp giao diện không tác động lên cơ sở dữ liệu thật Lớp giao diện nhậncác yêu cầu từ người sử dụng, sau đó thông qua lớp xử lý sẽ tác động lênlớp dữ liệu

Lớp xử lý sẽ cung cấp các dịch vụ để giải quyết cac yêu cầu từ lớp giaodiện, sau đó lớp xử lý sẽ tác động lên lớp dữ liệu thông qua các dịch vụ màlớp dữ liệu cung cấp Từ lớp dữ liệu thì dữ liệu sẽ được tác động lên cơ sở

dữ liệu thậtLớp xử lýt được xem là cầu nối liên hệ giữa lớp giao diện và lớp dữ liệu

Tương tác giữa lớp dữ liệu và cơ sở dữ liệu nguồn: cơ sở dữ liệu nguồn sẽ được

biểu diễn bằng một DataSet thông qua chức năng của SqlDataAdapter Chức năngRollBack luôn bảo đảm tính an toàn cho cơ sở dữ liệu nguồn Sự thay đổi trong

cơ sở dữ liệu nguồn thay đổi khi người dùng đã xác nhận

2.2 Hỗ trợ Net FrameWork trong thiết kế 3 lớp:

2.2.1 Lớp giao diện – Presentation Layer

Form:

Trang 19

Form có 3 loại chính là Form dạng Multiple Document Interface (MDI) còn đượcgọi là MDI Form (Form cha) cho phép trình bày các Form khác bên trong ParentForm, các form là Child Form Những Form mở rộng nằm trong Parent Form thìđược gọi là Normal Form.

MDI Form: Một Form được gọi là MDI Form thì thuộc tính IsMdiContainer có giátrị True Thuộc tính này có thể khai báo ở chế độ thiết kế hoặc trong lúc thi hành.Child Form: Form dạng con là Form mà khi nạp lên sẽ năm bên trong vùng làmviệc của MDI Form Để Form trở thành Child Form thì phải khai báo thuộc tínhMdiParent ứng với MDI Form trong Project

Normal Form: Một Form mở ra không phải là MDI Form hay Child Form thì gọi làForm thường

Một số thuộc tính hay dùng của Form:

Thuộc tính Ý nghĩa

Name Dùng để nhận dạng duy nhất của đối tượng Form trong Project,

mỗi Form phải có giá trị hợp lệ trong thuộc tính Name, khôngcho phép có hai Form có cùng một tên trong một Project

Text Dùng để trình bày chuỗi trong thanh tiêu đề của Form, có thể

khai báo trong chế độ thiết kế hoặc giá trị trong khi thi hành

Show Icon Mỗi Form nạp lên đều có biểu tượng mặc định ở góc trên bên

tráiOpacity Cho phép chúng ta làm trong suốt bề mặt của Form tùy thuộc

vào giá trị phần trăm khai báo trong thuộc tính nàyIcon Cho phép chúng ta chỉ định tập tin hình ảnh để thể hiện trong

phần biểu tượng của FormStartPosition Chỉ định vị trí hiển thị của Form trên màn hình nếu sử dụng

phương thức ShowDialog hay Show ứng với Form loại Mdi hayNormal

IsMdiContainer Giá trị của thuộc tính này là false tương đương với Form bình

thường, nếu gán là true thì khi Form nạp lên màn hình sẽ là MDIForm

Trang 20

Các điều khiển trên Form như label, button, textbox, combobox, listbox, checkbox… đều cómột số thuộc tính chung:

Thuộc tính Ý nghĩa

BackColor Màu nền của điều khiển

ForeColor Màu chữ của chuỗi trình bày trên điều khiển

Text Chuỗi trình bày trên điều khiển

Visible Thuộc tính che giấu hay hiển thị điều khiển

Name Tên của điều khiển

Locked Khóa không cho di chuyển trên Form

Các biến cố của Form:

Biến cố Ý nghĩa

FormClosed Biến cố này sẽ xảy ra khi Form đã đóng, bằng cách sử dụng biến

cố này ta có thể in ra chuỗi lý do tại sao đóng FormFormClosing Biến cố này xảy ra khi Form đang đóng, ta có thể sử dụng biến cố

này để xác nhận với người sử dụng chắc chắn đóng Form haykhông

Load Xảy ra trước khi Form hiển thị đầu tiên, dùng để khai báo thực thi

hay điền dữ liệu vào các điều khiển trên FormClick Xảy ra khi người sử dụng nhấn chuột trên vùng làm việc của

FormMouseMove Xảy ra khi người sử dụng di chuyển chuột xuống vùng điều khiển

rồi nhả ra

MouseDown Xảy ra khi người sử dụng di chuyển chuột xuống vùng điều khiển.Move Xảy ra khi di chuyển điều khiển bằng mã hay người sử dụng

Resize Xảy ra khi kích thước của điều khiển thay đổi bằng mã chương

trình hay bởi người sử dụng

Các phương thức của Form:

Biến cố Ý nghĩa

Close Dùng để đóng Form, nếu Form được mở là duy nhất thì chương

trình sẽ tự động thoát

Hide Dùng để che giấu Form đang mở

Active Dùng để kích hoạt Form, giả sử chúng ta có nhiều Child Form

Trang 21

đang mở, chúng ta có thể kích hoạt chúng bằng cách sử dụngphương thức này

Show Cho phép chúng ta nạp Form lên màn hình

Show Dialog Dùng để nạp Form lên màn hình dạng Modal (không can thiệp

được vào Form trước đó), nếu Form nạp lên là Child Form thìphương thức này sẽ phát sinh lỗi

Textbox: Nhóm điều khiển TextBox gồm hai điều khiển chính là TextBox và

BorderStyle Kiểu đường viền của điều khiển

Enabled Vô hiệu hóa hay cho phép sử dụng

Multiline Giá trị True cho nhập nhiều dòng

ReadOnly Giá trị True cho phép chỉ đọc giá trị

 Biến cố của TextBox:

MouseClick Xảy ra khi người sử dụng click trên điều khiển TextBox

MouseDoubleClick Xảy ra khi người sử dụng click hai lần liên tiếp trên điều khiển

TextBox

VisibleChanged Xảy ra khi thuộc tính Visible thay đổi giá trị từ True sang False

hay ngược lại

Label: Nhóm điều khiển Lable gồm 2 điều khiển chính là Lable dùng để trình

bày dữ liệu và LinkLable dùng để trình bày liên kết Internet

oThuộc tính của Lable:

Thuộc tính Ý nghĩa

BorderStyle Kiểu đường viền của điều khiển

Trang 22

Font Kiểu và kích thước của chữ trình bày trên điều khiển.

TextAlign Canh lề chuỗi trình bày trên điều khiển

FlatStyle Kiểu đường viền của Button

Image Chọn Image trong phần Resouce để trình bày hình trên điều khiển

Button

Text Chuỗi trình bày ứng với diễn giải

TextAlign Canh lề chuỗi diễn giải trên diều khiển

○ Biến cố của Button:

MouseClick Xảy ra khi người sử dụng Click trên điều khiển Button bằng chuột.Click Xảy ra khi người sử dụng Click vào điều khiển Button

CheckedChanged Xảy ra khi người sử dụng Click vào điều khiển Button

VisibleChanged Xảy ra khi thuộc tính Visible thay đổi giá trị từ True sang False

DataGridview:

Điều khiển DataGridView dùng để trình bày dữ liệu có trong đối tượng DataSet,DataTable, DataView dưới nhiều hình thức khác nhau Ta có thể định nghĩa các cộttrên điều khiển DataGridView và thêm các điều khiển như: Button, TextBox,ComboBox, CheckBox, Image, Link…

 Thuộc tính của DataGridView:

Thuộc tính Ý nghĩa

DataSource Để sử dụng thuộc tính DataSource ta khai báo đoạn chương

trình gọi phương thức FillDataSet trong lớp Database vàđiền đối tượng DataSet vào điều khiển DataGridView

CurrentRow Lấy mẫu tin đang chọn trên DataGridView, trả về đối tượng

DataGridViewRow chứa đựng mẫu tin đang chọnCurrentCell Lấy giá trị trên ô đang chọn Ngoài ra, ta cũng có thể biết

Trang 23

được số lượng cột và hàng dữ liệu đang trình bày trên điềukhiển DataGridView bằng cách sử dụng thuộc tínhColumn.Count và Row.Count.

DefaultCellStyle Định dạng ô trong điều khiển DataGridView

 Biến cố của DataGridView:

SelectionChanged Xảy ra khi người sử dụng di chuyển con nháy chuột

thuộc hàng dữ liệu đang trình bày trên điều khiểnDataGridView

DoubleClick Xảy ra khi người sử dụng DoubleClick trên điều

khiển DataGridViewMouseClick Xảy ra khi người sử dụng click trên điều khiển

2.2.2 Lớp dữ liệu – Data Access Layer

Connection: dùng để kết nối CSDL SQL Server.

Đối tượng SQLconnection thiết lập một kết nối (connection) với nguồn dữ liệu Một đốitượng Connection sẽ nằm giữa một dữ liệu nguồn và một DataAdapter

Đối tượng Connection cũng giữ vai trò hữu ích trong việc tạo một giao dịch Các giaodịch sẽ được lưu trữ trong các đối tướng Transaction, và các lớp Transaction đều có khảnăng xử lý các phiên giao dịch

 Thuộc tính của đối tượng Connection:

DataSource Vị trí của tên tập tin của dữ liệu nguồn

DataBase Tên của cơ sở dữ liệu hiện hành

ConnectionString Tượng trưng cho chuỗi kết nối

ConnectionTimeOut Cho biết thời gian chờ trong khi đang kết nối (tính bằng

Trang 24

Dispose Giải phóng bất cứ nguồn lực nào được sử dụng bởi đối

tượng ConnectionOpen Cho mở một kết nối mới về dữ liệu nguồn

ToString Trả về một chuỗi tượng trưng cho Connection

Command Text Có thể là một câu lệnh SQL, tên một store procedure hoặc

tên bảng dữ liệu tùy vào giá trị của Command TypeCommandTimeOut Thời gian chờ cho thi hành Command (tính bằng giây)

CommandType Thuộc tính này cho biết làm thế nào phân biệt thuộc tính

CommandTextConnection Đây là Connection nối về dữ liệu nguồn

Parameters Thuộc tính này cho tìm lại collection (SqlParameter

Collection ) các thông số của thuộc tính CommandText

 Các hàm sự kiện của đối tượng Command:

Hàm sự kiện Mô tả

ExecuteNonQuery Cho thi hành một câu lệnh SQL đối với một Connection và

trả về số hàng dữ liệu bị ảnh hưởng (ví dụ như hàm Delete)ExecuteReader Cho thi hành một câu lệnh SQL trả về những hàng dữ liệu

(ví dụ như hàm Select)ExecuteScalar Cho thi hành một câu lệnh SQL và trả về cột đầu tiên của

Data Adapter

SelectCommandInsertCommandDeleteCommandUpdateCommand

Command

Trang 25

hàng dữ liệu đầu tiên của kết quả được trả về (ví dụ như hàmCount…)

ExecuteXmlReader Tương tự như hàm ExecuteReader, nhưng trả về các hàng

dữ liệu dưới dạng XML

DataSet:

Đối tượng DataSet là thành phần chính của kiến trúc không kết nối CSDL, đượcdùng để nắm giữ dữ liệu của mọi cơ sở dữ liệu và cho phép chúng thay đổi dữ liệubên trong đối tượng này để sau đó cập nhật trở lại cơ sở dữ liệu nguồn bằng phươngthức Update của đối tượng DataAdapter

 Các thuộc tính của đối tượng DataSet:

Thuộc tính Mô tả

DataSetName Cho phép gán hay lấy ra tên của đối tượng DataSet hiện hành

Table Trả về tập bao gồm danh sách các đối tượng DataTable trong

DataSetCount Trả về đối tượng DataTable đang tồn tại trong đối tượng

tên đối tượng DataTable chỉ địnhClear Cho phép loại bỏ tất cả các đối tượng DataTable,

DataRelation đang tồn tại trong đối tượng DataSet

GetChanges Trả về đối tượng DataSet gồm danh sách các đối tượng

DataTable chứa đựng những mẫu tin có thay đổi, thêm mới

Write XML Cho phép ghi dữ liệu trong đối tượng DataSet ra tập tin

XMLRead XML Cho phép đọc nội dung tập tin XML và điền vào đối tượng

DataSet

Trang 26

trong đối tượng DataTableColumns Trả về tập đối tượng DataColumn bao gồm danh sách cột dữ liệu

của bảng đang chứa trong đối tượng DataTableDataSet Trả về đối tượng DataSet mà đối tượng DataTable trực thuộc

 Các phương thức của đối tượng DataTable:

Phương thức Ý nghĩa

GetChanges Trả về đối tượng DataTable gồm danh sách các đối tượng

DataTable chứa đựng những mẫu tin có thay đổi thêm mớiAcceptChanges Dùng để chấp nhận sự thay đổi dữ liệu do người dùng thực hiện

RejectChanges Dùng để từ chối thay đổi dữ liệu trong các đối tượng DataTalbe

do người dùng thực hiệnClear Cho phép loại bỏ tất cả các đối tượng DataRow, DatatColumn

đang tồn tại trong đối tượng DataTableWrite XML Cho phép ghi dữ liệu trong đối tượng DataTable ra tập tin XML

Read XML Cho phép đọc nội dung tập tin XML và điền vào đối tượng

DataTalbe

DataAdapter:

Đối tượng DataAdapter làm việc với DataSet để cung cấp cơ chế truy cập dữ liệukhông giữ kết nối, được xe như bộ đọc dữ liệu từ cơ sở dữ liệu nguồn và điền chúngvào đối tượng DataSet hay DataTable

Đối tượng DataAdapter giữ một vai trò quan trọng trong kiến trúc ADO.NET, nónằm giữa một dữ liệu nguồn và một DataSet và chuyển giao dữ liệu từ dữ liệu nguồnqua DataSet và ngược lại

Trang 27

 Các thuộc tính của đối tượng DataAdapter:

Thuộc tính Ý nghĩa

SelectCommand Tượng trưng cho một lệnh Select hoặc Stored Procedure dùng

chọn ra những mẫu tin từ dữ liệu nguồn sử dụng hàm Fill củaDataAdapter

InsertCommand Tượng trưng cho một lệnh Insert hay một Store Procedure

dùng chèn mẫu tin mới vào nguồn dữ liệu

UpdateCommand Tượng trưng cho lệnh Update hoặc Store Procedure dùng nhật

tu các mẫu tin trên một dữ liệu nguồn sử dụng hàm Update củaDataAdapter

DeleteCommand Thuộc tính read-write này trả về hoặc đặt để lệnh Delete hoặc

Store Procedure dùng xóa bỏ các mẫu tin khỏi nguồn dữ liệu

TableMappings Tượng trưng cho một Collection những ánh xạ giữa bảng dữ

liệu hiện thời và một đối tượng Data Table

 Các hàm sự kiện của đối tượng DataAdapter:

Thuộc tính Ý nghĩa

Fill Cho điền các mẫu tin dữ liệu từ DataAdapter lên một đối tượng

DataSet

Update Cho lưu trữ dữ liệu và mọi thay đổi trên DataSet vào cơ sở dữ

liệu nguồn Đây có nghĩa là đối tượng Command được gắn liềnvới InsertCommand, UpdateCommand và DeleteCommand sẽđược thi hành

2.3 Ứng dụng xây dựng Form minh họa:

Qua phần cơ sở lý thuyết về mô hình 3 lớp trong lập trình Net Framework ta thấy đượcnhững lợi ích của nó như: dễ lập trình (mã lệnh rất ít); dễ trong việc quản lý, bảo trì; khảnăng tái sử dụng; chia sẽ trách nhiệm; giảm sự gắn kết giữa các thực thể phần mềm Để

có một cái nhìn cụ thể hơn trong xây dựng và cách vận hành Form quản lý theo mô hình

3 lớp, em đã tến hành thiết kế Form Quản Lý Nhân Viên trong phần mềm ứng dụng để

mô tả

2.3.1 Thiết kế tầng giao diện của Form Quản Lý Nhân Viên (EMPLOYEEFORM)

Trang 28

Công việc đầu tiên là phải xây dựng tầng giao diện nơi tương tác trực tiếp với ngườidung cuối để phục vụ cho các yêu cầu tác nghiệp.

Trong EPLOYEE FORM gồm có:

 Một DataGridView: kéo từ ToolBox thả vào giao diện, đặt tên làdgvemployee Dgvemp gồm các cột: employee_id, fullname, position_id,payroll_id company, gender, date_join, promot_date, lm_id, hrbp_id

Chức năng của DataGridView sẽ hiển thị toàn bộ những thong tin liênquan đến nhân viên có trong cơ sở dữ liệu khi Form được Load

Hình 2.3: Giao diện EMPLOYEE FORM

 Để dễ dàng trong việc tìm kiếm nhân viên, form cung cấp cho người dùngnhiều cách tìm kiếm Tìm kiếm theo nhân viên (employee id hoặcemployee name), tìm kiếm theo chức vụ (position id hoặc position name),

dgvemp

cbsearchlbtaddbtsearch

lbteditlbtdel

Trang 29

tìm kiếm theo bộ phận (department id hoặc department name) hoặc tìmkiếm theo function (function id hoặc function name).

B1: Một combobox tên cbsearch cho phép tìm kiếm theo employee,position, department, function

B2: Nếu chọn tìm kiếm theo tên sẽ hiện lên một combobox tên cbsempcho phép chọn theo employee id hay employee name

B3: Nếu chọn tìm kiếm theo employee id sẽ hiện lên một comboboxtên cbsempid Trong combobox này có thể nhập employee id hoặcchọn một giá trị có trong combobox

B3: Nếu chọn tìm kiếm theo employee name sẽ hiện lên mộtcombobox tên cbsempna Trong combobox này có thể nhậpemployee name hoặc chọn một giá trị có trong combobox

B2: Nếu chọn tìm kiếm theo position sẽ hiện lên một combobox têncbspos cho phép chọn theo position id hay position name

B3: Nếu chọn tìm kiếm theo position id sẽ hiện lên một comboboxtên cbsposid Trong combobox này có thể nhập position id hoặcchọn một giá trị có trong combobox

B3: Nếu chọn tìm kiếm theo position name sẽ hiện lên mộtcombobox tên cbsposna Trong combobox này có thể nhập positionname hoặc chọn một giá trị có trong combobox

B2: Nếu chọn tìm kiếm theo department sẽ hiện lên một combobox têncbsdep cho phép chọn theo department id hay department name

B3: Nếu chọn tìm kiếm theo department id sẽ hiện lên mộtcombobox tên cbsdepid Trong combobox này có thể nhậpdepartment id hoặc chọn một giá trị có trong combobox

B3: Nếu chọn tìm kiếm theo department name sẽ hiện lên mộtcombobox tên cbsdepna Trong combobox này có thể nhậpdepartment name hoặc chọn một giá trị có trong combobox

Trang 30

B2: Nếu chọn tìm kiếm theo function sẽ hiện lên một combobox têncbsfun cho phép chọn theo function id hay function name.

B3: Nếu chọn tìm kiếm theo function id sẽ hiện lên một comboboxtên cbsfunid Trong combobox này có thể nhập function id hoặcchọn một giá trị có trong combobox

B3: Nếu chọn tìm kiếm theo function name sẽ hiện lên mộtcombobox tên cbsfunna Trong combobox này có thể nhập functionname hoặc chọn một giá trị có trong combobox

 Trong form còn có các linklabel dẫn tới các form cho phép thêm, sửa mộtnhân viên vào cơ sở dữ liệu

 Nếu chọn xóa một nhân viên sẽ hiện lên một textbox cho người dùng nhậpvào employee id của nhân viên cần xóa 2 button Summit và Cancel đểchấp nhận hay thoát khỏi thao tác xóa nhân viên đó

Nếu chọn trong cbsearch một giá trị thì form sẽ hiện ra giá trị tương ứng cho công cụ tìmkiếm

Trang 31

Hình 2.4 Giao diện EmployeeForm khi click chọn chọn giá trị trong cbsearch

Chức năng: Quản lý thông tin và tìm kiếm nhân viên trong công ty

Mô tả giao diện:

 Khi form hiện lên thì tất cả thông tin của nhân viên trong công ty sẽ hiển thị trongdgvemp

 Lbtadd: Khi click vào linkbutton này thì sẽ chuyển sang form ADDEMPLOYEE

 Lbtedit: Khi click vào linkbutton này thì sẽ chuyển sang form EDITEMPLOYEE

 Lbtdel: Khi click vào linkbutton này thì hiện lên textbox cho người dùng nhập vào id của nhân viên cần xóa và các điều khiển liên quan

- Txtdelemp: nhập vào employee_id của nhân viên cần xóa

- Btsmdel: chấp nhận việc xóa nhân viên

- Btccdel: hủy bỏ việc xóa nhân viên

btsmde

cbsdepdecbspos

cbsempcbsdep

cbsfun

cbsposde

cbsempde

txtvalue

txtdelemp

cbsfunde

Trang 32

 Cbsearch: Khi click vào cbsearch sẽ hiện ra cho người dùng 4 cách tìm Người dùng chọn một trong 4 cách tìm đó sẽ hiện ra cho người dùng những cách tìm tương ứng với yêu cầu người dùng.

- Cbsemp: hiện lên khi người dùng chọn cbsearch là employee Combobox cho chọn search theo employee_id hay employee_name

- Cbsempde: combobox hiện lên khi người dùng chọn giá trị trong cbsemp Tùy vào giá trị người dùng chọn trong cbsemp mà giá trị tương ứng

employee_id hay employee_name sẽ được đổ vào trong combobox này

- Cbspos: hiện lên khi người dùng chọn cbsearch là position Combobox chochọn search theo position_id hay position_name

- Cbsposde: combobox hiện lên khi người dùng chọn giá trị trong cbspos Tùy vào giá trị người dùng chọn trong cbspos mà giá trị tương ứng

position_id hay position_name sẽ được đổ vào trong combobox này

- Cbsdep: hiện lên khi người dùng chọn cbsearch là department Combobox cho chọn search theo department_id hay department_name

- Cbsdepde: combobox hiện lên khi người dùng chọn giá trị trong cbsdep Tùy vào giá trị người dùng chọn trong cbsdep mà giá trị tương ứng

department_id hay department_name sẽ được đổ vào trong combobox này

- Cbsfun: hiện lên khi người dùng chọn cbsearch là function Cbsfun cho chọn search theo function_id hay function_name

- Cbsfunde: combobox hiện lên khi người dùng chọn giá trị trong cbsfun Tùy vào giá trị người dùng chọn trong cbsfun mà giá trị tương ứng

function_id hay function_name sẽ được đổ vào trong combobox này

- Txtvalue: textbox sẽ hiện giá trị cuối cùng sau khi người dùng chọn search theo giá trị gì

- Btsearch: tiến hành search theo giá trị trong txtvalue

Trang 33

Trên DataGridview này người dùng có thể chọn một dòng dữ liệu, khi chọn linklabelthêm, xóa nhân viên thì dữ liệu trong dòng đó sẽ hiện lên tương ứng với các button trongform mới.

Người dùng cũng có thể thao tác trên dgvemp nhưng mọi sự thay đổi trên dgvemp chỉthực sự thay đổi khi người dùng click vào nút Summit (trường hợp xóa nhân viên) Việcthay đổi trên dgvemp lúc này chỉ ảnh hưởng lên các DataTable và sẽ không thay đổi gìnếu đóng chương trình

2.3.2 Thiết kế tầng dữ liệu

Trong form sử dụng DataTable:

 DataTable Employee gắn với điều khiển dgvemp được tạo bởi DataAdapter daemp:

SELECT employee_id, fullname, gender, company, date_join,

service_years, promote_date, yearsin_wl, position_id, hrbp_id,lm_id

FROM EMPLOYEE

 DataTable Position sử dụng trong cbsposde tạo bởi:

DataAdapter daposid nếu cbspos chọn position_id:

SELECT Position_idFROM PositionDataAdapter daposna nếu cbspos chọn position_name

SELECT Position_nameFROM Position

 DataTable Department sử dụng trong cbsdepde tạo bởi

DataAdapter dadepid nếu cbsdep chọn Department _id:

SELECT Department_idFROM DepartmentDataAdapter dadepna nếu cbsdep chọn Department _name

SELECT Department _nameFROM Department

Trang 34

 DataTable Function sử dụng trong cbsfunde tạo bởi

DataAdapter dafunid nếu cbsfun chọn Function _id:

SELECT Function _idFROM FunctionDataAdapter dafunna nếu cbsfun chọn Function _name

SELECT Function _nameFROM Function

Tương tự với search theo position, department, function

private void btsposid_Click(object sender, EventArgs e)

Trang 35

bộ thông tin về nhân viên cũng được hiện lên.

Trên form có công cụ hỗ trợ tìm kiếm đa năng, cho phép người dùng tìm kiếmtheo nhiều cách khác nhau Vì số lượng department, position, employee tại công

ty khá lớn nên công cụ hỗ trợ tìm kiếm này càng thêm hữu ích cho người sửdụng

Khi Load form, sẽ có khung cho người dùng chọn cách tìm kiếm (tìm kiếm theodepartment, position, employee) Khi người dùng đã chọn cách tìm kiếm, form sẽhiện lên một khung khác cho người dùng chọn theo từng đối tượng của cách tìmkiếm đó Ví dụ nếu chọn cách tìm kiếm theo department, thì sẽ có 2 đối tượng đểtìm kiếm là tìm kiếm theo department id và department name Sau khi chọn đốitượng tìm kiếm, form sẽ hiện lên khung cho người dùng nhập vào thông tin hoặcchọn thông tin của đối tượng tìm kiếm

Việc nhập hay chỉnh sửa thông tin trong form chưa ảnh hưởng đến cơ sở dữ liệu.Khi muốn chỉnh sửa hay thêm một nhân viên bạn click vào dòng link màu xanhdương Một form khác sẽ hiện lên với các khung tương ứng với thông tin nhân

Trang 36

viên trong form trước để người dùng có thể thêm nhân viên mới hay chỉnh sửanhân viên cũ Trường hợp chỉnh sửa nhân viên, dữ liệu của nhân viên được chọn

sẽ hiển thị lên form mới và người dùng chỉ cần điều chỉnh những thông tin cầnthay đổi Sau khi thao tác trên form mới xong, để thấy được những thay đổi trong

cơ sở dữ liệu, người dùng sẽ trở về form cũ và nhấn nút Refresh

Khi người dùng nhấn vào link Delete Employee sẽ xuất hiện một textbox.TextBox này cho phép người dùng nhập employee id của nhân viên cần xóa

Nhấn nút Summit sẽ tiến hành xóa nhân viên trong cơ sở dữ liệu Nhấn nútCancel sẽ thoát khỏi thao tác xóa nhân viên

Dưới sự hỗ trợ của mô hình 3 lớp, quá trình xây dựng form ứng dụng quản lý lý

đã đáp ứng đầy đủ các yêu cầu chức năng, mã lệnh phải viết trong form là rất ít

và dễ quản lý Hơn nữa tính tin cậy và hiệu quả của form khi vận hành là rất cao,khả năng xảy ra lỗi rất thấp và quá trình xây dựng form lại dễ thực hiện, do cáclớp của form chủ yếu được thiết kế dựa trên các lớp hỗ trợ sẵn của ADO.NET Do

đó tạo điều kiện thuận lợi trong việc bảo trì và phát triển hệ thống khi cần thayđổi nhu cầu quản lý

Trong các chương tiếp theo, đề tài sẽ trình bày chi tiết cách thiết kế của các formcòn lại trong toàn bộ phần mềm

Chương 3: PHÂN TÍCH VÀ THIẾT KẾ CƠ SỞ DỮ LIỆU

Chương này tập trung vào việc phân tích và thiết kế cơ sở dữ liệu theo hệ thống Mục

đích chính là thiết kế tầng dữ liệu trong các form

3.1 Mô hình quan niệm dữ liệu

42

SALARYSTANDARDFUNCTION

DEPARMENT

EMPLOYEE

DETAIL

CóGi

Thuộ

Trang 37

Hình 3.1 Mô hình quan niệm dữ liệu

Mối quan hệ giữa các thực thể

Mỗi employee có một Position, mỗi Position phải thuộc về ít nhất một Employee

Mỗi nhân viên trong công có một Employee Detail, và một Employee Detail chỉ thuộc

EMPLOYEE (Employee_id, fullname, company, position_id, payroll_id, gender,

date_join, promote_date, LM_id, HRBP_id)

DETAIL_EMP (Employee_id, marital_status, birthday, language, R_address,

C_address, creditcard_number, bank_name)

Trang 38

POSITION (Position_id, position_name, location, grade, department_id, headcount, repot_to_pos)

DEPARTMENT (Department_id, Department_name, dn_detail, function_id)

FUNCTION (Function_id, function_name)

SALARY_STANDARD (Grade, BasePay, VariablePay, GoalShare, GPSP)

3.3 Mô tả chi tiết các quan hệ

EMPLOYEE: Chứa thông tin về nhân viên

Stt Tên Thuộc Tính Diễn Giải Kiểu dữ liệu Ràng buộc

1 Employee_id Mã nhân viên nchar(10) Khóa chính

2 Fullname Tính nhân viên nvarchar(50)

5 Payroll_id Mã tính lương nchar(5)

7 date_join Ngày vào công ty Datetime

8 promote_date

Ngày chuyển sang

vị trí cao hơn Datetime

Id người quản lý

DETAIL_EMP: Chứa thông tin chi tiết về nhân viên

Trang 39

Stt Tên Thuộc Tính Diễn Giải Kiểu dữ liệu Ràng buộc

2 MARITAL_STATUS Tình trạng hôn nhân nchar(10)

6 R_ADDRESS Địa chỉ thường trú nvarchar(50)

7 C_ADDRESS Địa chỉ tạm trú nvarchar(50)

8 CREDITCARD_NB Id của thẻ ATM int

Tên của ngân hàng

POSITION: chứa tất cả các vị trí có trong công ty

Stt Tên Thuộc Tính Diễn Giải Kiểu dữ liệu Ràng buộc

2 POSITION_NAME Tên vị trí nvarchar(50)

5 DEPARTMENT_ID Id của bộ phận nchar(5)

Trang 40

7 REPORT_TO_POS

Báo cáo tới position

DEPARTMENT: chứa tất cả các bộ phận trong công ty

Stt Tên Thuộc Tính Diễn Giải Kiểu dữ liệu Ràng buộc

2 DEPARMENT_NAME Tên của bộ phận nvarchar(50)

Tên đầy đủ của bộ

4 FUNCTION_ID Id của phòng ban char(4)

FUNCTION: chứa tất cả các phòng ban trong công ty

Stt Tên Thuộc Tính Diễn Giải Kiểu dữ liệu Ràng buộc

2 FUNCTION_NAME Tên của phòng ban nvarchar(50)

SALARY_STANDARD: chứa các thông tin về lương cho từng cấp bậc

Stt Tên Thuộc Tính Diễn Giải Kiểu dữ liệu

Ràng buộc

Ngày đăng: 25/05/2014, 20:34

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] Ths.NGUYỄN DUY NHẤT, Giáo trình nhập môn Cơ Sở Dữ Liệu, chuyên đề Cơ Sở Dữ Liệu trong Hệ Thống Thông Tin Khác
[2] ThS NGUYỄN SƠN HOA, Giáo trình Tin Học Đại Cương, NXB Đại học quốc gia TP HCM Khác
[3] ThS NGUYỄN THỊ BICH LIÊN, Bài giảng Hệ Thống Thông Tin Kế Toán, NXB Đại Học Quốc Gia TP.HCM,2008 Khác
[4] ThS TRẦN HOÀNG TUẤN, Bài giảng Lập Trình C# Khác
[5] ThS NGUYỄN ANH HÀO, Bài giảng Hệ Thống Thông Tin Quản Lý, NXB Đại Học Quốc Gia TP.HCM,2008 Khác
[6] ĐẬU QUANG TUẤN, Tự Học Lập Trình Hướng Đối Tượng và Lập Trình Cơ Sở Dữ Liệu C#, NXB Giao Thông vận tải 2006 Khác

HÌNH ẢNH LIÊN QUAN

Hình 1.1: Cơ cấu tổ chức công ty Unilever - Báo cáo thực tập khảo sát và xây dựng phần mềm quản lý nhân sự
Hình 1.1 Cơ cấu tổ chức công ty Unilever (Trang 4)
Hình 1.2 Sơ đồ MasLow - Báo cáo thực tập khảo sát và xây dựng phần mềm quản lý nhân sự
Hình 1.2 Sơ đồ MasLow (Trang 7)
Hình 1.3 Biểu đồ về số lượng nhân viên - Báo cáo thực tập khảo sát và xây dựng phần mềm quản lý nhân sự
Hình 1.3 Biểu đồ về số lượng nhân viên (Trang 9)
Hình 2.1 Mô hình 3 lớp - Báo cáo thực tập khảo sát và xây dựng phần mềm quản lý nhân sự
Hình 2.1 Mô hình 3 lớp (Trang 15)
Hình 2.2 Mô hình 3 lớp Microsoft đề nghị dùng cho các hệ thống phát triển trên nền   .NET - Báo cáo thực tập khảo sát và xây dựng phần mềm quản lý nhân sự
Hình 2.2 Mô hình 3 lớp Microsoft đề nghị dùng cho các hệ thống phát triển trên nền .NET (Trang 16)
Hình 2.3: Giao diện EMPLOYEE FORM - Báo cáo thực tập khảo sát và xây dựng phần mềm quản lý nhân sự
Hình 2.3 Giao diện EMPLOYEE FORM (Trang 29)
Hình 2.4 Giao diện EmployeeForm khi click chọn chọn giá trị trong cbsearch - Báo cáo thực tập khảo sát và xây dựng phần mềm quản lý nhân sự
Hình 2.4 Giao diện EmployeeForm khi click chọn chọn giá trị trong cbsearch (Trang 31)
Bảng tầm ảnh hưởng - Báo cáo thực tập khảo sát và xây dựng phần mềm quản lý nhân sự
Bảng t ầm ảnh hưởng (Trang 41)
Bảng tầm ảnh hưởng - Báo cáo thực tập khảo sát và xây dựng phần mềm quản lý nhân sự
Bảng t ầm ảnh hưởng (Trang 42)
Bảng tầm ảnh hưởng - Báo cáo thực tập khảo sát và xây dựng phần mềm quản lý nhân sự
Bảng t ầm ảnh hưởng (Trang 43)
Sơ đồ màn hình. - Báo cáo thực tập khảo sát và xây dựng phần mềm quản lý nhân sự
Sơ đồ m àn hình (Trang 45)
Hình 4.1: Sơ đồ màn hình - Báo cáo thực tập khảo sát và xây dựng phần mềm quản lý nhân sự
Hình 4.1 Sơ đồ màn hình (Trang 46)
Hình 4.2 Màn hình đăng nhập - Báo cáo thực tập khảo sát và xây dựng phần mềm quản lý nhân sự
Hình 4.2 Màn hình đăng nhập (Trang 46)
Hình 4.3: Giao diện Main form - Báo cáo thực tập khảo sát và xây dựng phần mềm quản lý nhân sự
Hình 4.3 Giao diện Main form (Trang 48)
Hình 4.4: Màn hình danh sách người dùng va phân quyền - Báo cáo thực tập khảo sát và xây dựng phần mềm quản lý nhân sự
Hình 4.4 Màn hình danh sách người dùng va phân quyền (Trang 50)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w