Vì thời gian có hạn nên báo cáo thực tập chuyên đề vẫn còn nhiều thiếu sót chưa kịp hoàn thành và sửa đổi . Em rất mong nhận được sự góp ý, nhận xét của các thầy cô khoa tin học kinh tế nói chung và thầy Bùi Thế Ngũ nói riêng. Xin chân thành cảm ơn thầy Bùi Thế Ngũ, đã hướng dẫn em tận tình trong quá trình chọn đề tài và trong quá trình thực tập tổng hợp. Em rất mong sự chỉ bảo tận tình hơn nữa của thầy để đề tài thực tập này được hoàn thành tốt.
Tài liệu tham khảo
• Cơ sở dữ liệu ( TS Trần Công Uẩn)
• Hệ thống thông tin quản lý (TS. Trương Văn Tú)
• Các tài liệu dự án của Công ty cổ phần phần mềm quản trị doanh nghiệp CyberSoft
159 trang |
Chia sẻ: aloso | Lượt xem: 1888 | Lượt tải: 0
Bạn đang xem trước 20 trang tài liệu Đề tài Quản lý sinh viên nội trú trường đại học Kinh tế Quốc dân, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
uy
PARAMETERS M_nhan_huy
IF M_moi==.F.
IF M_nhan_huy=.T.
GO rec_no
GATHER MEMVAR
FLUSH
_form=""
ENDIF
ELSE
IF M_nhan_huy=.T.
APPEND BLANK
GATHER MEMVAR
FLUSH
_form=""
ENDIF
ENDIF
RETURN
**************** Kiem tra ***************************************
PROCEDURE Kiem_tra
IF EMPTY(m.ma_khoa)
MESSAGEBOX("Ban phai vao ma khãa")
_form.txtma_khoa.setfocus
RETURN
ENDIF
IF EMPTY(m.nam_hoc)
MESSAGEBOX("Ban phai vao nam hoc")
_form.txtnam_hoc.setfocus
RETURN
ENDIF
LOCATE FOR ALLTRIM(ma_khoa)=ALLTRIM(m.ma_khoa)
IF FOUND()
mESSAGEBOX("Ma nay da co, hay chon ma khac")
_form.txtma_khoa.setfocus
RETURN
ENDIF
*!* IF NOT LEN(ALLTRIM(m.ma_khoa ))==2
*!* MESSAGEBOX("Ma nha phai co hai chu so")
*!* _form.txtma_khoa.setfocus
*!* RETURN
*!* ENDIF
DO Nhan_huy WITH .T.
RETURN
******************************************************************
PROCEDURE xoa
PRIVATE _rec_no
SCATTER MEMVAR
_rec_no=RECNO()
IF !eof()
IF Messagebox(m_Suredele, 36+256, M_TencTy) = 6
GO _rec_no
GATHER MEMVAR
FLUSH
DELETE
PACK
DO batdau
ENDIF
ENDIF
ENDPROC
PROCEDURE form_init
PARAMETERS oForm,cCaption
oForm.setall('FontName',M_font_name)
oForm.setall('FontSize',M_font_size)
oForm.Caption=cCaption
ENDPROC
dmLop
IF !USED('dmLop')
SELECT 0
USE p_cod+'dmLop' ALIAS dmLop
INDEX ON ma_lop TO ma_lop
SET ORDER TO ma_lop
ELSE
SELECT 0
SELECT dmLop
SET ORDER TO ma_lop
ENDIF
*********************************************************************
PRIVATE m_nhan, m_huy, _form,_rec_no,M_moi, objBrow
DO batdau
PROCEDURE batdau
ON KEY LABEL F3 do _moi_sua with [S]
ON KEY LABEL F4 do _moi_sua with [M]
ON KEY LABEL F8 do xoa
SELECT dmLop
GO TOP
BROWSE NAME oBrowse;
NOAPPEND NODELETE NOMODIFY NOWAIT nomenu ;
WINDOW M_WinBrw ;
WHEN Change_Color_Of_Browse(RECNO(),,oBrowse);
TITLE "Danh muc lop: F3-Sua, F4-Them moi, Ctrl+F-Tim kiem F8-Xoa, ESC-Thoat" ;
FONT M_Font_name, M_font_Size;
Color SCHEME 10
Obrowse.readonly = .T.
DO HookObjectBrowse WITH oBrowse IN P_prog+'S_lib'
BROWSE LAST
ON KEY LABEL F3
ON KEY LABEL F4
ON KEY LABEL F8
IF USED('dmLop')
USE IN dmLop
ENDIF
DELETE file ma_lop.idx
ENDPROC
**-------------------------------------------------------
PROCEDURE _moi_sua
PARAMETERS _moi_sua,rec_no
IF _moi_sua==[S]
*!* m.ma_lop=nha.ma_lop
*!* m.ten_lop=nha.ten_lop
IF RECCOUNT('dmLop')=0
RETURN
ENDIF
rec_no=recno()
GO rec_no
SCATTER MEMVAR
M_moi=.F.
ELSE
IF _moi_sua=[M]
SCATTER MEMVAR BLANK
*!* m.ma_lop=""
*!* m.ten_lop=""
M_moi=.T.
ENDIF
ENDIF
PUSH KEY CLEAR
DO FORM (p_screen+'dmLop-f3') NAME _form LINKED
&&_form.show(1) &&HIEN THI FORM O CHE DO MODAL
POP KEY
RETURN
*************************************************************
PROCEDURE Nhan_Huy
PARAMETERS M_nhan_huy
IF M_moi==.F.
IF M_nhan_huy=.T.
GO rec_no
GATHER MEMVAR
FLUSH
_form=""
ENDIF
ELSE
IF M_nhan_huy=.T.
APPEND BLANK
GATHER MEMVAR
FLUSH
_form=""
ENDIF
ENDIF
RETURN
**************** Kiem tra ***************************************
PROCEDURE Kiem_tra
IF EMPTY(m.ma_lop)
MESSAGEBOX("Ban phai vao ma lop")
_form.txtma_lop.setfocus
RETURN
ENDIF
IF EMPTY(m.ten_lop)
MESSAGEBOX("Ban phai vao ten lop")
_form.txtten_lop.setfocus
RETURN
ENDIF
LOCATE FOR ALLTRIM(ma_lop)=ALLTRIM(m.ma_lop)
IF FOUND()
mESSAGEBOX("Ma nay da co, hay chon ma khac")
_form.txtma_lop.setfocus
RETURN
ENDIF
*!* IF NOT LEN(ALLTRIM(m.ma_lop ))==2
*!* MESSAGEBOX("Ma lop phai co hai chu so")
*!* _form.txtma_lop.setfocus
*!* RETURN
*!* ENDIF
DO Nhan_huy WITH .T.
RETURN
******************************************************************
PROCEDURE xoa
PRIVATE _rec_no
SCATTER MEMVAR
_rec_no=RECNO()
IF !eof()
IF Messagebox(m_Suredele, 36+256, M_TencTy) = 6
GO _rec_no
GATHER MEMVAR
FLUSH
DELETE
PACK
DO batdau
ENDIF
ENDIF
ENDPROC
PROCEDURE form_init
PARAMETERS oForm,cCaption
oForm.setall('FontName',M_font_name)
oForm.setall('FontSize',M_font_size)
oForm.Caption=cCaption
ENDPROC
dmNganh
IF !USED('dmNganh')
SELECT 0
USE p_cod+'dmNganh' ALIAS dmNganh
INDEX ON ma_nganh TO ma_nganh
SET ORDER TO ma_nganh
ELSE
SELECT 0
SELECT dmNganh
SET ORDER TO ma_nganh
ENDIF
*********************************************************************
PRIVATE m_nhan, m_huy, _form,_rec_no,M_moi, objBrow
DO batdau
PROCEDURE batdau
ON KEY LABEL F3 do _moi_sua with [S]
ON KEY LABEL F4 do _moi_sua with [M]
ON KEY LABEL F8 do xoa
*!* BROWSE NAME objBrow TITLE "F3-Sua, F4-Them moi, F8-Xoa, ESC-Thoat" NOAPPEND NODELETE NOEDIT ;
*!* nomenu IN SCREEN
SELECT dmNganh
GO TOP
BROWSE NAME oBrowse;
NOAPPEND NODELETE NOMODIFY NOWAIT nomenu ;
WINDOW M_WinBrw ;
WHEN Change_Color_Of_Browse(RECNO(),,oBrowse);
TITLE "Danh muc nganh: F3-Sua, F4-Them moi, Ctrl+F-Tim kiem F8-Xoa, ESC-Thoat" ;
FONT M_Font_name, M_font_Size;
Color SCHEME 10
Obrowse.readonly = .T.
DO HookObjectBrowse WITH oBrowse IN P_prog+'S_lib'
BROWSE LAST
ON KEY LABEL F3
ON KEY LABEL F4
ON KEY LABEL F8
IF USED('dmNganh')
USE IN dmNganh
ENDIF
DELETE file ma_nganh.idx
ENDPROC
**-------------------------------------------------------
PROCEDURE _moi_sua
PARAMETERS _moi_sua,rec_no
IF _moi_sua==[S]
*!* m.ma_nganh=nha.ma_nganh
*!* m.ten_nganh=nha.ten_nganh
IF RECCOUNT('dmNganh')=0
RETURN
ENDIF
rec_no=recno()
GO rec_no
SCATTER MEMVAR
M_moi=.F.
ELSE
IF _moi_sua=[M]
SCATTER MEMVAR BLANK
*!* m.ma_nganh=""
*!* m.ten_nganh=""
M_moi=.T.
ENDIF
ENDIF
PUSH KEY CLEAR
DO FORM (p_screen+'dmNganh-f3') NAME _form LINKED
&&_form.show(1) &&HIEN THI FORM O CHE DO MODAL
POP KEY
RETURN
*************************************************************
PROCEDURE Nhan_Huy
PARAMETERS M_nhan_huy
IF M_moi==.F.
IF M_nhan_huy=.T.
GO rec_no
GATHER MEMVAR
FLUSH
_form=""
ENDIF
ELSE
IF M_nhan_huy=.T.
APPEND BLANK
GATHER MEMVAR
FLUSH
_form=""
ENDIF
ENDIF
RETURN
**************** Kiem tra ***************************************
PROCEDURE Kiem_tra
IF EMPTY(m.ma_nganh)
MESSAGEBOX("Ban phai vao ma nganh")
_form.txtma_nganh.setfocus
RETURN
ENDIF
IF EMPTY(m.ten_nganh)
MESSAGEBOX("Ban phai vao ten nganh")
_form.txtten_nganh.setfocus
RETURN
ENDIF
LOCATE FOR ALLTRIM(ma_nganh)=ALLTRIM(m.ma_nganh)
IF FOUND()
mESSAGEBOX("Ma nay da co, hay chon ma khac")
_form.txtma_nganh.setfocus
RETURN
ENDIF
*!* IF NOT LEN(ALLTRIM(m.ma_nganh ))==2
*!* MESSAGEBOX("Ma nha phai co hai chu so")
*!* _form.txtma_nganh.setfocus
*!* RETURN
*!* ENDIF
DO Nhan_huy WITH .T.
RETURN
******************************************************************
PROCEDURE xoa
PRIVATE _rec_no
SCATTER MEMVAR
_rec_no=RECNO()
IF !eof()
IF Messagebox(m_Suredele, 36+256, M_TencTy) = 6
GO _rec_no
GATHER MEMVAR
FLUSH
DELETE
PACK
DO batdau
ENDIF
ENDIF
ENDPROC
PROCEDURE form_init
PARAMETERS oForm,cCaption
oForm.setall('FontName',M_font_name)
oForm.setall('FontSize',M_font_size)
oForm.Caption=cCaption
ENDPROC
dmNha
IF !USED('dmNha')
SELECT 0
USE p_cod+'dmNha' ALIAS dmNha
INDEX ON ma_nha TO ma_nha
SET ORDER TO ma_nha
ELSE
SELECT 0
SELECT dmNha
ENDIF
*********************************************************************
PRIVATE m_nhan, m_huy, _form,_rec_no,M_moi, objBrow
DO batdau
PROCEDURE batdau
ON KEY LABEL F3 do _moi_sua with [S]
ON KEY LABEL F4 do _moi_sua with [M]
ON KEY LABEL F8 do xoa
SELECT dmNha
GO TOP
BROWSE NAME oBrowse;
NOAPPEND NODELETE NOMODIFY NOWAIT nomenu ;
WINDOW M_WinBrw ;
WHEN Change_Color_Of_Browse(RECNO(),,oBrowse);
TITLE "Bang danh sach nha trong KTX: F3-Sua, F4-Them moi, Ctrl+F-Tim kiem F8-Xoa, ESC-Thoat" ;
FONT M_Font_name, M_font_Size;
Color SCHEME 10
Obrowse.readonly = .T.
DO HookObjectBrowse WITH oBrowse IN P_prog+'S_lib'
BROWSE LAST
ON KEY LABEL F3
ON KEY LABEL F4
ON KEY LABEL F8
IF USED('dmNha')
USE IN dmNha
ENDIF
ENDPROC
**-------------------------------------------------------
PROCEDURE _moi_sua
PARAMETERS _moi_sua,rec_no
IF _moi_sua==[S]
*!* m.ma_nha=nha.ma_nha
*!* m.ten_nha=nha.ten_nha
rec_no=recno()
GO rec_no
SCATTER MEMVAR
M_moi=.F.
ELSE
IF _moi_sua=[M]
SCATTER MEMVAR BLANK
M_moi=.T.
ENDIF
ENDIF
PUSH KEY CLEAR
DO FORM (p_screen+'dmNha-f3') NAME _form LINKED
*!* _FORM.VISIBLE=.F.
*!* _form.caption="Cap nhat thong tin ve cac nha trong KTX"
*!* _form.icon=P_img+"a33.ico"
*!* _form.show(1) &&HIEN THI FORM O CHE DO MODAL
POP KEY
RETURN
*************************************************************
PROCEDURE Nhan_Huy
PARAMETERS M_nhan_huy
IF M_moi==.F.
IF M_nhan_huy=.T.
GO rec_no
GATHER MEMVAR
FLUSH
_form=""
ENDIF
ELSE
IF M_nhan_huy=.T.
APPEND BLANK
GATHER MEMVAR
FLUSH
_form=""
ENDIF
ENDIF
RETURN
**************** Kiem tra ***************************************
PROCEDURE Kiem_tra
IF EMPTY(m.ma_nha)
MESSAGEBOX("Ban phai vao ma nha")
_form.txtma_nha.setfocus
RETURN
ENDIF
IF EMPTY(m.ten_nha)
MESSAGEBOX("Ban phai vao ten nha")
_form.txtten_nha.setfocus
RETURN
ENDIF
LOCATE FOR ALLTRIM(ma_nha)=ALLTRIM(m.ma_nha)
IF FOUND()
mESSAGEBOX("Ma nha nay da co, hay chon ma khac")
_form.txtma_nha.setfocus
RETURN
ENDIF
IF NOT LEN(ALLTRIM(m.ma_nha ))==2
MESSAGEBOX("Ma nha phai co hai chu so")
_form.txtma_nha.setfocus
RETURN
ENDIF
DO Nhan_huy WITH .T.
RETURN
******************************************************************
PROCEDURE xoa
PRIVATE _rec_no
SCATTER MEMVAR
_rec_no=RECNO()
_oldSelect=SELECT()
_nha_deleded=ALLTRIM(m.ma_nha)
IF !USED('dmPhong')
SELECT 0
USE (P_cod+'dmphong') ALIAS dmphong SHARED
INDEX ON ma_phong TO ma_phong
ELSE
SELECT dmPhong
ENDIF
LOCATE FOR ALLTRIM(ma_nha)=_nha_deleded
IF FOUND()
MESSAGEBOX("Nha nay da nhap phong, khong the xoa",0+48,"TTDCDHKTQD")
RETURN
ENDIF
USE IN dmPhong
SELECT (_oldSelect)
IF Messagebox(m_Suredele, 36+256, M_TencTy) = 6
GO _rec_no
GATHER MEMVAR
FLUSH
DELETE
PACK
DO batdau
ENDIF
ENDPROC
dmPhong
************** ************************************
IF !USED('dmPhong')
SELECT 0
USE p_cod+'dmphong' ORDER ma_phong ALIAS dmphong exclusive
INDEX ON ma_phong TO ma_phong
ELSE
SELECT dmphong
ENDIF
oldSEl=select()
delete all for empty(alltrim(ma_phong))
**************************************************
PRIVATE m.ma_nha,m.ma_nha1, m.ten_nha ,m.ma_phong, m_nhan, m_huy,;
_form,_rec_no,M_moi,objBrow
PUBLIC rec_tam
*********************************************************************
DO batdau
PROCEDURE batdau
ON KEY LABEL F3 do _moi_sua with [S]
ON KEY LABEL F4 do _moi_sua with [M]
ON KEY LABEL F8 do xoa
SELECT dmphong
GO TOP
BROWSE FOR ALLTRIM(Ma_Nha)=ALLTRIM(M_nha_QL) NAME oBrowse;
NOAPPEND NODELETE NOMODIFY NOWAIT NOMENU;
WINDOW M_WinBrw ;
WHEN Change_Color_Of_Browse(RECno(),,oBrowse);
TITLE "Bang danh sach phong trong KTX: F3-Sua, F4-Them moi, F8-Xoa, Ctrl+F-Tim kiem, ESC-Thoat" ;
FONT M_Font_name, M_font_Size
oBrowse.DeleteMark = .F.
oBrowse.RecordMark = .F.
DO HookObjectBrowse WITH oBrowse IN P_prog+'S_Lib'
BROWSE LAST FOR ALLTRIM(Ma_Nha)=ALLTRIM(M_nha_QL)
ON KEY LABEL F3
ON KEY LABEL F4
ON KEY LABEL F8
selec (oldSel)
if used('dmPhong')
use in dmPhong
endif
delete file ma_phong.idx
ENDPROC
**-------------------------------------------------------
PROCEDURE _moi_sua
PARAMETERS _moi_sua
SELECT dmPhong
IF _moi_sua==[S]
_rec_no=RECNO()
GO _rec_no
SCATTER MEMVAR
M_moi=.F.
ELSE
IF _moi_sua=[M]
GO BOTTOM
SCATTER MEMVAR BLANK
m.Ma_phong=ALLTRIM(STR(VAL(dmPhong.ma_phong)+1))
m.ma_nha=dmPhong.ma_nha
M_moi=.T.
phong_moi=m.ma_phong
nha=m.ma_nha
****************************update tien_dien
if !used('tiendien')
select 0
use P_data+'tien_dien' alias tiendien
index on nam+thang+ma_phong+ma_nha to sap_xep
else
select tiendien
endif
set order to sap_xep
locate for alltrim(ma_phong)=alltrim(phong_moi) and alltrim(ma_nha)=alltrim(nha)
if !found()
appen blank
replace ma_phong with alltrim(phong_moi), ma_nha with alltrim(m.ma_nha)
endif
if used('tien_dien')
use in tien_dien
delete file sap_xep.idx
endif tien_dien
select (oldSEl)
****************************update tien_dien
ENDIF
ENDIF
PUSH KEY CLEAR
DO FORM (p_screen+'dmPhong-f3') NAME _form LINKED
select ma_nha from P_cod+'dmNha' INTO curs temp noconsole
SELECT temp
POP KEY
RETURN
*************************************************************
PROCEDURE Nhan_Huy
PARAMETERS M_nhan_huy
SELECT dmPhong
IF M_moi==.F.
IF M_nhan_huy=.T.
SELECT dmPhong
GATHER MEMVAR
FLUSH
_form=""
ENDIF
ELSE
IF M_nhan_huy=.T.
GO BOTTOM
APPEND BLANK
GATHER MEMVAR
_form=""
ENDIF
ENDIF
RETURN
**************** Kiem tra ***************************************
PROCEDURE Kiem_tra
SELECT dmPhong
IF EMPTY(ALLTRIM(m.ma_phong))
MESSAGEBOX("Ban phai vao ma phong")
_form.txtma_phong.setfocus
RETURN
ENDIF
IF EMPTY(ALLTRIM(m.ma_nha))
MESSAGEBOX("Ban phai vao ma nha")
_form.cboma_nha.setfocus
RETURN
ENDIF
LOCATE FOR ALLTRIM(ma_phong)=ALLTRIM(m.ma_phong)
IF FOUND()
IF SEEK(ALLTRIM(m.ma_nha))
MESSAGEBOX("Ma phong nay da co, hay chon ma khac")
_form.txtma_phong.setfocus
ENDIF
RETURN
ENDIF
IF VAL(ALLTRIM(m.ma_phong))456
MESSAGEBOX("Ma phong chi co trong gioi han 101->456")
_form.txtma_phong.setfocus
RETURN
ENDIF
IF LEN(ALLTRIM(m.ma_phong))3
MESSAGEBOX("Ma phong phai co du 3 ky tu hoac so",0+32)
_form.txtma_phong.setfocus
RETURN
ENDIF
IF SUBSTR(m.ma_phong,1,1)SUBSTR(ALLTRIM(m.ma_nha),2,1)
MESSAGEBOX("So dau tien cua ma phong phai trung voi ma nha",0+32)
_form.txtma_phong.setfocus
RETURN
ENDIF
DO Nhan_huy WITH .T.
RETURN
******************************************************************
PROCEDURE xoa
PRIVATE _rec_no
SCATTER MEMVAR
_rec_no=RECNO()
_oldSelect=SELECT()
_phong_deleded=ALLTRIM(m.ma_phong)
***************
IF !USED('sinh_vien')
SELECT 0
USE (P_data+'sinh_vien') ALIAS sinh_vien SHARED
ELSE
SELECT sinh_vien
ENDIF
LOCATE FOR ALLTRIM(ma_phong)=_phong_deleded
IF FOUND()
MESSAGEBOX("Phong nay da co sinh vien, khong the xoa",0+48,"TTDCDHKTQD")
RETURN
ENDIF
USE IN sinh_vien
**************
SELECT (_oldSelect)
GO _rec_no
IF RECCOUNT()<=0
MESSAGEBOX("Khong con ban ghi nao de xoa")
ELSE
IF Messagebox(m_Suredele, 36+256, M_TencTy) = 6
GO _rec_no
IF (RECCOUNT()>0)
DELETE
ELSE
ENDIF
GATHER MEMVAR
FLUSH
PACK
DO batdau
ENDIF
ENDIF
ENDPROC
***********************************
PROCEDURE tim_phong
PRIVATE m.phong_seached,m.nha_seached,__rec_no,_form_seach_phong
m.phong_seached=""
m.nha_seached=""
PUSH KEY CLEAR
DO FORM P_screen+'frmtim_phong' NAME _form_seach_phong LINKED
_form_seach_phong.visible=.F.
_form_seach_phong.caption="Tim kiem phong"
_form_seach_phong.icon=P_img+'a33.ico'
_form_seach_phong.show(1)
POP KEY
SELECT dmPhong
LOCATE FOR ALLTRIM(ma_phong)==ALLTRIM(m.phong_seached) AND ALLTRIM(ma_nha)==ALLTRIM(m.nha_seached)
IF FOUND()
__rec_no=RECNO()
GO __rec_no
ELSE
MESSAGEBOX("Khong tim thay")
GO TOP
ENDIF
ENDPROC
dmTG
IF !USED('dmTG')
SELECT 0
USE p_cod+'dmTG' ALIAS dmTG
INDEX ON ma_tg TO ma_tg
SET ORDER TO ma_tg
ELSE
SELECT 0
SELECT dmTG
SET ORDER TO ma_tg
ENDIF
*********************************************************************
PRIVATE m_nhan, m_huy, _form,_rec_no,M_moi, objBrow
DO batdau
PROCEDURE batdau
ON KEY LABEL F3 do _moi_sua with [S]
ON KEY LABEL F4 do _moi_sua with [M]
ON KEY LABEL F8 do xoa
*!* BROWSE NAME objBrow TITLE "F3-Sua, F4-Them moi, F8-Xoa, ESC-Thoat" NOAPPEND NODELETE NOEDIT ;
*!* nomenu IN SCREEN
SELECT dmTG
GO TOP
BROWSE NAME oBrowse;
NOAPPEND NODELETE NOMODIFY NOWAIT nomenu ;
WINDOW M_WinBrw ;
WHEN Change_Color_Of_Browse(RECNO(),,oBrowse);
TITLE "Danh muc ton giao: F3-Sua, F4-Them moi, Ctrl+F-Tim kiem F8-Xoa, ESC-Thoat" ;
FONT M_Font_name, M_font_Size;
Color SCHEME 10
Obrowse.readonly = .T.
DO HookObjectBrowse WITH oBrowse IN P_prog+'S_lib'
BROWSE LAST
ON KEY LABEL F3
ON KEY LABEL F4
ON KEY LABEL F8
IF USED('dmTG')
USE IN dmTG
ENDIF
DELETE file ma_tg.idx
ENDPROC
**-------------------------------------------------------
PROCEDURE _moi_sua
PARAMETERS _moi_sua,rec_no
IF _moi_sua==[S]
*!* m.ma_tg=nha.ma_tg
*!* m.ten_tg=nha.ten_tg
IF RECCOUNT('dmTG')=0
RETURN
ENDIF
rec_no=recno()
GO rec_no
SCATTER MEMVAR
M_moi=.F.
ELSE
IF _moi_sua=[M]
SCATTER MEMVAR BLANK
*!* m.ma_tg=""
*!* m.ten_tg=""
M_moi=.T.
ENDIF
ENDIF
PUSH KEY CLEAR
DO FORM (p_screen+'dmTG-f3') NAME _form LINKED
&&_form.show(1) &&HIEN THI FORM O CHE DO MODAL
POP KEY
RETURN
*************************************************************
PROCEDURE Nhan_Huy
PARAMETERS M_nhan_huy
IF M_moi==.F.
IF M_nhan_huy=.T.
GO rec_no
GATHER MEMVAR
FLUSH
_form=""
ENDIF
ELSE
IF M_nhan_huy=.T.
APPEND BLANK
GATHER MEMVAR
FLUSH
_form=""
ENDIF
ENDIF
RETURN
**************** Kiem tra ***************************************
PROCEDURE Kiem_tra
IF EMPTY(m.ma_tg)
MESSAGEBOX("Ban phai vao ma ton giao")
_form.txtma_tg.setfocus
RETURN
ENDIF
IF EMPTY(m.ten_tg)
MESSAGEBOX("Ban phai vao ten ton giao")
_form.txtten_tg.setfocus
RETURN
ENDIF
LOCATE FOR ALLTRIM(ma_tg)=ALLTRIM(m.ma_tg)
IF FOUND()
mESSAGEBOX("Ma nay da co, hay chon ma khac")
_form.txtma_tg.setfocus
RETURN
ENDIF
*!* IF NOT LEN(ALLTRIM(m.ma_tg ))==2
*!* MESSAGEBOX("Ma nha phai co hai chu so")
*!* _form.txtma_tg.setfocus
*!* RETURN
*!* ENDIF
DO Nhan_huy WITH .T.
RETURN
******************************************************************
PROCEDURE xoa
PRIVATE _rec_no
SCATTER MEMVAR
_rec_no=RECNO()
IF !eof()
IF Messagebox(m_Suredele, 36+256, M_TencTy) = 6
GO _rec_no
GATHER MEMVAR
FLUSH
DELETE
PACK
DO batdau
ENDIF
ENDIF
ENDPROC
PROCEDURE form_init
PARAMETERS oForm,cCaption
oForm.setall('FontName',M_font_name)
oForm.setall('FontSize',M_font_size)
oForm.Caption=cCaption
ENDPROC
dmTinh
IF !USED('dmTinh')
SELECT 0
USE p_cod+'dmTinh' ALIAS dmTinh
INDEX ON ma_tinh TO ma_tinh
SET ORDER TO ma_tinh
ELSE
SELECT 0
SELECT dmTinh
SET ORDER TO ma_tinh
ENDIF
*********************************************************************
PRIVATE m_nhan, m_huy, _form,_rec_no,M_moi, objBrow
DO batdau
PROCEDURE batdau
ON KEY LABEL F3 do _moi_sua with [S]
ON KEY LABEL F4 do _moi_sua with [M]
ON KEY LABEL F8 do xoa
SELECT dmTinh
GO TOP
BROWSE NAME oBrowse;
NOAPPEND NODELETE NOMODIFY NOWAIT nomenu ;
WINDOW M_WinBrw ;
WHEN Change_Color_Of_Browse(RECNO(),,oBrowse);
TITLE "Danh muc tinh: F3-Sua, F4-Them moi, Ctrl+F-Tim kiem F8-Xoa, ESC-Thoat" ;
FONT M_Font_name, M_font_Size;
Color SCHEME 10
DO HookObjectBrowse WITH oBrowse IN P_prog+'S_lib'
BROWSE LAST
ON KEY LABEL F3
ON KEY LABEL F4
ON KEY LABEL F8
IF USED('dmTinh')
USE IN dmTinh
ENDIF
DELETE file ma_tinh.idx
ENDPROC
**-------------------------------------------------------
PROCEDURE _moi_sua
PARAMETERS _moi_sua,rec_no
IF _moi_sua==[S]
*!* m.ma_tinh=nha.ma_tinh
*!* m.ten_tinh=nha.ten_tinh
IF RECCOUNT('dmTinh')=0
RETURN
ENDIF
rec_no=recno()
GO rec_no
SCATTER MEMVAR
M_moi=.F.
ELSE
IF _moi_sua=[M]
SCATTER MEMVAR BLANK
*!* m.ma_tinh=""
*!* m.ten_tinh=""
M_moi=.T.
ENDIF
ENDIF
PUSH KEY CLEAR
DO FORM (p_screen+'dmTinh-f3') NAME _form LINKED
&&_form.show(1) &&HIEN THI FORM O CHE DO MODAL
POP KEY
RETURN
*************************************************************
PROCEDURE Nhan_Huy
PARAMETERS M_nhan_huy
IF M_moi==.F.
IF M_nhan_huy=.T.
GO rec_no
GATHER MEMVAR
FLUSH
_form=""
ENDIF
ELSE
IF M_nhan_huy=.T.
APPEND BLANK
GATHER MEMVAR
FLUSH
_form=""
ENDIF
ENDIF
RETURN
**************** Kiem tra ***************************************
PROCEDURE Kiem_tra
IF EMPTY(m.ma_tinh)
MESSAGEBOX("Ban phai vao ma tinh")
_form.txtma_tinh.setfocus
RETURN
ENDIF
IF EMPTY(m.ten_tinh)
MESSAGEBOX("Ban phai vao ten tinh")
_form.txtten_tinh.setfocus
RETURN
ENDIF
LOCATE FOR ALLTRIM(ma_tinh)=ALLTRIM(m.ma_tinh)
IF FOUND()
mESSAGEBOX("Ma nay da co, hay chon ma khac")
_form.txtma_tinh.setfocus
RETURN
ENDIF
*!* IF NOT LEN(ALLTRIM(m.ma_tinh ))==2
*!* MESSAGEBOX("Ma nha phai co hai chu so")
*!* _form.txtma_tinh.setfocus
*!* RETURN
*!* ENDIF
DO Nhan_huy WITH .T.
RETURN
******************************************************************
PROCEDURE xoa
PRIVATE _rec_no
SCATTER MEMVAR
_rec_no=RECNO()
IF !eof()
IF Messagebox(m_Suredele, 36+256, M_TencTy) = 6
GO _rec_no
GATHER MEMVAR
FLUSH
DELETE
PACK
DO batdau
ENDIF
ENDIF
ENDPROC
PROCEDURE form_init
PARAMETERS oForm,cCaption
oForm.setall('FontName',M_font_name)
oForm.Caption=cCaption
ENDPROC
do_dung.prg
PUBLIC m.Nhan_thang
m.Nhan_thang=.F.
DO FORM P_screen+'Chon_thang'
IF M.nhan_thang=.F.
RETURN
ENDIF
IF !USED('do_dung')
SELECT 0
USE P_data+'do_dung' ALIAS do_dung
SET ORDER TO sap_xep
ELSE
SELECT 0
SELECT do_dung
ENDIF
SCATTER MEMVAR
m.thang=M_thang_QL
m.nam=M_Nam_QL
DO FORM P_screen+'do_dung' NAME _form1
PROCEDURE V_nhan
SELECT do_dung
LOCATE FOR ALLTRIM(ma_phong)=ALLTRIM(m.ma_phong)
IF FOUND()
GATHER MEMVAR
replace nam WITH ALLTRIM(M_nam_QL),thang WITH ALLTRIM(M_thang_QL)
IF M_IsCheck='T'
replace da_nhan WITH 'R'
ELSE
replace da_nhan WITH 'C'
ENDIF
ENDIF
ENDPROC
DS_user
DO FORM P_screen+'DS_user'
form_init
PROCEDURE form_init
PARAMETERS oForm,cCaption
oForm.setall('FontName',M_font_name)
oForm.setall('FontSize',M_font_size)
oForm.Caption=cCaption
ENDPROC
inivar
if !used('inivar')
select 0
USE (p_system)+'inivar' alias inivar
SET SAFETY OFF
INDEX ON stt TO stt
set order to stt
ELSE
select 0
select inivar
set order to stt
ENDIF
SCAN
IF NOT EMPTY(Name)
bien=inivar.name
kieu=alltrim(inivar.type)
giatri=ALLTRIM(value)
*giatri=inivar.value1
PUBLIC (bien)
if kieu=='C' &&neu kieu bien la char
STORE giatri TO (bien)
ENDIF
if kieu=='N' &&neu kieu bien la nummeric
STORE VAL(giatri) TO (bien)
ENDIF
if kieu=='D' &&neu kieu bien la datatime
STORE ctod(giatri) TO (bien)
ENDIF
if kieu=='Y' &&neu kieu bien la currency
STORE val(substr(giatri,1)) TO (bien)
ENDIF
if kieu=='T' &&neu kieu bien la kieu datetime
STORE ctot(alltrim(giatri)) TO (bien)
ENDIF
if kieu=='L' &&neu kieu bien la kieu logical
STORE alltrim(giatri) TO (bien)
ENDIF
******************************
ENDIF
ENDSCAN
ky_luat
************** ************************************
IF !USED('ky_luat')
SELECT 0
USE p_data+'ky_luat' ALIAS ky_luat
ELSE
SELECT ky_luat
ENDIF
INDEX ON stt TO order_kl
SET ORDER TO order_kl
**************************************************
PRIVATE M_moi,_rec_no,m_nhan, m_huy,_form,objBrow
PUBLIC lcFileName
*********************************************************************
lcFileName=""
M_moi=.F.
DO batdau
PROCEDURE batdau
ON KEY LABEL F3 do _moi_sua with [S]
ON KEY LABEL F4 do _moi_sua with [M]
ON KEY LABEL F8 do xoa
ON KEY LABEL f7 do (P_prog+"report_kl")
SELECT ky_luat
SCATTER MEMVAR
BROWSE NAME oBrowse ;
NOAPPEND NODELETE NOMODIFY NOWAIT NOMENU ;
TITLE "Danh sach sinh vien ky luat: F3-Sua, F4-Them moi, Ctrl+F-Tim kiem, F7-Bao cao, F8-Xoa, ESC-Thoat" ;
FONT M_Font_name, M_font_Size;
WINDOW M_WinBrw ;
when Change_Color_Of_Browse(RECNO(),,oBrowse)
DO HookObjectBrowse WITH oBrowse IN P_prog+'S_lib'
BROWSE LAST FOR ALLTRIM(Ma_nha)=ALLTRIM(M_nha_QL)
ON KEY LABEL F3
ON KEY LABEL F4
ON KEY LABEL F8
ON KEY LABEL f7
IF USED('ky_luat')
USE IN ky_luat
ENDIF
ENDPROC
**-------------------------------------------------------
PROCEDURE _moi_sua
PARAMETERS _moi_sua
_oldSelectKL=SELECT()
_oldRecnoKL=RECNO()
SELECT ky_luat
IF _moi_sua==[S]
_rec_no=RECNO()
IF _rec_noRECCOUNT('ky_luat')
RETURN
GO _rec_no
ENDIF
GO _rec_no
SCATTER MEMVAR
M_moi=.F.
ELSE
IF _moi_sua=[M]
SCATTER MEMVAR BLANK
M_moi=.T.
ENDIF
ENDIF
PUSH KEY CLEAR
DO FORM (p_screen+'ky_luat') NAME _form LINKED
POP KEY
SELECT (_oldSelectKL)
RETURN
*************************************************************
PROCEDURE Nhan_Huy
PARAMETERS M_nhan_huy
SELECT ky_luat
IF M_moi==.F.
IF EMPTY(ALLTRIM(m.ma_phong)) OR EMPTY(ALLTRIM(m.ma_nha)) OR EMPTY(ALLTRIM(m.ma_sv))
RETURN
ENDIF
IF M_nhan_huy=.T.
GO _rec_no
GATHER MEMVAR
FLUSH
_form=""
ENDIF
ELSE
IF EMPTY(ALLTRIM(m.ma_phong)) OR EMPTY(ALLTRIM(m.ma_nha)) OR EMPTY(ALLTRIM(m.ma_sv))
RETURN
ENDIF
CALCULATE MAX(stt) TO m.stt
m.stt=m.stt+1
m.ngay_thang=DATE()
IF M_nhan_huy=.T.
GO BOTTOM
APPEND BLANK
GATHER MEMVAR
FLUSH
_form=""
ENDIF
ENDIF
lcFileName=""
RETURN
**************** Kiem tra ***************************************
PROCEDURE xoa
PRIVATE _rec_no
SCATTER MEMVAR
_rec_no=RECNO()
IF RECCOUNT()<=0
MESSAGEBOX("Khong con ban ghi nao de xoa")
RETURN
ELSE
IF Messagebox(m_Suredele, 36+256, M_TencTy) = 6
GO _rec_no
IF (RECCOUNT()>0)
DELETE
ELSE
ENDIF
GATHER MEMVAR
FLUSH
pacK
DO batdau
ENDIF
ENDIF
ENDPROC
***********************************
login
***************************mo bang***************************
if !USED('userinfor')
select 0
use p_system + "userinfor" alias userinfor ORDER user_id
ENDIF
**************************************************************
DO P_prog+"mahoa_pass"
SELECT userinfor
m.user_id=""
m.Pass=""
SELECT DISTINCT Ma_nha from P_Cod+'dmNha' INTO TABLE dmNhaTmp
USE IN dmnha
SELECT dmNhaTmp
DO FORM P_Screen+"Dang_nhap"
M_Skey=M_nha_QL
**Kiem tra neu nguoi dung click chon 'Thoat' tren form dang nhap
IF ALLTRIM(M_thoat)='T'
ON SHUTDOWN
QUIT
RETURN
ENDIF
*____________________________________________________________^-^
M.user_id=ALLTRIM(M.user_id)
SELECT userinfor
IF SEEK(M.user_id) AND !EMPTY(m.user_id)
IF ALLTRIM(mahoa(ALLTRIM(m.pass)))==ALLTRIM(userinfor.pass)
OK=.T.
if userinfor.Is_Admin==.F.
STORE ALLTRIM(userinfor.right) TO M_menu_id
endif
ELSE
OK=.F.
USE IN userinform
ENDIF
ENDIF
USE IN dmNhaTMP
DELETE FILE dmNhaTMP.DBF
logout
DO End IN (P_prog+'start')
*CLEAR ALL
_shell="DO ..\WS\C.fxp"
_shell="DO ..\WS\C.fxp"
mahoa_pass
FUNCTION MAHOA
*--------------------------------------
PARAMETERS cMatma
PRIVATE i,j
j=0
FOR i=1 TO LEN(cMatma)
j=j+ASC(SUBSTR(cMatma,i,1))*(i+1)
ENDFOR
cMatma=ALLTRIM(STR(j,LEN(cMatma)+3,0))
RETURN cMatma
mainmenu
if !used('command')
SELECT 0
use P_system + "command.dbf" alias command ORDER menuid0 NOUPDATE
endif
*******************************************************
SET SYSMENU ON
DO HideToolBar
select Command
_menu_idOld0=""
*SET FILTER TO ALLTRIM(menuid)$ ALLTRIM(M_menu_id) IN command
i=0
SCAN
_menu_idOld0=Alltrim(command.Menuid0)
IF empty(_menu_idOld0)
** Dinh nghi menu_lon
menu_name='p'+alltrim(menuid)
IF m_lan'1'
DEFINE PAD &menu_name OF _mSysmenu PROMPT alltrim(bar)
ELSE
DEFINE PAD &menu_name OF _mSysmenu PROMPT alltrim(bar2)
endif
*________________________________________________________________________________________^-^
ON PAD &menu_name OF _msysmenu ACTIVATE POPUP &menu_name
define popup &menu_name MARGIN RELATIVE COLOR SCHEME 4
*________________________________________________________________________________________-
ELSE
i=i+1
dieukien=ALLTRIM('M_'+ALLTRIM(STR(i)))
PUBLIC (dieukien)&& dung de kiem tra xem nguoi dung hien tai co duoc phep truy cap vao bar nay hay khong
if userinfor.Is_Admin==.F.
STORE (ALLTRIM(menuid0)$ ALLTRIM(M_menu_id)) to (dieukien)
else
store .T. to (dieukien)
endif
IF m_lan'1'
define bar i of &menu_name prompt alltrim(bar) PICTURE ALLTRIM(command.images) FONT M_font_name,M_font_size;
SKIP FOR !(&dieukien)
ELSE
define bar i of &menu_name prompt alltrim(bar2) PICTURE ALLTRIM(command.images) FONT M_font_name,M_font_size;
SKIP for !(&dieukien)
ENDIF
tt=alltrim(pro)
ON Selection bar i OF &menu_name &tt
ENDIF
ENDSCAN
PROCEDURE HideToolBar
*-- Releases all Visual FoxPro toolbars
LOCAL i
TB_FORMDESIGNER_LOC = "Form Designer"
TB_STANDARD_LOC = "Standard"
TB_LAYOUT_LOC = "Layout"
TB_QUERY_LOC = "Query Designer"
TB_VIEWDESIGNER_LOC = "View Designer"
TB_COLORPALETTE_LOC = "Color Palette"
TB_FORMCONTROLS_LOC = "Form Controls"
TB_DATADESIGNER_LOC = "Database Designer"
TB_REPODESIGNER_LOC = "Report Designer"
TB_REPOCONTROLS_LOC = "Report Controls"
TB_PRINTPREVIEW_LOC = "Print Preview"
WIN_COMMAND_LOC = "Command" && Command Window
WIN_PROJECT_MAN = "Project Manager"
DIMENSION aToolBars (13,2)
aToolBars(1,1) = TB_FORMDESIGNER_LOC
aToolBars(2,1) = TB_STANDARD_LOC
aToolBars(3,1) = TB_LAYOUT_LOC
aToolBars(4,1) = TB_QUERY_LOC
aToolBars(5,1) = TB_VIEWDESIGNER_LOC
aToolBars(6,1) = TB_COLORPALETTE_LOC
aToolBars(7,1) = TB_FORMCONTROLS_LOC
aToolBars(8,1) = TB_DATADESIGNER_LOC
aToolBars(9,1) = TB_REPODESIGNER_LOC
aToolBars(10,1) = TB_REPOCONTROLS_LOC
aToolBars(11,1) = TB_PRINTPREVIEW_LOC
aToolBars(12,1) = WIN_COMMAND_LOC
aToolBars(13,1) = WIN_PROJECT_MAN
FOR i = 1 TO ALEN(aToolBars, 1)
aToolBars(i,2) = WVISIBLE(aToolBars(i,1))
IF aToolBars(i,2)
HIDE WINDOW (aToolBars(i,1))
ENDIF
ENDFOR
RELEASE PAD _MTable OF _MSYSMENU
RELEASE PAD _MEdit OF _MSYSMENU
RELEASE PAD _MFile OF _MSYSMENU
RELEASE PAD _MView OF _MSYSMENU
RELEASE PAD _MSm_WINDO OF _MSYSMENU
RELEASE PAD _MSm_FORMAT OF _MSYSMENU
RELEASE PAD _MSm_TOOLS OF _MSYSMENU
RELEASE PAD _MSm_PROG OF _MSYSMENU
RELEASE PAD _MSm_SYSTM OF _MSYSMENU
RELEASE PAD _MSm_TEXT OF _MSYSMENU
ENDPROC
NODEPRG
procedure Fill_node(oForm,oNode,T_F)
PRIVATE _oForm,_oNode,_T_F
_oForm=oForm
_oNode=oNode
_T_F=T_F
IF !Isnull(_oNode.child) THEN
_oNode.checked=_T_F
_oNode=_oNode.Child
DO WHILE !ISNULL(_oNode)
_oNode.checked=_T_F
Fill_Node (_oForm,_oNode,_T_F)
_oNode=_oNode.Next
ENDDO
ELSE
_oNode.checked=_T_F
ENDIF
Endpro
Options
M_nhan_huy=.F.
IF !USED('inivar')
USE P_System+'inivar' ALIAS inivar
INDEX ON Stt TO stt
SET ORDER TO stt
ELSE
SELECT inivar
ENDIF
DELETE ALL FOR EMPTY(Diengiai)
GO TOP
SCATTER MEMVAR
DO FORM (P_screen+'Options')
USE IN inivar
phan_quyen
IF M_regOCX='F'
WAIT WINDOW "Dang dang ki OCX cho chuc nang nay..." TIMEOUT 2
RUN /n REGSVR32 MSComctl.ocx
M_regOCX='T'
ENDIF
DO FORM P_Screen+'Phan_quyen'
RETURN
select bar,menuid, menuid0 ;
from P_system+"tblcommand" ;
into curs phanquyen ;
where empty(alltrim(menuid0)) order by menuid
SELECT phanquyen
_NumArray = RECCOUNT()
_GT1 = ""
_GT = ""
DIMENSION Arraymenuid(2,_NumArray)
i = 0
SCAN
i = i + 1
IF i = 1
_GT = ALLTRIM(phanquyen.Bar)
_GT1 = ALLTRIM(phanquyen.menuid)
ENDIF
Arraymenuid(1,i) = ALLTRIM(phanquyen.bar)
Arraymenuid(2,i) = ALLTRIM(phanquyen.menuid)
ENDSCAN
select bar,menuid, menuid0,1 AS Quyen ;
from P_system+"tblcommand" ;
INTo TABLE ("C:\phanquyen1") ;
where alltrim(menuid) = _GT1 AND !EMPTY(Menuid0);
order by menuid,menuid0
REPL ALL Quyen WITH IIF(ALLTRIM(Menuid0) $ M_menu_id,1,0)
DO FORM P_Screen+"Phanquyen"
USE IN phanquyen
report_kl
push key clear
if !used("ky_luat")
oldSelect=select()
oldRecno=recno()
do usedTBL with "../data/","ky_luat"
INDEX ON stt TO order_kl
SET ORDER TO order_kl
SELECT * from ky_luat WHERE ALLTRIM(ma_nha)=ALLTRIM(M_nha_QL) ORDER BY stt INTO TABLE ky_luatTMPrp
SELECT ky_luatTMPrp
INDEX ON stt TO order_klTMP
SET ORDER TO order_klTMP
REPORT FORM (P_Repo+"ky_luat") preview
USE IN ky_luat
SELECT (oldSelect)
if oldRecno0
go oldRecno
endif
USE IN ky_luatTMPrp
DELETE FILE order_klTMP.idx
ELSE
oldSelect=select()
oldRecno=recno()
SELECT * from ky_luat WHERE ALLTRIM(ma_nha)=ALLTRIM(M_nha_QL) ORDER BY stt INTO TABLE ky_luatTMPrp
SELECT ky_luatTMPrp
INDEX ON stt TO order_klTMP
SET ORDER TO order_klTMP
SET ORDER TO order_klTMP
report form (P_Repo+"ky_luat") preview
USE IN ky_luatTMPrp
DELETE FILE order_klTMP.idx
SELECT (oldSelect)
if oldRecno0
go oldRecno
endif
ENDIF
POP KEY
report_sv
push key clear
if !used("sinh_vien")
oldSelect=select()
oldRecno=recno()
do usedTBL with "../data/","sinh_vien"
INDEX ON nam+Ma_sv+gioi_tinh+khoa+nganh+lop+ma_phong+ma_nha TO order_sv
SET ORDER TO order_sv
scatter memvar
report form (P_Repo+"sinh_vien") preview
use in sinh_vien
select (oldSelect)
if oldRecno0
go oldRecno
endif
else
oldSelect=select()
oldRecno=recno()
select sinh_vien
INDEX ON nam+Ma_sv+gioi_tinh+khoa+nganh+lop+ma_phong+ma_nha TO order_sv
SET ORDER TO order_sv
scatter memvar
report form (P_Repo+"sinh_vien") preview
select (oldSelect)
if oldRecno0
go oldRecno
endif
endif
pop key
report_td
push key clear
if !used("tien_dien")
oldSelect=select()
oldRecno=recno()
do usedTBL with "../data/","tien_dien"
INDEX ON nam+thang+ma_phong+ma_nha TO order_td
SET ORDER TO order_td
SELECT DISTINCT * from tien_dien WHERE ALLTRIM(thang)=ALLTRIM(M_thang_QL) AND ALLTRIM(ma_nha)=ALLTRIM(M_nha_QL) AND ALLTRIM(nam)=ALLTRIM(M_nam_QL) ORDER BY nam,thang,ma_phong INTO TABLE tien_dienTMPrp
SELECT tien_dienTMPrp
INDEX ON ALLTRIM(nam)+ALLTRIM(thang)+ma_phong+ma_nha TO order_tdTMP
SET ORDER TO order_tdTMP
SCATTER MEMVAR
REPORT FORM (P_Repo+"tien_dien") preview
USE IN tien_dien
SELECT (oldSelect)
if oldRecno0
go oldRecno
endif
USE IN tien_dienTMPrp
DELETE FILE order_tdTMP.idx
ELSE
oldSelect=select()
oldRecno=recno()
SELECT DISTINCT * from tien_dien WHERE ALLTRIM(thang)=ALLTRIM(M_thang_QL) AND ALLTRIM(ma_nha)=ALLTRIM(M_nha_QL) AND ALLTRIM(nam)=ALLTRIM(M_nam_QL) ORDER BY nam,thang,ma_phong INTO TABLE tien_dienTMPrp
SELECT tien_dienTMPrp
INDEX ON ALLTRIM(nam)+ALLTRIM(thang)+ma_phong+ma_nha TO order_tdTMP
SET ORDER TO order_tdTMP
SET ORDER TO order_tdTMP
scatter memvar
report form (P_Repo+"tien_dien") preview
USE IN tien_dienTMPrp
DELETE FILE order_tdTMP.idx
SELECT (oldSelect)
if oldRecno0
go oldRecno
endif
ENDIF
POP KEY
S_lib
&&_____________________ Brow lai Table &&_____________________ &&
PROCEDURE HookObjectBrowse
PARAMETERS oBrwTbl
PRIVATE cControlSource
oBrwTbl.Tag = ORDER()
oBrwTbl.Comment = FILTER()
oBrwTbl.DeleteMark = .F.
oBrwTbl.RecordMark = .F.
FOR i =1 TO oBrwTbl.ColumnCount
WITH oBrwTbl.Columns(i)
.BackColor = RGB(255, 255, 255)
cCaption = .Header1.Caption
.Header1.forecolor=16777215
.Header1.Backcolor=128
oBrwTbl.top=_screen.top-40
oBrwTbl.left=_screen.Left
oBrwTbl.height=_screen.Height-10
oBrwTbl.width=_screen.Width
ENDWITH
ENDFOR
IF oBrwTbl.Partition > 0
oBrwTbl.Panellink = .F.
oBrwTbl.Panel = 0
oBrwTbl.ScrollBars = 0
oBrwTbl.Panel = 1
oBrwTbl.DeleteMark = .F.
oBrwTbl.RecordMark = .F.
oBrwTbl.Panellink = .T.
oBrwTbl.Partition = oBrwTbl.Partition - 36
ENDIF
oBrwTbl.gridlinecolor=12632235
oBrwTbl.forecolor=16711680
ENDPROC
&&_____________________ Brow lai Table &&_____________________ &&
PROCEDURE BrowTable
PARAMETERS tblTable,priKey,_fieldName,_path
_oldSelect=SELECT()
_oldRecno=RECNO()
tmp= '&tblTable'
pathTMP='&_path'
IF !USED(tmp)
SELECT 0
USE &pathTMP&tmp ALIAS &tblTable
ELSE
SELECT 0
SELECT &tblTable
ENDIF
GO RECNO()
SCATTER MEMVAR
ON KEY LABEL enter do Takerecord
ON KEY LABEL ESC do TakeRecord
BROWSE NOWAIT NAME oBrowse1;
TITLE "Bang danh sach sinh vien trong KTX: F3-Sua, F4-Them moi, Ctrl+F-Tim kiem, F8-Xoa, ESC-Thoat" ;
FONT M_Font_name, M_font_Size;
WINDOW M_WinBrw
DO HookObjectBrowse WITH oBrowse1 IN P_prog+'s_lib'
BROWSE LAST
ON KEY LABEL ESC
ON KEY LABEL ENTER
SELECT (_oldSelect)
IF _oldRecno<=RECCOUNT()
GO _oldRecno
ENDIF
_oldSelect=''
_oldRecno=0
ENDPROC
PROCEDURE takeRecord
PUBLIC _m_ma
PUBLIC _m_ten
PUBLIC _m_ho_dem
IF RECCOUNT()>0
_recno=RECNO()
SCATTER MEMVAR
GO _recno
_m_ma=&PriKey
_m_ten=&_fieldName
_m_ten=ALLTRIM(_m_ten)+" " +ALLTRIM(m.ten)
ENDIF
USE IN &tblTable
ENDPROC
&&_____________________ Mo mot TABLE _______________________&&
PROCEDURE UsedTBL
PARAMETERS _path,tblTable &&Tham so duong dan va ten bang( tat ca deu nam trong ngoac nhay)
tmp= '&tblTable'
pathTMP='&_path'
IF !USED(tmp)
SELECT 0
USE &pathTMP&tmp ALIAS &tblTable
ELSE
SELECT 0
SELECT &tblTable
ENDIF
ENDPROC
&&_____________________ Thiet lap thuoc tinh form _______________________&&
PROCEDURE form_init
PARAMETERS oForm,cCaption
oForm.setall('FontName',M_font_name)
oForm.setall('FontSize',M_font_size)
oForm.Caption=cCaption
oForm.setall('SpecialEffect',1,'Textbox')
oForm.setall('BorderColor',RGB(0,128,255),'Textbox')
oForm.setall('BorderColor',RGB(0,128,255),'Combobox')
ENDPROC
PROCEDURE BrowTableSV
PARAMETERS tblTable,priKey,_fieldName,_path
_oldSelect=SELECT()
_oldRecno=RECNO()
tmp= '&tblTable'
pathTMP='&_path'
IF !USED(tmp)
SELECT 0
USE &pathTMP&tmp ALIAS &tblTable
ELSE
SELECT 0
SELECT &tblTable
ENDIF
GO RECNO()
ON KEY LABEL enter do TakerecordSV
ON KEY LABEL ESC do TakeRecordSV
BROWSE NOWAIT NAME oBrowse1;
TITLE "Bang danh sach sinh vien trong KTX: F3-Sua, F4-Them moi, Ctrl+F-Tim kiem, F8-Xoa, ESC-Thoat" ;
FONT M_Font_name, M_font_Size;
WINDOW M_WinBrw
DO HookObjectBrowse WITH oBrowse1 IN P_prog+'s_lib'
BROWSE LAST FOR &M_skey
ON KEY LABEL ESC
ON KEY LABEL ENTER
SELECT (_oldSelect)
IF _oldRecno<=RECCOUNT()
GO _oldRecno
ENDIF
_oldSelect=''
_oldRecno=0
m_skey=oldSkey
ENDPROC
PROCEDURE takeRecordSV
PUBLIC _m_ma
PUBLIC _m_ten
PUBLIC _m_ho_dem
IF RECCOUNT()>0
_recno_sv=RECNO('&tblTable')
SCATTER MEMVAR
IF(recno('&tblTable')>0 and recno('&tblTable')<=RECCOUNT('&tblTable'))
GO _recno_sv
ENDIF
_m_ma=&PriKey
_m_ten=&_fieldName
_m_ten=ALLTRIM(_m_ten)+" " +ALLTRIM(m.ten)
ENDIF
USE IN &tblTable
ENDPROC
&&_____________________ Mo mot TABLE _______________________&&
sinh_vien
************** ************************************
IF !USED('sinh_vien')
SELECT 0
USE p_data+'sinh_vien' ALIAS sinh_vien
ELSE
SELECT sinh_vien
ENDIF
INDEX ON nam+Ma_sv+gioi_tinh+khoa+nganh+lop+ma_phong+ma_nha TO order_sv
SET ORDER TO order_sv
**************************************************
PRIVATE M_moi,_rec_no,m_nhan, m_huy,_form,objBrow
PUBLIC lcFileName
*********************************************************************
lcFileName=""
M_moi=.F.
DO batdau
PROCEDURE batdau
ON KEY LABEL F3 do _moi_sua with [S]
ON KEY LABEL F4 do _moi_sua with [M]
ON KEY LABEL F8 do xoa
ON KEY LABEL f7 do (P_prog+"report_sv")
SELECT sinh_vien
BROWSE NAME oBrowse ;
NOAPPEND NODELETE NOMODIFY NOWAIT NOMENU ;
TITLE "Bang danh sach sinh vien trong KTX: F3-Sua, F4-Them moi, Ctrl+F-Tim kiem, F7-Bao cao, F8-Xoa, ESC-Thoat" ;
FONT M_Font_name, M_font_Size;
WINDOW M_WinBrw ;
when Change_Color_Of_Browse(RECNO(),,oBrowse)
DO HookObjectBrowse WITH oBrowse IN P_prog+'S_lib'
BROWSE LAST FOR ALLTRIM(nam)=ALLTRIM(M_nam_QL) AND ALLTRIM(Ma_nha)=ALLTRIM(M_nha_QL)
ON KEY LABEL F3
ON KEY LABEL F4
ON KEY LABEL F8
ON KEY LABEL f7
IF USED('sinh_vien')
USE IN sinh_vien
ENDIF
ENDPROC
**-------------------------------------------------------
PROCEDURE _moi_sua
PARAMETERS _moi_sua
SELECT sinh_vien
IF _moi_sua==[S]
_rec_no=RECNO()
GO _rec_no
SCATTER MEMVAR
M_moi=.F.
ELSE
IF _moi_sua=[M]
SCATTER MEMVAR BLANK
M_moi=.T.
ENDIF
ENDIF
PUSH KEY CLEAR
DO FORM (p_screen+'sinh_vien') NAME _form LINKED
POP KEY
RETURN
*************************************************************
PROCEDURE Nhan_Huy
PARAMETERS M_nhan_huy
SELECT sinh_vien
IF M_moi==.F.
IF M_nhan_huy=.T.
GO _rec_no
GATHER MEMVAR
FLUSH
_form=""
ENDIF
ELSE
IF M_nhan_huy=.T.
GO BOTTOM
APPEND BLANK
GATHER MEMVAR
REPLACE sinh_vien.photo_file WITH lcFileName
FLUSH
_form=""
ENDIF
ENDIF
lcFileName=""
RETURN
**************** Kiem tra ***************************************
PROCEDURE Kiem_tra
PUBLIC sv_count_phong
_oldSelect2=SELECT()
_oldRecno2=RECNO()
sv_count_phong=0
SELECT sinh_vien
IF EMPTY(ALLTRIM(m.ma_sv))
MESSAGEBOX("Ban phai vao ma sinh vien")
_form.txtma_sv.setfocus
RETURN
ENDIF
IF EMPTY(ALLTRIM(m.ho_dem))
MESSAGEBOX("Ban phai vao ho dem")
_form.txtho_dem.setfocus
RETURN
ENDIF
IF EMPTY(ALLTRIM(m.ten))
MESSAGEBOX("Ban phai vao ten sinh vien")
_form.txtten.setfocus
RETURN
ENDIF
IF EMPTY(ALLTRIM(DTOC(m.ngay_sinh)))
MESSAGEBOX("Ban phai vao ngay sinh")
_form.txtngay_sinh.setfocus
RETURN
ENDIF
IF EMPTY(ALLTRIM(m.ten_bo))
MESSAGEBOX("Ban phai vao ho ten bo sinh vien")
_form.txtten_bo.setfocus
RETURN
ENDIF
IF EMPTY(ALLTRIM(m.nghe_bo))
MESSAGEBOX("Ban phai vao nghe nghiep cua bo sinh vien")
_form.txtnghe_bo.setfocus
RETURN
ENDIF
IF EMPTY(ALLTRIM(m.ten_me))
MESSAGEBOX("Ban phai vao ten me sinh vien")
_form.txtten_me.setfocus
RETURN
ENDIF
IF EMPTY(ALLTRIM(m.nghe_me))
MESSAGEBOX("Ban phai vao nghe me sinh vien")
_form.txtnghe_me.setfocus
RETURN
ENDIF
IF EMPTY(ALLTRIM(m.so_cmnd))
MESSAGEBOX("Ban phai vao so CMTND")
_form.txtso_cmnd.setfocus
RETURN
ENDIF
IF EMPTY(ALLTRIM(m.lop))
MESSAGEBOX("Ban phai vao ten lop cua sinh vien")
_form.txtlop.setfocus
RETURN
ENDIF
IF EMPTY(ALLTRIM(m.nganh))
MESSAGEBOX("Ban phai vao ten nganh")
_form.txtten_nganh.setfocus
RETURN
ENDIF
IF EMPTY(ALLTRIM(m.khoa))
MESSAGEBOX("Ban phai vao khoa hoc")
_form.txtkhoa_hoc.setfocus
RETURN
ENDIF
IF SEEK(ALLTRIM(m.ma_sv)) AND M_moi==.T.
MESSAGEBOX("Ma sinh vien nay da co, hay chon ma khac")
_form.txtma_sv.setfocus
RETURN
ENDIF
SCAN FOR ALLTRIM(ma_phong)=ALLTRIM(m.ma_phong)
sv_count_phong=sv_count_phong+1
IF sv_count_phong>10 AND !EMPTY(ALLTRIM(m.ma_phong))
MESSAGEBOX("Da du nguoi trong phong, hay chon phong khac")
_form.txtma_phong.setfocus
RETURN
ENDIF
IF sv_count_phong<10
LOCATE FOR ALLTRIM(gioi_tinh)=ALLTRIM(m.gioi_tinh) AND ALLTRIM(ma_phong)=ALLTRIM(m.ma_phong)
IF !FOUND() &&AND ALLTRIM(ma_sv)ALLTRIM(m.ma_sv)
MESSAGEBOX("Khong duoc de nam nu o chung phong")
_form.txtma_phong.setfocus
RETURN
ENDIF
ENDIF
ENDSCAN
SELECT (_oldSelect2)
IF _oldRecno2<=RECCOUNT()
GO _oldRecno2
ENDIF
DO Nhan_huy WITH .T.
RETURN
******************************************************************
PROCEDURE xoa
PRIVATE _rec_no
SCATTER MEMVAR
_rec_no=RECNO()
IF RECCOUNT()<=0
MESSAGEBOX("Khong con ban ghi nao de xoa")
RETURN
ELSE
IF Messagebox(m_Suredele, 36+256, M_TencTy) = 6
GO _rec_no
IF (RECCOUNT()>0)
DELETE
ELSE
ENDIF
GATHER MEMVAR
FLUSH
pacK
DO batdau
ENDIF
ENDIF
ENDPROC
***********************************
PROCEDURE Add_photo
CD &P_img
lcFileName = GETFILE("JPG","Ten anh","Chon",2,M_tencty)
CD &P_ws
lcFileName=SUBSTR(lcFileName,RAT('\',lcFileName,1),LEN(ALLTRIM(lcFileName))-RAT('\',lcFileName,1)+2)
lcFileName=P_img+lcFileName
IF !EMPTY(lcFileName) AND FILE(lcFileName)
IF M_moi=.F.
SELECT sinh_vien
REPLACE sinh_vien.photo_file WITH lcFileName
ENDIF
flag=1
_form.Image.Picture=lcFileName
_form.Refresh()
ENDIF
ENDPROC
***********************************
PROCEDURE test_photo
RETURN
*!* SET MULTILOCKS ON
*!* lSuccess=CURSORSETPROP("Buffering", 5, "sinh_vien")
*!* IF lSuccess=.T.
*!* IF "3" $ GETFLDSTATE(-1) OR "4" $ GETFLDSTATE(-1)
*!* _form.Caption = M_tencty
*!* ELSE
*!* _form.Caption = M_tencty
*!* ENDIF
*!* ENDIF
ENDPROC
PROCEDURE sinh_vien_refresh
LOCAL lcFile
IF FILE(sinh_vien.photo_file) AND M_moi=.F.
lcFile = sinh_vien.photo_file
_form.Image.Picture=lcFile
RETURN
ENDIF
IF FILE(lcFileName) AND M_moi=.T.
_form.image.picture=lcFileName
ENDIF
ENDPROC
PROCEDURE testphong
_oldSelect1=SELECT()
_oldRecno1=RECNO()
IF !USED('dmphong')
SELECT 0
USE p_cod+'dmphong' ALIAS dmphong
INDEX ON ma_phong TO ma_phong
SET ORDER TO ma_phong
ELSE
SELECT dmPhong
ENDIF
LOCATE FOR ALLTRIM(ma_phong)=ALLTRIM(m.ma_phong)
IF !FOUND()
_form.txtma_phong.value=""
_form.txtma_nha.value=""
_form.txtma_phong.setfocus
_form.refresh
MESSAGEBOX("Khong co phong nay",0+256)
USE IN dmphong
RETURN
ENDIF
m.ma_nha='0'+ALLTRIM(SUBSTR(m.ma_phong,1,1))
USE IN dmphong
SELECT (_oldSelect1)
IF _oldRecno1<=RECCOUNT()
GO _oldRecno1
ENDIF
_oldRecno1=0
_oldSelect1=''
ENDPROC
PROCEDURE form_init
PARAMETERS oForm,cCaption
oForm.setall('FontName',M_font_name)
oForm.setall('FontSize',M_font_size)
oForm.Caption=cCaption
ENDPROC
start
Do SetEnv
PUBLIC P_COD,P_DATA,P_Screen,P_system,P_Prog,P_Img,P_Repo, P_WS, OK
DO Setpath
DO (P_prog + "sysvar")
DO (P_prog + "inivar")
DO DEFINE_WINDOW
SET PROCEDURE TO (P_prog+'S_Lib') ADDITIVE
DO HideToolBar IN p_prog+"mainmenu"
_screen.Caption=M_tencty
_screen.Icon=P_img+"A13.ICO"
_screen.Picture=P_img+'3.JPG'
_screen.Closable= .T.
_vfp.StatusBar="Chuong trinh quan ly"
ON KEY LABEL ALT+Q do end
DO P_prog+"login.fxp"
IF NOT OK
MESSAGEBOX("Sai mat khau")
DO (P_prog+'logout')
RETURN
ENDIF
SET SYSMENU ON
DO P_prog+'mainmenu'
READ EVENTS
ON KEY LABEL ALT+Q
RETURN
READ EVENTS
RETURN
**Thiet lap duong dan
PROCEDUR Setpath
P_COD ='..\cod\'
P_DATA ='..\data\'
P_Screen ='..\Screen\'
P_system ='..\System\'
P_Prog ='..\Prog\'
P_Img ='..\Img\'
P_Repo ='..\Repo\'
P_WS ='..\WS\'
return
PROCEDURE End
CLOSE DATABASES
CLEAR
CLEAR ALL
CLEAR EVENTS
RELEASE ALL
SET SYSMENU TO DEFAULT
do A
return
PROCEDURE SetEnv
CLOSE DATABASES
CLEAR ALL
CLEAR EVENTS
CLEAR
SET DATE french
_vfp.StatusBar=""
SET SYSMENU ON
HIDE WINDOW all
SET DElETED ON
SET AUTO off
SET DEVELO ON
SET SAFETY OFF
RETURN
FUNCTION Change_Color_Of_Browse(nRecord,cOldDynamicBackColor,oBrw)
RETURN oBrw.SetAll("DynamicBackColor","IIF(RECNO()="+STR(nRecord)+",13172190,"+;
IIF(EMPTY(cOldDynamicBackColor),"''",cOldDynamicBackColor)+")","Column")
ENDFUNC
******************* KHAI BAO WINDOW KHI BROW MOT DANH MUC HOAC *******************
PROCEDURE DEFINE_WINDOW
m_ScrRow = SROW()
m_ScrCol = SCOL()
DEFINE WINDOW m_WinBrw FROM 2, 0 TO FLOOR(m_ScrRow) - 2, FLOOR(m_ScrCoL) COLOR SCHEME 10 ;
CLOSE FLOAT GROW MINIMIZE ZOOM SYSTEM FONT m_Font_Name, m_Font_Size - 2 ;
ICON FILE LOCFILE(P_Img+ "A33.Ico")
ENDPROC
sysvar
if !used('sysvar')
select 0
USE (p_system)+'sysvar' order stt alias sysvar
ELSE
select 0
select sysvar
set order to stt
ENDIF
SCAN
bien=sysvar.name
kieu=alltrim(sysvar.type)
giatri=ALLTRIM(value)
*giatri=sysvar.value1
PUBLIC (bien)
if kieu=='C' &&neu kieu bien la char
STORE giatri TO (bien)
ENDIF
if kieu=='N' &&neu kieu bien la nummeric
STORE VAL(giatri) TO (bien)
ENDIF
if kieu=='D' &&neu kieu bien la datatime
STORE ctod(giatri) TO (bien)
ENDIF
if kieu=='Y' &&neu kieu bien la currency
STORE val(substr(giatri,1)) TO (bien)
ENDIF
if kieu=='T' &&neu kieu bien la kieu datetime
STORE ctot(alltrim(giatri)) TO (bien)
ENDIF
if kieu=='L' &&neu kieu bien la kieu logical
STORE ALLTRIM(giatri) TO (bien)
ENDIF
******************************
ENDSCAN
tien_dien
if !used('tien_dien')
USE (P_data+'tien_dien') ALIAS tien_dien
ELSE
SELECT tien_dien
endif
INDEX ON ma_phong TO ma_phong
SET ORDER TO ma_phong
SCAN FOR EMPTY(thang)
replace thang WITH MONTH(DATE())
ENDSCAN
M_skey=M_Nha_QL
oldM_skey=M_skey
M_skey="alltrim(ma_nha)='"+alltrim(M_sKey)+"' AND alltrim(thang)='"+alltrim(M_thang_QL)+"' AND alltrim(nam)='"+alltrim(M_nam_QL)+"'"
select * from tien_dien where &M_skey into table tien_dienTMP
select tien_dienTMP
GO TOP
SCATTER MEMVAR
m.ma_nha=M_Nha_QL
LOCATE FOR ma_phong=ALLTRIM(m.ma_phong)
on key label f7 do (P_prog+"report_td")
DO form (P_screen+'tien_dien')
on key label f7
M_skey=oldM_skey
if used('tien_dienTMP')
USE IN tien_dienTMP
endif
if used('tien_dien')
USE IN tien_dien
endif
delete file tien_dienTMP.dbf
delete file ma_phong.idx
&&alltrim(M_thang_QL)
KẾT LUẬN
Vì thời gian có hạn nên báo cáo thực tập chuyên đề vẫn còn nhiều thiếu sót chưa kịp hoàn thành và sửa đổi . Em rất mong nhận được sự góp ý, nhận xét của các thầy cô khoa tin học kinh tế nói chung và thầy Bùi Thế Ngũ nói riêng. Xin chân thành cảm ơn thầy Bùi Thế Ngũ, đã hướng dẫn em tận tình trong quá trình chọn đề tài và trong quá trình thực tập tổng hợp. Em rất mong sự chỉ bảo tận tình hơn nữa của thầy để đề tài thực tập này được hoàn thành tốt.
Tài liệu tham khảo
Cơ sở dữ liệu ( TS Trần Công Uẩn)
Hệ thống thông tin quản lý (TS. Trương Văn Tú)
Các tài liệu dự án của Công ty cổ phần phần mềm quản trị doanh nghiệp CyberSoft
Mục lục
Các file đính kèm theo tài liệu này:
- 29492.doc