Tải bản đầy đủ (.pdf) (120 trang)

Giáo trình: Hệ quản trị cơ sở dữ liệu Visual Foxpro docx

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (3.18 MB, 120 trang )




Giáo trình

Hệ quản trị cơ sở dữ
liệu Visual Foxpro
Bài 1 - Mở đầu
I. Giới thiệu
 Nội dung môn học
Khai thác hệ quản trị cơ sở dữ liệu Visual Foxpro
Tiếp cận với công việc xây dựng một hệ thống quản lý
 Tài liệu tham khảo
[1] - Sử dụng và khai thác Microsoft Visual Foxpro 6.0 - Nguyễn Ngọc Minh, Nguyễn Đình
Đề - NXB Lao động 2003
[2] - Bộ Help MSDN của Microsoft (tiếng anh)
[3] - Phân tích và thiết kế hệ thống thông tin - Đào Thanh Tĩnh - NXB Quân đội 2004
[4] - Help của Visual Foxpro
II. Hệ quản trị csdl
 Hệ quản trị cơ sở dữ liệu (Database Management System) là một hệ thống phần mềm máy tính
được thiết kế chuyên biệt cho bài toán quản lý. Mô hình dữ liệu của các hệ quản trị csdl là mô
hình quan hệ.
 Hệ quản trị csdl cung cấp 2 tính năng chính sau:
1- Lưu trữ, quản lý dữ liệu
2- Công cụ truy cập, khai thác dữ liệu
 Các Hệ quản trị csdl thường dùng hiện nay:
1- SQL Server: Phát triển bởi Microsoft; là hệ CSDL dùng cho các tổ chức, doanh nghiệp lớn;
Khả năng đáp ứng trên mạng cao; Đảm bảo tính an toàn, bảo mật.
2- Oracle: Phát triển bởi Oracle; là hệ CSDL dùng cho các tổ chức, doanh nghiệp lớn; Khả
năng đáp ứng trên mạng cao; Đảm bảo tính an toàn, bảo mật. (Được đánh giá là mạnh hơn
SQL verver và thực tế giá phần mền này cũng đắt hơn SQL Server)


3- Foxpro, Access: Phát triển bởi Microsoft; là hệ CSDL dùng cho các tổ chức, doanh nghiệp
vừa và nhỏ; có khả năng triển khai trên mạng; tính bảo mật, an toàn là không cao.
4- MySQL: Hệ CSDL mã nguồn mở, được sử dụng chủ yếu cho các ứng dụng Web.
III. Mô hình dữ liệu quan hệ
Trong mô hình này người ta mô tả các [đối tượng] (như con người, hàng hóa, môn học ) thông
qua các bảng (Table), mỗi bảng lại được mô tả qua các trường dữ liệu.
Simpo PDF Merge and Split Unregistered Version -
 Bảng (Table): Mô tả qua các cột - trường (Field) và các dòng - Bản ghi (Record) (ví dụ) (Mỗi
bảng có thể hiểu như một [quan hệ])
 Trường (Field): Mô tả 1 thuộc tính nào đó của đối tượng thông qua tên trường (Field name),
kiểu (Type) và động rộng (Width) (ví dụ).
 Bản ghi (Record): Tập các giá trị cụ thể của các trường của cùng 1 đối tượng (ví dụ).
 Quan hệ giữa các bảng (Relationship): Là cách thức mô tả một đối tượng lớn hơn từ những đối
tượng nhỏ (ví dụ).
IV. bài toán quản lý
 Bài toán quản lý có ở hầu hết mọi đơn vị, tổ chức, thậm chí với cả một số cá nhân. Những bài
toán quản lý có thể kể đến như:
o Quản lý nhân sự
o Quản lý hàng hóa
o Quản lý kế toán
o Quản lý lương
o Quản lý sinh viên, điểm
o Quản lý sách
o
 Đặc điểm chung của những bài toán này:
o Không cần sử dụng những thuật toán phức tạp mà yêu cầu chủ yếu là: Thống kê, tìm
kiếm, lọc thông tin.
o Khối lượng dữ liệu thường là rất lớn. Đặc điểm này thực sự là một thách thức lơn nếu
chúng ta phải quản lý thủ công (việc tìm kiếm, thống kê, lọc -> mất rất nhiều thời gian
và không chính xác)

Bài tập môn học - Xây dựng hệ quản lý điểm
A. Mô tả bài toán
 Bài toán Quản lý điểm (đối với các trường Đại học, Cao đẳng): Công tác quản lý điểm (hay
kết quả học tập) của sinh viên đóng vai trò hết sức quan trọng đối với hoạt động của các trường
ĐH và CĐ. Trong khoảng 10 năm trở lại đây công tác quản lý điểm (ở một số trường trong đó
có HVKTQS) đã dần được tin học hóa nhằm đem lại hiệu quả cao hơn, tin cậy hơn.
Simpo PDF Merge and Split Unregistered Version -
 Bài toán Quản lý điểm đặt ra các vấn đề cơ bản như sau: Thể hiện được mô hình tổ chức quản
