Chương trình quản lí nhân sự về mặt kiến trúc gồm 3 khối chính đó là: Quản lí hệ thống, quản lí kho dữ liệu và đưa ra các thống kê báo cáo.
Bộ phận quản lí nhân sự trong công ty có nhiệm vụ điều hành và quản lí toàn bộ hệ thống trong công ty: tất cá những vấn đề mà chương trình quản lí nhân sự đưa ra cả lương và các chính sách bảo hiểm xã hội cũng như bảo hiểm y tế.Toàn bộ phần mềm còn thiếu nhưng sẽ được hoàn thành và cập nhật để trở thành một phần mềm hoàn thiện và đầy đủ.
Trong kho dữ liệu là toàn bộ những thông tin vào, ra mà những nhân viên có từ khi vào doanh nghiệp.
Từ những dữ liệu và những xử lí qua phần mềm thì nhân viên quản lí đưa ra được báo cáo cần thiết về nhân sự trong công ty cho ban giám đốc, cho nhân viên và các bộ phận khác.
85 trang |
Chia sẻ: oanh_nt | Lượt xem: 1382 | Lượt tải: 0
Bạn đang xem trước 20 trang tài liệu Chuyên đề Phân Tích Thiết Kế Hệ Thống Quản Lí Nhân Sự Tại Công Ty Cổ Phần Phần Mềm Quản Trị Doanh Nghiệp - CyberSoft, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
: LÍ THUYẾT CƠ BẢN
I. Bài toán quản lí nhân sự trong doanh nghiệp
1. Bài toán
Công tác quản lý nhân sự của nhân viên đóng vai trò hết sức quan trọng đối với hoạt động của các công ty các doanh nghiệp ở Việt Nam Trong khoảng 10 năm trở lại đây công tác quản lý nhân viên (ở một số công ty trong đó có Công Ty Cổ Phần Phần Mềm quản trị doanh nghiệp) đã được tin học hóa nhằm đem lại hiệu quả cao hơn, nhanh hơn tin cậy hơn.
Bài toán Quản lý nhân sự đặt ra các vấn đề cơ bản như sau: Thể hiện được mô hình tổ chức quản lý nhân viên theo chức vụ, theo trình độ văn hóa, theo trình độ ngoại ngữ… Hệ thống còn phải cho phép tạo ra các báo cáo từ lí lịch. Nhằm phục vụ công tác điều hành nhân viên và sắp xếp lịch cho nhân viên làm việc một cách khoa học và đạt hiệu quả cao nhất. In Danh sách nhân viên, in danh mục chức vụ, in danh mục tỉnh thành…
Ngoài các chức năng chính như trên, hệ thống này còn cần thêm một số chức năng khác như: cập nhật các loại danh mục( danh mục tỉnh thành, danh mục ngoại ngữ, danh mục đơn vị …) các chức năng sao, chép, sửa, xóa.
Qua quá trình tìm hiểu và dựa trên những bất cập hiện nay tại công ty em có định hướng sẽ viết và xin đưa ra đề tài:
Đề tài: “ Phân Tích Thiết Kế Hệ thống quản lí nhân sự tại Công ty cổ phần phần mềm quản trị doanh nghiệp – CyberSoft
Đề tài này là một đề tài hay nếu được phát triển nó sẽ được ứng dụng trong rất nhiều công ty khác nhau. Nếu sau này có thời gian em sẽ phát triển và cho thêm vào phần mềm một số ứng dụng nữa.
Em sẽ cố gắng viết hoàn chỉnh nhất trong khả năng có thể để làm bài báo cáo thực tập được tốt nhất.
2. Giải pháp
Yêu cầu chung của phần mềm:
- Chương trình đơn giản và dễ sử dụng
- Chương trình phải đáp ứng các quá trình sử lí số liệu một cách chính xác
- Chương trình giải quyết và đưa ra các báo cáo một cách nhanh chóng
- Chương trình đảm bảo an toàn về dữ liệu
- Chương trình mang tính mềm dẻo và không cần đòi hỏi cấu hình máy quá cao
3. Phạm vi ứng dụng của đề tài
Đề tài này nhằm giúp cho nhà quản lí, cụ thể là bộ phận nhân sự của công ty biết được tình hình về nhân viên trong công ty mình, về lí lịch qua đó hỗ chợ cho lịch làm việc và những phương án công tác thích hợp nhằm đạt hiệu quả cao nhất cho công ty.
Đề tài được ứng dụng trong nội bộ của công ty triển khai dự án cụ thể ở đây là Công ty cổ phần phần mềm quản trị doanh nghiệp - CyberSoft. Bên cạnh đó đề tài có thể được ứng dụng và triển khai tại các công ty khác nhằm tạo ra hiệu quả cao nhất cho công ty.
4. Đối tượng hưởng lợi
Đối với ban lãnh đạo và giám đốc của công ty: có thể nắm được tình hình nhân viên của công ty thông qua các báo cáo của phần mềm, từ đó có thể đưa ra được những quyết định chính xác cho việc quản lí, điều hành của công ty của công ty.
Đối với các trưởng phòng ban: có thể bố trí, tính toán công việc một cách hợp lý, nhanh chóng và chính xác. Nắm bắt được tình hình về nhân viên trong công ty qua các báo cáo của phần mềm để có những thông tin chính xác ra quyết định và báo cáo với giám đốc.
Đối với nhân viên: có thể thực hiện công việc của mình một cách chính xác hiệu quả. Không phải mất nhiều thời gian nhiều trong viêc kiểm kê, nắm bắt thông tin. Biết được các anh em trong công ty và có thể liên hệ qua lại với nhau. Tạo điều kiện kết gắn mọi nhân viên trong công ty như anh em một nhà qua đó hình thành môi trường làm việc thân thiện đoàn kết cùng chung vai gắng sức đưa công ty phát triển.
Ngay cả đối với gia đình và người thân của nhân viên trong công ty cũng sẽ gặp rất nhiều thuận lợi khi biết về con em mình hiện đang làm việc tại công ty khi gặp ra sự cố.
II. Kế hoạch công việc cần làm
1 - Xây dựng và quản lý chương trình quản lí nhân sự
Đề xuất ý tưởng và hình thành bộ khung chương trình
Lập giải pháp kĩ thuật
Xây dựng
Thực hiện
Báo cáo tổng kết
2 - Xác định yêu cầu
Lập kế hoạch
Khảo sát
Phân tích nghiệp vụ
Phân tích yêu cầu người sử dụng
Mô tả hoạt động của công ty cổ phần phần mềm quản trị doanh nghiệp
Báo cáo tổng kết
3 - Phân tích, thiết kế
Lập kế hoạch thiết kế
Thiết kế kiến trúc
Thiết kế dữ liệu
Thiết kế thủ tục
Thiết kế chương trình
Thiết kế giao diện
Báo cáo tổng kết
4 - Lập trình
Lập kế hoạch lập trình
Lập trình thư viện chung
Báo cáo tổng kết quy trình
5- Test
Lập kế hoạch Test
Kịch bản Test
Test hệ thống
Test nghiệm thu
Hồ sơ Test
III. Lý thuyết về hệ thống thông tin & công nghệ phần mềm
1. Lý thuyết về hệ thống thông tin
Hệ thống thông tin: Hệ thống thông tin (information system) là một hệ thống mà mục tiêu tồn tại của nó là cung cấp thông tin phục vụ cho hoạt động của con người trong một tổ chức nào đó. Ta có thể hiểu hệ thống thông tin là hệ thống mà mối liên hệ giữa các thành phần của nó cũng như mối liên hệ giữa nó với các hệ thống khác là sự trao đổi thông tin.Một số ví dụ về hệ thống thông tin:Máy tính là một hệ thống thông tin
2. Khái niệm về phần mềm và công nghệ phần mềm, phân loại phần mềm
2.1 Khái niệm về phần mềm.
Phần mềm là một khái niệm mà cho đến nay có rất nhiều cách khác nhau để định nghĩa. Sau đây là một số cách định nghĩa về phần mềm:
Phần mềm là tập hợp tất cả các câu lệnh do các lập trình viên viết ra để hướng máy tính làm một số công việc cụ thể nào đó.
Theo giáo trình tin học đại cương của khoa tin học ĐH kinh tế quốc dân thì: “Phần mềm máy tính là các chương trình, cấu trúc dữ liệu làm cho chương trình xử lý được những thông tin thích hợp và các tài liệu mô tả phương thức sử dụng các chương trình ấy. Phần mềm luôn được bổ sung và sửa đổi một cách thường xuyên”
Để có được phần mềm, các nhà lập trình phải sử dụng các ngôn ngữ lập trình để viết, ngôn ngữ lập trình là ngôn ngữ trung gian giữa ngôn ngữ giao tiếp của con người với ngôn ngữ máy, ngôn ngữ càng gần với ngôn ngữ con người thì gọi là ngôn ngữ cấp cao, càng gần ngôn ngữ máy thì gọi là ngôn ngữ cấp thấp.
với các chương trình ứng dụng khác nhau và các trình điều khiển thiết bị khác nhau
2.2 Khái niệm về công nghệ phần mềm
Công nghệ phần mềm là một lĩnh vực nghiên cứu mới của tin học, được triển khai trong giai đoạn phát triển rất cao của tin học và viễn thông khi phần mềm đã trở thành một ngành công nghiệp.
Công nghệ phần mềm là môn khoa học nghiên cứu các phương pháp, các thủ tục và các công cụ đi từ phân tích thiết kế đến quản lý một dự án phần mềm nhằm đạt được các mục tiêu của dự án.
Công nghệ phần mềm bao gồm một tập hợp với 3 yếu tố chủ chốt: Công cụ và thủ tục, giúp cho người quả lý có thể kiểm soát được quá trình phát triển phần mềm và cung cấp cho kỹ sư phần mềm một nền tảng để xây dựng một phần mềm chất lượng cao.
2.3 Phân loại phần mềm.
2.3.1 Theo phương thức hoạt động
Phần mềm hệ thống dùng để vận hành máy tính và các phần cứng máy tính, ví dụ như các hệ điều hành máy tính Windows XP, Linux, Unix, các thư viện động (còn gọi là thư viện liên kết động; tiếng Anh: dynamic linked library - DLL) của hệ điều hành, các bộ điều vận (driver), phần sụn(firmware) và BIOS. Đây là các loại phần mềm mà hệ điều hành liên lạc với chúng để điều khiển và quản lý các thiết bị phần cứng.
Phần mềm ứng dụng để người sử dụng có thể hoàn thành một hay nhiều công việc nào đó, ví dụ như các phần mềm văn phòng (Microsoft Offices, Lotus 1-2-3, FoxPro), phần mềm doanh nghiệp, phần mềm giáo dục, cơ sở dữ liệu, phần mềm trò chơi, chương trình tiện ích.
Các phần mềm chuyển dịch mã bao gồm trình biên dịch và trình thông dịch: các loại chương trình này sẽ đọc các câu lệnh từ các mã nguồn được viết bởi các lập trình viên và dịch nó sang dạng ngôn ngữ máy mà máy tính có thể hiểu được, hay dịch nó sang một dạng khác như là tập tin đối tượng (object file) và các tập tin thư viện (library file) mà các phần mềm khác (như hệ điều hành chẳng hạn) có thể hiểu để vận hành máy tính thực thi các lệnh.
2.3.2 Theo khả năng ứng dụng
Những phần mềm không phụ thuộc, nó có thể được bán cho bất kỳ khách hàng nào trên thị trường tự do. Ví dụ: phần mềm về cơ sở dữ liệu như Oracle, đồ họa như Photoshop, Corel Draw, soạn thảo và xử lý văn bản, bảng tính... Ưu điểm: Thông thường đây là những phần mềm có khả năng ứng dụng rộng rãi cho nhiều nhóm người sử dụng. Khuyết điểm: Thiếu tính uyển chuyển, tùy biến.
Những phần mềm được viết theo đơn đặt hàng hay hợp đồng của một khách hàng cụ thể nào đó (một công ty, bệnh viện, trường học...). Ví dụ: phần mềm điều khiển, phần mềm hỗ trợ bán hàng...
Ưu điểm: Có tính uyển chuyển, tùy biến cao để đáp ứng được nhu cầu của một nhóm người sử dụng nào đó. Khuyết điểm: Thông thường đây là những phần mềm ứng dụng chuyên ngành hẹp.
* Cách phân loại thứ hai:
2.3.3 Phần mềm ứng dụng
Phần mềm cho những ứng dụng tổng quát:
Là những phần mềm đáp ứng được những công việc mang tính phổ thông thường ngày của hầu hết người sử dụng. Ví dụ:
Chương trình duyệt Web cho phép người sử dụng có thể khai thác kho dữ liệu khổng lồ trên Internet để phục vụ cho công việc của mình: Internet Explorer, Opera…
Phần mềm nhận và gửi thư điện tử giúp chúng ta giữ liên hệ với mọi đối tác cho dù họ ở bất kỳ đâu trên thế giới thông qua mạng Internet: Outlook Express.
Hệ soạn thảo điều khiển máy tính hoạt động như một máy chữ để giúp người dùng biên soạn các tài liệu như công văn, thư từ… Hệ soạn thảo văn bản được sử dụng nhiều nhất là MS Word.
Hệ quản trị cơ sở dữ liệu giúp lưu chữ, tổ chức, sắp sếp, cập nhật thông tin và tìm kiếm thông tin khi cần thiết. Ở Việt Nam hệ quản trị CSDL được dùng nhiều nhất là hệ quản trị: Foxpro và MS Access.
Phần mềm cho những mục đích cụ thể.
+ Phần mềm kinh doanh: Gồm các chương trình giúp các doanh nghiệp hoàn thành những nhiệm vụ xử lý thông tin có tính chất thủ tục lặp đi lặp lại hàng ngày, hàng tháng, hàng quý hay hàng năm. Phần mềm kinh doanh khác phần mềm sản suất ở chỗ nó nhấn mạnh vào những nhiệm vụ trên phạm vi toàn cơ quan như phần mềm kế toán, quản lý nhân sự…Các phần mềm được dùng nhiều nhất hiện nay là Fast và Effect.
Phần mềm giải trí bao gồm các trò chơi và các chương trình để giúp tiêu khiển, giải trí. Hiện nay, khi mức của con người càng cao thì các phần mềm thuộc loại nay đang lên ngôi.
Phần mềm giáo dục và tham khảo giúp cung cấp kiến thức, kỹ năng về một chủ thể, lĩnh vực nào đó, cung cấp các bộ cơ sở dữ liệu cho phép tra cứu thông tin theo yêu cầu: Phần mềm tra cứu từ điển.
2.3.4 Phần mềm hệ thống.
Phần mềm hệ thống bao gồm các chương trình quản lý, hỗ trợ các tài nguyên và điều hành các hoạt động của hệ thống máy tính.
Phần mềm quản lý hệ thống
Hệ điều hành: Là một bộ chương trình phục vụ cho việc quản lý chặt chẽ hệ thống tính toán và tổ chức khai thác chúng một cách tối ưu.
Các chương trình tiện ích: Được xây dựng với mục đích bổ xung thêm các dịch vụ cần cho người mà hệ điều hành chưa đáp ứng được hay là đã có nhưng chọn vẹn: Winzar, Foxit reader.
Các chương trình điều khiển thiết bị giúp máy tính điều khiển một thiết bị nào đó mà không có trong danh sách những thiết bị phần cứng được hệ điều hành hỗ trợ: Các loại Card màn hình.
Phần mềm phát triển hệ thống:
Các chương trình dịch có nhiệm vụ dịch các chương trình viết bằng ngôn ngữ thuật toán sang ngôn ngữ máy tính để có thể hiểu và xử lý được.
Ngôn ngữ lập trình là công cụ để diễn tả thuật toán thành chương trình cho máy tính thực hiện. Cho đến nay đã có 5 thế hệ ngôn ngữ lập trình: Java của sun, dot net của Microsoft.
3 Chu kỳ sống của một phần mềm:
3.1 Chu kỳ sống của dự án tuần tự
Giai đoạn khởi tạo.
Khởi tạo dự án là một giai đoạn xác định nhu cầu của ứng dụng và xác định đầy đủ vấn đề để tập hợp đội ngũ đánh giá vấn đề đó. Bổ nhiệm các cá nhân và các đối tác liên quan, bổ nhiệm các bên tham gia của mỗi tổ chức vào nhóm xây dựng phân mềm. Đầu ra của giai đoạn này là một bản ghi hoặc một tài liệu chính thức chỉ ra các nguồn tài trợ, xác định vấn đề các bên tham gia.
Giai đoạn nghiên cứu tính khả thi
Tính khả thi có được từ kết quả phân tích các rủi do, chi phí và lợi nhuận liên quan đến các vấn đề kinh tế, kỹ thuật và tổ chức của người sử dụng. Các vấn đề đặt ra phải được xem xét chi tiết để đảm bảo rằng mọi khía cạnh của tính khả thi đã được xem xét đến.
Báo các tổng quát về tính khả thi bao gồm:
- Vấn đề đặt ra.
- Tính khả thi về mặt kinh tế, kỹ thuật và tổ chức.
- Những rủi ro và bất ngờ liên quan đến ứng dụng.
- Ý tưởng thích hợp nhất về sản phẩm phần mềm và giải thích tại sao nó tốt hơn các sản phẩm khác cùng loại.
- Các cầu huấn luyện và lịch trình dự định.
- Dự đoán nhân sự cho dự án tính theo từng giai đoạn và mức độ yêu cầu.
Giai đoạn phân tích.
* Yêu cầu về chức năng hệ thống được thiết kế để làm gì? Khuân dạng các định nghĩa này vào phương pháp luận sử dụng trong giai đoạn phân tích.
- Yêu cầu về cấu hình – các thiết bị cuối, các thông điệp, thời gian trả lời của mạng, dung lượng vào/ ra, yêu cầu thời gian sử lý.
- Yêu cầu về giao diện - dữ liệu trao đổi với các ứng dụng và đơn vị khác là gì? định nghĩa bao gồm cả tính thời gian, khuôn dạng của dữ liệu trao đổi.
- Các chuẩn xây dựng phần mềm - dạng cấu trúc, tính thời gian, nội dung cơ bản của tại liệu cần đưa ra trong quá trình xây dựng phần mềm. định dạng thông tin bao gồm nội dung của dữ liệu từ điển hay kho lưu trữ đối với việc thiết kế đối tượng, nội dung báo cáo dự án, các yêu cầu cần thiết khác được giám sát bởi nhóm tham gia dự án.
Giai đoạn thiết kế ở mức quan niệm.
Các cách gọi khác bao gồm thiết kế sơ bộ, thiết kế logic, thiết kế bên ngoài hay định danh các yêu cầu của phần mềm. Hoạt động chính của thiết kế quan niệm là định nghĩa chức năng chi tiết của tất cả các nhân tố bên ngoài của một chương trình ứng dụng, nó bao gồm màn hình hiển thị, báo cáo, đơn vị dữ liệu hội thoại, và các khuân mẫu. Cả nội dung và cách trình bày ở mức này. Hơn nữa, mô hình dữ liệu logic được chuyển sang sơ đồ cơ sở dữ liệu logic, hoặc các khung nhìn của người sử dụng.
Giai đoạn thiết kế.
* Những thuật ngữ khác dùng để miêu tả các hoạt động thiết kế bao gồm thiết kế chi tiết, thiết kế vật lý, thiết kế bên trong và thiết kế sản phẩm. Trong suốt giai đoạn thiết kế, kỹ sư phần mềm phải tạo, sưu tập tài liệu và kiểm tra.
-Kiến trúc phần mềm: Định danh và định nghĩa chương trình, các khối độc lập, các chức năng, các luật, các đối tượng và các mối quan hệ giữa chúng.
- Các thành phần và các khối của phần mềm: Định nghĩa một cách chi tiết nội dung và các chức năng của thành phần, bao gồm đầu vào\ra, sự hiển thị, báo cáo, dữ liệu, các file, các kết nôi và các tiến trình.
- Giao diện: Nội dung chi tiết, tính toán thời gian, với trách nhiệm cụ thể, và thiết kế dữ liệu được trao đổi với những ứng dụng hay tổ chức khác.
- Kiểm tra: Xác định chiến lược, nhiệm vụ, và tính toán thời gian cho mọi loại hình kiểm tra cần được tiến hành.
- Dữ liệu: Là việc xác định cách thể hiện vật lý của dữ liệu trên các thiết bị, và các yếu tố yêu cầu, tính toán thời gian, nhiệm vụ phân giã, sao chép các bản sao dữ liệu.
Giai đoạn thiết kế hệ thống.
- Cấu trúc điều khiển trình ứng dụng: Xác định bằng cách nào một chương trình hay một khối độc lập được kích hoạt và nó sẽ về đâu khi kết thúc.
- Cấu trúc dữ liệu và sơ đồ cài đặt vật lý: Trong môi trường Cơ sở dữ liệu, hoạt động này bao gồm việc sác định một thư viện dữ liệu tập trung, các đường hộp thoại, và vùng đệm cho việc sử dụng hệ quản trị dữ liệu.
- Định kích thước: Xác định bất kỳ một trương trình và vùng đệm mà nó dự tính như là một bộ nhớ trú ngụ đối vói chế độ trực tiếp hay các tiến trình theo thời gian thực.
- Thuật toán chính: Chỉ ra các vấn đề toán học cho phép kiểm tra một cách độc lập tính đúng đắn của công thức.
- Các thành phần của chương trình: Định danh, tên, và tính chất sử dụng. Về mặt thể hiện tính chất bao gồm các thủ tục dữ liệu, các thủ tục, khối khác có thể bị gọi trong quá trình sử lý của khối này, kích thước hang đợi, vùng đệm và các yêu cầu của tiến trình.
Giai đoạn triển khai:
Việc thực hiện triển khai còn được gọi là cài đặt và cho phép sử dụng. Triển khai là quá trình một sản phẩm phần mềm được tích hợp vào môi trường làm việc và cho phép sử dụng. Thực hiện triển khai bao gồm sự hoàn chỉnh của chuyển đổi dữ liệu, cài đặt và đào tạo sử dụng. Vào thời điểm này của chu trình một dự án quá trình phát triển phần mềm kết thúc, và giai đoạn bảo hành, bảo trì bắt đầu. Việc bảo trì tiếp tục cho đến khi dự án kết thúc.
Giai đoạn vận hành và bảo trì.
Vận hành và bảo trì là một giai đoạn trong quá trình sản xuất phầm mềm ở đó sản phẩm phần mềm được sử dụng trong môi trường làm việc, giám sát đối với hiệu quả thống kê, và sửa đổi nếu cần thiết.
Giai đoạn loại bỏ.
Đây là giai đoạn trong quá trình sản xuất phần mềm mà tại đó việc cung cấp sản phẩm phần mềm kết thúc. Thông thường, các chức năng của sản phẩm phần mềm được chuyển tới một hệ thống kế tiếp.
Các hoạt động thường xuyên.
Có hai hoạt động phổ biến trong mỗi giai đoạn là: Kiểm kê, phê chuẩn và quản lý cấu hình. Tổng kết mỗi giai đoạn là sự kiểm tra phê chuẩn. Đó chính là mục tiêu của sản phẩm. Việc kiêm tra đưa ra khuân mẫu đúng đắn tương ứng giữa sản phẩm phần mềm và đặc tính của nó. Sự phê chuẩn đưa ra chuẩn mực về sự phù hợp hay chất lượng của sản phẩn phần mềm đối với mục đích của quá trình sử dụng. Một người quản lý dự án được chỉ định nắm giữ phiên bản chính của mỗi sản phẩm.
CHƯƠNG 3: PHÂN TÍCH THIẾT KẾ HỆ THỐNG QUẢN LÍ NHÂN SỰ TẠI CÔNG TY CỔ PHÂN PHẦN MỀM QUẢN TRỊ DOANH NGHIỆP - CYBERSOFT
I. Phân Tích Hệ Thống
1. Mục Đích Của Hệ Thống
Nhằm mục đích để giúp cho công việc của nhân viên quản lí nhân sự tại công ty được diễn ra nhanh chóng và thuận tiện, giúp cho nhân viên cũng như giám đốc biết được tình trạng nhân viên trong công ty cũng như nhân viên biết nhau và gắn bó với nhau hơn.
Chương trình giúp cho vệc lưu trữ và quản lí toàn bộ hồ sơ của nhân viên và toàn bộ thành viên trong công ty như: sơ yếu lí lịch, các thông tin về đào tạo, công tác, về xuất thân về thành phân gia đình…
Chương trình đưa ra được báo cáo đầy đủ về các nhân viên một cách khoa học. Có thể tìm kiếm nhanh chóng và thuận tiện.
Cập nhật bổ sung các thành phần dữ liệu của nhân viên, thành viên trong công ty một cách nhanh chóng và đơn giản.
Ngoài ra chương trình còn đang hoàn thiện về quản lí lương của cán bộ công nhân viên trong công ty. Qua đây ta có thể phát triển chương trình thành một chương trình lớn có thể cung cấp cho người sử dụng nhiều mục đích và yêu cầu khác nhau.
2. Sơ Đồ Chức Năng
Các chức năng gồm có:
Thông tin về nhân viên.
Chỉnh sửa thông tin về nhân viên.
Tìm kiếm
Báo cáo
QUẢN LÍ NHÂN SỰ
1. Lập danh mục cơ sở
2. Chỉnh sửa thông tin nhân viên
3. Tìm kiếm nhân viên
4. Lên các báo cáo
2.1 Thêm nhân viên mới
2.2 Chỉnh sửa nhân viên đã có
Sơ đồ chức năng
Sơ đồ phân rã chức năng lập danh mục cơ sở
1.1 Danh mục bộ phận
1. Lập danh mục cơ sở
1.2 Danh mục bằng cấp
1.3 Danh mục cấp quyết định
1.4 Danh mục chức vụ
1.5 Danh mục chuyên ngành
1.6 Danh mục dân tộc
1.7 Danh mục hình thức đào tạo
1.8 Danh mục hình thức khen thưởng
1.9 Danh mục hình thức kỉ luật
1.10 Danh mục hình thức làm việc
1.11 Danh mục hình thức tuyển dụng
1.12 Danh mục kết quả đào tạo
1.13 Danh mục ngoại ngữ
1.14 Danh mục nhóm chức danh
1.15 Danh mục quan hệ gia đình
1.16 Danh mục trình độ chuyên môn
1.17 Danh mục trình độ chính trị
1.18 Danh mục trình độ ngoại ngữ
1.19 Danh mục trình độ tin học
1.20 Danh mục trình độ văn hóa
1.21 Danh mục tôn giáo
1.22 Danh mục tỉnh (TP)
1.23 Danh mục loại hợp đồng
1.24 Danh mục tình trạng hôn nhân
1.25 Danh mục bậc lương
1.26 Danh mục phụ cấp
1.27 Danh mục hệ số phụ cấp
1.28 Danh mục hệ số lương
- Sơ đồ phân rã chức năng chính sửa thông tin nhân viên
2. Chỉnh sửa thông tin nhân viên
2.1 Thêm nhân viên mới
2.2 Chỉnh sửa nhân viên đã có
- Sơ đồ phân rã chức năng tìm kiếm nhân viên
3. Tìm kiếm nhân viên
Tìm kiếm nhân viên theo tên
- Sơ đồ phân rã chức năng lên báo cáo
4.1 Báo cáo theo sơ yếu lí lịch
4.2 Báo cáo danh sách LĐ hết hợp đồng
4.3 BC theo quan hệ GĐ NV
4.4 BC theo quá trình khen thưởng
4.5 Theo quá trình công tác nước ngoài
4. Lên báo cáo
4.6 BC Tổng hợp tiền lương
4.7 D/S LĐ đóng bảo hiểm y tế
4.8 D/S LĐ đóng bảo hiểm xã hội
4.9 B/C Theo D/S nhân viên trong công ty
4.10 QT KT và CT nước ngoài
3. Sơ đồ ngữ cảnh
Nhân viên
Tin phản hồi Thông tin vào
Quản lí nhân sự
Hồ sơ nhân viên
Bộ phận quản lí
Thông tin
Thông tin bổ sung
Yêu cầu tìm kiếm
Các phòng ban
Thông tin nhân viên
3.1 Sơ đồi luồng dữ liệu mức 0
3.2 Sơ đồ luồng dữ liệu mức 1
- Lập danh mục
- Cập nhật thông tin nhân viên
- Tìm kiếm nhân viên
3.0 Tìm kiếm nhân viên
Nhân viên
Hồ sơ nhân viên
Ban quản lí
Thông tin nhân viên
YC tìm kiếm
YC Tìm kiếm
Các phòng ban khác
Thông tin tìm kiếm
Thông tin tìm kiếm
Danh mục
Hồ sơ công tác
- Tổng hợp báo cáo
II. Thiết kế hệ thống
1. Thiết kế kiến trúc
Quản lí nhân sự
Quản lí hệ thống
Thống kê báo cáo
Quản lí kho dữ liệu
Chương trình quản lí nhân sự về mặt kiến trúc gồm 3 khối chính đó là: Quản lí hệ thống, quản lí kho dữ liệu và đưa ra các thống kê báo cáo.
Bộ phận quản lí nhân sự trong công ty có nhiệm vụ điều hành và quản lí toàn bộ hệ thống trong công ty: tất cá những vấn đề mà chương trình quản lí nhân sự đưa ra…cả lương và các chính sách bảo hiểm xã hội cũng như bảo hiểm y tế.Toàn bộ phần mềm còn thiếu nhưng sẽ được hoàn thành và cập nhật để trở thành một phần mềm hoàn thiện và đầy đủ.
Trong kho dữ liệu là toàn bộ những thông tin vào, ra mà những nhân viên có từ khi vào doanh nghiệp.
Từ những dữ liệu và những xử lí qua phần mềm thì nhân viên quản lí đưa ra được báo cáo cần thiết về nhân sự trong công ty cho ban giám đốc, cho nhân viên…và các bộ phận khác.
2. Thiết kế dữ liệu
Dữ liệu của phần mềm bao gồm: hồ sơ nhân viên, danh mục hệ số lương, danh mục ngoại ngữ, danh mục tỉnh, danh mục trình độ văn hóa, danh mục trình độ tin học, danh mục bằng cấp…
2.1. Danh mục hồ sơ nhân viên
Tên trường
Kiểu trường
Độ rộng
Diễn giải
MA_NV
Character
8
Mã nhân viên
HO
Character
30
Họ
TEN
Character
18
Tên
BI_DANH
Character
48
Bí danh
TEN_DUNG
Character
48
Tên dùng
NGAY_SINH
Date
8
Ngày sinh
NOI_SINH
Character
48
Noi sinh
GIOI_TINH
Numeric
1
Giói tính
ANH
Character
128
Ảnh
MA_DT
Character
8
Mã đào tạo
MA_CBQD
Character
8
Mã cán bộ quyết định
MA_CQD
Character
8
Mã cấp quyết định
MA_CN
Character
8
Mã chuyên ngành học vị
MA_HTDT
Character
8
Mã hìng thức đào tạo
MA_HTKL
Character
8
Mã hình thức kỉ luật
MA_HTKT
Character
8
Mã hình thức khen thưởng
MA_CTNN
Character
8
Mã công tác nước ngoài
MA_NN
Character
8
Mã ngoại ngữ
MA_QHGD
Character
8
Mã quan hệ gia đình
MA_TDCT
Character
8
Mã trình độ chính trị
MA_TDCM
Character
8
Mã trình độ cách mạng
MA_TDNN
Character
8
Mã trình độ ngoại ngữ
MA_TDTH
Character
8
Mã trình độ tin học
MA_TDVH
Character
8
Mã trình độ văn hóa
MA_TINH
Character
8
Mã tỉnh
MA_HUYEN
Character
8
Mã huyện
MA_TG
Character
8
Mã tôn giáo
QUE_QUAN
Character
48
Quê quán
HO_KHAU
Character
48
Hộ khẩu
NOI_O
Character
48
Nơi ở
DT
Character
16
Điện thoại
DT_NR
Character
16
Điện thoại nhà riêng
FAX
Character
16
Số Fax
MOBILE
Character
16
Số Mobile
EMAIL
Character
32
Địa chỉ Email
SO_CMND
Character
16
Số chưng minh
NGAY_CMND
Date
8
Ngày cấp cntnd
NOI_CMND
Character
25
Noi cấp chứng minh
HO_CHIEU
Character
16
Hộ chiếu
NGAY_HC
Date
8
Ngày cấp
NOI_HC
Character
48
Nơi cấp
HAN_HC
Date
8
Hạn hộ chiếu
CHIEU_CAO
Numeric
5
Chiều cao
CAN_NANG
Numeric
4
Cân nặng
NHOM_MAU
Character
2
Nhóm máu
TP_GD
Character
48
Thành phân gia đình
TP_BT
Character
48
Thành phâần bản thân
NGAY_CM
Date
8
Ngày tham gia cách mạng
NGAY_TL
Date
8
Ngày thoát li
NGAY_NN
Date
8
Ngày nhập ngũ
NGAY_XN
Date
8
Ngày xuất ngũ
LOAI_TB
Character
8
Loại thương binh
NGAY_DBDA
Date
8
Ngày dự bị đảng
NGAY_VDA
Date
8
Ngày vào đảng
NOI_VDA
Character
48
Nơi vào đảng
NGUOI_GT
Character
48
Người giới thiệu
CHUC_VUDA
Character
8
Chức vụ đảng
SO_THEDA
Character
8
Số thẻ đảng
NGAY_CTDA
Date
8
Ngày cấp thẻ đảng
NOI_CTDA
Character
48
Nơi cấp thẻ đảng
NGAY_VDO
Date
8
Ngày vào đoàn
NOI_VDO
Character
48
Nơi vào đoàn
CHUC_VUDO
Character
8
Chức vụ đoàn
NGAY_VCD
Date
8
Ngày vào công đoàn
CHUC_VUCD
Character
8
Chức vụ công đoàn
SO_THECD
Character
16
Số thẻ công đoàn
NGAY_CTCD
Date
8
Ngày cấp thẻ công đoàn
NOI_CTCD
Character
10
Nơi cấp thẻ công đoàn
MA_DVCS
Character
8
Mã đơn vị cơ sở
MA_BP
Character
8
Mã bộ phận
MA_CV
Character
8
Mã chức vụ
SO_HD
Character
8
Số hợp đồng
NGAY_KYHD
Date
8
Ngày kí hợp đồng
NGAY_BN
Date
8
Ngày bổ nhiê,rj
QD_SO
Character
8
Quyết định số
MA_HV
Character
8
Mã học vị
MA_CN_HV
Character
8
Mã chuyên ngành học vị
NGAY_HV
Date
8
Ngày bảo vệ học vik
MA_HH
Character
8
Mã học hàm
MA_CN_HH
Character
8
Mã chuyên ngành học hàm
NGAY_HH
Date
8
Ngày bảo vệ học hàm
NGAY_TINHL
Date
8
Ngày tính lương
MA_BACL
Character
8
Mã bậc lương
TG_TANGL
Date
8
Thời gian tăng lương
SO_BHXH
Character
16
Số bảo hiểm xã hội
NGAY_BHXH
Date
8
Ngày bảo hiểm xã hội
NOI_BHXH
Character
16
Nơi bảo hiểm xã hội
SO_BHYT
Character
16
Số bảo hiễm xã hội
NGAY_BHYT
Date
8
Ngày bảo hiểm y tế
NOI_BHYT
Character
16
Nơi bảo hiểm y tế
NGHI_VIEC
Logical
1
Nghỉ việc
NGHI_HUU
Logical
1
Nghỉ hưu
NGAY_NV
Date
8
Ngày nghỉ việc
HS_LUONG
Numeric
5
Hệ số lương
2.2. Danh mục hệ số lương
Tên trường
Kiểu trường
Độ rộng
Diễn giải
NGAY_HL
Date
8
Ngày hiệu lực
HE_SO
Numeric
8
Hệ số
2.3. Danh mục ngoại ngữ
Tên Trường
Kiểu trường
Độ rộng
Diễn giải
MA_NN
Character
8
Mã ngoại ngữ
TEN_NN
Character
48
Tên ngoại ngữ
TEN_NN2
Character
48
Tên ngoại ngữ 2
2.4. Danh mục trình độ văn hóa
Tên Trường
Kiểu trường
Độ rộng
Diễn giải
MA_TINH
Character
8
Mã Tỉnh
TEN_TINH
Character
48
Tên tỉnh
TEN_TINH2
Character
48
Tên tỉnh 2
2.5. Danh mục trình độ tin học
Tên Trường
Kiểu Trường
Độ rộng
Diễn giải
MA_TDTH
Character
8
Mã trình độ tin học
TEN_TDTH
Character
48
Tên trình độ tin học
TEN_TDTH2
Character
48
Tên trình độ tin học 2
2.6. Danh mục bằng cấp
Tên Trường
Kiểu trường
Độ rộng
Diễn giải
MA_BC
Character
8
Mã bằng cấp
TEN_BC
Character
48
Tên bằng cấp
TEN_BC2
Character
48
Tên bằng cấp 2
2.7. Danh mục tôn giáo
Tên Trường
Kiểu trường
Độ rộng
Diễn giải
MA_TG
Character
8
Mã tôn giáo
TEN_TG
Character
48
Tên tôn giáo
TEN_TG2
Character
48
Tên tôn giáo 2
2.8. Danh mục học vị
Tên Trường
Kiểu trường
Độ rộng
Diễn giải
MA_HV
Character
8
Mã học vị
TEN_HV
Character
48
Tên học vị
TEN_HV2
Character
48
Tên học vị 2
2.9. Danh mục học hàm
Tên Trường
Kiểu trường
Độ rộng
Diễn giải
MA_HH
Character
8
Mã học hàm
TEN_HH
Character
48
Tên học hàm
TEN_HH2
Character
48
Tên học hàm 2
3. Thiết kế thuật toán
Thuật toán đăng nhập
Kiểm tra mật khẩu
Nhập mật khẩu
Kiểm tra tên
Nhập tên người sử dụng
Bắt đầu
Người dùng chưa đăng kí
Sai
Đúng
Đúng Sai
Vào chương trình
Thoát
4. Thiết kế giao diện
4.1. Form đăng nhập
4.2. Giao diện chính
4.3. Form lí lịch nhân viên
4.3. Form mẫu báo cáo sơ yếu lí lịch
KẾT LUẬN
Hệ thống thông tin quản lí nhân sự có một vai trò quan trọng trong hoạt động kinh doanh của bất kỳ một doanh nghiệp nào dù quy mô lớn hay nhỏ và đặc biệt quan trọng đối với công ty cổ phần lớn như công ty cổ phần phần mềm quản trị doanh nghiệp. Nó là một khâu quan trọng trong quá trình kinh doanh của công ty và nó góp phần vào sự phát triển của công ty không chỉ trong giai đoạn hiện tại và cả trong tương lai.
Hệ thống quản lí nhân sự tại công ty cổ phần phần mềm quản trị doanh nghiệp – CyberSoft do em viết đã hoạt động khá tốt, nó đã một phần giúp cho nhà quản lí nhanh nhậy trong vấn đề quản lí nhân viên trong công ty. Đã cập nhật được thông tin của nhân viên, thêm nhân viên, chỉnh sửa thông tin nhân viên…từ đó đưa ra được báo cáo cho ban quản lí và các bộ phận khác trong công ty. Tin học ngày càng phát triển như hiện nay thì việc đưa công nghệ vào áp dụng trong công ty, các doanh nghiệp là điều cần thiết…và phần mềm này cũng là một trong số những phần mềm minh chứng cho điều đó. Thay vì quản lí nhân viên bằng sổ sách, thay vì mất nhiều nhân viên quản lí, mất nhiều thời gian thì nay chỉ với phần mềm này công việc đó đã đơn giản đi rất nhiều.
Chương trình hệ thống quản lí nhân sự tại công ty cổ phần phần mềm quản trị doanh nghiệp – CyberSoft đang trên con đường hoàn thiện và bổ sung một số đặc tính khác như: tính lương và đưa ra báo cáo về lương, tình hình công tác và một số điều nhắc nhở nhân viên cũng như định hướng làm việc cho nhân viê cụ thể.
Do thời gian thực tập có hạn và do hạn chế kiến thức của bản thân nên chương trình và báo cáo đã hòan thành nhưng chưa được tốt nhất và cũng có nhiều hạn chế chưa như mong muốn …trong thời gian tới em sẽ cố gắng hoàn thiện thật tốt.
Em xin chân thành cảm ơn thầy Nguyễn Anh Phương đã hướng dẫn tận tình cho em trong cả quá trình thực tập.
Em xin chân thành cảm ơn anh Lê Cảnh Toàn là giám đốc công ty cổ phần phần mềm quản trị doanh nghiệp - CyberSoft đã tạo điều kiện thuận lợi cho em đến thực tập tại công ty và hướng dẫn em thực tập cũng như làm việc tại công ty.
DANH MỤC TÀI LIỆU THAM KHẢO
Ngôn ngữ và ứng dụng Foxpro 7.0
Giáo trình Visual foxpro 7.0, 9.0
Các câu lệnh foxpro
Ví dụ và bài tập Foxpro 7.0
5 Cơ Sở Dữ Liệu 1 và 2
Trần Công Uẩn – Nhà xuất bản Thống Kê
6 Hệ Thống thông tin quản lý
T.S Trương Văn Tú –T.S Trần Thị Song Minh- Nhà xuất bảnThống Kê
7 Cấu trúc Dữ Liệu và Giải Thuật
PGS.TS Hàn Viết Thuận – Nhà xuất bản thống kê
8 Tự học Microfsoft Access 2000
Nhà xuất bản Thống Kê
9 Một số website http:\\ google.com, ddtinhoc.com…
10 Bài giảng Công nghệ phần mềm của PGS TS Hàn Viết Thuận.
11 Giáo trình tin học đại cương
12 Giáo trình tin học ứng dụng
PHỤ LỤC
Code Cap nhat danh muc chuc vu
* Danh sach cac procedure va cac function
* Dmcv_F3 Sua/them moi mot chuc vu
* Dmcv_F8 Xoa mot chuc vu
* V_Nhan Luu chuc vu
* =========================== Procedure: Dmcv ===========================*
* Cap nhat danh muc chuc vu
IF .F.
_REFOX_ = (9876543210)
ENDIF
SELECT 0
USE (K_Cod + [Dmcv] + M_Nam) ORDER Ma_cv ALIAS M_Dmcv
ON KEY LABEL F3 DO Dmcv_F3 WITH [S]
ON KEY LABEL F4 DO Dmcv_F3 WITH [M]
ON KEY LABEL F8 DO Dmcv_F8
_fTen = IIF(m_Lan = "V", "Ten_cv", "Ten_cv2")
_fTen2 = IIF(m_Lan = "V", "Ten_cv2", "Ten_cv")
BROWSE;
FIELDS ;
Ma_cv, &_ften :64,;
&_ften2 :64, ;
Date, Time, User_Id, Date0, Time0, User_Id0 ;
NAME oBrowse;
NOAPPEND NOMODIFY NOWAIT;
WHEN Change_Color_Of_Browse(RecNo());
WINDOW M_WinBrw ;
TITLE M_Prompt + IIF(m_Lan = 'V', [. F3-Sua, F4-Them, F8-Xoa, ^F/G-Tim, Esc-Quay ra], ECode2String('dmcv0002'))
Obrowse.readonly = .T.
BROWSE LAST
Tbrupdate.Hide
ON KEY LABEL F3
ON KEY LABEL F4
ON KEY LABEL F5
ON KEY LABEL F8
USE IN M_Dmcv
RETURN
* ........................... Procedure: Dmcv_F3 ........................*
* Object: Dmcv_F3
PROCEDURE Dmcv_F3
PARAMETER _Moi_Sua
PRIVATE m.Ma_cv, m.Ten_cv, M.Date0,M.Time0,M.User_id0,M.Time, M.Date, M.User_Id,M.Status;
_Col, _OrderVv,_OrderStt,_Inselect,_Used,_UsedNH,_UsedNt,;
M.Kho_Ck, _RecNo, _Prompt, M.Kho_DL, M.Han_Tt,;
m.ten_nh_Vv1,m.ten_nh_Vv2,m.ten_nh_Vv3, _loai_nh
_InSelect = SELECT()
PUSH KEY CLEAR
IF _Moi_Sua=[S] AND RECNO() > RECCOUNT([M_Dmcv])
POP KEY
SELECT (_InSelect)
RETURN
ENDIF
DO SAVE_MEMVAR_CT WITH [M_Dmcv]
SELECT M_Dmcv
_Ma_cv = Ma_cv
IF _Moi_Sua = [S]
SCATTER MEMVAR MEMO
ELSE
SCATTER MEMVAR BLANK
M.Ma_cv = _Ma_cv
ENDIF
_RecNo = RECNO()
M.Ma_cvOld = M.Ma_cv
_Prompt = IIF(_Moi_Sua=[M], IIF(m_Lan = 'V', [Them ], [Add ]), IIF(m_Lan = 'V', [Sua ] , [Edit ]))
M.Nhan_Huy = 1
M.Date0 = IIF(_Moi_Sua = [M], DATE(), M.Date0)
M.Time0=IIF(_Moi_Sua = [M], Time(), M.Time0)
M.User_Id0 = IIF(_Moi_Sua = [M], M_User_Id, M.User_Id0)
ON KEY LABEL F10 KEYBOARD CHR(23)
DO FORM (K_Screen + [dmcv-F3]) NAME _Dmcv LINKED
ON KEY LABEL F10
POP KEY
SELECT (_InSelect)
DO REST_MEMVAR_CT
RETURN
*........................... FUNCTION V_Nhan ............................
FUNCTION V_Nhan
PARAMETER _OrdOld
PRIVATE _Tk_Used, _i, _Ma_cv_Len, _Order
SELECT M_Dmcv
IF LASTKEY()=27 OR M.Nhan_Huy # 1
IF _RecNo <= RECCOUNT([M_Dmcv])
GO _RecNo
ENDIF
RETURN
ENDIF
IF EMPTY(M.Ma_cv)
MsgBox(IIF(m_Lan = 'V', [Chua vao ma chuc vu!], ECode2String('dmcv0005')),16+0+0,M_Cyber_Ver)
M.Nhan_huy = 0
RETURN
ENDIF
IF EMPTY(M.Ten_cv)
MsgBox(IIF(m_Lan = 'V', [Chua vao ten chuc vu!], ECode2String('dmcv0006')),16+0+0,M_Cyber_Ver)
M.Nhan_huy = 0
RETURN
ENDIF
*! Kiem tra M.Ma_cv $ M_Dmcv.Ma_cv
_CodExist = .F.
IF _Moi_Sua = [M]
IF SEEK(ALLTRIM(M.Ma_cv))
_CodExist = .T.
ENDIF
ELSE && Neu sua
IF SEEK(ALLTRIM(M.Ma_cv))
IF (RECNO() # _RecNo)
_CodExist = .T.
ELSE
IF !EOF()
SKIP
IF Ma_cv = ALLTRIM(M.Ma_cv)
_CodExist = .T.
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
*! Kiem tra M_Dmcv.Ma_cv $ M.Ma_cv
IF (M.Ma_cv # M.Ma_cvOld) &&.AND.(!EMPTY(M.TkOld))
_Ma_cv_Len = FSIZE([Ma_cv], [M_Dmcv])
FOR _i = 1 TO LEN(ALLTRIM(M.Ma_cv))
*IF SEEK(PADR(LEFT(M.Ma_cv, _i), _Ma_cv_Len)).OR.(M.Ma_cv = ALLTRIM(Ma_cv))
IF SEEK(PADR(LEFT(M.Ma_cv, _i), _Ma_cv_Len))
IF ((_Moi_Sua = [M]) .OR. (RECNO() # _RecNo)).AND.(!EOF())
_CodExist = .T.
ENDIF
ENDIF
NEXT
ENDIF
IF _CodExist
MsgBox(IIF(m_Lan = 'V', [Ma da co hoac ma long nhau!], ECode2String('dmcv0007')),16+0+0,M_Cyber_Ver)
M.Nhan_huy = 0
RETURN
ENDIF
IF _Moi_Sua = [M]
M.Time0 = Time()
M.Date0 = DATE()
M.User_Id0 = M_User_Id
ENDIF
M.Time = Time()
M.Date = DATE()
M.User_Id = M_User_Id
IF (_Moi_Sua=[S]) .AND. (M.Ma_cv==M.Ma_cvOld) &&.AND. (M.Tk == M.TkOld)
SELECT M_Dmcv
GO _RecNo
GATHER MEMVAR MEMO
FLUSH
UNLOCK IN M_Dmcv
ELSE
SELECT M_Dmcv
_OrdOld = ORDER()
SET ORDER TO Ma_cv
SEEK M.Ma_cv
IF FOUND()
MsgBox(IIF(m_Lan = 'V', [Ma da co!], ECode2String('dmcv0008')),16+0+0,M_Cyber_Ver)
M.Nhan_huy = 0
RETURN
ENDIF
SET ORDER TO &_OrdOld
IF _Moi_Sua = [M]
APPEND BLANK
ELSE
GO _RecNo
ENDIF
GATHER MEMVAR MEMO
FLUSH
UNLOCK IN M_Dmcv
ENDIF
_RecNo = RECNO()
SELECT M_Dmcv
GO _RecNo
_Dmcv.Release
RETURN
*.................... PROCEDURE Dmcv_F8 .....................
PROCEDURE Dmcv_F8
PRIVATE _CoKhong, _Ans, _RecNo
SELE M_Dmcv
IF RECNO() > RECCOUNT([M_Dmcv])
RETURN .T.
ENDIF
SCATTER MEMVAR
_RecNo = RECNO()
_Ans = MsgBox(M_SureDele, 4+32+256, M_Cyber_Ver)
IF _Ans # 6
GO _Recno
RETURN .T.
ENDIF
IF !V_F8(M.Ma_cv,"CDVV , CT00" , "Ma_cv , Ma_cv")
msgbox("®· cã ph¸t sinh kh«ng ®îc xo¸",16,M_Cyber_Ver)
GO _Recno
RETURN
ENDIF
M.Time = Time()
M.Date = DATE()
M.User_Id = M_User_Id
M.Status="*"
GATHER MEMVAR
FLUSH
DELETE
RETURN .T.
Code do c.prg
IF .F.
_REFOX_ = (9876543210)
ENDIF
PROGDIR = SYS(16)
PROGDIR = "'" + LEFT(PROGDIR, RAT("\", PROGDIR)) + "'"
SET DEFAULT TO &progdir
DO ../Prog/startup.fxp
ENDPROC
Code startup
*---------------------------------------------------------------------------------------------*
*!* DATE : 10/02/2008
*!* Author : anhhungclau
*!* Name : anhhungclau
*---------------------------------------------------------------------------------------------*
IF .F.
_REFOX_ = (9876543210)
ENDIF
IF NOT "07" $ VERSION()
WAIT "Phien ban chay tren Visual FoxPro 7 for Windows" WINDOW TIMEOUT 5
ON SHUTDOW
QUIT
ENDIF
SET TALK OFF
CLEAR
SET STATUS BAR ON
ON KEY
CLEAR ALL
CLOSE ALL
SET CLASSLIB TO
PUBLIC m_User_Name, m_User_ID, m_User_Pass, m_Is_Admin, m_Rights, m_User_Pre,;
K_Image,K_picture,K_Cod,K_Data,K_Copy,K_Data_mau,K_Data_Xoa,K_Demo,K_Fonts,K_Lib,K_Prog,;
K_Repo,K_repo_nt,K_Screen,K_System,K_Tran,K_Update,k_Backup,K_Tmp,K_Excel,M_LAN,M_Ma_dvcs,;
M_NAM,_IdEn,m_Voucher,M_Ngay_Cuoi_Nam,m_Ngay_dau_nam, M_ngay_dk, M_ngay_ck,m_Nam0,m_ngay_ks,;
M_dele_YN, M_is_dright,_isLostfocus, reccountOfPhtmp,_KT
_isLostfocus = .F.
_KT = .F.
reccountOfPhtmp = 0
M_NAM = ''
M_LAN = ''
m_Nam0 = ''
m.Ma_dvcs = ""
m_Root = "..\"
M_is_dright = ""
DO Set_sys_paths && Tao dung dan
DO Set_env&& Tao moi truong
* Sau khi set moi truong thi moi gan bien o day neu khong se bi loi vi ko nhan ra duoc moi truong
M_Ngay_Cuoi_Nam = CTOD([31/12/9999])
m_Ngay_dau_nam = CTOD([01/01/1990])
DO Init_Company IN (k_Prog + "SMSysVar") && Init IniVar
DO Init_iniVar IN (k_Prog + "SMSysVar") && Init IniVar
DO Init_sysVar IN (k_Prog + "SMSysVar") && Init SysVar
DO Init_options IN (k_Prog + "SMSysVar") && Init Options
DO Initmem0 IN (k_Prog + "SMSysVar") && Lay gia tri ten cong ty, Dia chi ....
IF M_IsUpdate = 1
DO (K_Prog + "Smupdate.fxp")
ENDIF
DO FMCheck IN (k_Prog + "smsysvar")
CreateTempDir()
IF NOT DIRECTORY('&K_Excel')
MD &K_Excel
ENDIF
IF NOT DIRECTORY('&K_Copy')
MD &K_Copy
ENDIF
SET CLASSLIB TO (k_Lib + "Startup.vcx")
SET CLASSLIB TO (k_Lib + "Tbr") ADDITIVE
tbrReports = CREATEOBJECT("tbrReport")
tbrUpdate = CREATEOBJECT("tbrUpdate")
tbrReports.Dock(0)
tbrUpdate.Dock(0)
SET HELP TO (K_System + "Cyber.chm")
*+ For CodeMine
SET LIBRARY TO (k_Lib + "CodeMine.fll") ADDITIVE
DECLARE INTEGER GetSysColor IN user32.dll INTEGER nColorValue
DECLARE INTEGER GetSystemDirectory IN Kernel32.dll STRING cBuffer, INTEGER nLength
*+ End For CodeMine
ON KEY LABEL F12 DO (k_Prog + "SMSuspend")
ON SHUTDOWN DO End
*!* ON ERROR DO (K_prog + "smerror") ;
*!* WITH SUBSTR(SYS(16),RAT("\", SYS(16)) + 1),PROGRAM(),LINE(),ERROR(),MESSAGE()
ON KEY LABEL ALT+Q DO Squit1
ON KEY LABEL F1 DO (K_Prog + "HELP")
m_is_Report = 0
m_ScrRow = SROW()
m_ScrCol = SCOL()
SET SEPARATOR TO m_Num_Separator
SET POINT TO m_Num_Point
IF EMPTY(m_Ten_cty)
WAIT WIND "Khong don vi nao su dung chuong trinh " TIME 2
ON SHUTDOWN
QUIT
ENDIF
*!* DO (K_prog + "SMChkVar")
DEFINE WINDOW m_WinBrw FROM 2, 0 TO FLOOR(m_ScrRow) - 2, FLOOR(m_ScrCoL) COLOR SCHEME 10 ;
CLOSE FLOAT GROW MINIMIZE ZOOM SYSTEM FONT m_Font_Name, m_Font_Size - 2 ;
ICON FILE LOCFILE(K_Image + "funny.ico")
SET Procedure TO (K_prog+"SMLib.Fxp")
SET Procedure TO (K_prog+"SMReports.Fxp") ADDITIVE
_SCREEN.BACKCOLOR = RGB(58,110,165)
_SCREEN.Icon = K_Image + "funny.ico"
_SCREEN.Caption = ALLTRIM(Cat_Dau(m_Ten_CTy))
RELEASE PAD _MTable OF _MSYSMENU
RELEASE PAD _MEdit OF _MSYSMENU
RELEASE PAD _MFile OF _MSYSMENU
RELEASE PAD _MView OF _MSYSMENU
RELEASE PAD _MSm_WINDO OF _MSYSMENU
RELEASE PAD _MSm_FORMAT OF _MSYSMENU
RELEASE PAD _MSm_TOOLS OF _MSYSMENU
RELEASE PAD _MSm_PROG OF _MSYSMENU
RELEASE PAD _MSm_SYSTM OF _MSYSMENU
RELEASE PAD _MSm_TEXT OF _MSYSMENU
HideToolbar()
Initbars()
DO SetResource
m.Nam = ""
STORE 0 TO _Check, m_User_id
STORE .F. TO is_Admin
USE (k_cod + "DmStt") ALIAS m_DmStt SHARED
SELECT m_Dmstt
IF _TALLY > 0
GOTO TOP
M_Ngay_Ks = m_Dmstt.Ngay_KS
ENDIF
USE IN M_Dmstt
*!* IF M_chk_date_yn = 0 &&Neu khong chon ngay dau ky va ngay cuoi ky
*!* M_Ngay_dk = M_Ngay_dau_Nam
*!* M_Ngay_ck = m_Ngay_cuoi_nam
*!* ELSE
*!* M_Ngay_dk = CTOD('01/'+ALLTRIM(STR(MONTH(DATE()),2))+[/]+ALLTRIM(STR(YEAR(DATE()),4)))
*!* M_Ngay_ck = GOMONTH(M_Ngay_dk,1)-1
*!* ENDIF
DO FORM (K_Screen+"SMLogin") TO lcFlgOK
IF LASTKEY() = 27
ON SHUTDOWN
QUIT
ENDIF
IF lcFlgOK
DO InitPopupOfVoucher IN (K_prog + "sminitpopup")
DO (K_prog+"SMMenu")
ELSE
ON SHUTDOWN
QUIT
ENDIF
IF LASTKEY() 16
QUIT
ENDIF
RETURN
*!* ----------------------------------------
*!* Procedure Set_Env
*!* ----------------------------------------
Procedure Set_Env
ON ERROR &&Enable Error handle
*!* NUMLOCK(.T.) &&Enable Numlock mode\
SET AUTO OFF &&Don't flush data immediately
SET BELL ON &&Enable bell
SET CARRY OFF &&Don't carry value of current record to the new record when addnew
SET CENT ON &&Display year with 4 character
SET CLOCK STATUS &&Display clock to the status bar
SET CONFIRM ON &&Don't exit textbox by typing last character, have to press Enter, tab or arrow keys
SET DATE FRENCH &&ddmmyy
SET DECI TO 4 &&Dung cho sele m_p_gia as gia
SET DELETE ON &&InVisible deleted record
SET DEVELO ON &&Compile before run program if any change
SET ESCAPE OFF &&Don't interrupt program when press ESC
SET EXACT OFF &&Don't compare 2 string exactly
SET EXCLUSIVE OFF &&Use file in share mode
SET HELP ON &&Enabale online help
SET HOUR TO 24 &&Set system clock to 24 hours format
SET NEAR ON &&Set record pointer to the closest record if seek or locate is not found
SET REFRESH TO 1,1 &&Time to Update changes made by other user on network
SET STAT BAR ON &&Enable Status bar
SET SAFE OFF &&Overwrite existed file without MsgBox
SET TALK OFF &&Don't display command result to screen
SET UDFPARMS TO REFERENCE &&Pass parameter by reference
CLEAR MACRO &&Clear all marco
ENDPRO
*!* ----------------------------------------
*!* Procedure Set_SYS_Paths
*!* ----------------------------------------
Procedure Set_SYS_Paths
K_Cod = m_Root + "Cod\"
K_System = m_Root + "System\"
K_Data = m_Root + "Data\"
K_Data_Xoa = m_Root + "Data-Xoa\"
K_Data_Luu = m_Root + "Data-Luu\"
K_Data_Mau = m_Root + "Data-Mau\"
K_Prog = m_Root + "Prog\"
K_repo = m_Root + "Repo\"
K_Repo_NT = m_Root + "Repo-Nt\"
K_Backup = m_Root + "Backup\"
k_Image = m_Root + "Image\"
K_picture = m_Root + "Picture\"
k_Screen = m_Root + "Screen\"
K_Lib = m_Root + "Lib\"
K_Demo = m_Root + "Demo\"
K_Fonts = m_Root + "Fonts\"
K_Tran = m_Root + "Tran\"
K_Update = m_Root + "Update\"
ENDPRO
*!* ----------------------------------------
*!* Procedure Dir_Err_Hand
*!* ----------------------------------------
Procedure Dir_Err_Hand
PARAMETERS _p_Err_Num, _p_Err_Message, _p_Err_Message1, _p_Err_Program, _p_Err_Lineno
IF _p_Err_Num = 1961
MsgBox("Cã lçi khi t¹o th môc lµm viÖc")
MsgBox(m_Cyber_Ver + IIF(m_Lan = 'V', " KÕt thóc c«ng viÖc.", ECode2String('STARTUP0003')))
DO (K_prog + "SMQuit")
ENDIF
ENDPRO
*!* ----------------------------------------
*!* Procedure Del_File
*!* ----------------------------------------
Procedure Del_File
IF VARTYPE(k_Tmp) = "U"
RETURN
ENDIF
CLOSE DATA ALL
_Skeleton = k_Tmp + "*.*"
_File = SYS(2000, _Skeleton)
DO WHILE !EMPTY(_File)
_File = k_Tmp + _File
IF UPPER(ALLTRIM(_File))UPPER(ALLTRIM(k_Tmp + 'Command.dbf'))
DELETE FILE &_File
ENDIF
_File = SYS(2000, _Skeleton, 1)
ENDDO
RETURN
*!* ----------------------------------------
*!* FUNCTION Cat_Dau
*!* ----------------------------------------
FUNCTION Cat_Dau
PARAMETERS _String1 &&, _Scode
PRIVATE _Bked, _AscII
_Bked = "¸¹µ¶· »¼½¾Æ¨ ÊË©ÇÈÉ èéê«ìíîãäåæëçßáâ¬ÏÐÑÌÎeÒÓÔÕÖª úûüýþ ïóôñò õö÷øù ×ØÜÝÞ ¡¢£¤¥§®¦"
_ASCII = "aaaaa aaaaaa aaaaaa oooooooooooooooooeeeeeeeeeeee yyyyy uuuuu uuuuuu iiiii AAEOODdU"
IF NOT EMPTY(_String1)
_String2= CHRTRAN(_String1,_Bked,_AscII)
ELSE
_String2=''
ENDIF
RETURN _String2
*---------------------------------------------------------------*
FUNCTION HideToolBar
*-- Releases all Visual FoxPro toolbars
LOCAL i
TB_FORMDESIGNER_LOC = "Form Designer"
TB_STANDARD_LOC = "Standard"
TB_LAYOUT_LOC = "Layout"
TB_QUERY_LOC = "Query Designer"
TB_VIEWDESIGNER_LOC = "View Designer"
TB_COLORPALETTE_LOC = "Color Palette"
TB_FORMCONTROLS_LOC = "Form Controls"
TB_DATADESIGNER_LOC = "Database Designer"
TB_REPODESIGNER_LOC = "Report Designer"
TB_REPOCONTROLS_LOC = "Report Controls"
TB_PRINTPREVIEW_LOC = "Print Preview"
WIN_COMMAND_LOC = "Command" && Command Window
WIN_PROJECT_MAN = "Project Manager"
DIMENSION aToolBars (13,2)
aToolBars(1,1) = TB_FORMDESIGNER_LOC
aToolBars(2,1) = TB_STANDARD_LOC
aToolBars(3,1) = TB_LAYOUT_LOC
aToolBars(4,1) = TB_QUERY_LOC
aToolBars(5,1) = TB_VIEWDESIGNER_LOC
aToolBars(6,1) = TB_COLORPALETTE_LOC
aToolBars(7,1) = TB_FORMCONTROLS_LOC
aToolBars(8,1) = TB_DATADESIGNER_LOC
aToolBars(9,1) = TB_REPODESIGNER_LOC
aToolBars(10,1) = TB_REPOCONTROLS_LOC
aToolBars(11,1) = TB_PRINTPREVIEW_LOC
aToolBars(12,1) = WIN_COMMAND_LOC
aToolBars(13,1) = WIN_PROJECT_MAN
FOR i = 1 TO ALEN(aToolBars, 1)
aToolBars(i,2) = WVISIBLE(aToolBars(i,1))
IF aToolBars(i,2)
HIDE WINDOW (aToolBars(i,1))
ENDIF
ENDFOR
Return
*!* ----------------------------------------
*!* FUNCTION Squit1
*!* ----------------------------------------
FUNCTION Squit1
_SCREEN.BACKCOLOR=RGB(255,255,255)
DO DEL_FILE
CLEAR EVENTS
_SFORM.Release
IF FILE("RESET.fxp")
DO RESET
ENDIF
IF FILE("KEY.fxp")
DO KEY
ENDIF
RETURN
*!* ----------------------------------------
*!* FUNCTION Initbars(subMen_id)
*!* ----------------------------------------
FUNCTION Initbars(subMen_id)
PRIVATE sSelect
SET SYSMENU ON
sSelect=SELECT()
USE (m_root+'SYSTem\Command') ORDER Menu_id ALIAS Command SHARED
SET FILTER TO LEFT(Menu_id,5) = "01.05" &&subMen_id
GO TOP
DO WHILE NOT EOF()
cPadNum=LEFT(Command.Menu_id,2)
pName="P"+CPadNum
cPrompt=Cat_dau(RTRIM(Command.Bar))
DEFINE PAD (pName) OF _MSYSMENU PROMPT cPrompt COLOR SCHEM 3 FONT m_Font_Name,9
ON PAD(PName)OF _MSYSMENU ACTIVATE POPUP &PName
DEFINE POPUP (PName) MARGIN RELATIVE SHADOW COLOR SCHEM 4 FONT m_Font_Name, 9
SKIP
DO WHILE LEFT(Command.Menu_id,2)=CPadNum
cBarNum=VAL(SUBSTR(Command.Menu_id,7,2))
cPrompt=RTRIM(Command.Bar)
IF EMPTY(Command.Picture)
DEFINE BAR (cBarNum) OF (pName) PROMPT cPrompt COLOR SCHEM 3 FONT m_Font_Name,9
ELSE
DEFINE BAR (cBarNum) OF (pName) PROMPT cPrompt COLOR SCHEM 3 FONT m_Font_Name,9 PICTURE (K_Image + ALLTRIM(Command.Picture))
ENDIF
Pcommand='DO RunCommand WITH "'+ALLTRIM(Procedure)+'"'
ON SELECTION BAR (cBarNum) OF (PName) &PCommand
SKIP
ENDDO
ENDDO
*!* DEFINE BAR 96 OF (pName) PROMPT '\-' COLOR SCHEM 3 FONT m_Font_Name,9
*!* DEFINE BAR 97 OF (pName) PROMPT IIF(M_LAN = "V",'Chän ®¬n vÞ c¬ së','Options Unit') COLOR SCHEM 3 FONT m_Font_Name,9
*!* DEFINE BAR 98 OF (pName) PROMPT '\-' COLOR SCHEM 3 FONT m_Font_Name,9
*!* DEFINE BAR 99 OF (pName) PROMPT IIF(M_LAN = "V", 'Switch to English', 'ChuyÓn sang TiÕng ViÖt') COLOR SCHEM 3 FONT m_Font_Name, 9 PICTURE (K_Image + "option.bmp")
*!* DEFINE BAR 100 OF (pName) PROMPT '\-' COLOR SCHEM 3 FONT m_Font_Name,9
DEFINE BAR 101 OF (pName) PROMPT IIF(M_LAN = "V", 'Tho¸t khái ch¬ng tr×nh', 'Exit') COLOR SCHEM 3 FONT m_Font_Name, 9 PICTURE (K_Image + "close.bmp")
*!* ON SELECTION BAR 97 OF (PName) do Optiondvcs
*!* ON SELECTION BAR 99 OF (PName) do SwitchLanguage
ON SELECTION BAR 101 OF (PName) QUIT
USE in Command
SELECT(sSelect)
ENDFUNC
*!* ----------------------------------------
*!* Procedure End
*!* ----------------------------------------
Procedure End
IF MsgBox(IIF(m_Lan = 'V', "KÕt thóc ch¬ng tr×nh?", ECode2String('STARTUP0006')),36,m_Cyber_Ver)=6
DO (K_prog + "SMBackup")
DO DEL_FILE
QUIT
ENDIF
ENDPRO
*!* ----------------------------------------
*!* FUNCTION CreateTempDir
*!* ----------------------------------------
FUNCTION CreateTempDir
IF EMPTY(k_Tmp)
k_Tmp = ".\" + TRANS(m_User_ID, "@L 999") + "\"
_Sys3 = (k_Tmp + SYS(3) + ".Tmp")
_Handle = FCREATE(_Sys3)
IF _Handle = -1
_currErr = ON ("ERROR")
ON ERROR DO Dir_Err_Hand IN (K_prog + "SBALANCE") WITH ;
ERROR( ), MESSAGE( ), MESSAGE(1), PROGRAM( ), LINENO( )
MD(".\" + TRANS(m_User_ID, "@L 999"))
ON ERROR &_currErr
ELSE
= FCLOSE(_Handle)
DELETE FILE &_Sys3
ENDIF
ELSE
_Sys3 = (k_Tmp + SYS(3) + ".Tmp")
_Handle = FCREATE(_Sys3)
IF _Handle = -1
_currErr = ON ("ERROR")
ON ERROR DO Dir_Err_Hand IN (K_prog + "SBALANCE") WITH ;
ERROR( ), MESSAGE( ), MESSAGE(1), PROGRAM( ), LINENO( )
MD(LEFT(k_Tmp, LEN(k_Tmp)-1))
ON ERROR &_currErr
ELSE
= FCLOSE(_Handle)
DELETE FILE &_Sys3
ENDIF
ENDIF
RELEASE _Chk
ENDFUNC
*!* ----------------------------------------
*!* Procedure UpdateMenu(pMenu_id)
*!* ----------------------------------------
Procedure UpdateMenu(pMenu_id)
PRIVATE sSelect,IsUpdate
IsUpdate=.T.
sSelect=SELECT()
SELECT 0
USE (K_System + 'command') ORDER Menu_id ALIAS Command
IF EMPTY(pMenu_id)
SEEK(m_Menu_id)
ELSE
SEEK(pMenu_id)
ENDIF
SCATTER MEMVAR
PUSH KEY CLEAR
DO FORM (K_Screen + 'SMmenu-f3')
POP KEY
IF IsUpdate
GATHER MEMVAR
ENDIF
USE IN Command
SELECT(sSelect)
ENDPRO
*!* ----------------------------------------
*!* Procedure RunCommand(sProcedure)
*!* ----------------------------------------
Procedure RunCommand(sProcedure)
_SFORM.Hide
&sProcedure
_SFORM.Show
ENDPRO
*!* ----------------------------------------
*!* Procedure SetResource
*!* ----------------------------------------
Procedure SetResource
PRIVATE oldError
oldError = ON("ERROR")
ON ERROR DO SetResourceError
IF NOT FILE(GETENV('TEMP') + "\resource.dbf")
COPY FILE (K_System + "resource.dbf") TO (GETENV('TEMP') + "\resource.dbf")
COPY FILE (K_System + "resource.fpt") TO (GETENV('TEMP') + "\resource.fpt")
ENDIF
SET RESOURCE TO (GETENV('TEMP') + "\resource.dbf")
ON ERROR &oldError
ENDPRO
*!* ----------------------------------------
*!* Procedure SetResourceError
*!* ----------------------------------------
Procedure SetResourceError
MsgBox("H·y kiÓm tra l¹i b¹n ®ang ch¹y ch¬ng tr×nh", 31, m_Cyber_ver)
ON SHUTDOWN
QUIT
ENDPROC
*!........................... FUNCTION Re_Ask .............................
FUNCTION Re_Ask
PRIVATE _Ds
_Ds = 0
DO FORM (K_Screen + "SmReask")
IF _Ds = 1
RETURN .T.
ELSE
RETURN .F.
ENDIF
ENDFUNC
*!* ----------------------------------------
*!* FUNCTION Chuyen_ma
*!* ----------------------------------------
FUNCTION Chuyen_ma
PARAMETERS _String1 &&, _Scode
PRIVATE _Bked, _AscII
_Bked = "
_ASCII = "aaaaa aaaaaa aaaaaa oooooooooooooooooeeeeeeeeeeee yyyyy uuuuu uuuuuu iiiii AAEOODUd"
IF NOT EMPTY(_String1)
_String2= CHRTRAN(_String1,_Bked,_AscII)
ELSE
_String2=''
ENDIF
RETURN _String2
Các file đính kèm theo tài liệu này:
- 37240.doc