Mục lục
LỜI MỞ ĐẦU 1
I. TỔNG QUAN VỀ CƠ SỞ THỰC TẬP – CÔNG TY CYBERSOFT 1
1. Chức năng và nhiệm vụ cơ bản của CyberSoft. 2
2. Mục tiêu của CyberSoft. 2
3. Cơ cấu tổ chức của CyberSoft. 2
5. Các lĩnh vực hoạt động của CyberSoft. 4
7. Các đối tác chủ yếu. 5
II. ĐỊNH HƯỚNG CHUYÊN ĐỀ THỰC TẬP. 6
1. Giới thiệu đề tài thực tập 6
2. Tính cấp bách của đề tài: 7
Chương II: Cơ sở phương pháp luận cơ bản cho việc nghiên cứu đề tài 9
I. Giới thiệu về mô hình thực thể - quan hệ 9
1. Giới thiệu các khái niệm cơ bản 9
2. Thuộc tính 9
II. Cơ sở dữ liệu và hệ quản trị cơ sở dữ liệu 10
A. Khái niệm chung 10
1. Cơ sở dữ liệu và hệ cơ sở dữ liệu 10
2. Hệ quản trị cơ sở dữ liệu 11
3. Hệ quản trị cơ sở dữ liệu Foxpro 7.0 11
B. Mô hình quan hệ thực thể 11
1. Mô hình quan hệ 1-1 12
2. Mô hình quan hệ 1-m 12
3. Mô hình quan hệ m-m 13
C. Nội dung của việc thiết kế và tạo lập CSDL 13
1. Xác định mục đích của cơ sở dữ liệu 13
2. Phác họa mô hình dữ liệu 14
3. Duyệt lại mô hình dữ liêu 15
4. Xây dựng CSDL 15
III. Quy trình phân tích hệ thống thông tin quản lý 15
1. Quy trình 15
2. Mô hình IFD 29
3.Mô hình DFD 32
4. Mô hình hóa và chuẩn hóa dữ liệu 39
4.1. Mô hình hóa dữ liêu là gì ? 39
4.2. Chất lượng của mô hình dữ liệu 39
4.3. Nâng cao chất lượng của mô hình dữ liệu 40
4.4 Chuẩn hóa 44
a. Chuẩn hóa là gì? 44
b. Sự phụ thuộc hàm 45
c. Dạng chuẩn thứ nhất 45
d. Dạng chuẩn thứ hai 46
6. Các dạng chuẩn khác 48
Chương III: Thiết kế chương trình 48
I. Quy trình phân tích thiết kế chương trình 48
1. Phân tích xác định yêu cầu 48
2. Mô hình IFD của chương trình 49
3.Mô hình DFD của chương trình 51
4. Sơ đồ chức năng 52
5. Thiết kế cơ sở dữ liệu 53
6.Thiết kế cấu trúc chương 58
II. Xây dựng chương trình 59
1. Thiết kế màn hình giao diện 60
2.Thiết kế các báo cáo 63
3. Các modul và mã nguồn chương trình 64
KẾT LUẬN 146
Tài liệu tham khảo 147
Mục lục 147
LỜI MỞ ĐẦU
Trong thời đại công nghệ thông tin ngày nay, tất cả mọi hoạt động đều có sự trợ giúp của máy tính. Trong lĩnh vực quản lý, tin học đóng vai trò đặc biệt quan trọng, bởi sự nhanh chóng, chính xác, khả năng phân tích và tổng hợp thông tin rất cao của các phần mềm. Lợi ích của việc tin học hóa công tác quản lý đã được chứng minh trong thực tế. Một giám đốc muốn biết về tình hình tài chính, tình hình kinh doanh của công ty có thể được cung cấp thông tin một cách nhanh chóng qua hệ thống thông tin kế toán, hệ thống thông tin bán hàng, hệ thống thông tin marketting. Ngược lại một khách hàng có thể muốn biết thông tin về các sản phẩm mình muốn mua thông qua một hệ thống thông tin bán hàng trực tuyến của công ty, sẽ được cung cấop thông tin một cách nhanh chóng và chính xác. Hiện nay tại trung tâm dịch vụ trường Đại học Kinh tế Quốc dân có một phần quản lý là quản lý sinh viên nội trú, hiện tại hầu hết các công việc đều làm thủ công rất phức tạp và mất thời gian. Chính vì vậy mà đề tài này được chọn để đề xuất một giải pháp quản lý mới – tin học hóa hệ thống quản lý, đề tài mang tên “Quản lý sinh viên nội trú trường đại học Kinh tế Quốc dân”. Em xin chân thành cảm ơn các thầy cô giáo trong khoa tin học kinh tế nói chung và thầy Bùi Thế Ngũ nói riêng đã tận tình giúp đỡ em hoàn thành tốt đề tài thực tập tốt nghiệp này.
I. TỔNG QUAN VỀ CƠ SỞ THỰC TẬP – CÔNG TY CYBERSOFT
CyberSoft là Công ty Cổ phần Phần mềm kế toán và quản trị doanh nghiệp được thành lập từ năm 1999 với sự tham gia của các kỹ sư đã từng xây dựng dự án công nghệ thông tin hàng đầu tại Việt Nam. Ngay từ khi thành lập, CyberSoft đã tham gia vào lĩnh vực lập trình phần mềm ứng dụng trong công tác quản lý.
Sau đây là một vài nét tiêu biểu về công ty CyberSoft:
Tên tiếng Việt: Công ty Cổ Phần Phần Mềm Quản trị Doanh nghiệp Cybersoft.
Tên tiếng Anh: CYBERSOFT SOFTWARE SOLUTION PROVIDER
Giám đốc : Nguyễn Cảnh Toàn
Trụ sở chính: 413 Nguyễn Khang – Cầu Giấy – Hà Nội.
Tel: 84-4-7847223 Fax: 84-4-784223
VPĐD: 38 Đinh Công Tráng – TP.Vinh – Nghệ An.
Tel: 84-38-598575 Fax: 84-38-598565
E-mail: Cyber-Soft@hn.vnn.vn
Website: www.CyberSoft.com.vn
1. Chức năng và nhiệm vụ cơ bản của CyberSoft.
CyberSoft là công ty chuyên cung cấp các phần mềm quản lý tài chính kế toán và sản xuất kinh doanh để phục vụ mục tiêu phát triển của từng doanh nghiệp.
2. Mục tiêu của CyberSoft.
CyberSoft đặt mục tiêu cho mình sẽ là nhà cung cấp hàng đầu tại Việt Nam về giải pháp tổng thể cho doanh nghiệp trong việc ứng dụng công nghệ thông tin vào quản trị doanh nghiệp và sản xuất kinh doanh.
Khẩu hiệu của CyberSoft là “ cùng khách hàng đi đến thành công”, vì thế CyberSoft luôn sẵn sàng cung cấp những sản phẩm, dịch vụ tốt nhất, thỏa mãn tối đa nhu cầu của khách hàng. CyberSoft luôn luôn và không ngừng cố gắng phát triển để tạo ra những sản phẩm ngày càng đáp ứng tốt hơn về yêu cầu ngày càng cao của thị trường đặc biệt là trong lĩnh vực nghiên cứu của mình.
3. Cơ cấu tổ chức của CyberSoft.
Hiện nay CyberSoft có khoảng hơn 30 nhân viên có trình độ đại học với các chuyên ngành toán, tin, kế toán, kinh tế và ngoại ngữ. Cơ cấu tổ chức của công ty được mô tả sơ đồ dưới đây:
Sơ đồ tổ chức của Công ty CyberSoft
Phòng kinh doanh: nhiệm vụ của phòng này là thực hiện các nghiệp vụ kế toán của công ty, bao gồm một kế toán, hai nhân viên kinh doanh chuyên thực hiện công việc quảng cáo, giới thiệu sản phẩm, giao dịch với các khách hàng hiện tại và khách hàng tiềm năng nhằm phát triển thị trường.
Phòng dự án và phát triển sản phẩm: làm nhiệm vụ nghiên cứu và phát triển sản phẩm mới, nâng cao khả năng phân tích quản trị của sản phẩm. Phòng này chuyên thực hiện công việc bao gồm xác định yêu cầu, phân tích thiết kế và phát triển sản phẩm, mọi thành viên đều tham gia vào tất cả các công đoạn của công việc mà không phân ra trách nhiệm cụ thể của từng thành viên nào, để tham gia vào được công việc của phòng này, ngoài kiến thức chuyên môn tốt đòi hỏi mỗi thành viên phải là người có kiến thức cơ bản về kinh tế, quản lý và đồng thời thông thạo các nghiệp vụ kinh tế, quản lý, kế toán.
Phòng tư vấn và hỗ trợ khách hàng: làm nhiệm vụ tư vấn và có thể tham gia cùng phòng nghiên cứu và phát triển sản phẩm để phân tích, thiết kế các hệ thống lớn như hệ thống thông tin tài chính kế toán, hệ thống thông tin bán hàng, hệ thông thông tin marketing, hệ thông thông tin quản lý nhân sự và lương, hệ thống thông tin lập kế hoạch, dự toán, hệ thống thông tin quản lý chung tòan doanh nghiệp đồng thời cài đặt, hướng dẫn sử dụng, bảo hành và nâng cấp sản phẩm theo yêu cầu, tư vấn cho doanh nghiệp khi nhu cầu quản lý phát sinh để họ có thể chọn giải pháp tối ưu nhất cho công tác quản lý của mình, công việc chính là làm nhiệm vụ giải đáp thắc mắc, hướng dẫn chi tiết cách khắc phục những tình huống bất thường xảy ra như nhầm lẫn nghiệp vụ, phần mềm có vấn đề cho khách hàng, khách hàng có thể liên hệ với phòng này qua điện thoại, email, fax và nếu cần thì nhân viên của công ty phải trực tiếp đích thân đến tại trụ sở của họ.
Phòng đào tạo: Phòng này chuyên về công việc đào tạo mới, đào tạo lại cho các doanh nghiệp, đồng thời đạo tạo mới và đào tạo lại nhằm nâng cao trình độ để đáp ứng nhu cầu phát triển nguồn nhân lực và tuyển chọn nhân viên mới cho nhu cầu nguồn nhân lực của công ty, hàng năm phòng này vẫn tiếp đón và tuyển chọn những nhân viên mới từ những sinh viên thực tập từ các trường đại học ngành công nghệ thông tin và kế toán.
5. Các lĩnh vực hoạt động của CyberSoft.
Lĩnh vực kinh doanh chủ yếu của CyberSoft là về tài chính kế toán và quản trị doanh nghiệp, tuy nhiên nhìn vào sơ đồ tổ chức của công ty có thể thấy công ty chủ yếu đáp ứng các dịch vụ sau:
Dịch vụ phát triển phần mềm “may đo”: CyberSoft thực hiện khảo sát và xây dựng các phần mềm “may đo” với các doanh nghiệp có quy mô lớn theo đặc thù riêng có của doanh nghiệp.
Dịch vụ tư vấn: Trên cơ sở khảo sát thực trạng và yêu cầu của từng doanh nghiệp, CyberSoft sẽ đưa ra các đề xuất, các phương án về xây dựng hệ thống thông tin của doanh nghiệp. Với các chuyên gia đầy nhiệt tình và trách nhiệm công việc, với sự hiểu biết sâu sắc về nghiệp vụ và kinh nghiệm triển khai ứng dụng cho rất nhiều doanh nghiệp sẽ đưa ra giải pháp tối ưu cho khách hàng.
Dịch vụ hỗ trợ và bảo trì: theo yêu cầu của khách hàng, CyberSoft ký kết và thực hiện hợp đồng dịch vụ về hỗ trợ và bảo trì hệ thống thông tin quản trị doanh nghiệp. CyberSoft có riêng một hệ thống thông tin “CyberSoft Assistant” làm nhiệm vụ lưu trữ các vấn đề vướng mắc thường gặp và cách thức giải quyết những vấn đề đó, các nhân viên của CyberSoft luôn sẵn sàng hỗ trợ và giải quyết khó khăn cho khách hàng. Việc đó làm cho những khó khăn của khách hàng được giải quyết một cách nhanh nhất.
Dịch vụ đào tạo: CyberSoft thực hiện đào tạo lại và đào tạo mới cho các đơn vị doanh nghiệp, với những doanh nghiệp có quy mô lớn CyberSoft mở hẳn trung tâm đào tạo cho các nhân viên kế toán.
Ngoài ra CyberSoft còn tham gia đào tạo kế toán trên máy cho các trường đại học và trung học chuyên nghiệp, các trung tâm đào tạo kế toán và quản lý, hỗ trợ trong việc cung cấp các phần mềm, bài giảng và số liệu thực hành về kế toán.
7. Các đối tác chủ yếu.
Công ty xi măng Hoàng Mai
Công ty xi măng Hải Phòng
Công ty Hưng Long
Công ty cổ phần xây dựng đường bộ số 1 Hà Tĩnh
Kinh doanh nhà Thanh Hóa
Nhà máy thuốc lá Thanh Hóa
Công ty đường Bình Định
Tổng công ty vận tải Hà Nội
Tổng công ty chè
Tổng công ty Sông Mã
Viện dầu khí (HN, SG)
159 trang |
Chia sẻ: lvcdongnoi | Lượt xem: 2388 | Lượt tải: 1
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:
- Quản lý sinh viên nội trú trường đại học Kinh tế Quốc dân.DOC