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

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.

doc88 trang | Chia sẻ: aloso | Lượt xem: 1827 | Lượt tải: 0download
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
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 = "¸¹µ¶· »¼½¾Æ¨ ÊË©ÇÈÉ èéê«ìíîãäåæëçßáâ¬ÏÐÑÌÎeÒÓÔÕÖª úûüýþ ïóôñò õö÷øù­ ×ØÜÝÞ ¡¢£¤¥§¦®" _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:

  • doc20759.doc
Tài liệu liên quan