Giáo trình Visual FoxPro 6.0

Giáo trình được tổ chức theo 11 ch ương:

Chương 1: Làm quen v ới môi trường VF

Chương 2: Các lo ại dữ liệu trong VF

Chương 3: DataBa se và Table

Chương 4: Truy v ấn và hiển thị thông tin

Chương 5: Form Report

Chương 6: Lập trình trong VF

Chương 7: Thi ết kế giao diện

Chương 8: Bẫy trong ch ương trình

Chương 9: Mảng và chuyển giao dữ liệu

Chương 10: Một số lệnh hiệu chỉnh dữ liệu

Chương 11:Chương trình con

Chương 12: Ghép d ữ liệu

pdf146 trang | Chuyên mục: FoxPro | Chia sẻ: dkS00TYs | Lượt xem: 2051 | Lượt tải: 1download
Tóm tắt nội dung Giáo trình Visual FoxPro 6.0, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
a=150
b=100
?' a b '
?a, b
Return
c. Hiển thị biến nhớ
Để hiển thị nội dung biến nhớ (tên biến, toàn cuc hay cục bộ, kiểu và độ lớn) hãy
dùng lệnh sau:
DISPLAY MEMORY [LIKE ]
[TO PRINTER | TO FILE ]
d. Giải phóng các biến nhớ
Để giải phóng các biến nhớ khỏi bộ nhớ h ãy thực hiện lệnh sau:
RELEASE 
Ví dụ
a=1
b='Tin hoc'
TRUNG TÂM ĐÀO TẠO TRỰC TUYẾN - ĐẠI HỌC KINH DOANH & CÔNG NGHỆ H À NỘI
ELEC Trang 140
c=.T.
Release b,c
Display memo
Khi chạy chương trình chỉ có biến a được hiển thị.
Lệnh giải phóng biến nhớ còn có cách viết khác:
RELEASE ALL [ LIKE | EXCEPT ]
Ví dụ:
D1=12
D2=11
C=4
RELEASE ALL Like D*
Hoặc có thể viết:
D1=12
D2=11
C=4
RELEASE ALL EXCEPT C*
Chú ý: Chỉ có lệnh RELEASE mới xoá đ ược biến toàn cục.
Ví dụ:
PUBLIC a1, a2,a3, b
Store 10 to a1, a2, a3
Store 2 To b
Release all like a*
Display Memory
Sau khi chạy chương trình ta thấy biến a1,a2, a3 không bị xo á
TRUNG TÂM ĐÀO TẠO TRỰC TUYẾN - ĐẠI HỌC KINH DOANH & CÔNG NGHỆ H À NỘI
ELEC Trang 141
Chương 12. Lệnh ghép ngang (JOIN) và lệnh cập nhật (UPDATE)
12.1 Lệnh Join
Tạo một tệp CSDL mới từ tệp CSDL hiện h ành và một tệp CSDL thứ hai mở
trong vùng làm việc khác. Mỗi bản ghi của tệp CSDL mới đ ược tạo bởi các
trường trong hai bản ghi tương ứng. Sau đây là cú pháp lệnh:
JOIN WITH | WITH 
TO 
FOR 
[FIELDS | FIELDS LIKE | FIELDS EXCEPT
]
Các mệnh đề trên có ý nghĩa như sau:
 | 
Xác định vùng làm việc của tệp CSDL thứ hai. Vùng làm việc có thể được xác
định qua biểu thức số hoặc qua biểu thức ký tự .
 TO 
 là tên của tệp CSDL mới được tạo thành từ lệnh trên.
 FOR 
Khi thực hiện lệnh JOIN mỗi bản ghi trong tệp CSDL hiện h ành sẽ được kết hợp
lần lượt với từng bản ghi trong tệp CSDL thứ hai, nh ưng chỉ những bản ghi thoả
mãn điều kiện .
 [FIELDS | FIELDS LIKE | F IELDS EXCEPT ]
Chỉ những trường trong hoặc trong LIKE hoặc không phải
trong EXCEPT mới được kết nối, ví dụ:
FIELDS LIKE A*,P*
FIELDS LIKE A*,P* EXCEPT PARTNO*
Ví dụ ta có hai tệp CSDL. Tệp thứ nhất có t ên HOSO.DBF với nội dung sau:
Record# HOTEN NGAYSINH SBDC KHUVUC DOITUONG
 1 Hoàng Thanh Hà 191180 99A311 3 11
 2 Hoàng Trung Thành 231181 99A669 1 08
 3 Nguyễn Anh Tuấn 250880 99A784 2 10
 4 Vương Văn Hiệp 250778 99A971 2 09
 5 Hoàng Văn Mạnh 300680 99A483 2 09
 6 Hoàng Thọ Diện 281177 99A116 2 09
 7 Vũ Thị Na 100479 99A492 1 08
 8 Hoàng Văn Tường 260179 99A806 2 09
 9 Nguyễn Văn Thuyết 210680 99A627 2 11
 10 Bùi Thế Thuật 180281 99A633 2 10
 11 Nguyễn Văn Đại 020879 99A171 2 09
