* 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 ).
151 trang |
Chia sẻ: maiphuongdc | Lượt xem: 1583 | Lượt tải: 5
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:
- 33323.doc