lý sinh viên theo khóa, theo lớp, các loại hình đào tạo; Quản lý các môn học của các lớp theo
học kỳ và kết quả học tập của sinh viên đối với các môn học đó. Hệ thống còn phải cho phép
tạo ra các báo cáo từ kết quả học tập của sinh viên nhằm phục vụ công tác điều hành huấn
luyện như: Tổng kết kết quả học tập theo kỳ, theo năm, theo khóa; In Danh sách thi lại; In
Bảng điểm học kỳ; In Bảng điểm các nhân…
Ngoài các chức năng chính như trên, hệ thống này còn cần thêm một số chức năng khác như:
cập nhật các loại danh mục dữ liệu (danh mục lớp, danh mục loại hình đào tạo, danh mục
ngành học …); các chức năng sao chép/copy dữ liệu; chuyển đổi – tách lớp; các chức năng trợ
giúp …
 Có thể mô tả sơ lược các công việc chính (đối với 1 khóa học) trong hệ thống quản lý điểm
như sau:
1. Với mỗi khóa học mới -> cần phải có mô tả cho khóa mới này.
2. Mô tả danh mục các lớp cho khóa mới.
3. Với mỗi lớp đã có cập nhật danh sách sinh viên của lớp
4. Với mỗi học kỳ cần cập nhật danh sách môn học/lớp
5. Khi có kết quả các môn học -> Cập nhật điểm môn học/lớp
6. Tổng kết kết quả học tập học kỳ, năm học, khóa học
7. In Danh sách thi lại
8. In Bảng điểm học kỳ
9. In Bảng điểm các nhân.
B. Yêu cầu
Xây dựng hệ thống Quản lý điểm phục vụ công tác quản lý điểm của các trường ĐH và CĐ với

các yêu cầu sau:
1. Cập nhật từ điển
 Cập nhật danh mục khoá
 Cập nhật danh mục lớp
 Cập nhật danh mục ngành học
 Cập nhật danh mục loại hình đào tạo
 Cập nhật danh mục giáo viên
2. Cập nhật dữ liệu
 Cập nhật hồ sơ sinh viên
Simpo PDF Merge and Split Unregistered Version -
 Cập nhật môn học/lớp/học kỳ
 Cập nhật điểm thi kết thúc môn
3. Báo cáo/ thống kê
 In danh sách lớp
 In Danh sách thi
 In phiếu điểm
 In tổng kết kết quả học kỳ
 In tổng kết kết quả năm học
 In tổng kết kết quả toàn khóa học
 In bảng điểm học kỳ
 In bảng điểm cá nhân
C. Một số gọi ý
 Các bảng dữ liệu trong hệ thống quản lý điểm có thể bao gồm các bảng sau:
1. Danh mục khoá DMKHOA.DBF
Tên trường Kiểu Độ rộng Ghi chú
Ma C 10 Mã khoá (Khoá chính)
Ten C 30 Tên khoá
Nienkhoa C 11 Niên khoá (Ghi 2004 – 2005, hoặc 2005 – 2006 …)
Ghichu C 200 Ghi chú
2. Danh mục lớp DMLOP.DBF

Tên trường Kiểu Độ rộng Ghi chú
Ma C 10 Mã lớp (khoá chính)
Ten C 30 Tên lớp
NgayKG D 8 Ngày khai giảng
NgayBG D 8 Ngày bế giảng
Manganh C 10 Mã ngành (khoá ngoài – dùng để đặt liên kết đến bảng
DMNGANH)
MaLHDT C 10 Mã loại hình đào tạo (khoá ngoài – dùng để đặt liên kết
đến bảng DMLHDT)
Makhoa C 10 Ma khoá (khoá ngoài – dùng để đặt quan hệ đến bảng
DMKHOA)
Ghichu C 200 Ghi chú
3. Danh mục ngành học DMNGANH.DBF
Tên trường Kiểu Độ rộng Ghi chú
Ma C 10 Mã ngành (khoá chính)
Simpo PDF Merge and Split Unregistered Version -
Ten C 30 Tên ngành
Ghichu C 200 Ghi chú
4. Danh mục loại hình đào tạo DMLHDT.DBF
Tên trường Kiểu Độ rộng Ghi chú
Ma C 10 Mã loại hình đào tạo (khoá chính)
Ten C 30 Tên loại hình
Ghichu C 200 Ghi chú
5. Hồ sơ sinh viên HOSOSV.DBF
Tên trường Kiểu Độ rộng Ghi chú
Ma C 10 Mã sinh viên (Khoá chính)
Mã sinh viên có dạng XXXXYYYYYY, trong đó XXXX
có dạng là năm sinh viên đó trúng tuyển vào trường,
YYYYYY là số thứ tự của sinh viên nhập học năm XXXX
(Ví dụ: mã 2004000012 là mã của sinh viên thứ 12 trúng

tuyển năm 2004….)
HoTen C 30 Họ tên sinh viên
Ngaysinh D 8 Ngày sinh
Gioi L 1 Logic, .T. – Nam, .F. – Nữ
Hokhau C 200 Hộ khẩu trường trú
Diachi C 200 Địa chỉ
Malop C 10 Mã lớp (khoá ngoài – dùng để liên kết đến bảng DMLOP)
Ghichu C 200 Ghi chú
6. Môn học MONHOC.DBF
Tên trường Kiểu Độ rộng Ghi chú
Ma C 10 Mã môn (Khoá chính)
Tenmon C 50 Tên môn
Sotiet N 3 Số tiết
SoDVHT N 3,1 Số đơn vị học trình
Hocky N 1 Học kỳ (ghi 1 – Học kỳ 1, ghi 2 – Học kỳ 2)
Namhoc N 4 Năm học (Ghi năm học đầu trong )
NgayThi D 8 Ngày thi
Malop C 10 Mã lớp (khoá ngoài – dùng để liên kết đến bảng DMLOP)
MaGV C 10 Mã giáo viên (Khoá ngoài – dùng để liên kết đến bảng
GIAOVIEN)
Ghichu C 200 Ghi chú
Simpo PDF Merge and Split Unregistered Version -
7. Bảng GIAOVIEN.DBF
Tên trường Kiểu Độ rộng Ghi chú
Ma C 10 Mã giáo viên
Hoten C 30 Họ tên giáo viên
Hocham C 10 Học hàm (GV, GVC, GS, PGS)
Hocvi C 10 Học vị (CN, KS, ThS, TS, TSHK)
Ghichu C 200 Ghi chú
8. Bảng điểm DIEM.DBF