12 Lê Thanh Nam 170880 99A504 2 09
 13 Nguyễn Xuân Đô 041080 99A953 1 08
TRUNG TÂM ĐÀO TẠO TRỰC TUYẾN - ĐẠI HỌC KINH DOANH & CÔNG NGHỆ H À NỘI
ELEC Trang 142
 14 Đỗ Trí Duy 100481 99A123 2 09
 15 Đinh Quang Hải 280479 99A328 2 10
 16 Dương Thị Lan 230481 99A411 3 10
 17 Nguyễn Quang Phú 240480 99A565 3 10
 18 Hà Tất Thắng 151181 99A689 2 10
 19 Bùi Duy Thức 100981 99A700 3 10
 20 Lâm Hồng Hiệp 080180 99A223 3 11
Tệp thứ hai có tên DIEMTHI.DBF có nội dung như sau:
Record# SBDC TOAN10 LY10 HOA10 TONGDIEM30
 1 99A311 5.5 4.5 6.8 16.8
 2 99A669 6.5 4.3 6.4 17.2
 3 99A784 7.5 5.9 7.5 20.9
 4 99A971 6.5 6.0 7.0 19.5
 5 99A483 5.6 7.4 4.6 17.6
 6 99A116 4.8 6.2 5.0 16.0
 7 99A492 5.8 6.6 5.1 17.5
 8 99A806 6.8 6.9 3.7 17.4
 9 99A627 6.9 6.1 4.9 17.9
 10 99A633 6.9 5.4 5.6 17.9
 11 99A171 7.0 5.7 6.6 19.3
 12 99A504 7.0 5.4 6.8 19.2
 13 99A953 3.0 4.2 5.7 12.9
 14 99A123 4.1 4.4 5.3 13.8
 15 99A328 4.1 8.7 5.4 18.2
 16 99A411 4.1 7.6 4.3 16.0
 17 99A565 4.1 6.8 7.3 18.2
 18 99A689 5.1 6.2 8.6 19.9
 19 99A700 5.1 6.6 3.1 14.8
 20 99A223 6.3 6.1 8.8 21.2
Ví dụ 1:
Set talk off
Select 1
Use HoSo
Select 2
Use DiemThi
Join With HoSo To TepMoi For sbdc=HoSo.Sbdc
Use TepMoi
Browse
Khi chương trình chạy ta được TepMoi như sau:
TRUNG TÂM ĐÀO TẠO TRỰC TUYẾN - ĐẠI HỌC KINH DOANH & CÔNG NGHỆ H À NỘI
ELEC Trang 143
Record#
SBDC TOAN10 LY10 HOA10 TONGDIEM30 HOTEN NGAYSINH KHUVUC DOITU ONG
1 99A311 5.5 4.5 6.8 16.8 Hoàng Thanh Hà 191180 3 11
2 99A669 6.5 4.3 6.4 17.2 Hoàng Trung Thành 231181 1 08
3 99A784 7.5 5.9 7.5 20.9 Nguyễn Anh Tuấn 250880 2 10
4 99A971 6.5 6.0 7.0 19.5 Vương Văn Hiệp 250778 2 09
5 99A483 5.6 7.4 4.6 17.6 Hoàng Văn M ạnh 300680 2 09
6 99A116 4.8 6.2 5.0 16.0 Hoàng Th ọ Diện 281177 2 09
 7 99A492 5.8 6.6 5.1 17.5 Vũ Thị Na 100479 1 08
 8 99A806 6.8 6.9 3.7 17.4 Hoàng Văn Tư ờng 260179 2 09
 9 99A627 6.9 6.1 4.9 17.9 Nguyễn Văn Thuyết 210680 2 11
 10 99A633 6.9 5.4 5.6 17.9 Bùi Thế Thuật 180281 2 10
 11 99A171 7.0 5.7 6.6 19.3 Nguyễn Văn Đại 020879 2 09
 12 99A504 7.0 5.4 6.8 19.2 Lê Thanh Nam 170880 2 09
 13 99A953 3.0 4.2 5.7 12.9 Nguyễn Xuân Đô 041080 1 08
 14 99A123 4.1 4.4 5.3 13.8 Đỗ Trí Duy 100481 2 09
 15 99A328 4.1 8.7 5.4 18.2 Đinh Quang H ải 280479 2 10
 16 99A411 4.1 7.6 4.3 16.0 Dương Th ị Lan 230481 3 10
 17 99A565 4.1 6.8 7.3 18.2 Nguyễn Quang Phú 240480 3 10
 18 99A689 5.1 6.2 8.6 19.9 Hà Tất Thắng 151181 2 10
 19 99A700 5.1 6.6 3.1 14.8 Bùi Duy Th ức 100981 3 10
 20 99A223 6.3 6.1 8.8 21.2 Lâm Hồng Hiệp 080180 3 11
