Transcript Document
BÀI GIẢNG
VISUAL FOX
Đại học Kinh doanh và Công nghệ Hà Nội.
Khoa Công nghệ thông tin.
8.2014
NỘI DUNG
Chương 1 • Tổng quan về Visual Fox.
Chương 2 • Hằng, biến, các hàm dữ liệu trong Visual Fox
Chương 3 • Database và Table.
Chương 4 • Truy vấn dữ liệu Query.
Chương 5 • Form và Report.
Chương 6 • Tạo Menu và quản lý dự án.
Chương 1. Tổng quan về Visual Fox
1.1 • Khái niệm hệ QTCSDL Visual Fox.
1.2 • Khởi động, thoát và giới thiệu môi trường làm việc.
1.3 • Các đối tượng trong Visual Fox.
1.4 • Làm việc với Project.
1.5 • Các kiểu dữ liệu trong Visual Fox.
1.6 • Tạo một bảng độc lập Free Table.
1.1. Khái niệm hệ QTCSDL Visual Fox.
Là hệ QTCSDL và là ngôn ngữ lập trình nhằm giải
quyết các bài toán quản lý, bài toán kinh tế có tính
chuyên nghiệp như: Quản lý nhân sự, quản lý
lương, bán hàng, vật tư…
Nằm trong bộ Visual Studio 6.0 của Microsoft trên
môi trường Window.
1.2. Khởi động và thoát khỏi Visual Fox
Khởi động:
Start/ Progam/ Microsoft Studio/ Microsoft Visual
Foxpro.
Thoát:
Menu File/ chọn Exit.
Trong cửa sổ Command gõ Quit <-/
1.2. Giao diện Visual Fox.
Hệ thống Menu
Các Tab
Cửa sổ Project
Cửa sổ
Command
1.3. Các đối tượng trong Visual Fox.
Dự án (Project):
Là một tập hợp gồm nhiều thành phần: CSDL, chương
trình, giao diện (Form), Thực đơn (Menu), báo biểu
(Report) … đặt trong tệp tin có phần mở rộng là . PJX
Cơ sở dữ liệu (CSDL – Database):
Là một hệ thống thông tin được lưu trữ trong các bảng
dữ liệu có mối quan hệ nhằm mục đích nào đó, đặt trong
tệp tin có phần mở rộng là .DBC
1.3. Các đối tượng trong Visual Fox.
Bảng dữ liệu (Table):
Là nơi chứa dữ liệu về một đối tượng thông tin nào đó có
dạng bảng, … đặt trong tệp tin có phần mở rộng là . DBF
Truy vấn (Query):
Là tệp tin có phần mở rộng là . QPR được dùng để xử lí
các thông tin trong các tệp tin DBF.
1.3. Các đối tượng trong Visual Fox.
Biểu mẫu (Form):
Là tệp tin có phần mở rộng .SCX được thiết kế để đảm
nhiệm chức năng giao tiếp giữa chương trình và người
sử dụng.
Báo cáo (Report):
Là tệp tin có phần mở rộng là . FRX được dùng để tổ chức
dữ liệu cho việc in ấn.
1.3. Các đối tượng trong Visual Fox.
Thực đơn (Menu):
Là tập hợp các mục chọn ghi các chức năng của chương
trình, có phần mở rộng là .MNX
Chương trình (Program):
Là tập hợp các câu lệnh của VF 6.0 mô tả thuật toán giải
quyết một bài toán nào đó được ghi trong một tệp có phần
mở rộng là .PRG
1.4. Làm việc với Project.
1.4.1. Tạo mới một Project.
Sử dụng Menu:
Mở Menu File/ New.
Chọn Project/ New File.
Xác định thư mục, tên tệp, chọn Save.
Sử dụng cửa sổ lệnh Command:
Gõ Create Project <Tên tệp. PJX> <-/
1.4. Làm việc với Project.
1.4.2. Giới thiệu các Tab trong cửa sổ Project Manager:
Tab Data: gồm.
Databases ( Các CSDL).
Queries (Các truy vấn).
Free Tables (Các bảng tự do).
Tab Documents: gồm.
Forms (Giao diện).
Reports (Báo biểu).
Lable (Các Nhãn).
1.4. Làm việc với Project.
1.4.2. Giới thiệu các Tab trong cửa sổ Project Manager:
Tab Classes: Danh sách các lớp dùng trong Project.
Tab Code: Mã chương trình, thủ tục.
Other: Các thực đơn và tệp tin văn bản.
1.4. Làm việc với Project.
1.4.3. Các nút chức năng trên cửa sổ Project Manager.
Tên nút
Chức năng
Add
Thêm các thành phần vào Project
New
Tạo một thành phần mới trong Project
Modify
Sửa cấu trúc của một thành phần trong Project
Browse
Xem và sửa dữ liệu của các bảng hay truy vấn
Remove
Loại bỏ một thành phần trong Project
1.4. Làm việc với Project.
1.4.4. Tạo File mới trong một thành phần của Project
Manager:
Chọn một Tab (VD: Tab Data)
Chọn một thành phần trong cửa sổ Project (VD: Free
Table).
Nhấp chuột chọn New, chọn thư mục và gõ tên tệp tin.
1.5. Các kiểu dữ liệu trong Visual Fox.
Kiểu số - Numeric (N):
Dùng để biểu diễn các số liệu mang giá trị số học và có
nhu cầu tính toán như trong kế toán, quản lý …gồm số
nguyên, số thập phân.
Một vài kiểu số xác định: Integer, Float, Double.
Kiểu chuỗi – Character (C):
Là một tổ hợp bao gồm cả ký tự chữ cái và số, độ dài tối
đa là 255 ký tự.
1.5. Các kiểu dữ liệu trong Visual Fox.
Kiểu ngày tháng – Date (D):
Dùng cho những số liệu dạng ngày tháng. Độ dài cố định
là 8 ký tự.
Kiểu logic - Logical (L):
Dùng cho những dữ liệu chỉ có một trong hai trường hợp
Đúng (.T.) hoặc Sai (.F.). Độ dài cố định là 1.
1.5. Các kiểu dữ liệu trong Visual Fox.
Kiểu tổng quát - General (G):
Dùng để chứa dữ liệu như bảng tính, âm thanh ....
Kiểu ghi nhớ - Memo (M):
Là một đoạn văn bản có độ dài lớn hơn 255 ký tự. Chúng
được lưu trữ trong một tập tin khác có cùng tên nhưng có
phần mở rộng là .FPT (Foxpro Text). Để gõ kiểu này nhấn
phím (Ctrl + Page Up hoặc Ctrl + Page Down)
1.6. Tạo một bảng độc lập Free Table.
1.6.1. Tạo cấu trúc bảng Free Table.
Tại Tab Data chọn Free Table.
Chọn New, chọn thư mục và gõ tên, chọn Save.
Tại Tab Fields:
Name: gõ tên trường.
Type: chọn kiểu dữ liệu.
Width: gõ độ rộng của dữ liệu.
Decimal: chọn số chữ số phần thập phân.
Chọn Ok.
1.6. Tạo một bảng độc lập Free Table.
1.6.2. Nhập dữ liệu cho bảng Free Table.
Sau khi tạo xong cấu trúc bảng, phần Input data records
now, chọn Yes.
Nhập dữ liệu cho từng bản ghi.
Chương 2. Tổng quan về Visual Fox
2.1
2.2
2.3
2.4
• Hằng (Const).
• Biến (Variable).
• Các phép toán.
• Các hàm thông dụng trong Visual Fox.
2.1. Hằng (Const)
Hằng: Là một đại lượng không thay đổi.
Gồm:
Hằng nguyên: Gồm các số nguyên.
Hằng thực: Gồm các số thực.
Hằng văn bản: Là các chuỗi đặt trong dấu “…”, ‘…’, (…).
Hằng logic: là giá trị True (.T.) và giá trị False (.F.)
Hằng ngày tháng: là giá trị kiểu ngày tháng, đặt trong dấu {…}
theo nguyên tắc: {^yyyy/ mm/ dd}.
2.2. Biến (Variable)
Biến: Là một vùng bộ nhớ lưu trữ dữ liệu tạm thời, có
thể thay đổi trong quá trình tính toán.
Gồm:
Biến ký ức (biến bộ nhớ): vùng bộ nhớ lưu trữ DL tạm thời do
người dùng khai báo.
Biến hệ thống: Biến của VF bắt đầu bằng dấu gạch dưới (_)
Biến vùng: Là vùng nhớ chứa tệp CSDL mở.
2.2. Biến (Varialbe)
Đặt tên biến: là một chuỗi ký tự bắt đầu là chữ cái,
không chứa dấu cách, không trùng với từ khóa của VF, tối
đa 255 kí tự.
Gán giá trị cho biến:
Tên biến = biểu thức.
Hoặc Store biểu thức To danh sách biến.
VD: a = 5, d = {^1998/10/26} …
2.3. Các phép toán.
2.3.1. Phép toán với kiểu chuỗi ký tự:
Phép toán ghép nối (+): dùng để ghép hai chuỗi cạnh
nhau.
VD: a = “Trung tâm”
b = “Tin học”
c = a + b = “Trung tâmTin học”.
d = a + “_“ + b => “Trung tâm_Tin học”.
2.3. Các phép toán.
2.3.1. Phép toán với kiểu chuỗi ký tự:
Phép toán ghép nối (-): dùng để ghép hai chuỗi cạnh
nhau, và di chuyển dấu cách ở cuối chuỗi thứ nhất (nếu
có) ra cuối chuỗi thứ hai.
VD: a = “_ _Trung tâm_ _”
b = “Tin học”
c = a - b => “_ _Trung tâmTin học_ _”.
2.3. Các phép toán.
2.3.1. Phép toán với kiểu chuỗi ký tự:
Phép thuộc ($): kiểm tra chuỗi bên trái có nằm trong
chuỗi bên phải hay không. Kết quả trả về có kiểu logic
(T, F).
VD: a = “kd”
b = “Đại học Kinh doanh và Công nghệ Hà Nội”
c = “Đại học kd & cn Hà Nội”
d = a $ b => .F.
d = a $ c => .T.
2.3. Các phép toán.
2.3.2. Phép toán quan hệ
So sánh hai giá trị của hai biểu thức cùng kiểu.
VD:
5<6 => .T.
5>6 => .F.
2.3. Các phép toán.
2.3.3. Phép toán với kiểu logic:
Phép Not hay !: phép phủ định của toán hạng theo sau:
VD: ?Not(5>6) => .T.
?!(5<6) => .F.
And và Or:
X
Y
X And Y
X Or Y
.T.
.T.
.T.
.T.
.T.
.F.
.F.
.T.
.F.
.F.
.F.
.F.
2.3. Các phép toán.
2.3.4. Phép toán ngày:
Trừ ngày cho ngày:
VD: a ={^2014/10/14}
b= {^2014/10/23}
c = b – a => 9
Ngày cộng hoặc trừ cho một đại lượng:
VD: a ={^2014/10/14}
? a + 10 => 10/24/2014.
? a – 10 => 10/4/ 2014.
2.3. Các phép toán.
2.3.4. Phép toán ngày:
Thiết lập kiểu ngày sử dụng lệnh:
Set Date French (dd/mm/yyyy)
VD: a ={^2014/10/14}
Set Date French
?a => 14/10/2014
Set Date America (mm/dd/yyyy)
VD: a ={^2014/10/14}
Set Date America
?a => 10/14/2014
2.4. Các hàm thông dụng trong VF.
2.4.1. Hàm về chuỗi kí tự:
Hàm Left(X,n): Lấy n ký tự trong chuỗi X tính từ bên trái.
VD: Left (“Đại học Kinh doanh & Công nghệ Hà Nội”,7) = “Đại học”
Hàm Right(X,n): Lấy n ký tự trong chuỗi X tính từ bên phải.
VD:Right(“Đại học Kinh doanh & Công nghệ Hà Nội”,6) = “Hà Nội”
Hàm Substr(X,m,n): Lấy n ký tự, bắt đầu từ ký tự m trong
chuỗi X.
VD:Mid(“Đại học KD & CN Hà Nội”,9,7) = “KD & CN”
2.4. Các hàm thông dụng trong VF.
2.4.1. Hàm về chuỗi kí tự:
Hàm UPPER(X): Chuyển chuỗi X thành VIẾT HOA.
VD: UPPER (“This is A table”) = “THIS IS A TABLE”
Hàm low er(X): Chuyển chuỗi X thành viết thường.
VD: low er (“This is A table”) = “this is a table”
Hàm Proper(X): Chuyển ký tự đầu của mỗi từ trong chuỗi X
thành Hoa.
VD: Proper (“This is A table”) = “This Is A Table”
2.4. Các hàm thông dụng trong VF.
2.4.1. Hàm về chuỗi kí tự:
Hàm LTrim(X): Bỏ khoảng trắng bên trái chuỗi X.
VD: LTrim (“_ _This is a table_ _”) = “This is a table_ _”
Hàm RTrim(X): Bỏ khoảng trắng bên phải chuỗi X.
VD: RTrim (“_ _This is a table_ _”) = “_ _This is a table”
Hàm AllTrim(X): Bỏ khoảng trắng ở hai đầu chuỗi X.
VD: AllTrim (“_ _This is a table_ _”) = “This is a table”
2.4. Các hàm thông dụng trong VF.
2.4.1. Hàm về chuỗi kí tự:
Hàm Len(X): Lấy độ dài chuỗi X.
VD: Len (“This is a table”) = 15.
Hàm Str(số): Chuyển từ số thành chuỗi.
VD: Str(123) = “123”.
Hàm Val(chuỗi): Chuyển từ chuỗi thành số.
VD: Val(Left(“123AH7”,2)) = 12
2.4. Các hàm thông dụng trong VF.
2.4.2. Hàm về ngày tháng:
Hàm Date(): Trả về ngày tháng năm hiện tại.
VD:
a = Date()
?a => 08/22/14
Hàm Day(): Lấy ngày trong biểu thức Date.
Hàm Month(): Lấy tháng trong biểu thức Date.
Hàm Year(): Lấy năm trong biểu thức Date.
VD:
Day(a) = 22.
Month(a) = 8.
Year(a) = 2014.
2.4. Các hàm thông dụng trong VF.
2.4.2. Hàm về ngày tháng:
Hàm DtoC(): Chuyển ngày tháng sang chuỗi.
VD:
a = {^2014/10/22}
?DtoC(a) => “10/22/14“
Hàm CtoD(): Chuyển chuỗi ngày tháng sang ngày tháng.
VD:
a = “10/22/14”
?CtoD(a) => 10/22/14
2.4. Các hàm thông dụng trong VF.
2.4.2. Hàm về ngày tháng:
Hàm Cdow(): Cho biết tên thứ trong tuần.
VD:
a = {^2014/10/22}
?Cdow(a) => Wednesday.
Hàm CMonth(): Cho biết tên tháng trong năm.
VD:
a = “10/22/14”
?Cmonth(a) => October.
2.4. Các hàm thông dụng trong VF.
2.4.3. Hàm về số:
Hàm Max(các giá trị): Trả về số lớn nhất.
VD:
a = 4, b = 5, c = 6
?Max(a,b,c) => 6
Hàm Min(các giá trị): Trả về số bé nhất.
VD:
?Min(a,b,c) => 4
2.4. Các hàm thông dụng trong VF.
2.4.3. Hàm về số:
Hàm Int(số): Lấy số nguyên.
VD:
a = 5, b = 3
?Int(a/b) => 1
Hàm Mod(bt1,bt2): Trả về số dư trong phép chia của bt1
cho bt2.
VD:
?Mod(a,b) => 2
2.4. Các hàm thông dụng trong VF.
2.4.3. Hàm về số:
Hàm ABS(số): Lấy trị tuyệt đối của số.
VD:
a = 5, b = 3
?ABS(b - a) => 2
Hàm SQRT(số): Lấy căn bậc hai của số.
VD:
?SQRT(4) => 2
2.4. Các hàm thông dụng trong VF.
2.4.3. Hàm về số:
Hàm Round(số,n): Làm tròn số với n chữ số cần làm tròn.
VD:
Round(125.125,2) = 125.13
Round(125.125,0) = 125
Round(125.125,-1) = 130
2.4. Các hàm thông dụng trong VF.
2.4.4. Hàm IIF():
Sử dụng trong các biểu thức có nhiều giá trị để lựa chọn
mà ta chỉ được chọn 1 giá trị thỏa mãn điều kiện.
Cú pháp: IIF(Biểu thức logic, BT True, BT False)
Biểu thức logic, trả về một trong hai kết quả True hoặc False.
BT True, BT False: có thể là một giá trị, biểu thức tính toán,
chuỗi.
Trường hợp có n lựa chọn ta phải sử dụng n – 1 vòng IIF.
IIF(BT Logic1, True1, IIF(BT Logic2, True2 ...).
2.4. Các hàm thông dụng trong VF.
2.4.4. Hàm IIF():
VD: Kiểm tra xem một số là số không, số chẵn hay số lẻ:
a = 3
?IIF(a = 0, “Số không”, IIF(Mod(a,2) = 0, “Số chẵn”, “Số lẻ”))
=> KQ trả về “Số lẻ”
Chương 3: Database và Table
3.1
3.2
3.3
3.4
• Khái niệm Database và các thành phần liên
quan.
• Làm việc với Database.
• Làm việc với Table và dữ liệu trong Table.
• Các lệnh làm việc với bảng trên cửa sổ
Command.
3.1 Khái niệm Database và các thành
phần liên quan
Khái niệm Database :
Là hệ thống thông tin được lưu trữ trong các bảng dữ liệu
có mối quan hệ (các bảng tham chiếu) nhằm mục đích
nào đó và các thành phần liên quan như: chỉ mục, hàm
cửa sổ được đặt trong tệp tin có phần mở rộng là .DBC
3.1. Khái niệm Database và các thành
phần liên quan
Các thành phần trong Database gồm:
-các bảng dữ liệu (table)
-các trường trong bảng và các kiểu dữ liệu
-các bản ghi dữ liệu trong bảng
-các mối quan hệ
- quan hệ 1-1 ( Inner Join)
- quan hệ toàn vẹn (full join)
- quan hệ 1-n ( Left Join)
- quan hệ n-1 (Right Join)
- quan hệ toàn vẹn (Full Join)
- Chỉ mục (index) : dùng để sắp xếp dữ liệu của trường khoá
của bảng thực hiện mối quan hệ với bảng khác trong csdl gồm
khoá chính, khoá phụ…
- Hàm cửa sổ (View) : Là một bảng ảo lấy dữ lệu từ nhiều
bảng tham chiếu trong csdl dựa trên các mối quan hệ
3.2. Làm việc với Database
3.2.1. Tạo mới một Database
Cách 1: Thực hiện từ cửa sổ Project
+ Chọn Tab Database chọn nút New chọn New
database
+ Chọn vị trí lưu nhập tên Database chọn Save
Cách 2: Tạo Database từ cửa sổ lệnh
CREATE DATABASE <Tên tệp.DBC>
3.2.2 Loại bỏ 1 Database khỏi Pjorect
Cách 1 : Thực hiện từ cửa sổ Project
-> Chọn Database trong trang Data, chọn tên tệp CSDL
-> Kích nút Remove, chọn Remove hoặc Delete.
Cách 2 : Thực hiện từ cửa sổ lệnh
DELETE DATABASE <Tên CSDL.DBC>
3.2.3-Thêm một csdl đã có vào Project
-> Chọn Database trong trang Data
-> Kích nút Add
-> Chọn thư mục và tên csdl chọn OK
3.2. Làm việc với Database
3.2.4. Các thao tác trên Database Desinger
- Mở database ở chế độ Modify
- Thực hiện các nút trên thanh công cụ Database Designer
New table
Add table
Remove
table
3.2. Làm việc với Database
3.2.5. Các lệnh làm việc với Database trong cửa sổ Command
a. Mở một Database
Open database tên database.dbc
a. Xem và sửa cấu trúc một Database
Modify database tên Database.dbc
3.2. Làm việc với Database
3.2.6. Mở một Database đã có:
C1. Tại cửa sổ Project manger
+ Chọn tab Data Database tên Database Modify
C2: Tại cửa sổ Command
Gõ lệnh: Modify database tên database.dbc
3.3. Làm việc với Table và dữ liệu trong
Table
3.3.1. Tạo bảng trong CSDL
Cách 1: Thực hiện từ cửa sổ Database Designer
Bước 1:Tạo cấu trúc tệp DBF
- Mở hoặc tạo 1 CSDL mới
- Kích phải chuột lên cửa sổ Database Designer, chọn
new table -> chọn New table -> đặt tên tệp DBF -> OK
3.3. Làm việc với Table và dữ liệu trong
Table
- Định nghĩa cấu trúc bảng
trong cửa sổ Table Designer
+ Gõ tên trường tại Name
+ Chọn kiểu trường tại TYPE
+ XĐ độ dài trường tại Width
+
Chọn
cách
sắp
xếp
DL(Ascending,
Descending)
tại Index
3.3. Làm việc với Table và dữ liệu trong
Table
- Xác định các tính chất của trường :
Tính chất
Y nghĩa
Caption
Tên tiêu đề của trường
Input Mask
Khuôn dạng nhập liệu
Format
Định dạng dữ liệu khi nhập
Rule
Đặt quy tắc khi nhập dữ liệu
Message
Đưa ra thông báo khi nhập dữ liệu sai quy tắc
Default Value
Đặt gía trị mặc định cho trường
- Ấn Ok
Bước 2: Ấn nút Yes Nhập dữ liệu cho bảng
3.3. Làm việc với Table và dữ liệu trong
Table
Cách 2: Thực hiện từ cửa sổ lệnh Command
Bước 1: tạo cấu trúc tệp DBF
-> Mở hoặc tạo mới 1 CSDL
-> Cú pháp : CREATE <Tên bảng.DBF> <-/
-> Định nghĩa cấu trúc bảng trong cửa sổ Table Designer
tương tự cách 1.
-> OK
Bước 2: Chọn Yes, Nhập DL vào tệp DBF
Cách 3: Thực hiện từ Menu File
-> Mở Menu File, chọn new
-> Chọn Table, chọn New file
-> Đặt tên bảng chọn OK
3.3. Làm việc với Table và dữ liệu trong
Table
Các kiểu dữ liệu của trường
- Character: kiểu văn bản có độ dài tối đa là 256 ký tự.
- Number: kiểu số gồm các kiểu con sau:
- Byte: kiểu số nguyên có giá trị từ 0 đến 255.
- Integer: kiểu nguyên -327666 32767
- LongInteger: kiểu nguyên kép.
- Single: kiểu số thực đơn.
- Double: kiểu số thực kép ...
3.3. Làm việc với Table và dữ liệu trong
Table
Một số kí hiệu trong Input Mask
+ X: Cho phép nhập một ký tự bất kỳ
+ 9:Cho phép nhập một dấu (+) hoặc trừ (-) hoặc chữ số
+ #:Cho phép nhập một dấu (+) hoặc trừ (-) hoặc chữ số hoặc
dấu cách
+ A: Cho phép nhập một chữ cái
+ N: Cho phép nhập chữ cái hoăc chữ số
+ ! : Khi chữ cái nhập sẽ biến thành chữ hoa
+ Dấu chấm: xác định vị trí dấu chấm thập phân trong dữ liệu
kiếu số
+Dấu phẩy: : xác định vị trí phân nhóm trong dữ liệu kiếu số
3.3. Làm việc với Table và dữ liệu trong
Table
3.3.2. Thêm bảng độc lập vào Database.
Cách 1: Thực hiện từ cửa sổ Database Designer
-> Kích chuột phải lên cửa sổ Database Designer chọn ADD
Table
-> Chọn thư mục và tên bảng cần lấy, kích OK
Cách 2: Thực hiện từ cửa sổ lệnh
-> Cú pháp : ADD TABLE <Tên bảng.DBF> <-/
-> Chọn thư mục và tên bảng cần lấy, kích OK
3.3. Làm việc với Table và dữ liệu trong
Table
3.3.3. Loại bỏ các tệp DBF ra khỏi CSDL.
Cách 1: Thực hiện từ cửa sổ Database Designer
- Chọn tên bảng -> Kích nút Remove -> Chọn Remove hoặc
Delete
Cách 2: Thực hiện từ cửa sổ lệnh
REMOVE TABLE <Tên bảng.DBF> <-/
3.3. Làm việc với Table và dữ liệu trong
Table
3.3.4. Sửa cấu trúc các tệp dbf
Cách 1: Thực hiện từ cửa sổ Project Manager
-> Chọn Tab Data -> chọn Database -> chọn tên CSDL ->
chọn tệp DBF -> Kích nút Modify
-> Sửa tên, kiểu, độ dài, Thêm, bớt trường và các tính chất
trong cửa sổ Table Designer -> OK
Cách 2: Thực hiện từ cửa sổ lệnh
- Mở tệp DBF : USE <Tên bảng>
<-/
- Gõ lệnh : MODIFY STRUCTURE < -/
3.3. Làm việc với Table và dữ liệu trong
Table
3.3.5. Tạo và hủy mối liên kết giữa các bảng
a. Tạo mối quan hệ
-> Tạo chỉ mục Index cho các trường trung gian của các bảng
-> Mở cửa sổ Database Designer chứa các bảng
-> Kích kéo chuột đưa trường trung gian của bảng này thả
vào bảng kia.
-> +Ghi lại
b. Huỷ bỏ mối quan hệ
-> Mở cửa sổ Database Designer
-> Chọn đường nối giữa 2 bảng
-> ấn phím Delete
3.3. Làm việc với Table và dữ liệu trong
Table
3.3.6. Nhập và sửa dữ liệu giữa các bảng
- Mở bảng: Chọn tab Data -> Database -> Tên CSDL -> Tên
bảng -> ấn nút Browse
- Nhập dữ liệu: Chọn View trên thanh Menu -> Append mode (
hoặc ấn tổ hợp phím Ctrl + Y)
3.3.7. Sửa dữ liệu bảng
- Mở bảng -> sửa trực tiếp dữ liệu trên từng trường
3.4. Các lệnh làm việc với bảng trên
cửa sổ Command
3.4.1. Lệnh xem và sửa cấu trúc bảng
Use Tên bảng
Modify structure Tên bảng
3.4.2. Nhóm lệnh xem và sửa nội dung các bản ghi
a. Lệnh Browse: xem và sửa toàn bộ dữ liệu dưới dạng bảng
+ Cú pháp:
Browse [font <name,size>][fields<dstrường>][freeze<trường >]
[lock<n>][for< đk>]
Trong đó:
- font <name,size>: font chữ và kích thước của trường cần hiện
- [fields<dstrường>]: liệt kê danh sách trường cần hiện
- [freeze<trường>]:chỉ cho phép sửa trường này mà không sửa
trường khác
- [lock<n>]: giữ lại n trường bên trái
- [for<dk>]: điều kiện để hiện trường.
3.4. Các lệnh làm việc với bảng trên
cửa sổ Command
b. Lệnh Edit: xem và sửa dữ liệu với từng bản ghi
+ Cú pháp: EDIT <Phạm vi>[<ds trường>] [FOR <ĐK> ] <-/
+ Ví dụ: Hiển thị Masv, hoten, ngaysinh của các sinh viên sinh
năm 1995
Edit field Masv, hoten, ngaysinh for year(ngaysinh) = 1995
c. Lệnh List: xem dữ liệu toàn bảng
LIST [<phạm vi>] [FIELDS <ds trường>] [FOR <ĐK>]
3.4. Các lệnh làm việc với bảng trên
cửa sổ Command
3.4.3. Chèn và bổ sung các bản ghi
a. bổ sung các bản ghi mới
+. Nối thêm các bản ghi mới:
APPEND <-/
+ Nối các bản ghi từ một bảng khác
APPEND FORM <Bảng DL nguồn><-/
+ Nối thêm bản ghi trắng vào cuối tệp
APPEND BLANK <-/
3.4. Các lệnh làm việc với bảng trên
cửa sổ Command
b. Chèn các bản ghi mới
+ Chèn trước hoặc sau một bản ghi thứ n
Cú pháp:
Go n
Insert before [after]
3.4. Các lệnh làm việc với bảng trên
cửa sổ Command
3.4.4. Con trỏ bản ghi và di chuyển con trỏ bản ghi
+ GO <n>: Chuyển tới bản ghi thứ n.
+ GO TOP: Chuyển tới bản ghi đầu tiên.
+ GO BOTTOM: Chuyển tới bản ghi cuối cùng.
+ SKIP: Dịch chuyển theo chiều tiến 1 bản ghi.
+ SKIP <n>: Dịch chuyển n bản ghi.
Nếu n>0: dịch chuyển theo chiều tiến
Nếu n<0: dịch chuyển theo chiều lùi
+ Nhóm hàm về con trỏ bản ghi
- Hàm RECNO( ) : Trả Về bản ghi hiện thời
- Hàm EOF( ): cho kq là .T. khi con trỏ ở bản ghi cuối
- Hàm BOF( ) : cho kq là .T. khi con trỏ ở bản ghi đầu
- Hàm Recount( ) : đếm tổng số bản ghi trong tệp DBF
3.4. Các lệnh làm việc với bảng trên
cửa sổ Command
: 3.4.5. Xem và sửa nội dung bản ghi dùng để thay thế nội
dung field1 thành nội dung <bt1>,…
Cú pháp:
Replace [<phamvi>][field1] with<biểu thức1 > [,<field2>
with <biểu thức>….] [for <ĐK>]
Ví dụ: Thay thế tất cả nội dung trường hoten thành in hoa
Repl all hoten with uppe(hoten)
3.4. Các lệnh làm việc với bảng trên
cửa sổ Command
: 3.4.6. Xóa và khôi phục bản ghi đã đánh dâu xóa gồm
a.đánh dấu xoá
Delete [<pham vi>][for <điều kiện>]
Trong đó: <phạm vi> gồm :
- all : làm việc với tất cả các bản ghi
- record<n>: làm việc với bản ghi thứ n
- next<n>: làm việc với n bản ghi
- rest: làm việc từ bản ghi hiện hành đến cuối tệp
Ví dụ: Xóa các sinh viên nữ
Delete all for gioitinnh= “no””
3.4. Các lệnh làm việc với bảng trên
cửa sổ Command
b. xoá bản ghi thứ n
go n
Delete
pack
*. Xoá k bản ghi từ bản ghi n
go n
delete next k
pack
*. Xoá từ bản ghi n đến cuối tệp
go n
delete rest
pack
3.4. Các lệnh làm việc với bảng trên
cửa sổ Command
c. Khôi phục các bản Ghi bị đánh dấu
RECALL <Phạm vi> [FOR <ĐK>] < -/
d. Xoá các bản Ghi đã đánh dấu
PACK <-/
e. Xoá toàn bộ các bản Ghi dữ liệu
ZAP <-/
3.4. Các lệnh làm việc với bảng trên
cửa sổ Command
: 3.4.7. Xem và sửa nội dung bản ghi dùng để thay thế nội
dung field1 thành nội dung <bt1>,…
Cú pháp:
Replace [<phamvi>][field1] with<biểu thức1 > [,<field2>
with <biểu thức>….] [for <ĐK>]
Ví dụ: Thay thế tất cả nội dung trường hoten thành in hoa
Repl all hoten with uppe(hoten)
3.4. Các lệnh làm việc với bảng trên
cửa sổ Command
3.4.8. Nhóm lênh sắp xếp Sort và Index
a. Lệnh Sort:
+ Cú pháp:Sort on <tên trường>/a/d to <tên biến>
+ Ví dụ: sắp xép sbd trật tự tăng dần
Sort on sbd/a to sx
Use sx
Brow
b. Lệnh Index:
+ Cú pháp: index on <tên trường> to <tên biến>(tăng dần)
Hoặc index on - <tên trường> to <tên biến>(giảm dần)
Brow
3.4. Các lệnh làm việc với bảng trên
cửa sổ Command
3.4.9. Nhóm lệnh thống kê
a. đếm có đIều kiện :
+ Cú pháp:Count <phạm vi> for <ĐK> to <tên biến>
+ Ví dụ : đếm tất cả các mặt hàng bán với sốlượng >100
Count all for soluongban>=100 to dem
?dem
b. Tính tổng
+ Cú pháp: Sum <tên trường> to <tên biến> for <ĐK>
+ Ví dụ: tính tổng lương tất cả nhân viên sinh năm 1976
Sum luong to tongtien for year(ns)=1976
?tongtien
c. Tính trung bình cộng
+ Cú pháp: Average <tên trường> to <tên biến> for <ĐK>
3.4. Các lệnh làm việc với bảng trên
cửa sổ Command
d. Tính tổng hợp theo nhóm
TOTAL TO <tên tệp.DBF> ON <Biểu thức khóa>
[<Phạm vi>] [FIELDS <Ds trường>][FOR <ĐK>]
e. Tìm giá trị max, min
+ Cú pháp: Calc max( tên trưòng ))
+ Ví dụ: Tìm max của tổng
Calc max(tong)
Tương tự Calc min(tên trường): tìm min
Chương 4: Truy vấn dữ liệu (QUERY)
4.1
4.2
4.3
4.4
• Khái niệm Query.
• Các bước tạo Query.
• Tạo Query có điều kiện.
• Tạo Query có sử dụng hàm thống kê.
4.1. KHÁI NIỆM QUERY
Truy vấn Query là công cụ để xử lý dữ liệu trong các tệp tin
*.dbf như:
+ Lấy ra các trường cần thiết, các bản ghi thoả mãn điều
kiện từ một hay nhiều bảng
+ Sắp xếp lại thứ tự các bản ghi
+ Tính toán và thống kê dữ liệu từ một hoặc nhiều bảng khác,
…
4.2. CÁCH TẠO QUERY
4.2.1. Giới thiệu các thành phần trong cửa sổ Query Designer
4.2. CÁCH TẠO QUERY
a. Tab Fields: đưa các trường tham gia vào truy vấn gồm:
- Hộp Functions and Expressions :Dùng để tạo biểu thức
tính kết quả trong truy vấn
- Các nút chức năng:
+ Add: Thêm lần lượt từng trường vào truy vấn
+ Add All: Đưa tất cả
các trường vào truy
vấn
+ Remove: Loại bỏ các
trường đã chọn
+ Remove All: Loại bỏ tất
cả các trường đã chọn
4.2. CÁCH TẠO QUERY
Tab Joint: chỉ mối liên kết giữa các bảng
Trong VF co 4 loại kết nối
+ 1-1(Inner joint): một bản ghi của bảng A
quan hệ duy nhất với một bản ghi của bảng B
+ 1-n (Left join): mỗi bản ghi nằm trong bảng
bên trái sẽ xuất hiện nhiều lần trong kết quả
+ n-1 (Right join): các bản ghi nằm trong bảng
bên phải sẽ xuất hiện trong kết quả cho dù
chúng có so khớp hay không
+ Toàn vẹn(full jont): n bản ghi của A liên kết
n bản ghi của B
4.2. CÁCH TẠO QUERY
c. Tab Filter: Xác định điều kiện lọc trong truy vấn
+ Field name: tên trường
Làm đk lọc
+ Criteria: phép so sánh
(=, like, >, <, …)
+ Example: giá trị điều kiện
+ Logical: các phép toán logic
(and, or, …)
4.2. CÁCH TẠO QUERY
d. Tab Order by: dùng để chỉ định thứ tự sắp xếp các bản ghi
cho bảng kết quả truy vấn
+ Ascending: sắp xếp tang dần
+ Desending: sắp xếp giảm dần
e. Tab Group by: dùng để chỉ định cách thức phân nhóm các
bản ghi kết quả
f. Tab Miscellaneous:một số chức năng khác (không có bản
ghi nào trùng nhau, số bản ghi cần hiện…)
4.2. CÁCH TẠO QUERY
4.2.2. Các bước tạo Query bằng Design View
B1:Lấy các bảng vào truy vấn:
- Tab Data/ Query/ New/ New Query/ chọn tên bảng/ Add
- Tại Tab Field: Chọn các trường tham gia truy vấn/ Add:
Thực hiện các hàm cần lấy ở Function and Expression
B2: Xác định mối liên kết giữa các bảng Tab Join
B3: xác định điều kiện lọc ở Tab Filter
B4: thực hiện chạy truy vấn
+ C1:Chọn biểu tượng run trên thanh công cụ
+ C2: dùng lệnh : do <ten truy vấn>.qpr
B5: Lưu truy vấn File /save.
4.2. CÁCH TẠO QUERY
4.2.3. Tạo truy vấn Wizard:
+ Chọn Tab Data/ Query/ New/ Query wizard/ chọn 1 trong 3
cách tạo Wizard sau:
- Cross – Tab Wizard: truy vấn dữ liệu chéo theo bảng
- Graph Wizard: truy vấn dữ liệu dạng sơ đồ
- Query Wizard: truy vấn theo các bước mặc định sẵn của
máy tính gồm
Step 1: Select Field
Step 2: Relate Table
Step 3: Filter Record
Step 4: Sort Record
Step 5: Finish
4.2. CÁCH TẠO QUERY
4.2.3. Tạo truy vấn Wizard:
+ Chọn Tab Data/ Query/ New/ Query wizard/ chọn 1 trong 3
cách tạo Wizard sau:
- Cross – Tab Wizard: truy vấn dữ liệu chéo theo bảng
- Graph Wizard: truy vấn dữ liệu dạng sơ đồ
- Query Wizard: truy vấn theo các bước mặc định sẵn của
máy tính gồm
Step 1: Select Field
Step 2: Relate Table
Step 3: Filter Record
Step 4: Sort Record
Step 5: Finish
4.3. TẠO QUERY CÓ ĐIỀU KIỆN
+ Trên cửa sổ Project chọn Tab Data/ Query/ New/ New
Query/ chọn tên bảng/ Add
+ Trên cửa sổ Query Designer
Tab Field: chọn các trường cần lấy
Tab Join: xác định mối liên kết giữa các bảng
Tab Filter: xác định điều kiện lọc gồm
Field name:xác định trường cần lọc
Criteria: phép so sánh(=, like, >, <, …)
Example: gõ giá trị lọc
4.4. TẠO QUERY CÓ SỬ DỤNG HÀM
THỐNG KÊ
a. Các hàm thống kê cơ bản
- Hàm sum(<bt số>): tính tổng theo nhóm
- Hàm Avg(<bt số>): tính giá trị trung bình cộng
- Hàm Max(<bt số>): tìm giá trị lớn nhất
- Hàm Min(<bt số>): tìm giá trị nhỏ nhất
- Hàm logic
IIF(<điều kiện >,<giá trị đúng>,<gia tri sai>)
Ví dụ: xếp loại sinh viên, nếu dtb>5: đạt, dtb<5: không đạt
IIF(dtb<5, “không đạt”, “đạt”)
4.4. TẠO QUERY CÓ SỬ DỤNG HÀM
THỐNG KÊ
b. Cách tạo:
- Tab Field: chọn trường cần lấy vào truy vấn -> Add
Funtion and Expression: gõ biểu thức hàm thống kê -> Add
- Tab Group by: chọn trường cần nhóm dữ liệu -> Add
Chương 5. Form và Report
5.1
5.2
•Biểu mẫu – Form.
•Báo biểu – Report.
5.1. Biểu mẫu – Form.
5.1.1. Form là gì?
Form là một công cụ(hay cũng có thể gọi là một cửa sổ)
nhờ nó ta có thể thiết kế các ý tưởng sau:
Thiết kế giao điện để hiển thị thông tin.
Thiết kế giao diện để nhập dữ liệu vào CSDL.
Đặt các đối tượng lên Form(nhãn Label, hộp văn bản
Textbox, nút lênh Command,...) để đáp ứng lại các thao
tác của người dùng...
5.1. Biểu mẫu – Form
5.1.2. Thiết kế Form Wizard ứng với 1 bảng
Wizard là một công cụ (đã lập trình sẵn) giúp chúng ta dễ
dàng xây dựng một dạng Form theo một số chuẩn nào đó.
Các bước tiến hành như sau:
Tại cửa sổ Project Manager(PM) ta chọn: Document, chọn
Forms, chọn New, trên hộp thoại New Form chọn Form
Wizard, hộp thoại Wizard Selection xuất hiện chọn Form
Wizard. Ta có hộp thoại:
5.1. Biểu mẫu – Form
5.1.2. Thiết kế Form Wizard ứng với 1 bảng
BƯỚC
CSDL
Bước 1: Chọn
CSDL, chọn
bảng và các
trường cần
thiết sau đó
nhấp Next.
TABLES
CÁC FIELDS
NGUỒN
CÁC FIELDS
ĐƯỢC CHỌN
5.1. Biểu mẫu – Form
5.1.2. Thiết kế Form Wizard ứng với 1 bảng
Bước 2: Chọn
dạng(Style)
của Form và
dạng các nút
lệnh(Button
type) sau đó
nhấp Next.
5.1. Biểu mẫu – Form
5.1.2. Thiết kế Form Wizard ứng với 1 bảng
Bước 3: Chọn
cách sắp xếp
thứ tự các bản
ghi sau đó
nhấp Next.
5.1. Biểu mẫu – Form
5.1.2. Thiết kế Form Wizard ứng với 1 bảng
Bước 4: Kết thúc
Save form for later use: lưu
Form vừa tạo không chạy.
Save and run form: lưu Form
và chạy thử.
Save form and modify it in the
Form Designer: lưu Form và
chỉnh sửa Form trong Form
Designer.
5.1. Biểu mẫu – Form
5.1.3. Thiết kế Form Wizard ứng với nhiều bảng
Trưng diện PM, chọn Document, chọn Form, chọn New, chọn
Form Wizard, sau đó ta có hộp thoại:
Chọn One-to-Many
Form Wizard/ OK
5.1. Biểu mẫu – Form
5.1.3. Thiết kế Form Wizard ứng với nhiều bảng
Bước 1: Chọn
CSDL, chọn
bảng
chính(cha) và
các trường
cần thiết sau
đó nhấp Next.
5.1. Biểu mẫu – Form
5.1.3. Thiết kế Form Wizard ứng với nhiều bảng
Bước 2: Chọn
bảng phụ(con)
có quan hệ với
bảng cha và
các trường
cần thiết sau
đó nhấp Next.
5.1. Biểu mẫu – Form
5.1.3. Thiết kế Form Wizard ứng với nhiều bảng
Bước 3: Xác
định mối quan
hệ giữa 2 bảng
sau đó nhấp
Next.
Các bước 4, 5, 6 tương tự như các bước 2, 3, 4 trong phần 5.1.2
5.1.4. Thiết kế Form Designer(Sinh viên tự tìm hiểu)
5.1. Biểu mẫu – Form
5.1.5. Giới thiệu thanh công cụ Form Control.
1. Select Object: Chọn đối tượng
2. Label: Nhãn
3. Edit box: Hộp văn bản
4. Command Group : Nhóm các nút lệnh
5. Chech box: Hộp kiểm tra
6. List box: Hộp danh sách
7. Grid: Bảng lưới
8. Timer: Thời gian
1
2
3
4
5
6
7
12. Hyperlink: Kết nối
8
9
10
11
12
13. Builder Lock: Xây dựng khóa bảo vệ
13
9. OLE: Tạo nhúng kết
10. Line: Đường thẳng
11. Container: chứa các đối tượng
14
15
16
17
18
19
20
21
22
23
24
25
5.1. Biểu mẫu – Form
5.1.5. Giới thiệu thanh công cụ Form Control.
14. View Classes: Khung nhìn lớp Class
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
15. Textbox: Hộp văn bản
16. Command Button: Nút lệnh
17. Option Group: Nhóm nút chọn
19. Combo box: Hộp chọn
20. Spinner: Thanh cuộn
21. Image: chứa ảnh
22. Page Frame: Khung trang
23. OLE: Hiển thị nhúng kết
24. Shape: Các đối tượng đồ hoạ
25: Button Lock: Nút khoá.
25
5.1. Biểu mẫu – Form
5.1.6. Bổ sung đối tượng, thuộc tính trên Form
Một số đối tượng thường dùng:
Label: Dùng để thể hiện các chuỗi trên Form.
Command Bottom: Dùng để đặt các nút lệnh lên
Form.
TextBox, Editbox: Dùng để xem, chỉnh sửa dữ liệu từ
các trường trong bảng dữ liệu không phải kiểu memo.
Timer: Dùng để thiết lập các công việc thực hiện đều
đặn sau một khoảng thời gian.
Listbox, Checkbox, Combobox,...
5.1. Biểu mẫu – Form
5.1.6. Bổ sung đối tượng, thuộc tính trên Form
Quy ước đặt tên cho các đối tượng:
Loại đối tượng
Tên
Bắt đầu bởi frm
Form
Command
Bắt đầu bởi cmd
Edit box
Bắt đầu bởi edb
Grid
Bắt đầu bởi grd
Image
Bắt đầu bởi img
Label
Bắt đầu bởi lbl
Textbox
Bắt đầu bởi txt
Timer
Bắt đầu bởi tmr
Muốn đưa đối tượng trên
thanh Control vào Form ta
làm theo 4 bước:
Kích chuột vào đối tượng
cần đưa.
Vẽ nó trên Form để xác
định vị trí.
Thiết lập các thuộc tính
thích hợp.
Viết mã lệnh cho các tình
huống tương ứng.
5.1. Biểu mẫu – Form
5.1.6. Bổ sung đối tượng, thuộc tính trên Form
Các thuộc tính, sự kiện thường dùng trên Form:
Thuộc tính:
Sự kiện:
Tên sự kiện
MoveMouse
Destroy
Load
...............
Tên thuộc tính
Ý nghĩa
Màu nền
Cách thực hiên
BorderStyle
Dạng đường viền
Đáp ứng khi di chuyển chuột trên bề mặt Form
Caption
Tiêu đề Form
Đáp ứng khi giả phóng Form
FillColor
Màu để tô các đối tượng
Đắp ứng khi nập Form vào bộ nhớ
FontName
Font chữ
BackColor
FontSize
.........
Kích thước chữ
5.2. Báo biểu – Report
5.2.1. Khái niệm Report
Report cung cấp cho chúng ta một công cụ mềm dẻo để
trình bày và tóm tắt dữ liệu trong một văn bản khi in ra
giấy.
Cấu trúc của Report thường được thiết kế theo một
trong các dạng sau:
5.2. Báo biểu – Report
5.2.2. Các dạng của Report
Dạng cột(Column Report)
Mỗi Field là một cột và mỗi Record nằm trên 1 dòng. Ví dụ:
5.2. Báo biểu – Report
5.2.2. Các dạng của Report
Dạng dòng(Row Report)
Mỗi Field là một hàng, các Record sẽ liên tiếp nhau. Ví dụ:
5.2. Báo biểu – Report
5.2.2. Các dạng của Report
Dạng một – nhiều(One – To – Many Report)
Dữ liệu được lấy từ hai bảng, 1 bảng cha và một bảng con
(có quan hệ One-Many với nhau). Cứ mỗi record cha sẽ có
các record con phía dưới. Ví dụ:
5.2. Báo biểu – Report
5.2.2. Các dạng của Report
Dạng nhiều – một(Multi - Column Report)
Dạng cột và dòng như trên là dạng 1 “cột”, tuy nhiên có thể
tạo các report trên thành dạng nhiều “cột”. Ví dụ:
5.2. Báo biểu – Report
5.2.3. Tạo Report bằng Wizard ứng với 1 bảng
Tại cửa sổ Project Manager(PM) ta chọn: Document, chọn
Report, chọn New, trên hộp thoại New Report chọn Report
Wizard, xuất hiện hộp thoại Wizard Selection:
Chọn Report Wizard,
chọn OK và làm theo
các bước sau:
5.2. Báo biểu – Report
5.2.3. Tạo Report bằng Wizard ứng với 1 bảng
Bước 1: Chọn
CSDL, chọn
bảng và các
trường cần
thiết sau đó
nhấp Next.
5.2. Báo biểu – Report
5.2.3. Tạo Report bằng Wizard ứng với 1 bảng
Bước 2: Chọn
trường để
nhóm dữ liệu,
có thể tạo ra
nhiều cấp
nhóm(xem
hình) sau đó
nhấp Next.
5.2. Báo biểu – Report
5.2.3. Tạo Report bằng Wizard ứng với 1 bảng
Bước 3: Chọn
kiểu
Report(Style)
sau đó nhấp
Next.
5.2. Báo biểu – Report
5.2.3. Tạo Report bằng Wizard ứng với 1 bảng
Bước 4: Thiết lập cấu trúc Report:
Number of Columns: số “cột”
Field Layout Columns: các trường ở dạng cột(dạng 1).
Filed Layout Row: các trường ở dạng dòng(dạng 2).
Orientation Portrait: hướng giấy dọc.
Orientation Portrait: hướng giấy ngang.
Sau đó nhấp Next.
5.2. Báo biểu – Report
5.2.3. Tạo Report bằng Wizard ứng với 1 bảng
Bước 5: Chọn
cách sắp xếp
các bản ghi
sau đó nhấp
Next.
5.2. Báo biểu – Report
5.2.3. Tạo Report bằng Wizard ứng với 1 bảng
Bước 6: Kết
thúc, chọn
Finish rồi nhập
vào tên file
cần ghi để kết
thúc.
5.2.4. Tạo Report bằng Wizard ứng với nhiều
bảng(sinh viên tự tìm hiểu)
5.2. Báo biểu – Report
5.2.5. Tạo Report bằng Report Designer
Tại cửa sổ Project Manager(PM) ta chọn: Document, chọn
Report, chọn New, chọn New Report, khi đó giao diện
Report Designer xuất hiện như hình sau::
Đưa các đối
tượng lên Report
và chỉnh sửa
theo mục đích
người dùng.
5.2. Báo biểu – Report
5.2.5. Tạo Report bằng Report Designer
Cấu trúc của một Report Designer: gồm 5 phần
Page Header: Những thiết kế trong phần này sẽ in lặp
lại ở đầu mỗi trang
Detail: Những thiết kế trong phần này sẽ in tương ứng
với mỗi bản ghi của vùng làm việc hiện thời.
Page Footer: Những thiết kế trong phần này sẽ in lặp
lại ở cuối mỗi trang
Title: Những thiết kế trong phần này sẽ in một lần duy
nhất ở đầu của Report.
Summary: Những thiết kế trong phần này sẽ in một lần
duy nhất ở cuối của Report.
5.2. Báo biểu – Report
5.2.5. Tạo Report bằng Report Designer
Thanh công cụ Report Controls:
Các công cụ chính:
Label: Tạo nhãn, ví dụ như tiêu đề cột ...
Field: Đưa dữ liệu từ các trường vào Report.
Line: Vẽ các đoạn thẳng.
Rectangle: Vẽ hình chữ nhật.
Picture/Ole bound control: Đưa ảnh (hoặc đối tượng
Ole khác) vào report.
.......
5.2. Báo biểu – Report
5.2.5. Tạo Report bằng Report Designer
Nhóm dữ liệu (Data Grouping): tùy chọn này cho phép
“nhóm” dữ liệu theo một tiêu chuẩn nào đó. Cách thực hiện:
Kích phải chuột vào Report (trong cửa sổ Report Designer)
Chọn mục Data Grouping, khi đó giao diện Data Grouping xuất
hiện như sau:
Chọn Add để thêm vào các tiêu chuẩn nhóm, có thể nhóm nhiều
cấp.
Group Header: Những thiết kế trong phần này sẽ in lặp lại ở
đầu mỗi nhóm
Group Footer: Những thiết kế trong phần này sẽ in lặp lại ở cuối
mỗi nhóm
5.2. Báo biểu – Report
5.2.5. Tạo Report bằng Report Designer
Data Environment: Thiết lập môi trường dữ liệu cho
Report. Cách thực hiện:
Kích phải chuột vào Report (trong cửa sổ Report
Designer)
Chọn mục Data Environment.
Kích chuột phải vào nền giao diện DataEnvironment chọn
Add và thêm để thêm Table, View vào DataEnvironment.
5.2. Báo biểu – Report
5.2.6. Cài đặt trang in báo cáo
Mở Menu File, chọn Page Setup: xuất hiện hộp thoại Page
Setup, ta đặt các tùy chọn sau:
Number: số cột in trong Report
Width: độ rộng của cột
Spacing: khoảng cách giữa các cột
Left Margin: khoảng cách của lề trái
....Chọn OK
Chương 6. Form và Report
6.1
•Tạo Menu.
6.2
•Quản lý dự án.
6.1. Tạo Menu.
6.1.1. Menu là gì?
Menu cung cấp một phương thức có cấu trúc và giao diện
với người dùng để tác động lên những câu lênh trong ứng
dụng.
Việc sắp xếp và thiết kế Menu thích hợp sẽ giúp người
dùng được thuận lợi khi sử dụng hệ thống Menu của bạn.
6.1. Tạo Menu.
6.1.2. Các loại Menu
Menu, ví dụ menu của Visual Foxpro (hình sau), được dùng để tổ
chức các chức năng của Visual Foxpro.
Trong đó:
Thanh nganh (chứa các mục File, Edit ...) gọi là Menu Bar
Các mục như File, Edit ... trên Menu Bar gọi là PAD
Khi kích hoạt mỗi PAD (ví dụ như PAD Program trong hình trên)->
Xuất hiện một POPUP menu.
Mỗi mục trên POPUP menu (như Do, Cancel ... trong hình trên)
được gọi là một BAR.
6.1. Tạo Menu.
6.1.3. Qui trình tạo Menu hệ thống
Các bước tạo Menu hệ thống
Sắp xếp và thiết kế: chọn Menu cha, Menu con và vị trí
xuất hiện của chúng trong hệ thống?
Sử dụng Menu Designer, tạo Menu và các SubMenu.
Gắn các câu lệnh tương ứng với các công việc.
Biên dịch Menu.
Tiến hành chạy thử và kiểm tra.
6.1. Tạo Menu.
6.1.3. Qui trình tạo Menu hệ thống
Tạo Menu hệ thống thông qua Menu Designer
Tại cửa sổ PM chọn Tab Other, chọn Menus, chọn New,
chọn Menu, xuất hiện giao diện Menu Designer:
6.1. Tạo Menu.
6.1.3. Qui trình tạo Menu hệ thống
Giao diện Menu Designer
Menu level: Chỉ ra Menu đang thiết kế là Menu gì, có thể
là Menu Bar hoặc các SubMenu...
Mỗi dòng trong khung thiết kế là một Menu level.
Prompt: là tên của các Menu. VD: “Cập nhật dữ liệu”,...
Result: là hành động xảy ra khi một Menu được chọn.
Tham số này có thể nhận giá trị:. Command, PAD name,
Submenu và Procedure, tùy thuộc vào Result mà việc
thiết lập các tham số khác của một mục là khác nhau:
6.1. Tạo Menu.
6.1.3. Qui trình tạo Menu hệ thống
Giao diện Menu Designer
Tham số Result:
o Command: nhập vào 1 lệnh của Fox.
o PAD Name: tên một PAD Menu.
o Submenu (Menu con): sử dụng lệnh Create (hoặc Edit)
để sửa đổi Menu con.
o Procedure: sử dụng lệnh Create (hoặc Edit) để viết thủ
tục
o BAR #: tên một Bar.
6.1. Tạo Menu.
6.1.3. Qui trình tạo Menu hệ thống
Giao diện Menu Designer
Insert: Chèn thêm 1 mục vào menu level
Delete: Xóa 1 mục khỏi menu level
Move Item: Di chuyển các mục
Preview: Xem thử menu đang thiết kế
6.1. Tạo Menu.
6.1.3. Qui trình tạo Menu hệ thống
Prompt Options: dùng để thiết lập thêm các lựa chọn
cho Menu như phím nóng, hình ảnh,...để thiết lập ta chọn
Option cho Menu muốn tạo, xuất hiện hình sau:
6.1. Tạo Menu.
6.1.3. Qui trình tạo Menu hệ thống
Prompt Options:
Key Label: “Phím nóng” (ví dụ như Ctrl+C của Word).
Key Text: Text thể hiện của “phím nóng” (nên đặt trùng với
Key Label).
Negotiate: Chỉ áp dụng đối với các PAD, và chỉ có hiệu
ứng khi chạy ở chế độ OLE edit.
Skip for: Cho phép nhập vào 1 biểu thức logic, nếu biểu
thức này có giá trị FALSE thì mục này sẽ Disabled.
Message: Thông báo ở Status Bar khi di chuyển con trỏ
đến mục này.
Picture - File: đường dẫn + File ảnh
Picture - Resource: Chọn ảnh theo các thiết kế sẵn của
Visual Foxpro
Comment: Giải thích, ghi chú.
6.1. Tạo Menu.
6.1.3. Qui trình tạo Menu hệ thống
Gắn một Menu vào Form
Thiết lập thuộc tính Top - Level Form cho menu:
Trong Menu Designer vào Menu View/General Option
khi đó giao diện chương trình có dạng:
Đánh dấu (check) ô Top-Level Form/ OK. Nếu không
chọn Top-Level Form thì menu được tạo sẽ xuất hiện
thay thế menu hệ thống.
Đối với Form:
o Thiết lập thuộc tính ShowWindow là 2 - As Top-Level
Form.
o Trong sự kiện Init (Form.Init) viết dòng lệnh sau:
DO menu\<MenuName> WITH THIS, .T.
6.1. Tạo Menu.
6.1.3. Qui trình tạo Menu hệ thống
Thực thi (chạy) một Menu: chỉ thực hiẹn với các Menu
không phải là Top-Level Form. Các bước thực hiện:
Tại cửa sổ PM, chọn Tab Other, chọn Menus, chọn
Menu cần thực hiện, chọn Run hoặc thực hiện lệnh:
DO <MenuName>
Lưu ý: Thực hiện lệnh SET SYSMENU TO DEFAULT để
trả lại menu hệ thống của Visual Foxpro .
6.1. Tạo Menu.
6.1.3. Qui trình tạo Menu hệ thống
Quản lý Menu hệ thống: Menu hệ thống được lưu trữ
trên đĩa với file có phần mở rộng là *.MNX
Tạo Menu bằng công cụ Designer Menu sử dụng
lệnh: CREATE MENU <tên Menu>.
Mở Menu đã có: MODFY MENU <tên Menu>.
Dịch File Menu: để dich File Menu, từ màn hình Menu
Designer chọn lệnh Generate. Sau khi dich File Menu
có phần mở rộng là MPR.
6.2. Quản lý dự án.
6.2.1. Các thành phần trong dự án VF
Dự án là tên gọi để chỉ đến ứng dụng mà ta đang xây
dựng. Các thành phần của dự án bao gồm:
Các bảng dữ liệu (TABLES)
Các File CSDL (DATABASE)
Các Form
Các Report
Các Query
Các File khác như âm thanh, hình ảnh, tài liệu,...
6.2. Quản lý dự án.
6.2.2. Dịch các dự án sang File chạy
Dịch sang APP: cần có một bản sao của VF, sau đó sử dụng
lệnh BUILD <tên dự án>
Dịch sang File có phần mở rộng là exe: không cần phải có VF
nhưng cần phải cung cấp hai File: vfp6r.dll và vfp6renu.dll được
cài đặt trong cùng thư mục với ứng dụng. Dùng lệnh: BUILD
EXE <tên dự án>
6.2. Quản lý dự án.
6.2.2. Dịch các dự án sang File chạy
Đặt Starting Point cho dự án: khi ứng dụng được thi hành, có
một điểm bắt đầu đó là Starting Point.
Để chọn một thành phần của dự án là Staring Point:
Chọn thành phần được đặt là Starting Point.
Từ Menu Project, chọn Set Main
6.2. Quản lý dự án.
6.2.2. Dịch các dự án sang File chạy
Starting Point chứa các thành phần:
Do Setup .prg: lệnh thực hiện chương trình để thiết
lập môi trường cho hệ thống.
Do MainMenu .mpr: chạy File Menu chính để thiết lập
giao diện cho hệ thống.
Read Events: bắt đầu thực hiện vòng lặp để thực hiện
công việc.
Do CleanUp .prg: Dọn dẹp ôi trường, trả lại môi
trường cho hệ thống và thoát khỏi hệ thống.
Clear Events.