Tên trường Kiểu Độ rộng Ghi chú
Mamon C 10 Mã môn
MaSV C 10 Mã sinh viên
Diem1 N 5,2 Điểm thi lần 1
Diem2 N 5,2 Điểm thi lần 2
Diem3 N 5,2 Điểm thi lần 3
Ghichu C 200 Ghi chú
 Các chức năng của chương trình có thể thiết kế như sau:
o Cập nhật danh mục khoá
Giao diện này có dạng như sau:

A1 – Danh sách khoá (Sử dụng GRID)
Khi chọn 1 dòng (1 khoá) thông tin về khoá được chọn sẽ hiển thị trong ô A2
A2 – Chi tiết khoá được chọn
A3 Các chức năng : Thêm, sửa, xoá …(1 khoá)
o Cập nhật danh mục lớp
A1
Chọn khoá : ……… (sử dụng ô combox)
Chức năng [OK]
Khi chọn OK, danh sách các lớp của khoá
được chọn sẽ hiển thị trong ô A2
A3 – Chi tiết về lớp được chọn
A2 – Danh sách lớp của khoá được chọn (Sử
dụng GRID)
Khi chọn 1 dòng (1 lớp) thông tin chi tiết về
lớp này sẽ hiển thị trong ô A3
Các chức năng: Thêm, sửa, Xoá … (1 lớp)
o Cập nhật danh mục ngành
Tương tự cập nhật danh mục khoá
Simpo PDF Merge and Split Unregistered Version -

o Cập nhật danh mục loại hình đào tạo
Tương tự cập nhật danh mục khoá
o Cập nhật danh mục giáo viên
Tương tự cập nhật danh mục khoá
o Cập nhật hồ sơ sinh viên
Giao diện này có dạng như sau:
A1
Chọn khoá: … (Sử dụng ô Combox)
Chọn lớp: …… (Sử dụng ô Combox)
Chức năng [OK]
Khi chọn [OK] danh sách sinh viên của
lớp/khoá đã chọn sẽ hiển thị trong ô A2
A3 - Chi tiết về sinh viên được chọn
A2 – Danh sách sinh viên của lớp/khoá đã
chọn (sử dụng GRID)
Khi chọn 1 dòng (1 sinh viên) thì thông tin chi
tiết về sinh viên này sẽ hiển thị trong ô A3
Các chức năng: Thêm, Sửa, Xoá … (1 sinh
viên)
o Cập nhật môn học/lớp/học kỳ
Giao diện này có dạng như sau:
A1
Chọn khoá: …. (sử dụng ô Combox)
Chọn lớp: …. (Sử dụng ô Combox)
Chọn học kỳ: …. Năm học: ………
Chức năng [OK]
Khi chọn [OK] danh sách môn học của
lớp/khoá/học kỳ-năm học đã chọn sẽ hiển thị
trong ô A2
A3 – Chi tiết về môn học được chọn

A2 – Danh sách môn học của lớp/khoá/học kỳ-
năm học đã chọn (sử dụng GRID)
Khi chọn 1 dòng (1 môn học) thì thông tin chi
tiết về môn học này sẽ hiển thị trong ô A3
Các chức năng: Thêm, Sửa, Xoá … (1 môn
học)
o Cập nhật điểm thi kết thúc môn
Giao diện này có dạng như sau:
A1
Chọn khoá: …. (sử dụng ô Combox)
Chọn lớp: …. (Sử dụng ô Combox)
Simpo PDF Merge and Split Unregistered Version -
Chọn học kỳ: …. Năm học: ………
Chọn môn học: ………….(sử dụng ô Combox)
Thi lần: ……… (1 – thi lần đầu, 2 thi lại lần 1, 3 – thi lại lần 2)
Chức năng [OK]
Khi chọn [OK] danh sách “lớp-môn học” đã chọn sẽ hiển thị trong ô A2
A2 – Danh sách “lớp-môn học” đã chọn (Sử dụng GRID)
(nếu là thi lần 1 – cho phép nhập vào cột điểm 1, lần 2 cho phép nhập vào cột điểm 2, lần 3 cho
phép nhập vào cột điểm 3)
Lưu ý: Danh sách “lớp-môn học” do chương trình tự động sinh ra, cần lưu ý khi thiết kế để tránh
sinh ra nhiều lần.
o In danh sách lớp
Giao diện này có dạng như sau:
A1
Chọn khoá: …. (sử dụng ô Combox)
Chọn lớp: …. (Sử dụng ô Combox)
Chức năng: Xem, In, Thoát
(chức năng Xem cho phép xem report “danh sách lớp” trên màn hình
chức năng In cho phép đưa report “danh sách lớp” ra máy in)

