Đồ án Chương trình quản lý trường Đại học Thủy Sản

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).

pdf340 trang | Chia sẻ: lylyngoc | Lượt xem: 2479 | Lượt tải: 0download
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:

  • pdfĐồ á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