Bài giảng Tin học ứng dụng - Chương IV: Hệ quản trị cơ sở dữ liệu Foxpro - Hà Văn Sang
- Thông tin về các đối tượng được quản lý thường lưu trữ dưới dạng bảng
- Các bảng thường gồm các dòng và các cột
- Mỗi cột phản ánh một tiêu thức cần quản lý hay còn gọi là thuộc tính của đối tượng

Trang 1

Trang 2

Trang 3

Trang 4

Trang 5

Trang 6

Trang 7

Trang 8

Trang 9

Trang 10
Tải về để xem bản đầy đủ
Bạn đang xem 10 trang mẫu của tài liệu "Bài giảng Tin học ứng dụng - Chương IV: Hệ quản trị cơ sở dữ liệu Foxpro - Hà Văn Sang", để tải tài liệu gốc về máy hãy click vào nút Download ở trên
Tóm tắt nội dung tài liệu: Bài giảng Tin học ứng dụng - Chương IV: Hệ quản trị cơ sở dữ liệu Foxpro - Hà Văn Sang
TIN HỌC ỨNG DỤNG
1
Hà Văn Sang
Bộ môn: Tin học TC – KT
Khoa: Hệ Thống Thông Tin Kinh tế - Học Viện Tài Chính
Tel: 0982165568
Email: sanghv@hvtc.edu.vn
Website:
CHƯƠNG IV
HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU FOXPRO
2
I. KHÁI NIỆM CHUNG
1. Cơ sở dữ liệu
a. Tệp dữ liệu
- Thông tin về các đối tượng được quản lý thường lưu
trữ dưới dạng bảng
3
- Các bảng thường gồm các dòng và các cột
- Mỗi cột phản ánh một tiêu thức cần quản lý hay còn
gọi là thuộc tính của đối tượng
- Mỗi dòng chứa thông tin về tất cả các thuộc tính của
đối tượng.
- Giao của dòng và cột là giá trị cụ thể của một thuộc
tính
1. Cơ sở dữ liệu
- Một bảng luôn chứa thông tin về một tập hợp các đối
tượng cùng loại
Ví dụ: danh sách sinh viên K41
STT HỌ TÊN NGÀY SINH GIỚI TÍNH ĐIỂM
4
1 Nguyễn Văn A 01/01/1985 Nam 9
2 Cao Đức Cẩm 12/07/1985 Nam 8
3 Lê Lan 23/12/1985 Nữ 9
.. ... .. .. ..
- Khi lưu trữ trên máy, mỗi bảng như vậy được ghi
thành một tệp dữ liệu
1. Cơ sở dữ liệu
Vậy có thể hiểu:
Tệp dữ liệu: là tệp chứa thông tin về các thuộc tính của
các đối tượng cùng loại được lưu trên máy
5
- Mỗi đối tượng sẽ được quản lý trên một số thuộc tính
nhất định.
- Một bộ thông tin về tất cả các thuộc tính được gọi là
một bản ghi dữ liệu (Record).
- Thông tin về một thuộc tính chứa trong một phần của
tệp gọi là một trường (Field).
1. Cơ sở dữ liệu
Tệp dữ liệu = bảng
Một bản ghi = một dòng
Một trường = một cột
6
- Một trường được xác định bởi:
• Tên trường
• Kiểu trường
• Độ rộng
• Số chữ số thập phân
1. Cơ sở dữ liệu
Tên trường (Field Name):
Dùng để đặt tên và phân biệt các trường
Qui tắc đặt tên trường trong Fox:
7
• Tên trường do người dùng đặt
• Gồm các chữ cái, số, gạch nối và không quá 10 kí tự
• Bắt đầu bởi chữ cái
• Không phân biệt chữ hoa, chữ thường
Ví dụ: STT, HoTen, Ngay_Sinh, DIEM
1. Cơ sở dữ liệu
Kiểu trường (Type):
Dùng để xác định kiểu thông tin chứa trong trường
Các kiểu hay gặp trong Fox:
8
• Kiểu kí tự (character): thường viết tắt là C, gồm các:
+ Chữ cái
+ Chữ số không tính toán
+ Chữ số không tính tóan và các kí tự đặc biệt.
Ví dụ: “Hoàng Hùng”, “37/CP”, “K412101”
1. Cơ sở dữ liệu
• Kiểu số (Numeric): thường viết tắt là N, chứa các số
có thể tính toán
• Kiểu Ngày (Date): thường viết tắt là D, dùng để lưu
ngày tháng năm cụ thể
9
• Kiểu Logic (Logical): thường viết tắt là L, dùng để lưu
các thông tin có hai giá trị trái ngược nhau của một
thuộc tính.
.T. là đúng, .F. là sai
Ví dụ: Giới tính nam><xuất
1. Cơ sở dữ liệu
• Kiểu kí ức (Memo): thường viết tắt là M, là kiểu dữ
liệu đặc biệt dùng để lưu các văn bản lớn có độ dài
không cố định
10
Ví dụ:
Tiểu sử, lý lịch của một cán bộ
Thông số, lý lịch của một loại máy
1. Cơ sở dữ liệu
Độ rộng (Width):
Dùng để xác định số kí tự tối đa ghi trong trường
Trong Fox:
11
• Kiểu kí tự (C) <=254 kí tự
• Kiểu số (N) <=20
• Kiểu Ngày (D) = 8
• Kiểu Logic (L) = 1
• Kiểu kí ức (M) <=254 mở rộng 5000
1. Cơ sở dữ liệu
Số chữ số thập phân (Dec):
Đặc trưng riêng của trường số, xác định số chữ số thập
phân được dùng
Nếu số chữ số thập phân là 0 thì đó là số nguyên
12
Một số chú ý:
• Mỗi bản ghi có độ dài không quá 4000 kí tự
• Mỗi tệp có không quá 128 trường
• Tệp dữ liệu của Fox có phần mở rộng là DBF
I. KHÁI NIỆM CHUNG
b. Cơ sở dữ liệu
- Là tập hợp các tệp dữ liệu có quan hệ với nhau để
cung cấp một hệ thống thông tin cho một mục tiêu
hoặc một bài toán.
13
c. Cấu trúc tệp dữ liệu
- Là một bảng để liệt kê các thông tin từng trường gồm
có tên, loại, độ rộng
I. KHÁI NIỆM CHUNG
2. Hệ quản trị cơ sở dữ liệu
a. Khái niệm
- Là một hệ thống các chương trình dùng để thao tác
trên một cơ sở dữ liệu
14
b. Các thao tác
- Cập nhập dữ liệu - Truy vấn dữ liệu.
- Lưu trữ dữ liệu - Kết xuất thông tin
c. Các hệ quản trị cơ sở dữ liệu
- SQL Server, Oracle - Foxpro, Access ..
II. Hệ QT CSDL Fox
Giới thiệu
- Fox là hệ quản trị cơ sở dữ liệu được sử dụng phổ
biến trong các bài tóan quản lý kinh tế
15
- Fox được phát triển từ Foxbase đến Foxpro rồi đến
Visual Foxpro theo hướng tương thích đi lên
- Là bộ sản phẩm của hãng Microsoft
- Muốn sử dụng chương trình phải cài đặt, với tệp khởi
động là Foxpro.exe, Foxprow.exe, hoặc VFP.exe
II. Hệ QT CSDL Fox
1. Làm quen với Fox
a. Khởi động
-Để khởi động Foxpro ta dùng một trong các cách
Cách 1: Kích kép chuột tại biểu tượng Foxpro trên màn
16
hình giao tiếp
Cách 2: Kích Start Programs mục tương ứng
Tên chương trình Fox
Cách 3: Từ RUN chọn đương dẫn tới tệp chương trình
rồi nhấn OK
1. Làm quen với Fox
Màn hình chính Thanh tiêu để
Thanh thực đơn
Cửa sổ lệnh
17
1. Làm quen với Fox
Màn hình chính gồm
- Thanh tiêu đề
- Thanh thực đơn
- Màn hình làm việc
18
- Cửa sổ lệnh (Command window): là nơi vào các lệnh
của Fox dưới dạng văn bản
Để bật tắt cửa sổ lệnh ta nhấn Ctrl + F2 hoặc chọn
Window Command
1. Làm quen với Fox
b. Thoát khỏi fox
- Để thoát khỏi foxpro ta thực hiện:
Cách 1: Nhấn tổ hợp phím ALT+ F4
19
Cách 2: Chọn menu File Exit
Cách3: tại cửa sổ lệnh gõ Quit và nhấn Enter
1. Làm quen với Fox
c. Hai chế độ làm việc
Fox làm việc dưới hai chế độ sau:
Chế độ hội thoại (dòng lệnh)
20
- Là chế độ mà các lệnh được đưa vào từ cửa sổ lệnh,
sau khi nhấn Enter lệnh sẽ được thực hiện
- Các lệnh không được lưu trên đĩa nên chỉ dùng để
thực hiện các lệnh đơn giản, hoặc các lệnh chỉ dùng 1
lần
1. Làm quen với Fox
Chế độ chương trình
- Là chế độ ghép các lệnh thành một tệp chương trình
và ghi lên đĩa với phần mở rộng là .PRG
- Để tạo một chương trình:
21
Cách 1: dùng một hệ soạn thảo văn bản để viết các
lệnh, rồi ghi với phần mở rộng là .prg
Cách 2: tại cửa sổ lệnh gõ:
MODIFY COMMAND
Sau đó nhấn Ctrl + W để ghi lên đĩa
- Để chạy một chương trình gõ: DO
2. Các yếu tố cơ bản của Fox
a. Bộ kí tự
- Bộ kí tự của fox chính là bộ kí tự trong bảng mã
ASCII, gồm có:
+ 26 chữ cái a .. z, A .. Z
22
+ 10 chữ số 0..9
+ Các kí tự +, -, *, /, !, @, #, $, %
... n tại
• Trường 1, 2 ..n là các trường cần thay thế giá trị
• Biểu thức phải có kiểu phù hợp với kiểu của trường
87
Tác động:
- Khi gặp lệnh này, Fox sẽ thay thế nội dung của các
trường với giá trị của các biểu thức tương ứng
- Chỉ có các bản ghi nằm trong phạm vi và thỏa mãn biểu
thức logic mới chịu tác động của lệnh
Chú ý:
- Dữ liệu do máy thay thế tự động nên phải cẩn thận khi
dùng lệnh
3.3 Lệnh xem sửa tệp dữ liệu
Ví dụ:
Use QLSV
REPL ALL DTB WITH 0, PL WITH “ ”
USE
88
- Nhập 10 vào điểm môn 2 của sinh viên có tên Trần Anh
Use QLSV
REPL D2 with 10 FOR Ten=“Anh” .AND. Hodem=“Trần”
Hoặc
LOCATE FOR Ten=“Anh” .AND. Hodem=“Trần”
REPL D2 with 10
3.3 Lệnh xem sửa tệp dữ liệu
Tính điểm trung bình theo công thức
DTB = (D1x2 + D2x3)/5
Phân loại:
- Giỏi nếu ĐTB >=8.0 - Khá nếu 8.0>ĐTB>=7.0
89
- TB nếu 7>ĐTB >=5.0
REPL ALL DTB with (D1*2 + D2*3)/5
- Yếu nếu TB<5.0
REPL ALL PL with “Giỏi” FOR DTB>=8.0
REPL PL with “Khá” FOR DTB>=7.0 .AND. DTB<8.0
REPL PL with “Tb” FOR DTB>=5.0 .AND. DTB<7.0
REPL PL with “Yếu” FOR DTB<5.0
3.4 Lệnh thêm bớt bản ghi
a. Lệnh INSERT
- Tác dụng:
Dùng để chèn một bản ghi vào một vị trí bất kỳ trong tệp
- Dạng lệnh
90
INSERT [BEFORE] [BLANK]
- Tác động:
Lệnh sẽ cho chèn vào tệp 1 bản ghi, cụ thể:
+Nếu có BEFORE thì chèn vào trước bản ghi hiện thời
+Nếu không có BEFORE thì chèn vào sau bản ghi hiện thời
3.4 Lệnh thêm bớt bản ghi
+ Nếu có BLANK sẽ tự động chèn 1 bản ghi rỗng
Nếu là kiểu C nhận giá trị là các khoảng trống
Nếu là kiểu N nhận giá trị 0
Nếu là kiểu L nhận giá trị .F.
91
Nếu là kiểu D nhận giá trị ../../....
+ Nếu không có BLANK sẽ chèn bản ghi sau đó cho
người dùng nhập dữ liệu
Chú ý: Lệnh này ít được dùng vì máy phải thực hiện ghi
chép lại tệp nên tốc độ rất chậm
3.4 Lệnh thêm bớt bản ghi
Ví dụ: chèn 1 bản ghi số 50 vào tệp QLSV
Use QLSV
GO 50
INSERT BEFORE
92
- Nhập dữ liệu cho bản ghi
Hoặc cách 2:
Go 50
INSERT BEFORE BLANK
REPL Ten WITH “Anh”, Hodem WITH “Trần”
3.4 Lệnh thêm bớt bản ghi
b. Lệnh DELETE
- Tác dụng:
Dùng để đánh dấu xóa các bản ghi trong tệp đang mở
- Dạng lệnh
93
DELETE [Phạm vi] [FOR ]
Trong đó: phạm vi ngầm định là bản ghi hiện thời
- Tác động:
Fox sẽ đánh dấu xóa các bản ghi thuộc phạm vi thỏa
mãn biểu thức logic
3.4 Lệnh thêm bớt bản ghi
Ví dụ: đánh dấu xóa sinh viên khóa 39
Use QLSV
DELETE ALL FOR LEFT(Lop,2)=’39’
USE
94
Đánh dấu xóa bản ghi số 49
USE QLSV
GO 49
DELETE
USE
3.4 Lệnh thêm bớt bản ghi
c. Lệnh RECALL
- Tác dụng:
Dùng để hủy việc đánh dấu xóa các bản ghi trong tệp
đang mở
- Dạng lệnh
95
RECALL [Phạm vi] [FOR ]
Trong đó: phạm vi ngầm định là bản ghi hiện thời
- Tác động:
Fox sẽ hủy bỏ việc đánh dấu xóa các bản ghi thuộc phạm
vi thỏa mãn biểu thức logic
3.4 Lệnh thêm bớt bản ghi
Ví dụ: bỏ đánh dấu xóa sinh viên khóa 39
Use QLSV
RECALL ALL FOR LEFT(Lop,2)=’39’
USE
96
Hủy bỏ đánh dấu xóa bản ghi số 49
USE QLSV
GO 49
RECALL
USE
3.4 Lệnh thêm bớt bản ghi
d. Lệnh PACK
- Tác dụng:
Dùng để loại bỏ các bản ghi đã bị đánh dấu xóa ra khỏi tệp
- Dạng lệnh
97
PACK
- Tác động:
Fox sẽ xóa hẳn các bản ghi bị đánh dấu xóa khỏi tệp, và
không thể phục hồi
3.4 Lệnh thêm bớt bản ghi
e. Lệnh ZAP
- Tác dụng:
Xóa bỏ toàn bộ các bản ghi trong tệp đang mở
- Dạng lệnh
98
ZAP
- Tác động:
Fox sẽ xóa tất cả các bản ghi trong tệp và chỉ để lại cấu
trúc của tệp.
Lệnh này tương đương với việc đánh dấu xóa tất cả rồi
Pack nhưng tốc độ thì nhanh hơn.
3.5 Sắp xếp và tìm kiếm
- Sắp xếp và tìm kiếm là công việc thường gặp trong quá
trình xử lý của máy tính
- Để tìm kiếm được nhanh trước hết ta phải sắp xêp dữ
liệu
- Trước khi sắp xếp ta phải xác định được:
99
Trường cần sắp xếp hay còn gọi là khóa
Sắp xếp theo thứ tự tăng hay giảm
Trường nào được ưu tiên sắp trước
Có phân biệt chữ hoa hay thường không?
3.5 Sắp xếp và tìm kiếm
a. Lệnh INDEX (tạo chỉ mục)
Tệp chỉ dẫn:
- Là tệp được sử dụng để chỉ dẫn cho tệp dữ liệu gốc
- Phục vụ cho công việc tìm kiếm dữ liệu
100
- Gồm 2 trường: trường chỉ dẫn và số hiệu bản ghi
- Các bản ghi trong tệp dữ liệu có sử dụng tệp chỉ dẫn
được sắp xếp theo thứ tự tăng dần của trường chỉ dẫn
3.5 Sắp xếp và tìm kiếm
a. Lệnh INDEX (tạo chỉ mục)
-Tác dụng:
- Dùng tạo ra một tệp chỉ dẫn để sắp xếp tệp đang mở
theo thứ tự tăng dần của khóa sắp xêp
- Dạng lệnh:
101
INDEX ON TO [FOR ]
Trong đó:
-BT: là biểu thức bất kỳ dùng làm khóa sắp xếp
-Tentep: là tên tệp chỉ dẫn với đuôi ngầm định .idx
3.5 Sắp xếp và tìm kiếm
- Tác động:
Lệnh sẽ tạo ra tệp chỉ dẫn có tên là để sắp
xếp các bản ghi của tệp đang mở theo thứ tự tăng dần
của khóa là BT
102
Nếu các bản ghi có cùng giá trị khóa sắp xếp thì fox sẽ
sắp xếp các bản ghi theo trật tự đã có
Nếu có FOR thì chỉ những bản ghi thỏa mãn bt logic
mới được coi là có mặt trong tệp và tham gia sắp xếp
3.5 Sắp xếp và tìm kiếm
- Ví dụ:
Trong tệp QLSV ta sắp xếp điểm trung bình
INDEX ON DTB TO cdDTB FOR DTB >=5
103
Tệp gốc
# DTB
1 5.0
2 7.5
3 4.3
4 7.5
5 6.0
Tệp chỉ dẫn
# DTB
1 5.0
5 6.0
2 7.5
4 7.5
3.5 Sắp xếp và tìm kiếm
- Ví dụ 1:
In danh sách lớp 41.21.01 theo tứ tự Abc của tên
USE QLSV
104
INDEX ON ten+hodem TO vd1 FOR Lop=“41.21.01”
LIST TO PRINTER
USE
3.5 Sắp xếp và tìm kiếm
- Ví dụ 2:
In danh sách khóa 41 xếp theo lớp, cùng lớp xếp theo
điểm trung bình tăng dần
USE QLSV
INDEX ON LOP + STR(DTB,5,2) TO vd2 FOR
105
LEFT(Lop,2)=“41”
DISP all TO PRINTER
Use
Để sắp xếp DTB giảm dần ta làm như sau
INDEX ON – DTB To cdDTB
3.5 Sắp xếp và tìm kiếm
- Ví dụ 3:
In danh sách khóa 41 xếp theo lớp, cùng lớp xếp theo
ngày sinh tăng dần
USE QLSV
INDEX ON LOP + STR(YEAR(NS),4) +
106
STR(MONTH(NS),2) + STR(DAY(NS),2) TO vd3 FOR
LEFT(Lop,2)=“41”
DISP ALL TO PRINTER
Use
Lưu ý: Khi sắp xếp theo một trường thì viết tên trường
sau ON, nhiều trường thì biến tất cả thành kiểu xâu để
ghép
3.5 Sắp xếp và tìm kiếm
b. Lệnh SORT (sắp xếp)
-Tác dụng:
- Dùng sắp xếp các bản ghi trong tệp đang mở và gửi
kết quả sang tệp mới
107
- Dạng lệnh:
SORT TO ON [/A|/D][/C]
[,trường 2 [/A | /D][/C]..]
[FIELDS ]
[FOR ]
3.5 Sắp xếp và tìm kiếm
- Tác động:
Lệnh sẽ sắp xếp các bản ghi dựa theo khóa là các
trường
Nếu có /A thì sắp xếp tăng dần (ngầm định là /A)
108
Nếu có /D thì sắp xếp giảm dần
Nếu có /C thì không phân biệt chữ hoa, chữ thường
Kết quả được lưu vào tệp mới có tên là tentep
Nếu có FIELDS thì chỉ có các trường trong ds trường
mới được gửi sang tệp kết quả
Nếu có FOR thì chỉ các bản ghi thỏa mãn mới được sắp
xếp
3.5 Sắp xếp và tìm kiếm
- Lưu ý:
Không đặt tên tệp kết quả trùng với tệp gốc
Không sắp xếp trường kí ức và trường logic
Sau khi sắp xếp, muốn xem kết quả phải mở tệp kết quả
109
Lệnh Sort có tốc độ chậm hơn so với lệnh Index
Có nhiều lệnh không thực hiện được trên tệp xếp bằng
lệnh Sort
3.5 Sắp xếp và tìm kiếm
- Ví dụ 1:
In danh sách toàn trường theo khóa, lớp, điểm trung bình
USE QLSV
SORT TO VD1 ON LOP, DTB/D
110
USE VD1
LIST TO PRINTER
USE
3.5 Sắp xếp và tìm kiếm
- Ví dụ 2:
In danh sách lớp 41.21.01 với tên đã được xếp theo
alphabe
USE QLSV
SORT TO VD2 ON TEN/AC, HODEM/AC FOR
111
LOP=“41.21.01”
USE VD2
LIST TO PRINTER
USE
3.5 Sắp xếp và tìm kiếm
c. Lệnh LOCATE
-Tác dụng:
- Dùng để tìm kiếm và định vị con trỏ đến bản ghi thỏa
mãn điều kiện nào đó
- Dạng lệnh:
112
LOCATE FOR
Lệnh sẽ duyệt tuần tự từ đầu tệp để tìm bản ghi đầu tiên
thỏa mãn biểu thức logic
- Tác động:
Nếu thấy sẽ đặt con trỏ tại bản ghi đó
Nếu không thấy sẽ đặt con trỏ tại bản ghi EOF
3.5 Sắp xếp và tìm kiếm
- Ví dụ 1:
Tìm sinh viên có mã là “HTC123”
USE QLSV
LOCATE FOR MASV=“HTC123”
113
DISPLAY
USE
Tìm sinh viên nữ sinh ngày 20/10/1985
USE QLSV
LOCATE FOR .NOT. GT .AND. NS={20/10/1985}
DISPLAY
3.5 Sắp xếp và tìm kiếm
d. Lệnh SEEK và FIND
-Tác dụng:
- Dùng để tìm kiếm nhanh 1 bản ghi trên tệp đã sắp
xếp bằng lệnh Index
- Dạng lệnh:
114
SEEK
FIND
Biểu thức của lệnh SEEK phải là kiểu xâu
- Trong đó:
Biểu thức của lệnh FIND là biểu thức bất kỳ
3.5 Sắp xếp và tìm kiếm
- Ví dụ 1:
Tìm sinh viên có mã là “HTC123”
USE QLSV
LOCATE FOR MASV= “HTC123”
DISPLAY
115
USE
SEEK “HTC123”
DISPLAY
USE
INDEX ON MASV TO CDMASV
USE QLSV
3.6 Lệnh tính toán
a. Lệnh COUNT
-Tác dụng:
- Dùng để đếm số bản ghi trên tệp
- Dạng lệnh:
116
COUNT [TO ] [FOR ]
Biến: là biến nhớ dùng để lưu kết quả sau khi đếm
- Trong đó:
3.6 Lệnh tính toán
-Tác động:
- Lệnh sẽ đếm số bản ghi thỏa mãn biểu thức logic và
gửi kết quả vào biến
- Nếu không có TO thì hiện kết quả lên màn hình
nếu ở chế độ SET TALK ON
117
Để in kết quả lên màn hình ta dùng lệnh:
?
??
3.6 Lệnh tính toán
- Ví dụ 1:
Tính tỷ lệ khá giỏi của khóa 41
USE QLSV
COUNT TO TSO FOR LEFT(LOP,2)=’41’
118
COUNT TO TGIOI FOR LEFT(LOP,2)=’41’ .AND.
DTB>=8.0
COUNT TO TKHA FOR LEFT(LOP,2)=’41’ .AND.
DTB>=7.0 .AND. DTB<8.0
?’Tỷ lệ sv giỏi: ’, TGIOI/TSO *100, ‘%’
?’Tỷ lệ sv khá: ’, TKHA/TSO *100, ‘%’
3.6 Lệnh tính toán
b. Lệnh SUM
-Tác dụng:
Dùng để tính tổng các trường số trên tệp
- Dạng lệnh:
119
SUM [phạm vi] [ds biểu thức] [TO ]
[FOR ]
Phạm vi ngầm định là tất cả các bản ghi
- Trong đó:
Ds biểu thức gồm các trường số cần tính tổng, ngầm
định là mọi trường số
Ds biến là các biến lưu kết quả sau khi tính tổng
3.6 Lệnh tính toán
-Tác động:
- Lệnh duyệt từ đầu tệp tới cuối tệp để tính tổng các
trường số trên các bản ghi
- Sau đó gửi kết quả vào các biến
120
- Trường hợp có FOR thì chỉ có những bản ghi thỏa
mãn biểu thức logic mới được tính tổng
-Ví dụ:
Tệp dữ liệu quản lý vật tư có cấu trúc như sau:
Thuộc tính Name Type Width
Loại Lp L 1 .T. (Nhập)
Số phiếu Sp C 5
Ngày lập Nl D 8
Nội dung ND C 30
Tên vật tư TENVT C 15
121
Mã vật tư MAVT C 6
Đơn vị tính DVT C 4
Khối lượng KL N 10
Đơn giá DG N 10
Số tiền ST N 12
Mã kho MAKH C 2
3.6 Lệnh tính toán
- Ví dụ 1:
Tính tổng khối lượng, số tiền nhập xi măng mã “XM30”
trong quí I năm 2006
USE QLVT
122
SUM KL, ST TO TKL, TST FOR LP .AND. MAVT=“XM30”
.AND. MONT(NL)<4 .AND. YEAR(NL) =2006
?’ Tổng khối lượng: ‘, TKL
?’ Tổng số tiền: ‘, TST
3.6 Lệnh tính toán
- Ví dụ 2:
Giả sử có 2 loại đơn vị tính là KG và Tấn chưa chuẩn
hóa, yêu cầu tính tổng khối lượng xi măng XM30 còn lại
trong các kho
Các bước:
123
- Đổi đơn vị từ tấn sang kg (khối lượng, đơn giá)
- Tính tổng nhập
- Tính tổng xuất
- Kết quả bằng tổng nhập – tổng xuất
3.6 Lệnh tính toán
- Ví dụ 2:
USE QLVT
REPL DVT WITH “KG”, KL WITH KL*1000
, DG WITH DG/1000
124
FOR DVT=“TẤN”
SUM KL TO TN FOR LP .AND. MAVT=“XM30”
SUM KL TO TX FOR .NOT. LP .AND. MAVT=“XM30”
?’Còn lại là: ‘, Tn-Tx
3.6 Lệnh tính toán
c. Lệnh AVERAGE
-Tác dụng:
Dùng để tính trung bình cộng các trường số trên tệp
- Dạng lệnh:
125
AVERAGE [ds biểu thức] [TO ] [FOR ]
- Trong đó:
Ds biểu thức gồm các trường số cần tính trung bình
cộng, ngầm định là mọi trường số
Ds biến là các biến lưu kết quả sau khi tính trung bình
cộng
3.6 Lệnh tính toán
-Tác động:
- Lệnh duyệt từ đầu tệp tới cuối tệp để tính trung bình
cộng các trường số trên các bản ghi
- Sau đó gửi kết quả vào các biến
126
- Trường hợp có FOR thì chỉ có những bản ghi thỏa
mãn biểu thức logic mới được tính bình quân
-Ví dụ:
Tính khối lượng bình quân của vật tư có mã XM30:
USE QLVT
AVER KL TO KLBQ FOR MAVT=“XM30”
?KLBQ
3.6 Lệnh tính toán
d. Lệnh TOTAL
-Tác dụng:
Dùng để tính tổng trên các nhóm con các bản ghi của tệp
Nhóm bản ghi:
127
- Là các bản ghi thỏa mãn:
1. Liên tiếp nhau 2. Cùng tiêu thức phân nhóm
MAVT TENVT KL ST
01 Sắt 3 5
02 Gạch 5 8
01 Sắt 6 2 6
MAVT TENVT KL ST
01 Sắt 3 5
01 Sắt 6 2 6
02 Gạch 5 8
Để phân nhóm ta sắp xếp (Index)
3.6 Lệnh tính toán
- Dạng lệnh:
TOTAL ON To [FIELDS ]
[FOR ]
- Trong đó:
128
: là biểu thức bất kỳ dùng làm tiêu thức phân nhóm
: là tên của tệp kết quả (.dbf)
: là tên các trường số cần tính tổng, ngầm
định là tất cả các trường số có trong tệp
3.6 Lệnh tính toán
- Tác động:
Fox sẽ duyệt các bản ghi từ đầu tới cuối tệp để chia các
bản ghi thành các nhóm căn cứ vào:
+ Vị trí trên tệp
+ Tiêu thức phân nhóm
129
Sau đó tính tổng các trường số trên từng nhóm bản ghi
và gửi kết quả của mỗi nhóm vào một bản ghi của tệp
dữ liệu kết quả
Trường hợp có FOR thì chỉ bản ghi thỏa mãn mới được
tính tổng
3.6 Lệnh tính toán
- Nhận xét:
Tệp ghi kết quả có:
+ Cấu trúc giống tệp ban đầu
+ Số bản ghi bằng số nhóm con
130
+ Giá trị ở trường được tính tổng là tổng nhóm tương ứng
+ Giá trị ở trường không được tính tổng là giá trị của
trường nằm trên bản ghi đầu tiên của nhóm
Vậy khác nhau giữa sum và total là:
Sum tính tổng trên một nhóm bản ghi cụ thể
Total tính tổng trên nhiều nhóm bản ghi
3.6 Lệnh tính toán
- Ví dụ 1:
Báo cáo tổng khối lượng, tổng số tiền từng loại vật tư
trong kho
Các bước:
131
- Sắp xếp vật tư theo từng nhóm INDEX
- Tính tổng các nhóm TOTAL
- Mở tệp kết quả
- Hiển thị kết quả
3.6 Lệnh tính toán
USE QLVT
INDEX ON MAVT TO VD1.IDX FOR LP
TOTAL ON MAVT TO KQ1.DBF FIELDS KL, ST
132
USE KQ1
LIST FIELDS MAVT, TENVT, KL, ST
USE
3.6 Lệnh tính toán
- Ví dụ 2:
Báo cáo tồn kho từng loại vật tư (đơn vị đã chuẩn hóa)
Các bước:
133
- Gán KL của chứng từ xuất là số âm
- Tính tổng các nhóm TOTAL
- Mở tệp kết quả
- Hiển thị kết quả
- Sắp xếp vật tư theo từng nhóm INDEX
3.6 Lệnh tính toán
USE QLVT
REPL KL WITH –KL FOR .NOT. LP
INDEX ON MAVT TO VD2.IDX
134
TOTAL ON MAVT TO KQ2.DBF FIELDS KL
USE KQ2
LIST FIELDS MAVT, TENVT, KL
USE
3.6 Lệnh tính toán
- Ví dụ 3:
Tính tổng số tiền từng loại vật tư trong từng kho của
tháng 9 năm 2006
Các bước:
135
- Sắp xếp vật tư theo từng nhóm INDEX
- Tính tổng các nhóm TOTAL
- Mở tệp kết quả
- Hiển thị kết quả
3.6 Lệnh tính toán
USE QLVT
INDEX ON MAVT+MAKH TO VD3.IDX FOR LP .AND.
MONT(NL)=9 .AND. YEAR(NL)=2006
136
TOTAL ON MAVT+MAKH TO KQ3.DBF FIELDS ST
USE KQ3
LIST FIELDS MAVT, TENVT, ST
USE
File đính kèm:
bai_giang_tin_hoc_ung_dung_chuong_iv_he_quan_tri_co_so_du_li.pdf