Report “danh sách lớp” có dạng như sau:
Học viện KTQS
Phòng Đào tạo
Danh sách lớp
Lớp: ……………………, Khoá: …………………
STT Mã SV Họ tên Ngày sinh Hộ khẩu Ghi chú
… … … … … …

o In danh sách thi
Giao diện này có dạng như sau:
A1
Chọn khoá: …. (sử dụng ô Combox)
Chọn lớp: …. (Sử dụng ô Combox)
Simpo PDF Merge and Split Unregistered Version -
Chọn học kỳ: …. Năm học: ………
Chọn môn học: ………….(sử dụng ô Combox)
Thi lần: ……… (1 – thi lần đầu, 2 thi lại lần 1, 3 – thi lại lần 2)
Chức năng: Xem, In, Thoát
(chức năng Xem cho phép xem report “danh sách thi” trên màn hình
chức năng In cho phép đưa report “danh sách thi” ra máy in)
Report “Danh sách thi” có dạng như sau:
Học viện KTQS
Phòng Đào tạo
Danh sách thi
Lớp: ………………… , khoá:……………………
Môn học: …………………….Học kỳ: năm học:………
Giáo viên: …………………… , ngày thi:………………
STT Mã SV Họ tên Ngày sinh Đề số Kí nhận Ghi chú
… … … … … … …
Giáo viên coi thi (Ký và ghi rõ họ tên)



o In phiếu điểm
Giao diện này có dạng như sau:
A1
Chọn khoá: …. (sử dụng ô Combox)
Chọn lớp: …. (Sử dụng ô Combox)
Chọn học kỳ: …. Năm học: ………
Chọn môn học: ………….(sử dụng ô Combox)
Thi lần: ……… (1 – thi lần đầu, 2 thi lại lần 1, 3 – thi lại lần 2)
Chức năng: Xem, In, Thoát
(chức năng Xem cho phép xem report “phiếu điểm” trên màn hình
chức năng In cho phép đưa report “phiếu điểm” ra máy in)
Report “phiếu điểm” có dạng như sau:
Học viện KTQS
Phòng Đào tạo
Phiếu điểm
Lớp: ………………… , khoá:……………………
Simpo PDF Merge and Split Unregistered Version -
Môn học: …………………….Học kỳ: năm học:………
Giáo viên: …………………… , ngày thi:………………
STT Mã SV Họ tên Ngày sinh Đề số Điểm Ghi chú
… … … … … … …
Giáo viên chấm thi (Ký và ghi rõ họ tên)


o In tổng kết kết quả học kỳ
Giao diện này có dạng như sau:
A1
Chọn khoá: …. (sử dụng ô Combox)

Chọn lớp: …. (Sử dụng ô Combox)
Chọn học kỳ: …. Năm học: ………
Chức năng: Xem, In, Thoát
(chức năng Xem cho phép xem report “Tổng kết học kỳ” trên màn hình
chức năng In cho phép đưa report “Tổng kết học kỳ” ra máy in)
Report “Tổng kết học kỳ” có dạng như sau:
Học viện KTQS
Phòng Đào tạo
Tổng kết kết quả học kỳ
Học kỳ: năm học:………
Lớp: ………………… , khoá:……………………

STT Mã SV Họ tên Ngày sinh Điểm TBC Xếp loại Ghi chú
… … … … … … …
Xếp loại theo điểm trung bình chung được tính như sau:
Điểm TBC>=9 -> Xuất sắc; Điểm TBC>=8 -> Giỏi; Điểm TBC>=7 -> Khá; Điểm TBC>=6 ->
Trung bình khá; Điểm TBC>=5 -> Trung bình; Điểm TBC<9 -> Không đạt

o In tổng kết kết quả năm học
Giao diện này có dạng như sau:
A1
Chọn khoá: …. (sử dụng ô Combox)
Chọn lớp: …. (Sử dụng ô Combox)
Simpo PDF Merge and Split Unregistered Version -
Chọn Năm học: ………
Chức năng: Xem, In, Thoát
(chức năng Xem cho phép xem report “Tổng kết năm học” trên màn hình
chức năng In cho phép đưa report “Tổng kết năm học” ra máy in)
Report “Tổng kết năm học” có dạng như sau:
Học viện KTQS

Phòng Đào tạo
Tổng kết kết quả năm học
Năm học:………
Lớp: ………………… , khoá:……………………

STT Mã SV Họ tên Ngày sinh Điểm TBC Xếp loại Ghi chú
… … … … … … …
Xếp loại theo điểm trung bình chung được tính như sau:
Điểm TBC>=9 -> Xuất sắc; Điểm TBC>=8 -> Giỏi; Điểm TBC>=7 -> Khá; Điểm TBC>=6 ->
Trung bình khá; Điểm TBC>=5 -> Trung bình; Điểm TBC<9 -> Không đạt

