Chuyên đề Xây dựng hệ thống thông tin quản lý nhân sự tại công ty cổ phần Thiên Minh

* Thực thể phụ cấp

- Tên thực thể : Loai phu cấp

- Tên viết tắt : PHUCAP

- Mỗi thể hiện của thực thể PHUCAP là một đối tượng dùng để lưu trữ các khoản phụ cấp cho Nhân viên như : Phụ cấp độc hại, Phụ cấp khó khăn, Phụ cấp tai nạn, Phụ cấp chức vụ Mỗi thực thể được xác định bởi một mã số duy nhất ( MS_PC ), Lý do phụ cấp ( LYDO ).

 

doc151 trang | Chia sẻ: maiphuongdc | Lượt xem: 1583 | Lượt tải: 5download
Bạn đang xem trước 20 trang tài liệu Chuyên đề Xây dựng hệ thống thông tin quản lý nhân sự tại công ty cổ phần Thiên Minh, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Trình độ ngoại ngữ 7 SOCMND Character 9 Số chứng minh 8 NGAYSINH Date Ngày sinh 9 NOISINH Character 30 Nơi sinh 10 PHAI Character 3 Giới tính 11 DANTOC Character 12 Dân tộc 12 TONGIAO Character 12 Tôn giáo 13 DIACHI Character 30 Địa chỉ Nhân viên 14 DIENTHOAI Character 12 Điện thoại 15 HESO Number Hệ số lương 16 BHXH Number Bảo hiểm xã hội 17 BHYT Number Bảo hiểm y tế 18 NGAYBD Date Ngày bắt đầu 19 SOHD Character 9 Số hợp đồng 20 LOAIHD Character 12 Loại hợp đồng 21 NGAYHD Date Ngày làm hợp đồng 22 CONGTAC Character 250 Quá trình công tác Bảng HOSOLUU lưu trữ thông tin về Nhân viên về hưu, chuyển công tác, nghỉ viêc … STT Tên viết tắt Kiểu dữ liệu Độ dài Diễn giải Khoá 1 MS_NV Character 9 Mã số nhân viên Khoá chính 2 TENNV Character 25 Tên nhân viên 3 CHUCVU Character 20 Chức vụ 4 TRINHDO Character 20 Trình độ học vấn 5 CHUYENMON Character 20 Chuyên môn 6 NGOAINGU Character 20 Trình độ ngoại ngữ 7 SOCMND Character 9 Số chứng minh 8 NGAYSINH Date Short Ngày sinh 9 NOISINH Character 30 Nơi sinh 10 PHAI Character 3 Giới tính 11 DANTOC Character 12 Dân tộc 12 TONGIAO Character 20 Tôn giáo 13 DIACHI Character 30 Địa chỉ Nhân viên 14 DIENTHOAI Character 12 Điện thoại 15 NGAYVH Date Short Ngày Về hưu… 16 LUONGHUU Number Doub Lương hưu 17 CONGTAC Character 250 Quá trình công tác *Thực thể chấm công - Tên thực thể : Bảng chấm công - Tên viết tắt : CHAMCONG - Mỗi thực thể của bảng chấm công là một đối tượng dùng để ghi lại tổng ngày công, cũng như tổng ngày nghỉ của Nhân viên. Mỗi Bảng chấm công, chấm công cho Nhân viên qua các tháng cho nên khóa chính của thực thể là ( THANG ). Trong bảng chấm công có thuộc tính tổng số ngày công ( SONC ), tổng ngày nghỉ ( SONN ), ghi chú ( GHICHU ). Bảng CHAMCONG lưu trữ thông tin về chấm công : STT Tên viết tắt Kiểu dữ liệu Độ dài Diễn giải Khoá 1 THANG Date Short Tháng Khoá chính 2 MS_NV Character 9 Mã số Nhân viên Khoá ngoại 3 SONC Number Int Số ngày công 4 SONN Number Int Số ngày nghỉ 5 GHICHU Character 250 Ghi chú * Thực thể bảng lương : - Tên thực thể : Bảng lương - Tên viết tắt : LUONG - Mỗi thể hiện của thực thể LUONG là một đối tượng dùng để lưu trữ các thông tin như : THANG, LCHINH, LPHEP, KTHUONG, PHUCAP, BIETLE, CONG, TAMUNG, KYLUAT, BHXH, BHYT, CONLAI. Trong đó THANG là khoá chính của thực thể LUONG. Bảng LUONG lưu trữ thông tin về lương : STT Tên viết tắt Kiểu dữ liệu Độ dài Diễn giải Khoá 1 THANG Date Short Tháng Khoá chính 2 MS_NV Character 9 Mã số nhân viên Khoá ngoại 3 LCHINH Number Doub Lương chính 4 LPHEP Number Doub Lương phép 5 KTHUONG Number Doub Tiền thưởng 6 PHUCAP Number Doub Phụ cấp 7 BIETLE Number Doub Biệt lệ 8 CONG Number Doub Cộng 9 TAMUNG Number Doub Tạm ứng 10 KYLUAT Number Doub Phạt tiền kỷ luật 11 BHXH Number Int Bảo hiểm xã hội 12 BHYT Number Int Bảo hiểm y tế 13 CONLAI Number Doub Lương còn lại * Thực thể phụ cấp - Tên thực thể : Loai phu cấp - Tên viết tắt : PHUCAP - Mỗi thể hiện của thực thể PHUCAP là một đối tượng dùng để lưu trữ các khoản phụ cấp cho Nhân viên như : Phụ cấp độc hại, Phụ cấp khó khăn, Phụ cấp tai nạn, Phụ cấp chức vụ … Mỗi thực thể được xác định bởi một mã số duy nhất ( MS_PC ), Lý do phụ cấp ( LYDO ). Bảng PHUCAP lưu trữ thông tin về Phụ cấp : STT Tên viết tắt Kiểu dữ liệu Độ dài Diễn giải Khoá 1 MS_PC Character 5 Mã số phụ cấp Khoá chính 2 MS_NV Character 9 Mã số nhân viên Khoá Ngoại 3 LYDO Character 25 Lý do phụ cấp 4 TIENPC Number Doub Số tiền phụ cấp 5 NGAYPC Date Short Ngày phụ cấp * Thực thể biệt lệ : - Tên thực thể : Biệt lệ - Tên viết tắt : BIETLE - Mỗi thể hiện của thực thể BIETLE là một đối tượng dùng để lưu trữ tất cả các khoản biệt lệ của một Nhân viên. Đối tượng này dùng các thuộc tính ghi lại số tiền, chẳng hạn như lương tháng chưa đủ, thiếu tiền của Nhân viên. Mỗi thực thể xác định bằng một mã số duy nhất ( MS_BL ), Số tiền nhân viên lãnh ( BLTRUYLANH ), Số tiền thu lại của nhân viên đó ( BLTRUYTHU ), Lý do biệt lệ ( LYDO ), Ngày biệt lệ ( NGAYBL). Bảng BIETLE lưu trữ thông tin về Biệt lệ : STT Tên viết tắt Kiểu dữ liệu Độ dài Diễn giải Khoá 1 MS_BL Character 5 Mã số biệt lệ Khoá chính 2 MS_NV Character 9 Mã số nhân viên Khoá ngoại 3 BLTRUYLANH Number Doub Biệt lệ truy lãnh 4 BLTRUYTHU Number Doub Biệt lệ truy thu 5 LYDO Character 25 Lý do biệt lê 6 NGAYBL Date Short Ngày biệt lệ * Thực thể khen thưởng : - Tên thực thể : Khen thưởng - Tên viết tắt : KHENTHUONG - Mỗi thể hiện của thực thể KHENTHUONG là một đối tượng dùng để lưu trữ tất cả các lần khen thưởng của Nhân viên trong một tháng, bởi một mã số nhất định là khen thưởng ( MS_KT ). Mỗi lần khen thưởng được biết qua ngày khen thưởng ( NGAYKT ), Lý do khen thưởng ( LYDO ), Hình thức khen thưởng ( HTKT ) và số biên bản xác định số lần khen thưởng đó ( SOBB ). Bảng KHENTHUONG lưu trữ thông tin về khen thưởng : STT Tên viết tắt Kiểu dữ liệu Độ dài Diễn giải Khoá 1 MS_KT Character 5 Mã số khen thưởng Khoá chính 2 MS_NV Character 9 Mã số nhân viên Khoá ngoại 3 NGAYKT Date Short Ngày khen thưởng 4 LYDO Character 25 Lý do khen thưởng 5 HTKT Character 25 Hình thức khen thưởng 6 TIENT Number Doub Tiền Thưởng 7 SOBB Character 5 Số biên bản * Thực thể kỷ luật : - Tên thực thể : Kỷ luật - Tên viết tắt : KYLUAT - Mỗi thể hiện của thực thể KYLUAT là một đối tượng dùng để lưu trữ tất cả các lần bị Kỷ luật của mỗi Nhân viên. Mỗi thực thể này được xác định bởi một mã số kỷ luật duy nhất ( MS_KL ), Ngày bị kỷ luật ( NGAYKL ), Lý do kỷ luật ( LYDO ), Hình thức phạt kỷ luật ( HTKL ), Số biên bản ( SOBB ), Ngày ký quyết định kỷ luật ( NGAYQD ) và Ngày hết hạn bị kỷ luật ( NGAYHH ). Bảng KYLUAT lưu trữ các thông tin về Kỷ luật : STT Tên viết tắt Kiểu dữ liệu Độ dài Diễn giải Khoá 1 MS_KL Character 5 Mã số kỷ luật Khoá chính 2 MS_NV Character 9 Mã số nhân viên Khoá ngoại 3 NGAYKL Date Short Ngày bị kỷ luật 4 LYDO Character 25 Lý do bị kỷ luật 5 HTKL Character 25 Hình thức kỷ luật 6 SOBB Character 5 Số biên bản 7 TIEBPHAT Number Doub Tiền phạt 8 NGAYQD Date Short Ngày kí quyết định 9 NGAYHH Date Short Ngày hết hạn kỷ luật * Thực thể tam ứng: - Tên thực thể : Tạm ứng - Tên viết tắt : TAMUNG - Mỗi thể hiện của thực thể TAMUNG là một đối tượng dùng để lưu trữ tất cả các thông tin về Tạm ứng lương cho Nhân viên trong Công ty. Mỗi thực thể này được xác định bởi một mã số Tạm ứng duy nhất ( MS_TU ), Ngày Tạm ứng ( NGAYTU), Lý do Tạm ứng ( LYDO ), số tiền Tạm ứng ( TIENTU ). Bảng TAMUNG lưu trữ tất cả thông tin về Tạm ứng lương : STT Tên viết tắt Kiểu dữ liệu Độ dài Diễn giải Khoá 1 MS_KL Character 5 Mã số kỷ luật Khoá chính 2 MS_NV Character 9 Mã số nhân viên Khoá ngoại 3 NGAYKL Date Short Ngày bị kỷ luật 4 LYDO Character 25 Lý do bị kỷ luật 5 HTKL Character 25 Hình thức kỷ luật 6 SOBB Character 5 Số biên bản 7 TIEBPHAT Number Doub Tiền phạt 8 NGAYQD Date Short Ngày kí quyết định 9 NGAYHH Date Short Ngày hết hạn kỷ luật Nhân viên Dòng bảng lương Hồ sơ Phụ cấp Dòng Phụ cấp Bảng lương Dòng hồ sơ Biệt lệ Kỷ luật Dòng khen thưởng Khen thưởng Dòng kỷ luật Dòng biệt lệ Hồ sơ lưu Dòng hồ sơ lưu Chấm công Dòng chấm công MS_NV TENNV CHUCVU TRINHDO HESO …. THANG SONC SONN MS_NV THANG SONC SONN GHICHU MS_PC LYDO TIENPC NGAYPC MS_NV MS_PC LYDO TIENPC NGAYPC MS_BL BLTL BLTT LYDO NGAYBLL MS_NV MS_BL BLTL BLTT LYDO NGAYBL THANG LCHINH LPHEP TAMUNG CONLAI MS_NV THANG LCHINH LPHEP TAMUNG CONLAI MS_NV TENNV CHUCVU TRINHDO NGAYS NOISINH DIACHI DTHOAI DANTOC HESO ……… MS_NV TENNV CHUCVU TRINHDO …. MS_NV TENNV CHUCVU TRINHDO HESO ….. MS_KT NGAYKT LYDO HTKT SOBB MS_NV MS_KT NGAYKT LYDO HTKT SOBB MS_KL NGAYKL LYDO HTKL SOBB MS_NV MS_KL NGAYKL LYDO HTKL SOBB NGAYQD NGAYHH Tạm ứng Dòng tạm ứng MS_NV MS_TU LYDO NGAYTU TIENTU MS_TU LYDO NGAYTU TIENTU Xây dựng BCD bằng mô hình thực thể liên kết Một số thuật toán: Nhập mới , sữa chữa , lưu trữ dữ liệu : Thiết lập môi trường làm việc Nhập mới /sửa chữa Begin Tạo màn hình nhập mới hay sữa chữa End Đ S Sử dụng truy vấn để mở CSDL Nhập đúng số liệu Ghi lại thông tin đã nhập hay sửa Đ Sửa lại Đ S S Xoá bỏ dữ liệu : Thiết lập môi trường làm việc Xoá/không xoá Begin Thực hiện xoá End Có Không Sử dụng lệnh truy vấn để mở CSDL Hiển thị ra màn hình nội dung thông tin muốn xoá 3.2.5. Thiết kế chương trình: Modul chương trình: Cập nhập hồ sơ Cập nhật hồ sơ Xác định chức năng Ghi lại Thêm hồ sơ Lưu hồ sơ Sửa đổi hồ sơ Thông tin nhân sự Thông tin nhân sự Thông tin nhân sự Thông tin nhân sự Thông tin nhân sự 3.2.5.2. Chấm công : Chấm công Ngày được chấm công Quy ra công Công hưởng thời gian Công hưởng % lương Công hưởng BHXH Ngày công 3.2.5.3. Tính lương : Tính lương Tính lương cơ bản Tính lương phụ cấp Lên bảng lương Ngày công LCB LCB LPC Tên LCB LPC LCB : Lương cơ bản LPC : Lương phụ cấp 3.2.5.4. Khen thưởng, Kỷ luật : Cập nhật Khen thưởng, kỷ luật Xác định chức năng Ghi lại Thêm Khen thưởng, Kỷ luật Xoá Khen thưởng, Kỷ luật Sửa Khen thưởng, kỷ luật Thông tin Khen thưởng, kỷ luật Thông tin Khen thưởng, kỷ luật Thông tin Khen thưởng, kỷ luật Thông tin Khen thưởng, kỷ luật Thông tin Khen thưởng, kỷ luật 3.2.5.5. Tìm Kiếm, thống kê : Tìm Kiếm, Thống kê Xác định yêu cầu BCTK Yêu cầu BCTK hồ sơ Lập báo biểu Yêu cầu BCTK lương TT TT TT TT Yêu cầu BCTK hồ sơ lưu TT YC YC : Yêu cầu TT : Thông tin BCTK : Báo cáo thống kê YC YC YC Yêu cầu BCTK tổng hợp TT YC 3.2.6Thiết kế giao diện * Form Đăng nhập : * Form Lý lịch nhân viên : * Form Bảng chấm công : * Form truy vấn : * Form lý lịch trích ngang : * Danh sách cán bộ công nhân viên : * Danh sách người lao động đề nghị cấp bảo hiểm : * bảng thống kê lao động tiền lương : Kết luận Trong thời gian tìm hiểu phân tích và tạo lập đề tài: “ Quản lý nhân sự tại công ty cổ phần Thiên Minh”, em đã nhận thấy tầm quan trọng của vấn đề Quản lý nhân sự trong cơ quan, công ty nói chung và cơ quan em thực tập nói riêng. Nó giúp cho nhà quản lý tiết kiệm được thời gian, công sức trong việc quản lý, lưu trữ của công ty. Do đó nó đòi thật chính xác,kịp thời gian và đồng bộ. Do thời gian thực tập có hạn, dù rất cố găng và được sự hướng dẫn của thầy giáo, cán bộthực tập, bạn bè trong trường nhưng đề tài của em vẫn gặp nhiều thiếu xót và hạn chế. Qua quá trình thực tập kết quả thực tế của chương trình là : Gặp một số lỗi viết sai điều kiện mã, do vậy vẫn chưa chạy được hoàn chỉnh Một số Form vẫn chưa tạo được đầy đủ và không thuận tiện trong sử dụng, hay gặp có phần thừa và thiếu xót. Chương trình còn đơn giản. Thiếu độ chính xác trong thực tế. Tuy nhiên chương trình cũng có một số vấn đề đạt được : Tạo được một số Form, macro chạy được theo yêu cầu : Thêm dữ liệu mới, xoá những dữ liệu không cần thiết hoặc sai, lưu lại dữ liệu, xem dữ liệu... Điều đặc biệt hơn là em đã hiểu biết nhiều kiến thức về hệ thống thông tin, cơ sở dữ liệu, ngôn ngũ Foxpro... Nêu được tầm quan trọng của tin học hoá trong quản lý nhân sự Khảo sát và thiết kế hoàn chỉnhmột bài toán quản lý. * Định hướng phát triển đề tài : Hệ thống được xây dựng cho phép các chức năng hoạt động độc lập với nhau, nên khi có sự thay đổi hay có nhu cầu thêm bớt chức năng không cần thiết phải xây dựng lại hệ thống. Hệ thống thông tin khi xây dựng thành công sẽ cải thiện được các thao tác bằng tay trên giấy tờ, sổ sách. Hệ thống mới phát triển nhằm giảm bớt số lượng nhân sự tham gia vào bộ phận quản lý. TÀI LIỆU THAM KHẢO Giỏo trỡnh CSDL. Trần Cụng Uẩn NXB Thống kờ Nhập mụn CSDL quan hệ. Lờ Tiến Vương NXB Thống kờ Hướng dẫn lập trỡnh MS Access 2000 bằng vớ dụ. Ngụ Quốc Việt - Nguyễn Tiến - Phạm Nguyễn Tuấn Kỳ NXB Giỏo dục 1997 MS Access 2000 – Lập trỡnh và ứng dụng. Nguyễn Tiến - Đặng Xuõn Hường - Nguyễn Văn Hoài NXB Giỏo dục 2000 Phõn tớch và thiết kế hệ thống thụng tin. Nguyễn Văn Ba NXB ĐH Quốc Gia Hà Nội Hệ thống thụng tin quản lý. Trương Văn Tỳ NXB ĐH Kinh tế Quốc dõn 7.Ngụn ngữ lập trỡnh Foxpro. phục lục File bakup *.......................... PROCEDURE Backup ............................. *Don dep va Backup du lieu chuong trinh *PROCEDURE Backup IF .F. _REFOX_ = (9876543210) ENDIF PRIVATE _Backup_Dir, _Data_Dir, _File_Bk, _File_Rs _Backup_Dir = "..\Backup\" &&PRE_DIR + "\Backup\" _Data_Dir = "..\Data\" &&PRE_DIR + "\Data\" _File_Bk = "" _File_Rs = _Data_Dir + "*.*" &&Don dep so lieu WAIT WINDOW NOWAIT "Dang thuc hien don dep so lieu!" CLOSE DATA ALL _Skeleton = _Data_Dir + [*.DBF] _File = SYS(2000, _Skeleton) DO WHILE !EMPTY(_File) _File = _Data_Dir + _File WAIT WIND NOWA 'dang don dep file '+ALLT(_File)+ '...' SELECT 0 USE &_File ALIAS aFile EXCL PACK USE IN aFile _File = SYS(2000, _Skeleton, 1) ENDDO WAIT WINDOW NOWAIT "Dang thuc hien backup du lieu!" &&Lay Ten file Backup: Data01.Zip -> Data05.Zip FOR i = 1 TO 5 IF !FILE(_Backup_Dir + "Data" + TRANS(i, [@L 99]) + [.Zip]) _File_Bk = _Backup_Dir + "Data" + TRANS(i, [@L 99]) + [.Zip] EXIT FOR ENDIF ENDFOR IF EMPTY(_File_Bk) && Xoa file Backup da tao som nhat _file_bk_cnt = ADIR(File_Bk, _Backup_Dir + [Data*.Zip]) _Ngay_min = File_Bk(1, 3) _File_Bk = _Backup_Dir + File_Bk(1, 1) FOR i = 2 TO _file_bk_cnt IF _Ngay_min > File_Bk(i, 3) _Ngay_min = File_Bk(i, 3) _File_Bk = _Backup_Dir + File_Bk(i, 1) ENDIF ENDF DELETE FILE &_File_Bk ENDIF RUN PkZip.Exe &_File_Bk &_File_Rs -r -p &&Neu chua co file thi tao file zip moi WAIT WINDOWS NOWAIT 'Da thuc hien xong!' RETURN ------------------------------- File:btd.prg *!* ------------------------------------------------------------ *!* Chuong trinh cap nhat danh muc: Tinh-Tp\Quan-huyen\Phuong-xa *!* Nguoi viet: AnhHt *!* Ngay viet: 27-05-2003 *!* ------------------------------------------------------------- PRIVATE curSelect, sPath curSelect = SELECT() SET PROC TO smLib DO Window sPath = PATH_HUMAN+"\Data\" SELECT 0 USE (sPath + "Btdtt") ORDER Matt ALIAS Btdtt USE (sPath + "Btdquan") ORDER Maqu ALIAS Btdquan IN 0 USE (sPath + "Btdpxa") ORDER Maphuongxa ALIAS Btdpxa IN 0 ON KEY LABEL F3 DO Them_sua WITH "S", "" ON KEY LABEL F4 DO Them_sua WITH "M", "" ON KEY LABEL F5 DO Xem_quan_huyen WITH Matt, Tentt ON KEY LABEL F8 DO Xoa WITH "Btdquan", Matt BROWSE ; FIELDS; Matt:H="Ma tinh", ; Tentt: H="Ten tinh-thanh pho", ; Stt: P="@Z 999"; NAME oBrowse ; WHEN Change_Color_Of_Browse(RECNO()); NOAPPEND NODELETE NOMODIFY ; TITLE "Danh muc Tinh-thanh pho: F3-Sua, F4-Them, F5-Xem quan huyen, F8-Xoa, Esc-Quay ra" *!* WINDOW M_WinBrw; ON KEY LABEL F3 ON KEY LABEL F4 ON KEY LABEL F5 ON KEY LABEL F8 USE IN Btdtt USE IN Btdquan USE IN Btdpxa DO Rel_Window SELECT(curSelect) RETURN ENDPROC *!* ------------------------------------------------------------- *!* Xem danh muc Quan huyen *!* ------------------------------------------------------------- PROCEDURE Xem_quan_huyen(_Matt, _Tentt) PRIVATE curSelect, oBrowse curSelect = SELECT() IF EMPTY(_Matt) RETURN ENDIF PUSH KEY CLEAR ON KEY LABEL F3 DO Them_sua WITH "S", ALLT(_Matt) ON KEY LABEL F4 DO Them_sua WITH "M", ALLT(_Matt) ON KEY LABEL F5 DO Xem_phuong_xa WITH _Matt, _Tentt, Maqu, Tenquan ON KEY LABEL F8 DO Xoa WITH "Btdpxa", Maqu SELECT Btdquan SET FILTER TO Matt = _Matt GOTO TOP BROWSE ; FIELDS; Maqu:H="Ma quan", ; Tenquan: H="Ten quan huyen" ; NAME oBrowse ; WHEN Change_Color_Of_Browse(RECNO()); NOAPPEND NODELETE NOMODIFY ; WINDOW M_WinBrw; TITLE "Danh muc Quan huyen - Tinh thanh: " + Cat_dau(ALLT(_Tentt)) + ; ": F3-Sua, F4-Them, F5-Xem phuong xa, F8-Xoa, Esc-Quay ra" SET FILTER TO ON KEY LABEL F3 ON KEY LABEL F4 ON KEY LABEL F5 ON KEY LABEL F8 POP KEY SELECT(curSelect) RETURN *!* ------------------------------------------------------------- *!* Xem danh muc Phuong xa *!* ------------------------------------------------------------- PROCEDURE Xem_phuong_xa(_Matt, _Tentt, _Maqu, _Tenquan) PRIVATE curSelect, oBrowse curSelect = SELECT() IF EMPTY(_Maqu) RETURN ENDIF PUSH KEY CLEAR ON KEY LABEL F3 DO Them_sua WITH "S", ALLT(_Maqu) ON KEY LABEL F4 DO Them_sua WITH "M", ALLT(_Maqu) ON KEY LABEL F8 DO Xoa WITH "", "" SELECT Btdpxa SET FILTER TO Maqu = _Maqu GOTO TOP BROWSE ; FIELDS; Maphuongxa:H="Ma phuong xa", ; Tenpxa: H="Ten phuong xa" ; NAME oBrowse ; WHEN Change_Color_Of_Browse(RECNO()); NOAPPEND NODELETE NOMODIFY ; WINDOW M_WinBrw; TITLE "Danh muc Phuong xa - Quan huyen: " + Cat_dau(ALLT(_Tenquan)) + ; " - Tinh thanh: " + Cat_dau(ALLT(_Tentt)) + ; ": F3-Sua, F4-Them, F8-Xoa, Esc-Quay ra" SET FILTER TO ON KEY LABEL F3 ON KEY LABEL F4 ON KEY LABEL F8 POP KEY SELECT(curSelect) RETURN *!* ------------------------------------------------------------- *!* Thu tuc them moi hoac sua *!* ------------------------------------------------------------- PROCEDURE Them_sua PARA _Mode, _Ma PRIV m.Nhan_huy, _Recno, m.Ma, m.Ten, sMa, sTen _Recno = RECNO() IF _Recno>RECCOUNT() AND _Mode = [S] RETURN ENDIF SCAT MEMV IF !EMPTY(_Ma) AND _Mode = [M] IF UPPER(ALLT(ALIAS()))=UPPER([Btdquan]) SELECT VAL(STRTRAN(Maqu, _Ma, "")) AS Max ; FROM Btdquan ; WHERE Matt = _Ma ; INTO CURS tMax INDEX ON Max TAG Max DESC IF _Tally#0 GOTO TOP _Max = Max ELSE _Max = 0 ENDIF USE IN tMax SELECT Btdquan m.Maqu = _Ma + TRANS(_Max+1, "@L ##") m.Matt = _Ma ELSE SELECT VAL(STRTRAN(Maphuongxa, _Ma, "")) AS Max ; FROM Btdpxa ; WHERE Maqu = _Ma ; INTO CURS tMax INDEX ON Max TAG Max DESC IF _TALLY#0 _Max = Max ELSE _Max = 0 ENDIF USE IN tMax SELECT Btdpxa m.Maphuongxa = _Ma + TRANS(_Max+1, "@L ##") m.Maqu = _Ma ENDIF ENDIF IF _Recno<=RECCOUNT() GO _Recno ENDIF m.Nhan_huy = 1 _Prompt = IIF(_Mode = [M], "Them", "Sua") + " danh muc " DO CASE CASE UPPER(ALLT(ALIAS())) = UPPER([Btdtt]) _Prompt = _Prompt + "Tinh/thanh pho" _LblMa = "Mã tỉnh thành" _LblTen = "Tên tỉnh thành" _Fsize_Ma = FSIZE("Matt") _Fsize_Ten = FSIZE("Tentt") m.Ma = m.Matt m.Ten = m.Tentt sMa = "m.Matt = m.Ma" sTen = "m.Tentt = m.Ten" CASE UPPER(ALLT(ALIAS())) = UPPER([Btdquan]) _Prompt = _Prompt + "Quan/huyen" _LblMa = "Mã quận huyện" _LblTen = "Tên quận huyện" _Fsize_Ma = FSIZE("Maqu") _Fsize_Ten = FSIZE("Tenquan") m.Ma = m.Maqu m.Ten = m.Tenquan sMa = "m.Maqu = m.Ma" sTen = "m.Tenquan = m.Ten" CASE UPPER(ALLT(ALIAS())) = UPPER([Btdpxa]) _Prompt = _Prompt + "phuong/xa" _LblMa = "Mã phường xã" _LblTen = "Tên phường xã" _Fsize_Ma = FSIZE("Maphuongxa") _Fsize_Ten = FSIZE("Tenpxa") m.Ma = m.Maphuongxa m.Ten = m.Tenpxa sMa = "m.Maphuongxa = m.Ma" sTen = "m.Tenpxa = m.Ten" ENDCASE PUSH KEY CLEAR DO FORM Btd-f3 POP KEY IF m.Nhan_huy # 1 RETURN ENDIF &sMa &sTen IF UPPER(ALLT(ALIAS()))=UPPER([Btdtt]) _isExist = .F. = SEEK(m.Matt) IF FOUND() IF (_Mode = [M]) OR (_Mode = [S] AND RECNO()#_Recno) =Messagebox("Ma da co!", 16, "Note") _isExist = .T. ENDIF ENDIF IF _Recno<=RECCOUNT() GO _Recno ENDIF IF !_isExist IF _Mode = [M] CALC MAX(Stt) TO _Max M.Stt = _Max APPE BLANK ENDIF GATHER MEMV FLUSH ENDIF ELSE IF _Mode = [M] APPE BLANK ENDIF GATHER MEMV FLUSH ENDIF RETURN ENDPROC *!* ------------------------------------------------------------- *!* Thu tuc xoa *!* ------------------------------------------------------------- PROCEDURE Xoa PARA _ChildTable, _Ma PRIVATE _Recno _Recno = RECNO() _Alias = ALIAS() IF _Recno>RECCOUNT() RETURN ENDIF _CoKhong = Messagebox("Co chac chan xoa khong?", 289, "Note") IF _CoKhong = 2 RETURN ENDIF _isDel = .T. IF !EMPTY(_ChildTable) SELECT &_ChildTable IF _ChildTable = "Btdquan" SEEK ALLT(_Ma) LOCATE FOR Matt = _Ma REST IF FOUND() _isDel = .F. ENDIF ELSE SEEK ALLT(_Ma) LOCATE FOR Maqu = _Ma REST IF FOUND() _isDel = .F. ENDIF ENDIF ENDIF SELECT &_Alias IF _isDel DELETE ELSE =Messagebox("Khong the xoa duoc ma nay!", 48, "Note") ENDIF RETURN ---------------------------------------------- File: cat_dau.PRG *.............................. FUNCTION Cat_Dau .............................. * Nguoi Viet: Hong Tu. FUNCTION Cat_Dau PARAMETERS _String1 &&, _Scode PRIVATE _Bked, _AscII _Bked = "áạàảã ằẳẵắặă ấậâầẩẫ ốộờôỡớợóọồổởỗòỏõơẽéẹèẻeềểễếệê ỳỷỹýỵ ùúụủũ ừửữứựư ìỉĩíị ĂÂÊÔƠĐđƯ" _ASCII = "aaaaa aaaaaa aaaaaa oooooooooooooooooeeeeeeeeeeee yyyyy uuuuu uuuuuu iiiii AAEOODdU" *_String1 = _String1 IF NOT EMPTY(_String1) _String2= CHRTRAN(_String1,_Bked,_AscII) ELSE _String2='' ENDIF RETURN _String2 ------------------------------ File:config.fpw.prg DEFAULT = LEFT( SYS(5)+SYS(2003),LEN(_Path)-7) COMMAND =_SCREEN.Caption=; "Visual FoxPro " + SUBSTR(VERS(),25,3) COMMAND = DO MAIN.FXP -------------------------------- File: HT_DATE.PRG PRIVATE WIN_NAME WIN_NAME = WOUTPUT() IF .NOT. WVISIBLE(WIN_NAME) WIN_NAME = "" ENDIF ACTIVATE SCREEN IF LEN(WIN_NAME)>0 ACTIVATE WINDOW (WIN_NAME) ENDIF RETURN ENDPROC ---------------------------------- File:ht_exit.PRG *!* Nguoi Viet :Hong Tu CLOSE DATABASE ALL ON SHUTDOWN QUIT ----------------------------------- File:installfont.prg *! ...................... PROCEDURE InstFont .......................... PROCEDURE InstFont LPARAMETER _InfPath LOCAL _Exec, _LastError, _Error IF TYPE([M_App_Name]) [C] LOCAL M_App_Name M_App_Name = [Install] ENDIF IF FILE(_InfPath + [instfont.inf]) IF ATC("Windows NT", OS(1)) # 0 && WIN NT IF MESSAGEBOX('De cai dat phong chu cho Windows, nguoi su dung phai co quyen "Administrator".' + CHR(13) +'Hay khoi dong lai may tinh sau khi cai dat xong de font co hieu luc', 1 + 48, 'Install font QLNS') 1 RETURN ENDIF ENDIF _Exec = 'RunDLL32.EXE SetupAPI.dll,InstallHinfSection DefaultInstall 132 ' + ; _InfPath + 'instfont.inf' _Error = 0 _LastError = ON('ERROR') ON ERROR _Error = ERROR() RUN /N &_Exec ON ERROR &_LastError ENDIF RETURN ************************************ ------------------------------------- File: Luong_nv.PRG *!* ------------------------------------------------------------ *!* Chuong trinh cap nhat bang cham cong bo phan theo thang *!* Nguoi viet: Hong Tu. *!* Ngay viet: 17-06-2003 *!* ------------------------------------------------------------- PRIVATE curSelect, sPath, sTmp, m.Nhan_huy, m.Thang, m.Year CLOS DATA curSelect = SELECT() sPath = PATH_HUMAN+"\Data\" sTmp = PATH_HUMAN+"\Text\" SELECT 0 USE (sPath + "Bophan") ORDER Madv ALIAS Bophan STORE MONTH(DATE()) TO m.Thang STORE YEAR(DATE()) TO m.Year m.Madv = "" m.Nhan_huy = 1 DO FORM Luong_nv m.Tendv = IIF(SEEK(m.Madv, "Bophan"), Bophan.Tenbp, "") USE IN Bophan IF LASTKEY() = 27 OR m.Nhan_huy # 1 SELECT(curSelect) RETURN ENDIF IF EMPTY(m.Madv) WAIT WIND NOWA 'Chua chon bo phan - phong ban' RETURN ENDIF IF !FILE(sPath + "Luong" + RIGHT(STR(m.Year), 2) + ".DBF") _Fields = "Manv C(5)" FOR I = 1 TO 12 _Fields = _Fields + ", Hssp" + TRANS(I, "@L ##") + " N(5,2)" _Fields = _Fields + ", L_sp" + TRANS(I, "@L ##") + " N(5,2)" _Fields = _Fields + ", L_phep" + TRANS(I, "@L ##") + " N(5,2)" _Fields = _Fields + ", L_khac" + TRANS(I, "@L ##") + " N(5,2)" ENDFOR CREATE TABLE (sPath + "Luong" + RIGHT(STR(m.Year), 2)) (&_Fields) INDEX ON Manv TAG Manv USE ENDIF SELECT 0 USE (sPath + "Luong" + RIGHT(STR(m.Year), 2)) ORDER Manv ALIAS Luong SELECT 0 USE (sPath + "LLNV") ORDER Manv ALIAS LLNV NOUPDATE SELECT 0 USE (sPath + "Hopdong") ORDER Manv ALIAS Hopdong NOUPDATE SELECT 0 USE (sPath + "Macv") ORDER Macv ALIAS Macv NOUPDATE SELECT Manv ; FROM LLNV ; WHERE Manv NOT IN (SELECT Manv FROM Luong) ; INTO TABLE (sTmp + "tAdd_Manv") USE IN tAdd_Manv SELECT Luong IF _TALLY#0 APPE FROM (sTmp + "tAdd_Manv") ENDIF DELETE ; FROM Luong WHERE Manv NOT IN (SELECT Manv FROM LLNV) SET PROC TO smLib DO Window _Hssp = "Hssp" +TRANS(m.Thang, "@L ##") _L_sp = "L_sp" +TRANS(m.Thang, "@L ##") _L_phep = "L_phep"+TRANS(m.Thang, "@L ##") _L_khac = "L_khac"+TRANS(m.Thang, "@L ##") SELECT ; SPACE(1) AS Tag, ; Manv, ; LLNV.Ten AS Ten, ; LLNV.Ho+LLNV.Ten AS Tennv, ; Hopdong.Macv AS Macv, ; Macv.Diengiai AS Chucvu, ; &_Hssp AS Hssp, ; &_L_sp AS L_sp, ; &_L_phep AS L_phep, ; &_L_khac AS L_khac ; FROM Luong ; WHERE Manv IN (SELECT Manv FROM LLNV WHERE ALLT(Madv)=ALLT(m.Madv)) ; INTO TABLE (sTmp + "tLuongtmp") SET RELATION TO Manv INTO LLNV SET RELATION TO Manv INTO Hopdong ADDI REPLACE ALL ; Ten WITH LLNV.Ten, ; Tennv WITH ALLT(LLNV.Ho)+" " + ALLT(LLNV.Ten), ; Macv WITH Hopdong.Macv SET RELATION TO Macv INTO Macv REPLACE ALL Chucvu WITH Macv->Diengiai SET RELATION TO INDEX ON Manv TAG Manv INDEX ON Macv+UPPER(ALLT(Ten)) TA

Các file đính kèm theo tài liệu này:

  • doc33323.doc