Tải bản đầy đủ (.doc) (117 trang)

bài giảng foxpro tòan tập

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 (1.42 MB, 117 trang )

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.
 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.
 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
 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 Kiểu Độ rộng Ghi chú
trường
Ma C 10 Mã ngành (khoá chính)
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ú
7. Bảng GIAOVIEN.DBF
Tên Kiểu Độ rộng Ghi chú
trường

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á
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)
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)
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á:……………………
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)
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:
Đ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
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: ……………………….
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:
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.
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).

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

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

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.
Hình 3 - Hộp thoại Open file (Select Database)
4. Loại bỏ một Database khỏi Project
Khi không cần dùng một Database nào đó, chúng ta có thể loại bỏ Database đó khỏi
Project như sau:
1. Trong Project Manager, chọn Tab Data, tiếp đến chọn mục 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 bỏ, tiếp đến chọn lệnh Remove khi đó xuất hiện hộp thoại như
hình 4.

Hình 4 - Hộp thoại Remove Database
3. Chọn Remove (khỏi Project ) nếu không muốn xoá hẳn Database này; chọn Delete
nếu muốn xoá hẳn Database này; chọn Cancel khi muốn huỷ bỏ thao tác này.
III. Tạo bảng
1. Tạo mới Tables
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 Table, tuy nhiên Table này là một Table độc lập
(không liên quan đến Project nào).
Câu lệnh (dạng đơn giản):
CREATE TABLE <TableName>(FieldName1 Ftype1(width1) [, ])
Trong đó: TableName - tên bảng (không chứa dấu cách), FieldName1 - Tên
trường 1, Ftype1 - Kiểu trường 1 (dùng các chữ cái đầu của kiểu trong fox để mô
tả), with1 - độ rộng của trường. Tương tự như vậy cho trường thứ 2.
Ví dụ: CREATE TABLE Hososv(masv C(10), Hoten C(30))
Câch 1: Sử dụng Project Manager
1. Trong Project Manager chọn Tab Data, chọn mục 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 làm việc và mở rộng đối tượng này (bằng cách kích vào dấu +
phía trước), tiếp đến chọn Tables rồi chọn New. Khi đó giao diện New table có dạng
như hình 5.
Hình 5 - New table
3. Tiếp đến chọn New Tbale để tạo một Table trống (chọn Table Wizard để tạo một Table
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 Table (file có phần mở rộng là dbf), rồi
chọn Save để ghi lại. Giao diện Table Designer xuất hiện như hình 6.
Giao diện Table Designer

×