o In tổng kết kết quả toàn khoá
Giao diện này có dạng như sau:
A1
Chọn khoá: …. (sử dụng ô Combox)
Chọn lớp: …. (Sử dụng ô Combox)
Chức năng: Xem, In, Thoát
(chức năng Xem cho phép xem report “Tổng kết khoá học” trên màn hình
chức năng In cho phép đưa report “Tổng kết khoá học” ra máy in)
Report “Tổng kết năm học” có dạng như sau:
Học viện KTQS
Phòng Đào tạo
Tổng kết kết quả khoá học
Lớp: ………………… , khoá:……………………
STT Mã SV Họ tên Ngày sinh Điểm TBC Xếp loại Ghi chú
… … … … … … …
Xếp loại theo điểm trung bình chung được tính như sau:
Simpo PDF Merge and Split Unregistered Version -
Điểm TBC>=9 -> Xuất sắc; Điểm TBC>=8 -> Giỏi; Điểm TBC>=7 -> Khá; Điểm TBC>=6 ->
Trung bình khá; Điểm TBC>=5 -> Trung bình; Điểm TBC<9 -> Không đạt

o In bảng điểm học kỳ
Giao diện này có dạng như sau:
A1
Chọn khoá: …. (sử dụng ô Combox)
Chọn lớp: …. (Sử dụng ô Combox)
Chọn học kỳ: …. Năm học: ………
Chức năng: Xem, In, Thoát
(chức năng Xem cho phép xem report “Bảng điểm học kỳ” trên màn hình
chức năng In cho phép đưa report “Bảng điểm học kỳ” ra máy in)
Report “Bảng điểm học kỳ” có dạng như sau:
Học viện KTQS
Phòng Đào tạo
Bảng điểm học kỳ
Học kỳ: năm học:………
Lớp: ………………… , khoá:……………………
STT Mã SV Họ tên Môn 1 Môn 2 … … … … TBC
… … … … … … … … … …

o In bảng điểm cá nhân
Giao diện này có dạng như sau:
A1
Chọn khoá: …. (sử dụng ô Combox)
Chọn lớp: …. (Sử dụng ô Combox)
Chọn sinh viên: ……………………(sử dụng Combox)
Chức năng: Xem, In, Thoát
(chức năng Xem cho phép xem report “Bảng điểm cá nhân” trên màn hình
chức năng In cho phép đưa report “Bảng điểm cá nhân” ra máy in)
Report “Bảng điểm cá nhân” có dạng như sau:
Học viện KTQS
Phòng Đào tạo

Bảng điểm cá nhân
Simpo PDF Merge and Split Unregistered Version -
Họ tên: ……………………… , Ngày sinh
Loại hình đào tạo: ……………………, Ngành:…………………., Khoá học: ………
STT Mã môn Tên
môn
Số
ĐVHT
Điểm 1

Điểm 2

Điểm 3

Ghi chú

Điểm trung bình chung toàn khoá: ………….
Xếp loại: ……………………….


Simpo PDF Merge and Split Unregistered Version -
Bài 2 - Tổng quan về visual foxpro
I. Cài đặt visual foxpro
 Công cụ Visual Foxpro 6.0 là một thành phần trong bộ Visual Studio của Microsoft. Do đó cần
cài đặt bộ Visual Studio và lựa chọn thành phần Visual Foxpro.
[Start menu -> Visual Foxpro một thành phần của bộ Visual Studio]
 Bộ Visual Foxpro 7.0 (8.0, 9.0) được phát triển độc lập do đó có thể cài đặt riêng.
 Việc cài đặt các công cụ này tương đối đơn giản và giống với các phần mềm khác. Do đó việc
cài đặt công cụ này các bạn tự tham khảo.
II. Một số thành phần trong giao diện của Visual foxpro

[Chạy Foxpro -> Giao diện chính của Visual Foxpro 6.0]
 Cửa sổ lệnh (Command Windows)
Cho phép thực hiện các câu lệnh (Command).

Ví dụ: Lệnh Create, Use, Browse
[Chạy Foxpro -> Cửa sổ lệnh]
 Các menu của Foxpro (Tham khảo tài liệu)
 Các Tools bar của Foxpro (tham khảo tài liệu)
 Tạo mới một Project
Việc phát triển một ứng dụng trong Visual Foxpro thường được tổ chức thành một Project - Dự
án.
Việc tạo mới một Project có thể được thực hiện bằng 1 trong hai cách sau:
Cách 1: Trong cửa sổ lệnh gõ vào lệnh CREATE PROJECT <Tên Project>
Cách 2: Vào menu File ->Chọn New, khi đó giao diện New của Visual Foxpro xuất hiện như
hình:
Simpo PDF Merge and Split Unregistered Version -

Tiếp đến chọn File type = Project (Mặc định) rồi chọn New file để tạo một Project trống hoặc
Wizard để tạo một Project theo một trong các mẫu thiết kế sẵn của Microsoft, ở đây chúng ta
sẽ chọn New file. Khi chọn New file hộp thoại Create hiển thị cho phép nhập vào tên project
cần tạo, tiếp chọn chọn Save.
Kết thúc việc tạo mới cửa sổ Project Manager xuất hiện (xem phần tiếp theo) cho phép quản lý,
làm việc với Project này.
 Cửa sổ Project (Project Manager)
