Ngoài các biến toàn cục trong file gcompany.mem do quản trị viên chỉnh định
và các biến toàn cục trong các file mem*.mem do các quản trị viên chỉnh định,
còn có 3 loại biến toàn cục khác:
Biến toàn cục hoặc hằng số được định nghĩa và xác định giá trị trong
chương trình.
Biến toàn cục tùy vào chỉnh định của từng user (biến này bắt đầu bằng
chữ p và được lưu trong file hthtin.mem tại thư mục làm việc của từng
user.
Biến toàn cục tùy vào chỉnh định của từng user liên quan đến chỉnh
định máy in (biến này bắt đầu bằng chữ z_ và được lưu trong file
z_info.mem tại thư mục làm việc của từng user).
340 trang |
Chia sẻ: lylyngoc | Lượt xem: 2479 | Lượt tải: 0
Bạn đang xem trước 20 trang tài liệu Đồ án Chương trình quản lý trường Đại học Thủy Sản, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
ile Chỉ Tiêu Giảm/Miễn Tín Chỉ btcmien with .t.
hgiamsot
c
B1220
In
Tính Toán Bộ Học Bổng Khuyến Khích * btinh2 hkhoaso B2010
Xem Danh Sách Học Bổng Khuyến Khích bvwhbhl B2020
In Danh Sách SV Có Học Bổng Khuyến Khích bindshb2 B2030
In Phân Loại SV Diện Chính Sách binplcs B2035
In Danh Sách SV Có Học Bổng Chính Sách bindscs with 1 B2040
In Danh Sách SV Có Trợ Cấp Xã Hội bindscs with 2 B2050
In Danh Sách SV Có Trợ Cấp Ưu Đãi bindscs with 3 B2060
In Danh Sách Miễn Giảm Học Phí binmg B2070
In Danh Sách M.Giảm HP Diện CS (Theo %) bingmcs B2080
In Danh Sách M.Giảm HP Diện CS (Gộp %) bingmcs2 B2085
Chức năng * Tên Chương trình Điểu kiện Mã Menu
In Tổng Hợp Các Loại Học Bổng binthop B2090
In Thống Kê SV Miễn Giảm Học Phí binmg2 B2100
Lưu
Lưu Học Bổng Khuyến Khích * bluukk with 0 hkhoaso B3010
Lưu Học Bổng Chính Sách * bluukk with 1 hkhoaso B3020
Lưu Học Bổng Trợ Cấp Xã Hội * bluukk with 2 hkhoaso B3030
Lưu Học Bổng Ưu Đãi * bluukk with 3 hkhoaso B3040
Lưu Số Liệu Giảm Học Phí * bluukk with 4 hkhoaso B3045
Xem/In Học Bổng Khuyến Khích Hàng Tháng bxemcs with 0 B3050
Xem/In Học Bổng Chính Sách Hàng Tháng bxemcs with 1 B3060
Xem/In Học Bổng Trợ Cấp XH Hàng Tháng bxemcs with 2 B3070
Xem/In Học Bổng Ưu Đãi Hàng Tháng bxemcs with 3 B3080
Chức năng * Tên Chương trình Điểu kiện Mã Menu
Xem/In Số Liệu Giảm Học Phí Hàng Tháng bxemcs with 4 B3085
In Bảng Tổng Hợp HB Khuyến Khích bincs with 0 B3090
In Bảng Tổng Hợp HB Chính Sách bincs with 1 B3100
In Bảng Tổng Hợp HB Trợ Cấp Xã Hội bincs with 2 B3110
In Bảng Tổng Hợp HB Ưu Đãi bincs with 3 B3120
Bảo Trì
Sửa Thông Số Chung Của Phân Hệ *
hthsochg with
'hbhp1'
hquyenqlp
h
B4030
Tự Điển Liên Quan Đến Phân Hệ
Xem Tự Điển Qui Chế Học Bổng hhtudien with 'qchb' B4040
Xem Tự Điển Loại Học Bổng Chính Sách hhtudien with 'tdhb' B4050
Xem Tự Điển Công Ty Bảo Hiểm hhtudien with 'ctbh' B4060
Xem Tự Điển Ngân Hàng Cho Vay Vốn hhtudien with 'nhvv' B4070
Chức năng * Tên Chương trình Điểu kiện Mã Menu
Xem Tự Điển Khen Thưởng hhtudien with 'tdkt' B4080
Xem Tự Điển Kỷ Luật hhtudien with 'tdkl' B4090
Xem Tự Điển Khối Lớp hhtudien with 'tdkhoi' B4100
Xem Tự Điển Lớp hhtudien with 'stdlp' B4110
Xem Tự Điển Sinh Viên hviewtd B4120
Xem Danh Sách Sinh Viên Học Kỳ hviewds B4130
ReIndex Các Tập Tin * hReindex
hquyenqlp
h
B4140
Bảo Trì Phân Hệ *
hquyenqlp
h
In Tổng Quát Bảo Trì Phân Hệ * hbaotri
hquyenqlp
h
B4150
In Chi Tiết Bảo Trì Phân Hệ * hbaotri2
hquyenqlp
h
B4160
Sửa Lỗi Từ Số Liệu Bảo Trì * hbaotri2 with 1
hquyenqlp
B4161
Chức năng * Tên Chương trình Điểu kiện Mã Menu
h
Cập Nhật T.Đổi Do Sử Dụng File Ngoài CT * happdbf
hquyenqlp
h
B4165
Sửa Đổi Tự Điển Phân Hệ * hsuatd
hquyenqlp
h
B4170
Xem/Sửa Thông Tin Hiệu Chỉnh Báo Biểu * hsuarppr
hquyenqlp
h
B4172
Xem/Sửa Tự Điển Người Ký * htdngky
hquyenqlp
h
B4174
Xem/Sửa Người Ký Tên Trên Các Mẫu In * hkyten
hquyenqlp
h
B4176
Đổi Mật Khẩu Người Sử Dụng hchange B4180
Chỉnh Định
Tạo File Mã Số Theo Điều Kiện Lọc hchonmaso B5020
Tạo File Mã Số Bởi Các Phép Toán Quan Hệ hrelation B5030
Tạo File & In Danh Sách Sinh Viên htaodssv B5040
Chức năng * Tên Chương trình Điểu kiện Mã Menu
Xem/Sửa/In File Text hmodifil B5050
Khóa Quyền Khai Thác Tạm Thời
hlock1 in
hlockkt1
huserhtq
l
B5090
Mở Quyền Khai Thác Trở Lại
hlock2 in
hlockkt1
huserhtq
l
B5100
Xem User Đang Làm Việc Trên Mạng
hlock3 in
hlockkt1
huserhtq
l
B5110
Giới Thiệu habout B5120
V/ Quản Lý Học Phí Tài Vụ (QLTV) :
Hình 17 : Menu Phân hệ Quản Lý Học Phí Tài Vụ (QLTV)
Chức năng * Tên Chương trình Điểu kiện Mã Menu
Nhập
Xem/Sửa Thu & Chi Các Khoản Học Phí SV vnhapkh V1010
Nhập Hoá Đơn Học Phí Không Đối Chiếu Nợ * vsuahd1 hkhoaso V1020
Nhập Hoá Đơn Học Phí Theo Lớp * vsuahd2 hkhoaso V1030
Chức năng * Tên Chương trình Điểu kiện Mã Menu
Xem/Sửa File Đóng Học Phí vviewds V1040
Nhập Phiếu Thu Học Phí Học Lại vnhaphl
htkhocla
i
V1045
Xem/Sửa Xóa Nợ Các Khoản Học Phí SV vnhapkh with 1 V1050
Nhập Xóa Nợ Học Phí Không Đối Chiếu Nợ * vsuahd1 with 1 hkhoaso V1060
Xem/Sửa File Xóa Nợ vviewds with 1 V1070
In Tổng Hợp Học Phí - 1 Sinh Viên vinno1sv with 0 V1080
In Tổng Hợp Học Phí - Theo Lớp vinno1sv with 1 V1090
In Tổng Hợp Học Phí - Theo File vinno1sv with 2 V1100
In Đối Chiếu Chi Tiết Học Phí Từng SV vinkt with 0 V1110
In Đối Chiếu Chi Tiết Học Phí Theo Lớp vinkt with 1 V1120
Gán Số Phiếu Thu Bắt Đầu * vserial V1130
Gán Số Phiếu Thu (Học Lại) Bắt Đầu * vserial with 1
htkhocla
i
V1140
Chức năng * Tên Chương trình Điểu kiện Mã Menu
In
In Liệt Kê
In Liệt Kê Thu/Chi Học Phí (Ngày) vinlk with 1 V2010
In Liệt Kê Thu/Chi Học Phí (Người Nhập) vinlk with 2 V2020
In Liệt Kê Thu/Chi Học Phí (Theo Khoa) vinlk with 3 V2030
In Liệt Kê Thu/Chi Học Phí (Theo Số/Ph) vinlksp V2040
In Liệt Kê Thu/Chi Học Phí (Theo Quyển) vinlkq V2050
In Liệt Kê Học Phí Nhập Từ Các Khoa vinlkkhn hkhnhhp V2052
In Tổng Hợp Thu/Chi Học Phí Theo Khoa vinlk1 V2060
In Tổng Hợp Học Phí Nhập Từ Các Khoa vinlkkh hkhnhhp V2061
In Tổng Hợp Học Phí (Học Lại) Theo Khoa vintkhl
htkhocla
i
V2065
In Số Thu/Chi Tháng vthang with 1 V2070
Chức năng * Tên Chương trình Điểu kiện Mã Menu
In Chi Tiết Số Thu/Chi Tháng vthang with 2 V2080
In Chi Tiết Số Thu/Chi Năm vthang with 3 V2090
In Thống Kê Học Phí Học Kỳ Theo Khoa htkhphp with 1 V2093
In Thống Kê Học Phí Học Kỳ Theo Khối Lớp htkhphp with 3 V2094
In Thống Kê Học Phí Học Kỳ Theo Khóa Học htkhphp with 4 V2095
In Thống Kê Học Phí Học Kỳ Theo Lớp htkhphp V2096
In Liệt Kê Học Phí Học Kỳ Theo SV htkhphp with 2 V2097
In Bảng Liệt Kê Tồn Nợ Học Phí - Hệ ĐT vinnolp with 1 V2100
In Bảng Liệt Kê Tồn Nợ Học Phí - Lớp vinnolp V2110
In Bảng TH Học Phí Học Kỳ Toàn Trường vinth V2120
In Bảng Tổng Hợp Tình Hình Học Phí hinthhp hhpnamtc V2130
In DS Sinh Viên Còn Số Dư Nợ vinsvno hhpnamtc V2135
Chức năng * Tên Chương trình Điểu kiện Mã Menu
Lưu & Phục Hồi * hkhoaso
Lưu File Dữ Liệu * vdatebac with 1 hkhoaso V2140
In Các Thay Đổi Từ Khi Lưu Dữ Liệu * vdatebac with 2 hkhoaso V2150
Phục Hồi Dữ Liệu Giống Như Lúc Lưu * vdatebac with 3 hkhoaso V2160
Bảo Trì
Xem/Sửa Thông Số Chung Của Phân Hệ * hthsochg with 'qltv'
hquyenqlp
h
V3025
Sửa Thông Số Của Người Sử Dụng hoption with 'qltv' V3030
Tự Điển Liên Quan Đến Phân Hệ
Xem Danh Sách Sinh Viên Học Kỳ hviewds V3040
Xem Tự Điển Sinh Viên hviewtd V3050
Xem/Sửa Tự Điển Lớp Hợp Đồng
hhtudien with
'lophd'
h_lophd V3060
Xem Mức Học Phí Các Lớp
hrunprg with
V3070
Chức năng * Tên Chương trình Điểu kiện Mã Menu
'DKMH','mmuchphi
'
Xem File Miễn Giảm Học Phí
hrunprg with
'HBHP','bnhap3
'
V3080
Xem File Học Bổng Chính Sách
hrunprg with
'HBHP','bnhap2
'
V3090
Khóa Sổ Các Khoản Thu Chi Học Phí hkhsothu with 1 hhpnamtc2 V3100
Mở Khóa Sổ Các Khoản Thu Chi Học Phí hkhsothu with 2 hhpnamtc2 V3110
Chuyển Nợ Không Khớp & Học Phí Đã Đóng *
hrunprg with
'DKMH','mfixn
o'
hkhhptv V3111
Khóa Phát Sinh Học Phí Học Kỳ * hlockhp with 1 hkhhptv V3112
Mở Khóa Phát Sinh Học Phí Học Kỳ * hunlkhp with 1 hkhhptv V3114
Khóa Sổ Nhập Phiếu Thu/Chi Theo Ngày * vkhoaso
hquyenqlp
h
V3118
Chức năng * Tên Chương trình Điểu kiện Mã Menu
ReIndex Các Tập Tin * hReindex
hquyenqlp
h
V3120
Bảo Trì Dữ Liệu *
hquyenqlp
h
In Tổng Quát Bảo Trì Phân Hệ * hbaotri
hquyenqlp
h
V3130
In Chi Tiết Bảo Trì Phân Hệ * hbaotri2
hquyenqlp
h
V3140
Sửa Lỗi Từ Số Liệu Bảo Trì * hbaotri2 with 1
hquyenqlp
h
V3141
Cập Nhật T.Đổi Do Sử Dụng File Ngoài CT * happdbf
hquyenqlp
h
V3145
Phân Loại Lớp Khi Bảo Trì Phân Hệ * hsuarppr
hquyenqlp
h
V3146
Xem/Sửa Tự Điển Người Ký * htdngky
hquyenqlp
h
V3147
Xem/Sửa Người Ký Tên Trên Các Mẫu In * hkyten
hquyenqlp
h
V3148
Chức năng * Tên Chương trình Điểu kiện Mã Menu
Đổi Mật Khẩu Người Sử Dụng hchange V3150
Chỉnh Định
Tạo File Mã Số Theo Điều Kiện Lọc hchonmaso V4020
Tạo File Mã Số Bởi Các Phép Toán Quan Hệ hrelation V4030
Tạo File & In Danh Sách Sinh Viên htaodssv V4040
Xem/Sửa/In File Text hmodifil V4050
Khóa Quyền Khai Thác Tạm Thời
hlock1 in
hlockkt1
huserhtq
l
V4090
Mở Quyền Khai Thác Trở Lại
hlock2 in
hlockkt1
huserhtq
l
V4100
Xem User Đang Làm Việc Trên Mạng
hlock3 in
hlockkt1
huserhtq
l
V4110
Giới Thiệu habout V4120
HP Khoa
hkhnhhp
0
Chức năng * Tên Chương trình Điểu kiện Mã Menu
Xem/Sửa DS User Nhập Thu Chi Tại Khoa vusernh hkhnhhp2 V5010
Tạo File Nhập Thu Chi Học Phí Các Khoa vfhpkh hkhnhhp2 V5020
Nhận Dữ Liệu Học Phí Các Khoa Đã Gởi vgetdata hkhnhhp2 V5030
Khóa Sổ Nhập Phiếu Thu/Chi Theo Ngày vkhoaso hkhnhhp2 V5040
Xem/Sửa Thu & Chi Các Khoản Học Phí SV
vnhapkh with .f.,
1
hkhnhhp3 V5050
Nhập Hoá Đơn Học Phí Không Đối Chiếu Nợ vsuahd1k hkhnhhp3 V5060
Xem File Học Phí Đã Nhập vviewdsk hkhnhhp3 V5070
In Liệt Kê Học Phí Đã Nhập vinlkk hkhnhhp3 V5080
In Thống Kê Học Phí Đã Nhập vintkk hkhnhhp3 V5090
Chuyển Số Liệu Đã Nhập Đến Phòng Tài Vụ vchuyenk hkhnhhp3 V5100
Phục Hồi Dữ Liệu Phòng Tài Vụ Chưa Nhận vchuyen2 hkhnhhp3 V5110
VI/ Đăng Ký Môn Học (DKMH) :
Hình 18 : Menu Phân hệ Đăng Ký Môn Học (DKMH)
Chức năng * Tên Chương trình Điểu kiện Mã Menu
Nhập
Xem File Môn Học Mở Trong Học Kỳ hvwctgh with 1,1 M1010
Xem/Sửa Sĩ Số Đăng Ký Môn Học hvwsldk with 6 M1020
Chức năng * Tên Chương trình Điểu kiện Mã Menu
Gán S/Chứa Phòng & Sĩ Số Cho Phép ĐK * hcapnhat hxetdkm2 M1040
Xem/Sửa Lớp Có MH Đăng Ký Cứng mlopmhcg M1045
Đợt Đăng Ký hdotdky
Xem/Sửa Đợt Đăng Ký Cho Các Lớp mnhlpdot hdotdky M1050
Tạo Đợt Đăng Ký Cho Sinh Viên *
mnhlpdot with
1
hdotdky2 M1060
Xem/Sửa Đợt Đăng Ký Cho Từng Sinh Viên mxemdot hdotdky M1070
Số Tín Chỉ Max Cho Phép Đăng Ký
Xem/Sửa Số Tín Chỉ Max Cho Các Lớp mnhtcmax M1075
Tạo Số Tín Chỉ Max Cho Sinh Viên * mnhtcmax with 1 M1076
Xem/Sửa Số Tín Chỉ Max Cho Từng SV mxtcmax M1077
Cho Phép ĐKMH Cải Thiện Điểm hcpcaith
Xem/Sửa Cho Phép ĐKMH Cải Thiện - Lớp mnhtcct hcpcaith M1078
Chức năng * Tên Chương trình Điểu kiện Mã Menu
Tạo Cho Phép ĐKMH Cải Thiện Cho SV * mnhtcct with 1 hcpcaith M1079
Xem/Sửa Cho Phép ĐKMH Cải Thiện - SV mxtcct hcpcaith M1080
Xem/Sửa Số SV/Tổ Của Các Môn Học hvwsldk with 3 hgantotr M1080
Xem/Sửa Số Lượng SV Dự Trữ Các Môn Học hvwsldk with 4 hdutru M1090
Nối File ĐKMH Từ File MãSV & MãMH Có
Sẳn
* mappend hxetdkm3 M1100
Xem/Nhập ĐKMH Với Mã Môn Học mnhapnh with 0 hxetdkmh M1170
Xem/Nhập ĐKMH Với Mã Môn Học & Nhóm mnhapnh with 1 hxetdkmh M1180
Nhập Nhóm ĐKMH Theo Môn Học mnnnh hxetdkmh M1190
Sinh Viên Đăng Ký Đúng CTĐT hxetdkmh
Nhập Mã Sinh Viên Đăng Ký Đúng CTĐT * mdgng hxetdkmh M1194
Gán Mã Lớp XTKB Cho SV Đăng Ký Đúng
CTĐT
* mdgng1 hxetdkmh M1195
Xem/Sửa File Đăng Ký Đúng CTĐT mdgng2 hxetdkmh
Chức năng * Tên Chương trình Điểu kiện Mã Menu
ĐKMH Trực Tiếp Theo Môn Học * mdkmhtt hxetdkmh M1200
MH Học Lại/Học Vượt
In Mẫu Đăng Ký Học Lại - 1 SV mmauhl with 1 M1205
In Mẫu Đăng Ký Học Lại - Lớp mmauhl with 3 M1206
In Mẫu Đăng Ký Học Lại - File mmauhl with 2 M1207
Nhập Môn Học Lại/Học Vượt * mhoclai4 with 1 M1210
Nhập MH Tương Đương Môn Học Lại * mhoclai5 M1215
Xem/Sửa Môn Học Lại/Học Vượt mhoclai2 with 1 M1220
In Kiểm Tra Môn Học Lại/Học Vượt * mhoclai3 with 1,1 M1230
In Thống Kê Môn Học Lại mintkhl M1235
MH Không Theo Đúng CTĐT
Nhập MH Không ĐK Theo Đúng CTĐT * mhoclai4 M1240
Chức năng * Tên Chương trình Điểu kiện Mã Menu
Xem/Sửa MH Không ĐK Theo Đúng CTĐT mhoclai2 M1250
In Kiểm Tra MH Không ĐK Theo Đúng CTĐT * mhoclai3 with 0,1 M1260
K/Sát
Xem/Sửa Dữ Liệu Đăng Ký Môn Học Đã Nhập mvwdkmh M2010
Trích Lọc Môn Đăng Ký mtrichdk with 1 M2020
Trích Lọc Nhiều Môn Đăng Ký mtrich1 M2030
In Đánh Giá Số Lượng ĐKMH Theo File mdgmh M2040
Xét ĐK Thoả Mãn Các Môn Tiên Quyết * mxettq hxettq M2050
In Các Dữ Liệu Không Hợp Lệ Truớc Khi ĐK * minxet M2060
In Thống Kê
In Thống Kê Số SV ĐKMH Theo Môn Học mthkeng M2070
In Thống Kê Đăng Ký Theo Đợt Học
mthkeng with
.f.,1
hdotdky M2080
Chức năng * Tên Chương trình Điểu kiện Mã Menu
In Thống Kê Số Tín Chỉ Đăng Ký mdemtchi M2090
In Số Lượng MH ĐK Nhưng Không Mở
Lớp
minkhmo M2100
Thay Đổi Phòng Học *
Thống Kê Số Đăng Ký Để Thay Đổi Phòng * mthkess M2110
Thay Đổi Số SV Chung * mdoiphg with 3 M2120
Giảm Sĩ Số SV Do SV Đăng Ký ít *
mdoiphg with -
2
M2130
Tăng Sĩ Số SV Do SV Đăng Ký Nhiều * mdoiphg with 2 M2140
Tăng Số SV Đăng Ký Để Tận Dụng Phòng * mdoiphg with 0 M2150
Đổi Sang Phòng Nhỏ Cho Các MH Dư Chỗ *
mdoiphg with -
1
M2160
Đổi Sang Phòng Lớn Cho Các MH Thiếu
Chỗ
*
mdoiphg with
+1
M2170
Hủy Các Môn Đã Có Bảo Lưu * mbobluu M2180
Chức năng * Tên Chương trình Điểu kiện Mã Menu
Hủy Các Môn Đăng Ký Trùng * mhuydktr M2190
Ghi Nhận Các Môn > Tín Chỉ Max * mhuynhtc M2200
In Thống Kê Chưa Nhập ĐKMH Theo Lớp
mindscdk with
1
M2210
In Danh Sách SV Chưa Nhập ĐKMH mindscdk M2220
In Các Dữ Liệu Không Hợp Lệ Môn Học Lại minxetl M2230
In Thống Kê Sinh Viên Học Lại mintkhl2 M2240
In Danh Sách Đăng Ký Học Lại Theo MH mindshl M2250
In Phiếu Đăng Ký Học Lại Cho SV
In Theo Lớp
minpdkhl with
1
M2260
In Theo File Mã SV
minpdkhl with
2
M2270
In Từng Sinh Viên
minpdkhl with
3
M2280
Chức năng * Tên Chương trình Điểu kiện Mã Menu
In Bảng Ký Nhận Phiếu Đăng Ký Học Lại mindskth M2290
Xét *
Cập Nhật Số Lượng SV Đăng Ký Các Môn Học * hdemsdk M3010
Xem/Sửa Các Giờ Bận Chung Cho Lớp * msvban with .f.,2 M3012
Xem/Sửa Các Giờ Bận Cho Sinh Viên * msvban with .f.,1 M3014
In SV Có MH Đã Đạt ở HK Truớc (Niên Chế) * mindatnc M3020
Xét ĐKMH Tự Động *
Xét ĐKMH SV Đã Đăng Ký Đúng CTĐT * mdgng3 M3025
Xét ĐKMH Các Môn Theo Nhóm Ngoại
Ngữ
* mxetngng M3027
Xét ĐKMH Các Môn Theo Nhóm MH
Chung
*
mxetngng with
0,1
M3028
Xét ĐKMH Tự Động Theo Lớp - Tất Cả
MH
* htaods M3030
Chức năng * Tên Chương trình Điểu kiện Mã Menu
Xét ĐKMH Tự Động Theo Lớp - Một Số
MH
* htaods with 1 M3040
Xét ĐKMH Học Lại/Học Vượt *
mxetlan2 with
1,1,0,0,1
M3045
Xoá Kết Quả ĐKMH Tự Động *
Xoá ĐKMH Tự Động - Theo Nhóm Ngoại Ngữ *
mxetngng with
1
M3047
Xoá ĐKMH Tự Động - Theo Nhóm MH Chung *
mxetngng with
1,1
M3048
Xoá ĐKMH Tự Động - Một Số MH * htaods with 1,1 M3050
Đổi Nhóm ĐKMH Tự Động 1 MH (Lớp NC) * mdoinhnc M3060
Tạo File Lọc Môn Học Để Xét Đăng Ký * mfileloc hxetdkmh M3070
Khóa Các MH Không Đổi TKB Sau Khi Xét * mlockmh hxetdkmh M3080
Khóa Kết Quả Đã Xét Không Cho Đổi TKB * mlockdm hxetdkmh M3090
Xét Đăng Ký * hxetdkmh
Chức năng * Tên Chương trình Điểu kiện Mã Menu
Xét Đăng Ký - Theo Dữ Liệu Đã Nhập * mxetlan2 with 0,1 hxetdkmh M3100
Xét Đăng Ký - Theo File Tạo Sẵn * mxetlan2 with 1,1 hxetdkmh M3110
Xét Đăng Ký - 1 Sinh Viên * mxetlan2 with 2,1 hxetdkmh M3120
Xét Vét *
Xét Vét - Theo Dữ Liệu Đã Nhập * mxetlan2 with 0 hxetdkmh M3130
Xét Vét - Theo File Tạo Sẵn * mxetlan2 with 1 hxetdkmh M3140
Xét Vét - 1 Sinh Viên * mxetlan2 with 2 hxetdkmh M3150
Xét Vét - ĐKMH Học Lại/Học Vượt *
mxetlan2 with
1,0,0,0,1
hncexist M3155
Xét Vét - Xét Hoán Vị Theo Môn Học * mhoanvix hxetdkmh M3160
Xét Vét - Hoán Vị Nhóm Với SV Đã Xếp * mhoanvi hxetdkmh M3170
Xét Vét - Hủy Bỏ Môn Để Xét Môn Khác * mhuybo hxetdkmh M3180
K/Tra
Chức năng * Tên Chương trình Điểu kiện Mã Menu
Trích ĐKMH Chưa Xét Ra File mchuaxet M4010
Trích Các SV Chưa Xét Được Theo MH mtrichdk with 2 M4020
In Thống Kê & Kiểm Tra
Cập Nhật Số SV Đăng Ký Môn Học * hdemsdk M4024
Cập Nhật Lý Do Không Xét Được ĐKMH * mxetlydo hxetdkmh M4025
In Các Môn Học Trùng TKB So Với File
Xét
mlydotrg M4030
In K/Tra K/Quả ĐKMH MH Lại/Học Vượt mhoclai3 with 1,2 M4032
In K/Tra K/Quả ĐKMH MH Không Đúng CTĐT mhoclai3 with 0,2 M4034
In Nhóm/Tổ Có Số SV Đăng Ký ít mnhomit hgantotr M4040
In Sử Dụng Phòng < n(%) Sức Chứa msisoit hxetdkmh M4050
In Sử Dụng Phòng > n(%) Sức Chứa msisoit with 1 hxetdkmh M4060
In Thống Kê Số Tiết Đăng Ký mdemtiet hxetdkmh M4070
Chức năng * Tên Chương trình Điểu kiện Mã Menu
In ĐKMH Chưa Xét Được - Theo Lý Do mchuadk hxetdkmh M4080
In ĐKMH Chưa Xét Được - Theo Môn Học monchxet hxetdkmh M4090
In ĐKMH Chưa Xét Được - Theo Sinh Viên mtksvdx hxetdkmh M4100
In Thống Kê MH Không Xếp Được Theo
File
mchxet M4110
Xét Hợp Lệ Đ/Kiện Tiên Quyết Sau Đăng Ký * mxettq with 1 hxettq M4120
In Các Dữ Liệu Không Hợp Lệ Sau Khi Xét * hinxetd hxetdkmh M4130
Kiểm Tra Hợp Lệ TKBSV - Theo ĐKMH Đã
Xét
* mkttkbs with 0 hxetdkmh M4160
Kiểm Tra Hợp Lệ TKBSV - Theo File MSSV * mkttkbs with 1 hxetdkmh M4170
Kiểm Tra Hợp Lệ TKBSV - 1 Sinh Viên * mkttkbs with 2 hxetdkmh M4180
Cập Nhật Số SV Đăng Ký Môn Học * hdemsdk M4190
Cập Nhật Lý Do Không Xét Được ĐKMH * mxetlydo hxetdkmh M4195
In Thống Kê Chưa Xét Được Theo Lớp
mindscdk with
M4200
Chức năng * Tên Chương trình Điểu kiện Mã Menu
1,1
In Danh Sách SV Chưa Xét Được Theo Lớp
mindscdk with
0,1
M4210
In Thống Kê Số Lượng Đăng Ký Được minsldk M4220
Xem/Sửa File Môn Học Đã Đăng Ký Được hvwdmnh M4230
Hiệu Chỉnh
Cập Nhật Số SV Đăng Ký Môn Học * hdemsdk M5010
Hủy Bỏ KQ Đăng Ký *
Hủy Bỏ KQ Đăng Ký - Toàn Bộ * mhuymh with 1 M5020
Hủy Bỏ KQ Đăng Ký - 1 Nhóm / Môn Học * mhuymh with 2 M5030
Hủy Bỏ KQ Đăng Ký - 1 Tổ / Môn Học * mhuymh with 3 hgantotr M5040
Hủy Bỏ KQ Đăng Ký - Theo File SV+MH * mhuymhf M5050
Hủy Bỏ KQ Đăng Ký - Theo File Sinh Viên * mhuyfile M5060
Chức năng * Tên Chương trình Điểu kiện Mã Menu
Hủy Bỏ KQ Đăng Ký > Tín Chỉ Max *
mhuynhtc with
1
M5070
In Thống Kê TKB
In Thống Kê TKB - Nhóm SV Không ĐK Được mtktkb with 3 M5080
In Thống Kê TKB - Nhóm SV Cùng Học 1 MH mtktkb with 1 M5090
In Thống Kê TKB - Nhóm SV Theo File mtktkb M5100
Tìm DSSV Rảnh - SV Cùng Học 1 MH
mtfsvtkb with
1,.t.
M5110
Tìm DSSV Rảnh - Nhóm SV Theo File
mtfsvtkb with
0,.t.
M5120
Tìm DSSV Bận - SV Cùng Học 1 MH
mtfsvtkb with
1,.f.
M5130
Tìm DSSV Bận - Nhóm SV Theo File
mtfsvtkb with
0,.f.
M5140
Chuyển Đổi Kết Quả Đăng Ký *
Chức năng * Tên Chương trình Điểu kiện Mã Menu
Chuyển Đổi Đ/Ký Giữa Các Nhóm Theo M/Học * mchuyenn with 1 M5150
Chuyển Đổi Đ/Ký Giữa Các Nhóm Theo
File
* mchuyenn M5160
Chuyển Đổi Đ/Ký Giữa Các Tổ * mchuyent hgantotr M5170
Dồn Các Tổ Có Số SV ít Vào Các Tổ Khác * mdonto hgantotr M5180
Đánh Số Thứ Tự Cho Các Môn Theo Tổ * mdanhstt httmh M5190
Xem Số Lượng SV Phân Phối Theo Tổ mxempto hgantotr M5200
In Thống Kê Đăng Ký 1 Nhóm MH Theo Lớp * mtkmhnh1
hquyenqlp
h
M5210
Chuyển Đổi Tên Môn Học Của 1 Lớp * mtkmhnh2
hquyenqlp
h
M5220
Chuyển Đổi Tên Môn Học Theo MH+Nhóm * mtkmhnh2 with 1
hquyenqlp
h
M5230
Xem File Môn Học Đã Đăng Ký Được * hvwdmnh M5240
Kết Quả
Chức năng * Tên Chương trình Điểu kiện Mã Menu
In Số Lượng Chỗ Còn Lại - 1 Môn Học * mdemmh M6010
In Số Lượng Chỗ Còn Lại - Môn Học * mtkmh M6020
In Số Lượng Chỗ Còn Lại - Môn Học & Nhóm * mtkmh with 1 M6030
In Thống Kê Môn Học Đã Đăng Ký Được mthkeng with 1 M6040
In Thống Kê Môn Học/Nhóm Đã Đăng Ký
Được
mtkmhnn M6050
In Thống Kê Số Tín Chỉ Miễn Giảm mthkemg
hgiamsot
c
M6060
Lưu & Phục Hồi * hkhoaso
Lưu File Dữ Liệu *
mdatebac with
1
hkhoaso M6070
In Các Thay Đổi Từ Khi Lưu Dữ Liệu *
mdatebac with
2
hkhoaso M6080
Phục Hồi Dữ Liệu Giống Như Lúc Lưu *
mdatebac with
3
hkhoaso M6090
Chức năng * Tên Chương trình Điểu kiện Mã Menu
Học Phí
Các Thuộc Tính Về Học Phí
Xem/Sửa Mức Học Phí Các Lớp mmuchphi M7010
Xem/Sửa Mức Học Phí Tín Chỉ Các Hệ ĐT mnhhpdb M7020
Xem/Sửa Mức Giảm/Tăng Học Phí Ngành mgmhpng M7021
Xem/Sửa Ghi Thu Các Lớp Hợp Đồng mphaithu h_lophd M7030
Xem/Sửa MH Tự Chọn Lớp NC Có HP Cố Định mnhnctc M7040
Xem/Sửa Lớp Theo Dõi Nợ Học Phí Nhiều HK mmonohk
h_tdnoc
u
M7050
Xem/Sửa Đơn Giá Đặc Biệt Theo Nhóm
MH
mdgctgh M7060
Kiểm Tra Đơn Giá Đặc Biệt Theo Nhóm
MH
*
mdgctgh with
.t.
M7070
Xem/Sửa Đơn Giá Đặc Biệt Cho Sinh Viên msvhpdb M7080
Chức năng * Tên Chương trình Điểu kiện Mã Menu
Xem/Sửa Tín Chỉ Miễn Học Phí Học Kỳ * mtcmien
hgiamsot
c
M7090
Xem Số Tín Chỉ Miễn/Giảm Học Phí H/K mtcmien with 1
hgiamsot
c
M7100
Xem/Sửa Các Khoản Thu/Chi Khác mphuthu M7110
Kiểm Tra File Nhập Khoản Thu/Chi Khác *
mphuthu with
.t.
M7120
Xem Số Lượng Hoá Đơn Đã Nhập mtheodoi M7130
Khởi Tạo Học Phí Các Lớp Không ĐKMH * mtinh with 0 M7140
Tính Toán Học Phí *
Tính Toán Học Phí - Tất Cả * mtinh with 1 M7150
Tính Toán Học Phí - Theo Lớp * mtinh with 4 M7160
Tính Toán Học Phí - Theo File * mtinh with 2 M7170
Tính Toán Học Phí - Các Thay Đổi * mtinh with 5 M7180
Chức năng * Tên Chương trình Điểu kiện Mã Menu
Tính Toán Học Phí - 1 Sinh Viên * mtinh with 3 M7185
Tính Toán Học Phí (Mở Khoá Sổ) - Lớp *
mtinh with
4,0,0,1
hquyenqlp
h
M7186
Tính Toán Học Phí (Mở Khoá Sổ) - File *
mtinh with
2,0,0,1
hquyenqlp
h
M7187
Tính Toán Học Phí (Mở Khoá Sổ) - 1 SV *
mtinh with
3,1,0,1
hquyenqlp
h
M7188
In Danh Sách Sinh Viên Đã Tính Học Phí mindsnh M7190
In Tổng Hợp Học Phí Phải Đóng Theo Lớp minthhp M7200
In Tổng Hợp Học Phí Phải Đóng Theo File minthhp1 M7210
Xem File Hóa Đơn Học Phí mvwhdhp M7220
In Hóa Đơn Học Phí
In Hóa Đơn Học Phí - Tất Cả minhdon with 1 M7230
In Hóa Đơn Học Phí - Theo Lớp minhdon with 4 M7240
Chức năng * Tên Chương trình Điểu kiện Mã Menu
In Hóa Đơn Học Phí - Theo File minhdon with 2 M7250
In Hóa Đơn Học Phí - Từng SV minhdon with 3 M7260
In Danh Sách Ký Nhận Phiếu ĐKMH mindskn M7270
ĐKSV
Nhập & Xét Đăng Ký Môn Học - 1 Sinh Viên mnhap M8010
In TKB Môn Chưa Xếp Của SV Theo ĐKMH mxemldsv with 1 M8020
In TKB Môn Chưa Xếp Của SV Theo File mxemldsv with 2 M8030
Đăng Ký Tự Động Môn Học SV - Theo File * htaonsv hkhoaso M8033
Đăng Ký Tự Động Môn Học 1 SV * htao1sv hkhoaso M8035
Hủy Bỏ Môn Học SV - Theo File *
mhuy1sv with -
1
hkhoaso M8040
Hủy Bỏ Môn Học SV - 1 SV/Tất Cả MH * mhuy1sv with 0 hkhoaso M8050
Hủy Bỏ Môn Học SV - 1 SV/1 Số MH * mhuy1sv with 1 hkhoaso M8060
Chức năng * Tên Chương trình Điểu kiện Mã Menu
Phục Hồi ĐKMH & Điểm Sinh Viên Đã Hủy * mphhuy hkhoaso M8070
Xem Thời Khóa Biểu - 1 Sinh Viên mxtkbsv M8080
L/Thi
Chuẩn Bị
In Kiểm Tra Danh Sách ĐKMH mktdmnh M9005
Xem/Sửa Phân Bổ Đợt Thi Cho Các Lớp XTKB mdotthil hmxeplthi M9010
Xem/Sửa Đợt Thi Cho Các Môn Thi mdotthi hmxeplthi M9020
Xem/Sửa Ngày Thi & Tiết Bận mngaythi hmxeplthi M9030
Xem/Sửa Sử Dụng Phòng Thi Cho Các Đợt mphthi hmxeplthi M9040
Kiểm Tra Hợp Lý Ngày Thi *
mngaythi with
.t.
hmxeplthi M9050
Xem/Sửa Các Môn Thi Ghép Song Song mghepss hmxeplthi M9055
Xem/Sửa Số Tiết Thi Cho Các Môn Thi mnhaptt with 1 hmxeplthi M9060
Chức năng * Tên Chương trình Điểu kiện Mã Menu
Đồng Bộ Nhóm MH DSSV ĐKMH & DSSV Thi * mdongbo M9070
Xem/Sửa Sĩ Số Phòng Thi Cho Các Nhóm * msisopt hgantoss M9080
In Đánh Giá Tình Trạng Sử Dụng Phòng Thi * mdgphthi hmxeplthi M9085
Phân Tổ Các Môn Tổ Chức Thi * mphanto hgantosau M9090
In Số SV Chưa Phân Tổ Thi mchuato M9110
In Số Lượng Sinh Viên Thi Theo MH minslthi M9120
Nhập Ngày Thi & Tiết Bắt Đầu Ưu Tiên mnhaptt with 2 hmxeplthi M9130
Nhập Tính Chất Phòng Thi mnhaptt with 3 hmxeplthi M9140
Kiểm Tra Các Số Liệu Nhập * mnhaptt with 2,.t. hmxeplthi M9150
In Thống Kê Môn Thi Các Đợt mtkmtdot hmxeplthi M9160
Xếp Lịch Thi * hmxeplthi
Xếp Lịch Thi * mdukien hmxeplthi M9190
Chức năng * Tên Chương trình Điểu kiện Mã Menu
Xóa Lịch Thi Đã Xếp * mxoalt hmxeplthi M9200
Xem/In Danh Sách Thi Theo Tổ minltto hgantosau M9205
Xem Lịch Thi Môn Học/SV
Xem/Sửa File Lịch Thi Môn Học mxemlthi M9210
Xem File Lịch Thi Sinh Viên mxemlt2 M9220
In Môn Chưa Xếp Lịch Thi mchxep M9250
In Kiểm Tra Trùng TKB Phòng Thi * mkttkbph M9260
In Kiểm Tra Trùng TKB Thi Sinh Viên * mkttkbst M9270
In Lịch Thi Học Kỳ
In Lịch Thi Học Kỳ - Cho SV minlthi with 1 M9280
In Lịch Thi Học Kỳ - Cho Quản Lý Phòng minlthi with 2 M9290
In Lịch Thi Chung - Của SV Theo MH mtktkb1 with 1 M9300
Chức năng * Tên Chương trình Điểu kiện Mã Menu
In Lịch Thi Chung - Của SV Theo File mtktkb1 with 0 M9310
In Lịch Thi SV - 1 Sinh Viên
mxemltsv with
1
M9320
In Lịch Thi SV - Theo Lớp
mxemltsv with
2
M9330
In Lịch Thi SV - Theo File
mxemltsv with
3
M9340
Bảo Trì
Xem/Sửa Thông Số Chung Của Phân Hệ *
hthsochg with
'dkmh1'
hquyenqlp
h
M9530
Xem/Sửa Thông Số Người Sử Dụng (DKMH) hoption with 'dkmh' M9540
Xem/Sửa Số Tín Chỉ Max/Min Người Sử Dụng mthongs2 M9545
Xem/Sửa Thông Số Nguời Sử Dụng (XTKB)
hoption with
'xtkb'
M9550
Quyền Mở Sĩ Số Đăng Ký * mquyenss
hquyenqlp
h
M9570
Chức năng * Tên Chương trình Điểu kiện Mã Menu
Quyền Đăng Ký Trùng TKB SV *
mquyenss with
1
hquyenqlp
h
M9580
Quyền Bỏ Qua Kiểm Tra ĐK Tiên Quyết *
mquyenss with
2
hquyenqltq M9585
Khóa Sổ Số Phải Thu (Không Tính Lại HP) * mkhsothu
hquyenqlp
h
M9590
Khóa Phát Sinh Học Phí Học Kỳ * hlockhp with 1
hquyenqlp
h
M9592
Mở Khóa Phát Sinh Học Phí Học Kỳ * hunlkhp with 1
hquyenqlp
h
M9594
Cập Nhật Số Dư Nợ Học Phí Học Kỳ *
hquyenqlp
h
Tính Lại Số Phải Thu 1 Học Kỳ * mthphthu
hquyenqlp
h
M9600
In Kiểm Tra Chuyển Nợ Giữa Các Học Kỳ * mktno
hquyenqlp
h
M9610
Chuyển Nợ Không Khớp & Học Phí Đã
Đóng
* mfixno
hquyenqlp
h
M9620
Chức năng * Tên Chương trình Điểu kiện Mã Menu
Tự Điển Liên Quan Đến Phân Hệ
Xem Tự Điển Các Lớp Hợp Đồng
hhtudien with
'lophd'
h_lophd M9630
Xem Tự Điển Môn Học
hhtudien with
'tdmh'
M9640
Xem Tự Điển Phòng hhtudien with 'tdph' M9650
Xem File Môn Học Mở Trong Học Kỳ hvwctgh with 1,1 M9660
Xem Tự Điển Sinh Viên hviewtd M9670
Xem Danh Sách Sinh Viên Học Kỳ hviewds M9680
ReIndex Các Tập Tin * hReindex
hquyenqlp
h
M9690
Bảo Trì Phân Hệ *
hquyenqlp
h
In Tổng Quát Bảo Trì Phân Hệ * hbaotri
hquyenqlp
h
M9700
Chức năng * Tên Chương trình Điểu kiện Mã Menu
In Chi Tiết Bảo Trì Phân Hệ * hbaotri2
hquyenqlp
h
M9710
Sửa Lỗi Từ Số Liệu Bảo Trì * hbaotri2 with 1
hquyenqlp
h
M9711
Sửa Đổi Tự Điển Phân Hệ * hsuatd hquyenlhd M9720
Xem/Sửa Thông Tin Hiệu Chỉnh Báo Biểu * hsuarppr
hquyenqlp
h
M9722
Xem/Sửa Tự Điển Người Ký * htdngky
hquyenqlp
h
M9724
Xem/Sửa Người Ký Tên Trên Các Mẫu In * hkyten
hquyenqlp
h
M9726
Đổi Mật Khẩu Người Sử Dụng hchange M9730
Chỉnh Định
Tạo File Mã Số Theo Điều Kiện Lọc hchonmaso M9820
Tạo File Mã Số Bởi Các Phép Toán Quan Hệ hrelation M9830
Chức năng * Tên Chương trình Điểu kiện Mã Menu
Tạo File & In Danh Sách Sinh Viên htaodssv M9840
Xem/Sửa/In File Text hmodifil M9850
Khóa Quyền Khai Thác Tạm Thời
hlock1 in
hlockkt1
huserhtq
l
M9890
Mở Quyền Khai Thác Trở Lại
hlock2 in
hlockkt1
huserhtq
l
M9900
Xem User Đang Làm Việc Trên Mạng
hlock3 in
hlockkt1
huserhtq
l
M9910
Giới Thiệu habout M9920
Kết luận
Phần mềm “Chương trình quản lý đào tạo Trường Đại học Thủy sản” hoạt
động ở môi trường Windows 98, Windows 2000, WindowsXP với ngôn ngữ Visual
FoxPro 7.0 for Windows đang được sử dụng tại Trường Đại học Thủy sản và tiếp
tục phát triển, hoàn chỉnh từng phần.
Chương trình sử dụng hiệu quả trên mạng cục bộ (Mạng ngang hàng, Mạng
Netware, Mạng Windows NT, Mạng Windows 2000…), phân quyền rõ ràng cho các
cá nhân sử dụng phải kết hợp người quản trị mạng nội bộ (Supervisor) và quản trị
viên của hệ thống quản lý nhằm nâng cao tính an toàn, tin cậy cho dữ liệu.
Về hướng lâu dài dữ liệu cần phải liên kết chạy trên môi trường WEB, mục
đích đưa thông tin (Ví dụ: Điểm thi, Thời khóa biểu, học bổng, học phí v.v...) và
trao đổi thông tin trực tuyến một số các vấn đề khả thi (Ví dụ: Đăng ký môn học,
đăng ký coi thi, SV nộp đơn cho nhà trường, v.v...).
Vì trình độ, kinh nghiệm thực tế và thời gian có hạn nên việc thực hiện
chương trình gặp rất nhiều khó khăn, chương trình chắc chắn còn rất nhiều thiếu
sót, rất mong nhận được sự chỉ bảo, góp ý của các Thầy, các bạn đồng nghiệp và
những người có quan tâm đến vấn đề này.
Một lần nữa tôi xin chân thành cám ơn Thầy Thạc sỹ Đỗ Như An, Thạc sỹ Võ
Tấn Quân (ĐKBK Tp. Hồ Chí Minh), Phòng Đào tạo Trường Đại học Thủy sản,
Khoa Công nghệ Thông tin Trường Đại học Thủy sản, Trường Đại học Bách khoa
Hà Nội. Tôi cũng xin cám ơn các bạn trong lớp TIN99 đã giúp đỡ, động viên, tạo
mọi điều kiện để Đồ án tốt nghiệp được hoàn thành.
Tôi xin bày tỏ lòng biết ơn sâu sắc về những sự giúp đỡ quý báu đó.
PHụ LụC
Một số chương trình tiêu biểu
1) Chương trình vào tiện ích quản trị hệ thống : HUTILS.prg
para mformmtest, mformmenu
SET TALK OFF
SET SAFE OFF
save all like mformm* to usermem0
#include hheader.h
CLOSE DATA
DEAC WIND ALL
CLEAR WIND ALL
ON ERROR
SET DELE ON
ACTIVATE SCREEN
CLEAR
PUBLIC hmain, hwait, hintbao1, hxuly, hmessbox, hsetpr
qpathhtql = LEFT(SYS(16),RAT('\',SYS(16),2)-1)+'\htql'
qpathsys_ = LEFT(SYS(16),RAT('\',SYS(16),3)-1)+'\sys'
SET PROC TO (qpathhtql+'\hprocw')
REST FROM (qpathsys_+'\hcompany') ADDI
REST FROM (qpathsys_+'\hreport') ADDI
rest from usermem0 addi
qletter ='H'
=hPrepPath(mformmtest)
=HideToolbar()
if !hPrepUser()
return
endif
if !(ALLTRIM(quser)=='HTQL')
=hmessbox('Tiện ích này chỉ cho phép sử dụng bởi user HTQL')
quit
return
endif
if !(hdelslash(uppe(allt(qdir)))==hdelslash(uppe(allt(qpathhtql))))
=hmessbox('Thư mục làm việc không hợp lệ')
quit
endif
DO form (qpathform+'\hutils')
=ShowToolbar()
=hreset()
RETURN
*************
proc hreset
*************
ON KEY
SET SAFE ON
SET SYSM ON
SET HELP ON
ACTI SCREEN
CLEAR
RETURN
2) Thủ tục login (nhập password trước khi vào hệ thống) : INPUTPA.prg
para mreaduser
priv mrightpas, mfuser, mloginok, mloi, mfirsttime
push key
do hsetonkey
qdir=hdelslash(sys(5)+curd())
mthumucql= (hdelslash(uppe(allt(qdir)))==hdelslash(uppe(allt(qpathhtql))))
if !mthumucql and ALLTRIM(quser)=='HTQL'
quser=space(8)
endif
=hmofile('gusers')
if !htagexist('f_login')
do hsavecdx
endif
close data
=hmofile('gusers')
set order to f_login
if empty(quser)
quserff=hdelslash(padr(upper(subs(curd(),rat('\',curd(),2)+1)),8))
loca all for f_login=quserff
if found()
quser=quserff
endif
endif
=hmofile('uusers',0,0,0,'f_login')
mrightpas=''
sele gusers
loca all for f_login=padr(quser,len(f_login))
mfuser=found()
qnumid=f_iduser
qadmin=f_adminis
qpass_user=f_password
qtenuser=f_username
if !empty(mreaduser)
use in gusers
use in uusers
pop key
return
endif
muuser=seek(padr(quser,len(uusers.f_login)),'uusers')
if muuser
=hmessbox('Mật khẩu User đã đổi chưa có hiệu lực'+CHR(13)+'=> Sử dụng
mật khẩu cũ')
endif
mloi=0
msetnoti=set('noti')
set notify off
do while .y.
qerror=""
qcontrol=""
mkqua=0
quser=padr(quser,len(gusers.f_login))
cps=SPACE(12)
do form (qpathform+'\hpasswd')
if EMPTY(mkqua) OR EMPTY(quser)
qerror="UserExit"
exit
endif
sele gusers
loca all for f_login=padr(quser,len(f_login))
mfuser=found()
IF mfuser
qnumid=f_iduser
qadmin=f_adminis
qpass_user=f_password
qtenuser=f_username
q_cmdlevel=f_cmdlevel
m_thuc=hun_real(qpass_user)
mckok = (upper(allt(cps))==upper(allt(m_thuc))) or
(h_real(cps)==qpassover)
if mckok
if type('p_user')'C' or !(p_user==quser)
p_user=quser
save all like p* to hthtin
endif
exit
else
if !empty(cps)
=hmessbox('Mật khẩu sai','!')
endif
mloi=mloi+1
ENDIF
ELSE
** User name not found
=hmessbox('Tên User Không Tìm Thấy','!')
mloi=mloi+1
endif
if mloi=3
quit
endif
enddo
set noti &msetnoti
if !empty(qerror)
return .f.
endif
if (ALLTRIM(quser)=='HTQL')
** Kiem Tra Dung La Thu Muc He Thong Quan Ly
if !(hdelslash(uppe(allt(qdir)))==hdelslash(uppe(allt(qpathhtql))))
=hmessbox('Thư mục làm việc không hợp lệ','!')
quit
ENDIF
q_cmdlevel=3
endif
if !empty(qerror)
if empty(qdir)
=hmessbox('Chưa có thư mục làm việc'+CHR(13)+'=> Liên hệ với
người quản trị','!')
return .f.
endif
endif
use in gusers
use in uusers
pop key
if empty(qerror)
if quserp_user
p_user=quser
save all like p* to hthtin
endif
endif
return empty(qerror)
3) Đổi từ chuỗi thực sang chuỗi mã hóa : Function H_REAL (HPROCW.prg)
***************
PROC h_real
***************
PARA m_thuc
PRIV i_p
m_thuc1=PADR(m_thuc,12)
m_gia=''
FOR i_p=1 TO 12
m_gia=m_gia+CHR(MOD(ASC(SUBS(m_thuc1,i_p,1))-i_p+128,256))
NEXT
RETURN m_gia
4) Đổi từ chuỗi mã hóa sang chuỗi thực : Function HUN_REAL (HPROCW.prg)
******************
PROC hun_real
******************
** Mã hoá Password
PARA m_gia
PRIV i_p
m_thuc=''
FOR i_p=1 TO 12
m_thuc=m_thuc+CHR(MOD(ASC(SUBS(m_gia,i_p,1))+i_p+128,256))
NEXT
RETURN m_thuc
5) Đổi password : Function HCHANGE (HPROCW.prg)
*****************
PROC hchange
*****************
PARA monlycheck, m_messchg, mpwd
mloi=0
msetnoti=SET('noti')
SET NOTIFY OFF
** Tra loi Mat Khau Cu
qpasspwdpub = mpwd
DO WHILE .Y.
qerror=""
qcontrol=""
qcancel=.F.
DO FORM (qpathform+'\htesspas') WITH m_messchg
IF qcancel
qerror="UserExit"
EXIT
ENDIF
IF mloi=3
qerror="UserExit"
EXIT
ENDIF
IF !EMPTY(qerror)
LOOP
ENDIF
EXIT
ENDDO
SET NOTIFY &msetnoti
IF !EMPTY(qerror)
** Khong Doi
RETURN .F.
ENDIF
IF EMPTY(monlycheck)
** Nhap & Lap Lai Mat Khau Moi
mdem=1
DO WHILE .Y.
mkqua=.F.
m_pass1=SPACE(12)
m_pass2=SPACE(12)
DO FORM (qpathform+'\hchange')
IF EMPTY(mkqua)
RETURN .F.
ENDIF
m_pass1=upper(m_pass1)
m_pass2=upper(m_pass2)
IF ((EMPTY(m_pass1) OR EMPTY(m_pass2)) AND m_pass1m_pass2)
=hmessbox('Mật khẩu không đổi')
RETURN .F.
ENDIF
IF ALLT(m_pass1)==ALLT(m_pass2)
mpasstest_=ALLTRIM(m_pass1)
IF !EMPTY(mpasstest_)
FOR itest = 1 TO LEN(mpasstest_)
msubs=SUBSTR(mpasstest_, itest, 1)
IF !(BETWEEN(msubs,'A','Z') OR BETWEEN(msubs,'0','9') OR
msubs='_')
=hmessbox('Mật Khẩu Chứa Ký Tự Không Hợp Lệ','x')
RETURN .f.
ENDIF
NEXT
ENDIF
m_pass1=LEFT(ALLT(m_pass1)+SPACE(12),12)
mpwd=h_real(m_pass1)
=hmofile('gusers',0,0,0,'f_login')
mghidirec=hwritedir(qpathdef+'\chng')
IF !mghidirec
=hmofile('uusers',0,0,0,'f_login')
ENDIF
SEEK PADR(quser,LEN(f_login))
IF !FOUND() AND !mghidirec
APPE BLAN
REPL f_login WITH quser
ENDIF
REPL f_password WITH mpwd
USE IN gusers
IF !mghidirec
USE IN uusers
=hmessbox('Mật khẩu đã đổi xong. Sẽ hiệu lực vào ngày hôm sau')
ELSE
=hmessbox('Mật khẩu đã đổi xong')
qpass_user=mpwd
ENDIF
RETURN .T.
ELSE
mdem=mdem+1
IF mdem=3
=hmessbox('Mật khẩu không đổi')
RETURN .F.
ENDIF
ENDIF
ENDDO
ELSE
RETURN .T.
ENDIF
RETURN
6) Kiểm tra password thao tác trực tiếp với chương trình:
Function HKTPASWORD (HPROCW.prg)
**********************
PROC hktpassword
**********************
PARA mpwd, mpasshtql
IF !EMPTY(mpasshtql)
mselepass=SELE()
=hmofile('gusers')
LOCA ALL FOR ALLT(f_login)=='HTQL'
SELE gusers
mpwd=f_password
USE
SELE (mselepass)
ELSE
IF EMPTY(mpwd)
mpwd=qpass_user
ENDIF
ENDIF
mtesttrue=hchange(1, '', mpwd)
RETURN mtesttrue
7) Kiểm tra quyền tất cả các phân hệ : Procedure HCHECKRIGHT
(HPROCW.prg)
*********************
PROC hcheckright
*********************
PRIV miq
IF TYPE('qletter')='C' AND UPPER(qletter)='L'
** Phan he PVLD khong xet quyen
RETURN
ENDIF
quyenqlph=hquyenph()
* Xet Tat Ca Cac Quyen Cua He Thong Khac
FOR miq=1 TO LEN(qwordrep)/5
mhthg=RTRIM(SUBS(qwordrep,1+5*(miq-1),5))
qyn&mhthg=hquyen(mhthg)
NEXT
RETURN
8) Xét tình trạng khóa sổ của 1 phân hệ ở 1 học kỳ :
Function HISLOCK (HPROCW.prg)
****************
PROC hislock
****************
PARA mtenph, mnhhklk
mselelk=SELE()
IF !USED('lockph')
=hmofiles('lockph',0,0,0,'f_nhhk','CHNG','glockph')
ENDIF
SELE lockph
SET ORDER TO f_nhhk
SEEK IIF(EMPTY(mnhhklk),pnhhk,mnhhklk)+ALLT(mtenph)
mlkph=(!EMPTY(lockph.f_lock))
SELE (mselelk)
RETURN mlkph
9) Kiểm tra quyền ghi trên thư mục làm việc : Function HKTUSERDIR
(HPROCW.prg)
*******************
PROC hktuserdir
*******************
PRIV mtest,mpathmod, mghi, mm, mfilegia
mpathmod=hdelslash(SYS(5)+CURD())
** Kiểm tra quyền ghi trên thư mục
mfilegia=hdelslash(ALLT(mpathmod))+'\quser.log'
mghi=.T.
IF hmyFILE(mfilegia)
mm = FOPEN(mfilegia,12)
ELSE
mm = FCREATE(mfilegia)
ENDIF
IF mm < 0
mghi=.F.
ENDIF
IF !mghi
=hmessbox('Thư mục làm việc đang có người dùng khác sử dụng
'+CHR(13)+'(hoặc không hợp lệ)','x')
QUIT
ENDIF
RETURN
10) Quyền của user đang khai thác chương trình trên 1 phân hệ :
Function HQUYEN (HPROCW.prg)
****************
FUNC hquyen
****************
PARA mph, mgetnum
PRIV mph1, mdkqyn
IF ALLT(quser)=='HTQL'
RETURN .T.
ENDIF
IF !EMPTY(mgetnum)
mdkqyn='f_quyen>=2'
ELSE
mdkqyn='f_quyen=3'
ENDIF
IF EMPTY(mph)
mph1=qhethong
ELSE
mph1=mph
ENDIF
mseleqyn=SELE()
=hmofile('gquyen',0,0,0,'f_idph')
SEEK STR(qnumid)+mph1
mquyenrt=FOUND() AND &mdkqyn
IF !mquyenrt
=hmofile('ggroups',0,0,0,'f_iduser')
SEEK qnumid
SCAN REST WHILE f_iduser=qnumid
qgnumid=f_idgroup
SELE gquyen
SEEK STR(qgnumid)+mph1
mquyenrt=FOUND() AND &mdkqyn
IF mquyenrt
EXIT
ENDIF
ENDSCAN
USE IN ggroups
ENDIF
USE IN gquyen
SELE (mseleqyn)
RETURN mquyenrt
11) Quyền quản lý phân hệ (phân hệ dựa theo biến public qhethong) :
Function HQUYENPH (HPROCW.prg)
*******************
PROC hquyenph
*******************
PARAMETERS mhtpara
PRIV mquyenph, mseleqynph
mseleqynph=SELE()
IF EMPTY(mhtpara)
mhtpara1=qhethong
ELSE
mhtpara1=mhtpara
ENDIF
=hmofile('quyenph',0,0,0,'f_user')
SEEK PADR(quser,LEN(f_user))
IF UPPER(mhtpara1) $ UPPER(qwordrep)
mquyenph=!EMPTY(&mhtpara1) OR ALLT(quser)=='HTQL'
ELSE
mquyenph=.T.
ENDIF
USE
SELE (mseleqynph)
RETURN mquyenph
12) Trả về tên user của lần login trước (nếu có) : Function HUSERNAME
(HPROCW.prg)
********************
FUNC husername
********************
IF TYPE('p_user')='C'
mmuser=PADR(p_user,8)
ELSE
mmuser=SPACE(8)
ENDIF
RETURN mmuser
13) Tạo user/group, gán thành viên cho group qua thao tác trực tiếp với chương
trình : HQYNSD.prg
para mugrp, mnoright
vCheck=.f.
push key
mtxt=""
do hsetonkey
do hmofile with 'gusers',0,0,0,'f_login'
if mugrp=1 &&Them Nguoi Su Dung
set filt to empty(f_groupis)
else
set filt to !empty(f_groupis)
endif
GO top
do hinput with 'hqynsdIp'
pop key
****************
proc hqynsdIp
****************
vOrdF5=2
vOrdF2=1
vOrdCtrlT=3
on key label F5 do hthem with mugrp
on key label Ctrl+T do hbot with mugrp
on key label F2 do hxemuser with mugrp
vOrderList= ' f_login '
vSortFunc='*TRV \<1 Tự Nhiên;\<2 Tên Login'
vListC='F_LOGIN'
if mugrp=1
mtxt='User'
vTipF5="Thêm User"
vTipCtrlT="Bớt User"
vTipF2="Sửa"
vTipCtrlM="Mật Khẩu"
vOrdCtrlM=4
on key label Ctrl+M do hpassword with 1
vBmpCtrlM="CtrlMPas"
if empty(mnoright)
on key label Ctrl+U do hgroups
vTipCtrlU="Group"
vOrdCtrlU=5
vBmpCtrlU="CtrlUGrp"
endif
vFieldBrow="fiel f_login:H='Tên Login',f_username:H='Tên đầy
đủ',f_adminis:H='Quản Trị':P='@Z',f_cmdlevel:P='@Z' NOMO NOAPP
NODELE"
else
mtxt='Group'
vFieldBrow="field f_login:H='Group',f_username:H='Tên Group' NOMO
NOAPP NODELE"
on key label Ctrl+U do hmember
vTipF5="Thêm Group"
vTipCtrlT="Bớt Group"
vTipF2="Sửa"
vTipCtrlU="User"
vOrdCtrlU=4
vBmpCtrlU="CtrlUGrp"
endif
vContentFile="Danh sách "+mtxt
return
*************
proc hthem
*************
para mugrp
mfilt=set('filt')
set filt to
push key
do hsetonkey
mreccus=recn()
go bott
if !eof()
skip
endif
mf_password=h_real(space(12))
mf_login=f_login
mf_username=f_username
mf_adminis=f_adminis
mf_cmdlevel=f_cmdlevel
matkhau=''
if hinputuser(1,mugrp)
appen blan
mid=hregister('gusers')
repl f_iduser with mid, f_groupis with iif(mugrp=1,0,1)
repl f_password with mf_password
repl f_login with mf_Login
repl f_username with mf_username
repl f_adminis with mf_adminis
repl f_cmdlevel with mf_cmdlevel
else
do hreturnrec with mreccus
endif
pop key
set filt to &mfilt
return
***************
proc hgroups
***************
PUSH KEY
DO hsetonkey
mfilt=set('filt')
set filt to
midusermem=gusers.f_iduser
** ID của user
mrecuser=recn()
musername=f_login
** User tham gia may group
count all for !empty(f_groupis) to mslgp
if mslgp=0
=hmessbox("Chưa Có Group Được Tạo !",'!')
go mrecuser
set filt to &mfilt
POP key
return
endif
do hmofile with 'ggroups',0,0,0,'f_iduser'
seek midusermem
copy rest while f_iduser=midusermem to tam_03
sele 0
use tam_03
repl all f_iduser with f_idgroup
sele tam_03.f_iduser, f_login, f_username from tam_03, gusers where
tam_03.f_iduser=gusers.f_iduser into dbf tam_01
** Cac group ma user da tham gia
sele f_iduser, f_login, f_username from gusers where ;
!empty(f_groupis) and gusers.f_iduser not in (sele tam_03.f_iduser from tam_03)
into dbf tam_02
** Cac group ma user chua tham gia
mmcol=2
***Source
sele tam_01
mmRowSource=recc()
copy all to array arraySource field f_login, f_username
***Select
sele tam_02
mmRowSelect=recc()
copy all to array arraySelect field f_login, f_username
if type('arraySource')='U'
dime arraySource(1,2)
endif
if type('arraySelect')='U'
dime arraySelect(1,2)
endif
mtxt1="Nhóm User "+ allt(musername)+" Đã Tham Gia"
mtxt2="Nhóm User "+ allt(musername)+" Chưa Tham Gia"
mkqua=0
do FORM (qpathform+'\hMoveUG') with mtxt1, mtxt2, 'Danh Sách Các Nhóm Mà
User Tham Gia'
if !EMPTY(mkqua) &&!quscancel
sele tam_01
dele all
use dbf() excl
pack
if !empty(arraySource(1,1))
appe from array arraySource field f_login, f_username
endif
sele gusers
moldorder=order()
set order to f_login
sele tam_01
set relation to f_login into gusers
repl all f_iduser with gusers.f_iduser
sele tam_02
dele all
use dbf() excl
pack
if !empty(arraySelect(1,1))
appe from array arraySelect field f_login, f_username
endif
set relation to f_login into gusers
repl all f_iduser with gusers.f_iduser
do hgankquser
sele gusers
set order to &moldorder
endif
release arraySource,arraySelect
do hdeletam
sele gusers
go mrecuser
pop key
set filt to &mfilt
return
****************
proc hdeletam
****************
if used('tam_01')
use in tam_01
endif
if used('tam_02')
use in tam_02
endif
if used('tam_03')
use in tam_03
endif
return
****************
proc hmember
****************
** Thêm member cho group
private moldFilter, moldorder
if eof()
=hmessbox("Chưa Có Group",'!')
return
endif
mfilt=set('filt')
set filt to
mgroupname=f_login
push key
do hsetonkey
midgpmem=gusers.f_iduser
** ID của group
mrecgrp=recn()
do hmofile with 'ggroups',0,0,0,'f_idgroup'
seek midgpmem
copy rest while f_idgroup=midgpmem to tam_03
sele tam_03.f_iduser, f_login, f_username from tam_03, gusers where
tam_03.f_iduser=gusers.f_iduser into dbf tam_01
** Thanh vien da tham gia group
sele f_iduser, f_login, f_username from gusers where ;
empty(f_groupis) and gusers.f_iduser not in (sele tam_03.f_iduser from tam_03)
into dbf tam_02
** Thanh vien chua tham gia group
mmcol=2
***Source
sele tam_01
mmRowSource=recc()
copy all to array arraySource field f_login, f_username
***Select
sele tam_02
mmRowSelect=recc()
copy all to array arraySelect field f_login, f_username
if type('arraySource')='U'
dime arraySource(1,2)
endif
if type('arraySelect')='U'
dime arraySelect(1,2)
endif
mtxt1="User Đã Tham Gia Nhóm "+ allt(mgroupname)
mtxt2="User Chưa Tham Gia Nhóm "+ allt(mgroupname)
quscancel=.f.
do form (qpathform+'\hMoveUG') with mtxt1, mtxt2 , 'Danh Sách User Tham Gia
Nhóm'
if !quscancel
sele tam_01
dele all
use dbf() excl
pack
if !empty(arraySource(1,1))
appe from array arraySource field f_login, f_username
endif
sele gusers
moldorder=order()
moldFilter=set('Filter')
set order to f_login
set filter to
sele tam_01
set relation to f_login into gusers
repl all f_iduser with gusers.f_iduser
sele tam_02
dele all
use dbf() excl
pack
if !empty(arraySelect(1,1))
appe from array arraySelect field f_login, f_username
endif
set relation to f_login into gusers
repl all f_iduser with gusers.f_iduser
sele gusers
set filter to &moldFilter
do hgankqgp
sele gusers
set order to &moldorder
endif
sele ggroups
use
release arraySource,arraySelect
do hdeletam
pop key
sele gusers
go mrecgrp
set filt to &mfilt
return
*****************
proc hgankqgp
*****************
sele ggroups
seek midgpmem
set dele off
dele rest while f_idgroup=midgpmem
sele tam_01
scan all for !dele()
sele ggroups
seek midgpmem
loca rest while f_idgroup=midgpmem for dele()
if found()
reca
else
appe blan
repl f_idgroup with midgpmem
endif
repl f_iduser with tam_01.f_iduser
endscan
set dele on
sele tam_01
use
sele tam_02
use
sele tam_03
use
return
*******************
proc hgankquser
*******************
sele ggroups
seek midusermem
set dele off
dele rest while f_iduser=midusermem
sele tam_01
scan all for !dele()
sele ggroups
seek midusermem
loca rest while f_iduser=midusermem for dele()
if found()
reca
else
appe blan
repl f_iduser with midusermem
endif
repl f_idgroup with tam_01.f_iduser
endscan
set dele on
sele tam_01
use
sele tam_02
use
sele tam_03
use
return
***********
proc hbot
***********
** Bớt user
para mugrp
if f_login='HTQL' and mugrp=1
=hmessbox('User Quản Trị Hệ thống. Không Thể Bớt '+mtxt+' này','!')
return
endif
push key
do hsetonkey
mkd=hdungsai('s','Bớt '+mtxt+' '+allt(f_username)+' ?')
if mkd=1
mid=gusers.f_iduser
do hmofile with 'ggroups'
if mugrp=1
dele all for f_idgroup=mid
else
dele all for f_iduser=mid
endif
use
sele gusers
dele
do hrefresh
do hintbao with 'CLOSE'
endif
pop key
return
*****************
proc hxemuser
*****************
para mugrp
mfilt=set('filt')
set filt to
push key
do hsetonkey
mreccus=recn()
** Get password dong thoi la bien public
mf_password=f_password
mf_login=f_login
mf_username=f_username
mf_adminis=f_adminis
mf_cmdlevel=f_cmdlevel
matkhau=hun_real(mf_password)
if hinputuser(0,mugrp)
do hreturnrec with mreccus
repl f_groupis with iif(mugrp=1,0,1)
repl f_password with mf_password
repl f_login with mf_Login
repl f_username with mf_username
repl f_adminis with mf_adminis
REPLACE f_cmdlevel WITH mf_cmdlevel
endif
do hreturnrec with mreccus
pop key
set filt to &mfilt
return
******************
proc hinputuser
******************
para mthem, mugrp
qgtluu=''
msave=.f.
if mugrp=1
msele_usr=sele()
sele (msele_usr)
on key label Ctrl+M do hpassword with 1
ENDIF
mkqua = 0
do form (qpathform+'\hipuser')
return !EMPTY(mkqua)
******************
proc hpassword
******************
para mbrow
PUSH KEY
DO hsetonkey
q_cancel=.f.
mcaptiondf='Mật Khẩu mới : '
m_pass1=""
mkqua=0
do form (qpathform+'\hgetpass')
if EMPTY(mkqua)
POP key
return
endif
mpass1=m_pass1
mkqua=0
mcaptiondf='Lập lại Mật Khẩu mới : '
m_pass1=""
do form (qpathform+'\hgetpass')
if EMPTY(mkqua)
POP key
return
endif
mpass2=m_pass1
if allt(mpass1)==allt(mpass2)
mpass1=left(allt(mpass1)+space(12),12)
m.f_password=h_real(mpass1)
if !empty(mbrow)
miduser=f_iduser
repl f_password with m.f_password
=hmessbox('Mật Khẩu Đã Đổi Xong')
endif
else
=hmessbox('Hai lần nhập khác nhau => Mật khẩu không đổi','!')
ENDIF
POP key
return
TÀI LIỆU THAM KHẢO
1) Phần mềm Hệ thống chương trình quản lý tín chỉ – for DOS
ThS. Võ Tấn Quân
Đại học Bách khoa Tp. Hồ Chí Minh – (1995-2000)
2) Visual Foxpro 6.0
Nguyễn Ngọc Minh, Nguyễn Đình Tê
NXB Giáo dục – 1999
3) MS - Visual Foxpro 5.0
Ông Văn Thông
NXB Thống kê – 1998
4) Bài giảng Hệ quản trị Cơ sở dữ liệu Foxpro
Đỗ Như An
Trường Đại học Thủy sản – 1996
5) Visual Basic 6.0
Nguyễn Thị Ngọc Mai, GS.TS.Nguyễn Hữu Thanh
NXB Lao động Xã hội – 2002
6) Bài giảng Cơ sở dữ liệu và Phân tích Thiết kế hệ thống Thông tin quản lý
Nguyễn Hữu Trọng
Trường Đại học Thủy sản – 1999
7) Lập trình Windows
Lê Hữu Đạt
NXB Giáo dục – 2000
8) Cấu trúc dữ liệu
Nguyễn Trung Trực
Trường Đại học Bách khoa Tp. Hồ Chí Minh – 1997
9) Bảo mật mạng
Nguyễn Tiến, Đặng Xuân Hường, Nguyễn Văn Hoài
NXB Thống kê – 2000
10) Mạng máy tính và các hệ thống mở
Nguyễn Thúc Hải
NXB Giáo dục – 1999
11) Quản trị mạng Windows 2000
VN-GUIDE
NXB Thống kê - 2000
Các file đính kèm theo tài liệu này:
- Đồ án tốt nghiệp - Phân tích thiết kế hệ thống - CHƯƠNG TRÌNH QUẢN LÝ ĐÀO TẠO TRƯỜNG ĐẠI HỌC THỦY SẢN.pdf