Ví dụ 2:
Set talk off
Select 1
Use HoSo
Select 2
Use DiemThi
Join With HoSo To TepMoi For sbdc=HoSo.Sbdc Fields Hoso.Hoten, SBDC,
TongDiem30
Use TepMoi
Browse
Khi chương trình chạy ta được TepMoi như sau:
Record# HOTEN SBDC TONGDIEM30
 1 Hoàng Thanh Hà 99A311 16.8
 2 Hoàng Trung Thành 99A669 17.2
 3 Nguyễn Anh Tuấn 99A784 20.9
 4 Vương Văn Hiệp 99A971 19.5
 5 Hoàng Văn Mạnh 99A483 17.6
 6 Hoàng Thọ Diện 99A116 16.0
 7 Vũ Thị Na 99A492 17.5
 8 Hoàng Văn Tường 99A806 17.4
TRUNG TÂM ĐÀO TẠO TRỰC TUYẾN - ĐẠI HỌC KINH DOANH & CÔNG NGHỆ H À NỘI
ELEC Trang 144
 9 Nguyễn Văn Thuyết 99A627 17.9
 10 Bùi Thế Thuật 99A633 17.9
 11 Nguyễn Văn Đại 99A171 19.3
 12 Lê Thanh Nam 99A504 19.2
 13 Nguyễn Xuân Đô 99A953 12.9
 14 Đỗ Trí Duy 99A123 13.8
 15 Đinh Quang Hải 99A328 18.2
 16 Dương Thị Lan 99A411 16.0
 17 Nguyễn Quang Phú 99A565 18.2
 18 Hà Tất Thắng 99A689 19.9
 19 Bùi Duy Thức 99A700 14.8
 20 Lâm Hồng Hiệp 99A223 21.2
12.2 Lệnh UPDATE
Lệnh này dùng để cập nhật dữ liệu vào tệp CSDL hiện hành từ một tệp CSDL
thứ hai đang mở trong một vùng làm việc khác. Cú pháp lệnh như sau:
UPDATE ON 
FROM | 
REPLACE WITH 
[, WITH ...]
[RANDOM]
Các mệnh đề trên có ý nghĩa như sau:
 ON 
Field là trường khoá, tệp CSDL hiện thời phải đ ược sắp xếp theo lệnh SORT
hoặc lệnh INDEX trên trường này theo thứ thự tăng dần.
 FROM | 
Xác định vùng làm việc của tệp CSDL thứ hai, nơi để lấy dữ liệu chuyển cho tệp
hiện thời. Vùng làm việc có thể được xác định qua biểu thức số hoặc
qua biểu thức ký tự .
 REPLACE WITH [, WITH ...]
Trường trong tệp CSDL hiện thời sẽ đ ược nhận giá trị v.v..
 RANDOM
Sẽ được dùng nếu tệp CSDL thứ hai không được sắp xếp theo trường khoá tăng
dần. Nếu tệp CSDL thứ hai được sắp xếp tăng dần theo trường khoá thì mệnh đề
này không cần thiết và qúa trình cập nhật được tiến hành nhanh hơn.
Giả sử ta có tệp Hoso.dbf có các trường sau:
Record# HOTEN NGAYSINH SBDC TONG
 1 Hoàng Thọ Diện 281177 99A116 0.00
 2 Đỗ Trí Duy 100481 99A123 0.00
 3 Nguyễn Văn Đại 020879 99A171 0.00
 4 Lâm Hồng Hiệp 080180 99A223 0.00
TRUNG TÂM ĐÀO TẠO TRỰC TUYẾN - ĐẠI HỌC KINH DOANH & CÔNG NGHỆ H À NỘI
ELEC Trang 145
 5 Hoàng Thanh Hà 191180 99A311 0.00
 6 Đinh Quang Hải 280479 99A328 0.00
 7 Dương Thị Lan 230481 99A411 0.00
 8 Hoàng Văn Mạnh 300680 99A483 0.00
 9 Vũ Thị Na 100479 99A492 0.00
 10 Lê Thanh Nam 170880 99A504 0.00
 11 Nguyễn Quang Phú 240480 99A565 0.00
 12 Nguyễn Văn Thuyết 210680 99A627 0.00
 13 Bùi Thế Thuật 180281 99A633 0.00