[Chạy Foxpro -> Project Manager]
Các thành phần chính trong Project Manager (Giới thiệu chi tiết các thành phần này)
+ Data: Database, Free Tables, Queries
+ Documents: Forms, Reports, Labels.
+ Class
+ Code: Program, API Libraries, Applications

+ Other: Menu, Text file, Other file
III. Những nét đặc trung cơ bản
1. Công cụ quản lý ứng dụng - Project manager đem lại một cách nhìn tổng quan, hiệu quả
trong việc phát triển một ứng dụng nào đó.
2. Công cụ trực quan cho phép thiết kế giao diện được nhanh chóng, đẹp.
Simpo PDF Merge and Split Unregistered Version -
3. Công cụ Report Designer tiện dụng, cho phép tạo ra nhiều report đa dạng.
4. Công cụ tool tip trong Visual Foxpro 7.0 trợ giúp nhanh và hữu hiệu với việc lập trình.
Bài tập
1. Cài đặt Visual Foxpro 6.0 hoặc 7.0
2. Tạo thư mục QLDIEM trên ổ đĩa C:
3. Tạo shortcut trên Destop đến chương trình Visual Foxpro và đặt lại thuộc tính [Start in] vào
thư mục C:\QLDIEM (như hình vẽ).

4. Tạo Project QLDIEM trống (Project sẽ được lưu trong thư mục C:\QLDIEM).


Simpo PDF Merge and Split Unregistered Version -
Bài 3 - Các thành phần cơ bản của ngôn ngữ
I. từ khóa, kí hiệu, LệnH
 Từ khóa (Key Word): Là các từ mà Visual Foxpro đã sử dụng cho một mục đích nào đó. Và
người dùng không được phép đặt tên trùng với từ khóa. Tham khảo tài liệu về tất cả các khóa
của Visual Foxpro. Trong Foxpro từ khoá có thể không cần viết đầy đủ mà chỉ cần viêt 4 ký tự
đầu của từ khoá đó, ví dụ từ khoá CREATE có thể chỉ cần viết Crea (Visual Foxpro không
phân biệt chữ hoa, chữ thường).
 Kí hiệu comment: Đối với phần cuối 1 dòng dùng kí tự &&
Với cả dòng dùng ký tự * hoặc &&
 Lệnh của Visual Foxpro
Trong Visual Foxpro có hia loại câu lệnh: 1. Các câu lệnh có thể thực hiện trực tiếp từ cửa sổ
lệnh (Command Windows) - gọi là Lệnh trực tiếp , 2. Các lệnh chỉ thực hiện trong chương

trình. Các lệnh trực tiếp cũng thực hiện được trong chương trình.
Cấu trúc lệnh trực tiếp của Foxpro có dạng:
<Động từ> [Các tham số] 
Trong đó: <Động từ> - Động từ tiếng anh (tương ứng với công việc cần làm); [Tham số] - Các
tham số trong lệnh của fox có thể có, có thể không, hoặc có thể có nhiều; trường hợp có nhiều
tham số thì thứ tự các tham số này có thể không quan trọng.
Một số lệnh trực tiếp của Visual Foxpro
1. Lệnh ?, ?? -> In kết quả lên màn hình
2. QUIT -> Thoát khỏi foxpro
3. CLEAR -> Xoá màn hình
4. SET DEFAULT TO <Path> -> Thiết lập đường dẫn mặc định
5. SET DATE <FRENCH | AMERICA> -> Thiết lập ngày tháng
II. kiểu dữ liệu
Kiểu dữ liệu là thuộc tính gắn liền với biến hay trường trong các bảng. Các kiểu dữ liệu trong
Visual Foxpro gồm có: Character (Xâu kí tự), Date và DateTime (Ngày, giờ), Currency (Tiền tệ),
Logic, Numeric (Số); các kiểu chỉ dùng cho các trường của bảng gồm có: Memo (Văn bản),
General (Tổng hợp - ảnh).
1. Character
Simpo PDF Merge and Split Unregistered Version -
Là xâu ký tự a->z, A->Z, 0 ->9 và một số các ký tự khác như + ,*, /, = ….
Hằng xâu kí tự: Đặt trong dấu “”, ‘’, hoặc []; ví dụ “Hà nội”, ‘Việt nam’ hoặc [Visual Fox]
Các phép toán:
+: Nối chuổi 2 vào chuổi 1.
-: Nối 2 chuỗi nhưng huỷ bỏ các khoảng trắng trước và sau mỗi chuỗi.
$: Chứa ở trong (st1$st2 – st1 có trong st2 ->TRUE, ngược lại ->FALSE)
2. Date and DateTime
Kiểu ngày, giờ dùng 8 bytes để lưu trữ.
Hằng Date và DateTime: {^yyyy-mm-dd [hh[:mm[:ss]][alp]]}; ví dụ: {^2005-12-10}, {^2005-12-
10 10:20:25}
Các phép toán:

Ngày + Số = Ngày
Số + Ngày = Ngày
Ngày - Số = Ngày
Ngày - Ngày = Số
Tương tự cho ngày giờ
3. Currency
Kiểu tiền tệ (thực chất là kiểu số và thêm kí tự tiền $ hoặc ký tự bất kỳ khác) vào số đó. Kiểu này
thường ít được sử dụng.
4. Logic
Kiểu logíc, tập giá trị là Đúng hoặc Sai
Hằng Logic: .T. ->TRUE đúng (hoặc .t.); .F. ->FALSE sai (hoặc .f.)
Các phép toán: NOT, AND, OR.
5. Numeric
Kiểu số, dùng tối đa 20 byte.
Hằng số: 10, 20, 15.7
Các phép toán: +, - , *, /, ^ (mũ), % (chia lấy phần dư)
6. Memo
Simpo PDF Merge and Split Unregistered Version -
Kiểu kí ức, dùng 4 byte để ánh xạ đến 1 file khác có phần mở rộng là fpt. Kiểu này cho phép lưu 1
văn bản rất dài.
7. General
Kiểu kí ức, dùng 4 byte để ánh xạ đến 1 file khác có phần mở rộng là fpt. Kiểu này cho phép lưu 1
đối tượng bất kỳ như file văn bản, file word, file excel, file ảnh và thường được sử dụng để lưu trữ
file ảnh.
III. Biến
Có 3 loại biến: Biến do người sử dụng tự định nghĩa: Biến là trường của bảng đang mở; hoặc Biến
hệ thống (do Visual Foxpro tạo ra).
Đối với các biến do người sử dụng định nghĩa:
 Là đối tượng lưu trữ dữ liệu trong bộ nhớ, được xác định qua tên biến, kiểu và phạm vi tác
động của biến

o Tên biến: Dài không quá 254 kí tự, có thể dùng các chữ cáI, chữ số, dấu gạch dưới (_)
nhưng không được bắt đầu bằng chữ số (và không được trùng với từ khoá).
o Kiểu: Các kiểu dữ liệu kể trên trừ kiểu General. Kiểu của biến trong Visual Foxpro có thể
thay đổi.
o Phạm vi tác động của biến phụ thuộc vào vị trí mà nó được khai báo. Ví dụ
Chương trình chính
Biến A
Chương trình Con 1
Biến B
Gọi chương trình con 2

Chương trình con 2
Biến C


Trong ví dụ trên: Biến A có tác động trong toán bộ chương trình chính, chương trình con 1 và
chương trình con 2; Biến C chỉ có tác động trong chương trình con 2; Biến B có tác động trong
chương trình con 1, nếu trong chương trình con 1 có lời gọi chương trình con 2 thì biến B có thể
Simpo PDF Merge and Split Unregistered Version -
tác động trong chương trình con 2 (nhưng nếu lời gọi chương trình con 2 tại vị trí khác mà ở đó
không khai báo B thì lúc đó sẽ phát sinh lỗi).
 Khai báo biến: Trong Visual Foxpro thực ra không có khảI niệm khai báo biến (như trong
PASCAL) mà các biến sẽ được sinh ra khi thực hiện lệnh gán (=) hoặc lệnh STORE. Ví dụ
o A=150 -> Tạo ra biến có tên là a, kiểu là số
o STORE ”Visual Foxpro“ TO monhoc -> Tạo ra biến monhoc, kiểu xâu kí tự
 Xoá bỏ các biến: Khi không dùng nữa thì có thể xoá bỏ các biến để giảI phóng bộ nhớ. Visual
Foxpro dùng lệnh RELEASE <tenbien> để xoá bỏ các biến. Ví dụ RELEASE a; RELEASE
monhoc.
Biến trường và biến hệ thống có phạm vi tác động trong toàn bộ chương trình.
IV. Hằng

 Là đối tượng dữ liệu mà giá trị của nó chỉ xác định 1 lần khi khai báo và không thay đổi được.
Hằng cũng được xác định qua tên, kiểu và phạn vi tác động của nó.
 Khai báo hằng: Visual Foxpro dùng từ khoá #DEFINE <Tênhằng> <Giá trị> để khai báo hằng.
Kiểu của hằng phụ thuộc vào kiểu của biểu thức <Giá trị>
 Phạn vi tác động của hằng được xác định tương tự với Biến.
V. biểu thức
 Biểu thức được tạo nên từ các biến, hằng, hàm và các toán tử (phép toán) theo một qui tắc nào
đó (các toán tử và toán hạng phảI phù hợp nhau).
 Thứ tự ưu tiên của các phép toán trong 1 biểu thức
1. Các phép số học: Dấu âm, dương
Luỹ thừa
Nhân, chía
Phần dư
Cộng, trừ
2. Các phép chuỗi: +, -
3. Các phép quan hệ: =,<,>,>=,<=,<>
4. Các phép logic: NOT, AND, OR
 Sử dụng cập dấu () trong biểu thức để tránh sai sót về thứ tự ưu tiên các phép toán.
Simpo PDF Merge and Split Unregistered Version -
VI. Hàm
Trong Visual Foxpro có hai loại hàm: Hàm do Visual Foxpro cung cấp và hàm do người sử dụng
tự tạo ra. Hàm bao giờ cũng trả về một giá trị nào đó. Trong phần này sẽ giới thiệu một số hàm do
Visual Foxpro cung cấp.
 Hàm xâu kí tự