14 Hoàng Trung Thành 231181 99A669 0.00
 15 Hà Tất Thắng 151181 99A689 0.00
 16 Bùi Duy Thức 100981 99A700 0.00
 17 Nguyễn Anh Tuấn 250880 99A784 0.00
 18 Hoàng Văn Tường 260179 99A806 0.00
 19 Nguyễn Xuân Đô 041080 99A953 0.00
 20 Vương Văn Hiệp 250778 99A971 0.00
Và tệp Diem.dbf có các trường sau:
Record# SBDC TOAN10 LY10 HOA10 TONGDIEM30
 1 99A223 6.3 6.1 8.8 21.2
 2 99A784 7.5 5.9 7.5 20.9
 3 99A689 5.1 6.2 8.6 19.9
 4 99A971 6.5 6.0 7.0 19.5
 5 99A171 7.0 5.7 6.6 19.3
 6 99A504 7.0 5.4 6.8 1 9.2
 7 99A328 4.1 8.7 5.4 18.2
 8 99A565 4.1 6.8 7.3 18.2
 9 99A627 6.9 6.1 4.9 17.9
 10 99A633 6.9 5.4 5.6 17.9
 11 99A483 5.6 7.4 4.6 17.6
 12 99A492 5.8 6.6 5.1 17.5
 13 99A806 6.8 6.9 3.7 17.4
 14 99A669 6.5 4.3 6.4 17.2
 15 99A311 5.5 4.5 6.8 16.8
 16 99A116 4.8 6.2 5.0 16.0
 17 99A411 4.1 7.6 4.3 16.0
 18 99A700 5.1 6.6 3.1 14.8
 19 99A123 4.1 4.4 5.3 13.8
 20 99A953 3.0 4.2 5.7 12.9
Ta muốn đưa cột TongDiem30 của tệp CSDL Diem.dbf sâng cột Tong của tệp
Hoso.dbf theo trường khoá là SBDC, ta lập trình như sau:
Set talk off
Clear
TRUNG TÂM ĐÀO TẠO TRỰC TUYẾN - ĐẠI HỌC KINH DOANH & CÔNG NGHỆ H À NỘI
ELEC Trang 146
Select 1
Use Diem
Select 2
Use Hoso
Index on sbdc to sbdc1
Update On Sbdc From Diem Replace Tong With Diem.To ngDiem30 Random
Select 2
Browse
Sau khi chạy chương trình ta có kết quả:
Record# HOTEN NGAYSINH SBDC TONG
 1 Hoàng Thọ Diện 281177 99A116 16.00
 2 Đỗ Trí Duy 100481 99A123 13.80
 3 Nguyễn Văn Đại 020879 99A171 19.30
 4 Lâm Hồng Hiệp 080180 99A223 21.20
 5 Hoàng Thanh Hà 191180 99A311 16.80
 6 Đinh Quang Hải 280479 99A328 18.20
 7 Dương Thị Lan 230481 99A411 16.00
 8 Hoàng Văn Mạnh 300680 99A483 17.60
 9 Vũ Thị Na 100479 99A492 17.50
10 Lê Thanh Nam 170880 99A504 19.20
 11 Nguyễn Quang Phú 240480 99A565 18.20
 12 Nguyễn Văn Thuyết 210680 99A627 17.90
 13 Bùi Thế Thuật 180281 99A633 17.90
 14 Hoàng Trung Thành 231181 99A669 17.20
 15 Hà Tất Thắng 151181 99A689 19.90
 16 Bùi Duy Thức 100981 99A700 14.80
 17 Nguyễn Anh Tuấn 250880 99A784 20.90
 18 Hoàng Văn Tường 260179 99A806 17.40
 19 Nguyễn Xuân Đô 041080 99A953 12.90
 20 Vương Văn Hiệp 250778 99A971 19.50
Hoặc ta có thể viết lại chương trình để chạy nhanh hơn như sau:
Set talk off
Clear
Select 1
Use Diem
Index on SBDC to SbdDiem
Select 2
Use Hoso
Index on sbdc to sbdc1
Update On Sbdc From Diem Replace Tong With Diem.TongDiem30
Select 2
Browse

File đính kèm:

  • pdfGiáo trình Visual FoxPro 6.0.pdf
Tài liệu liên quan