1. ALLTRIM(st), LTRIM(st), RTRIM(st)
2. LEFT(st,n), RIGHT(st,2), SUBSTRING(st,p,n)
3. AT(st1,st2,n), RAT(st1,st2,n)
4. LOWER(st), UPPER(st)
5. ASC(ch), CHR(n)
6. DTOC(d)

7. LEN(st)
8. STR(ex)
 Hàm Date và DateTime
1. DATE()
2. DATETIME()
3. TIME()
4. CTOD(st)
5. DAY(d)
6. MONTH(d)
7. YEAR(d)
 Hàm số
1. ABS(ex)
2. INT(ex)
3. ROUND(ex,n)
4. VAL(st)
 Hàm tự tạo của người sử dụng
Cú pháp
Simpo PDF Merge and Split Unregistered Version -
FUNCTION <Tenham>
[PARAMETER <danh sách các tham số>]
(Các lệnh của fox)
RETURN <Biểu thức>
Trong đó TenHam: Tên hàm do người sử dụng tự định nghĩa
Parameter: Từ khoá cho phép truyển vào các tham số cho hàm

Bài tập
1. Giả sử Họ tên người trong tiếng Việt luôn có dạng “Họ Đệm Tên”, trong đó các phần Họ,
Đệm, Tên luôn cách nhau 1 dấu cách; phần Đệm có thể có hoặc không hoặc có nhiều hơn 1
chữ. Hãy viết hàm TENVN(hoten) để lấy ra phần Tên của tên người trong tiếng Việt, trong
đó hoten là xâu họ tên người trong tiếng Việt.




Simpo PDF Merge and Split Unregistered Version -
Bài 4 - thiết kế database và tables
I. Giới thiệu
 Bảng dữ liệu (gọi tắt là bảng) là nơi lưu trữ dữ liệu và nó đóng một vai trò quan trọng trong các
bài toán quản lý. Xuất phát từ việc phân tích yêu cầu, các mẫu biểu của bài toán để từ đó đưa ra
cấu trúc các bảng sao cho phù hợp, đáp ứng các yêu cầu đặt ra là một công việc khá phức tạp,
đòi hỏi phảI có kiến thức và kinh nghiệm trong lĩnh vực cụ thể đó.
 Có thể tham khảo một số vấn đề giúp các bạn rõ hơn trong việc phân tích, thiết kế dữ liệu trong
tài liệu [1] từ trang 131 đến 142, hoặc tham khảo tài liệu [3].
II. Tạo Database
1. Tạo mới Database
Câch 1: Sử dụng câu lệnh
Bằng cách này chúng ta có thể tạo ta một Database, tuy nhiên database này là một Database độc
lập (không liên quan đến Project nào)
Câu lệnh:
CREATE DATABASE <TenDatabase> 
Kết thúc lệnh này Visual Foxpro sẽ tạo ra file Database có tên là TenDatabase (phần mở
rộng là DBC)
Về sau có thể thêm Database này vào trong 1 Project nào đó.
Cách 2: Sử dụng Project Manager
Bằng cách này thì Database được tạo ra sẽ là một thành phần của Project
1. Mở Project QLDIEM
2. Trong Tab Data, chọn mục Database rồi chọn New, khi đó giao diện New database xuất hiện
như hình 1.

Hình 1 - Hộp thoại New database
Simpo PDF Merge and Split Unregistered Version -

3. Tiếp đến chọn New Database để tạo một database trống (chọn Database Wizard để tạo một
Database theo một trong các mẫu thiết kế sẵn của Visual Foxpro).
4. Tiếp đến Visual Foxpro yêu cầu nhập vào tên Database (file có phần mở rộng là DBC), rồi
chọn Save để ghi lại. Khi đó giao diện Database designer xuất hiện như hình 2.
5. Giao diện Database Designer cho phép xem một cách tổng thể các thành phần (bảng, view, mỗi
quan hệ giữa các bảng ) trong csdl. Hình 2 cho ta thấy Database Diem tại thời điểm này còn
trống, chúng ta sẽ trở lại giao diện này trong các phần sau (đóng cửa sổ này lại).

Hình 2 - Giao diện Database Designer
2. Sửa đổi Database
1. Trong Project Manager, chọn Tab Data, tiếp đến chọn Database và mở rộng đối tượng này
(bằng cách kích vào dấu + phía trước) .
2. Chọn Database cần sửa (vì trong một Project có thể có nhiều hơn một Database) rồi chọn lệnh
Modify, khi đó cửa sổ Database designer (hình 2) xuất hiện.
3. Thêm vào Project một Database đã có
Trường hợp Project sử dụng một Database đã có (đã thiết kế trước đó) thì chúng ta có thể thêm
(Add) Database đó vào Project.
1. Trong Project Manager, chọn Tab Data, tiếp đến chọn mục Database (đặt vệt sáng ở mục này).
2. Chọn lệnh Add, khi đó sẽ xuất hiện cửa số open file (hình 3) cho phép chúng ta chọn csdl cần
thêm vào.
Simpo PDF Merge and Split Unregistered Version -

×