Thành viên thao212

Bài tập Visual Foxpro có lời giải

- 12 tháng trước
Chia sẻ
/64 trang
Tải xuống miễn phí
LIÊN HỆ QUẢNG CÁO 0906.345.800
Tải xuống miễn phí (64 trang)
Thành viên thao212

Bài tập Visual Foxpro có lời giải

- 12 tháng trước
4,863
Báo lỗi

Cú pháp:      ?|??
            4.3. Chèn, bổ sung bản ghi
            a. Chèn bản ghi
            Cú pháp: INSERT [BEFORE][BLANK]
            b. Bổ sung bản ghi
            Cú pháp: APPEND [BLANK]
            4.4. Sửa chữa nội dung bản ghi
            a. Lệnh BROWSE
            Cú pháp: BROWSE [field] [Freeze][nodelete] [NOEDIT] [FOR]
            b. Lệnh Edit
            Cú pháp: Edit [] [field][ Noappend][nodelete] [noedit]  [for] [While]
            c. Lệnh REPLACE
            Cú pháp: REPLACE []WITH[, WITH   .......[for] [While]
            4.5. Xoá và khôi phục bản ghi
            a. Đánh dấu xoá
            Cú pháp: DELETE [] [For] [While]
            b. Xoá
            Cú pháp: PACK
            c. Khôi phục bản ghi đã bị đánh dấu xoá
            Cú pháp:  RECALL [] [For] [While]

Nội dung

Bai tap Visual Foxpro co loi giai

25/01/2010 14:37  |  12,615 lượt xem

 

Phần Microsoft VisualFox

 

 

Chương 1

THAO TÁC TRÊN BẢNG DỮ LIỆU

 

Tóm tắt lý thuyết

 

1. MỘT SỐ KHÁI NIỆM CƠ BẢN

            1.1. Kiểu dữ liệu ( Data Type)

            a. Kiểu Character

            b. Kiểu Numeric

            c. Kiểu Float

            d. Kiểu Date và Datetime

            e. Kiểu Currency

            f. Kiểu Memo

            g. Kiểu Logical

            h. Kiểu General

            1.2. Hằng (Constant)

            a. Hằng ký tự (Hằng chuỗi): Được đặt trong cặp dấu '..', "....", [...]

            b. Hằng kiểu ngày: Đặt trong {.........}

            c. Hằng kiểu số

            d. Hằng logic

            1.3. Biến ( Variable)

            a. Biến nhớ

            b. Biến trường

            c. Biến hệ thống

            1.4. Hàm (Function)

            Hàm do người định nghĩa phải theo cú pháp sau:

 

                        FUNCTION  

                                                

                        RETURN

 

            1.5. Biểu thức (Expression)

             Biểu thức được tạo bới các biến, hằng, hàm và một số phép toán. Kết quả của biểu thức thuộc về các kiểu dữ liệu Character, Numeric, Date, Datetime, Logical.

 

2. CÁC PHÉP TOÁN

 

            2.1. Phép gán: Ký hiệu =

            2.2. Phép toán chuỗi ký tự

            a. Phép +

            b. Phép -

            c. Phép $

            2.3. Phép toán trên kiểu ngày

            Phép toán

Kết quả

+  Số

Số +

- Số

-

Số

+  Số

Số +

- Số

-

Số

 

            2.4. Phép toán quan hệ: =, <, >, >=, <=, != ( <>)

            2.5. Phép toán logic: NOT ( hoặc !), AND, OR

            2.6. Phép toán số học: +, -, *, /, ** ( Hoặc ^), % (Chia lấy phần dư)

            2.7. Thứ tự ưu tiên của các phép toán

            Thứ tự ưu tiên của phép toán trên cùng một hàng thì cùng mức ưu tiên, nếu các phép toán cùng mức ưu tiên thì tính từ trái sang phải.

            a. Các phép tính số học:     Dấu âm, dương

                                                            Luỹ thừa

                                                            Nhân, chia

                                                            Phần dư

                                                            Cộng, trừ

            b. Các phép toán cộng chuỗi: +, -

            c. Các phép toán quan hệ: =, <, >, >=, <=

            d. Các phép tính logic: NOT, OR, AND

 

3. LỆNH VÀ CẤU TẠO LỆNH

 

            3.1. Lệnh

            Lệnh là một chỉ thị của người sử dụng yêu cầu VisualFox làm một việc gì đó. Lệnh có thể đưa vào từ cửa sổ lệnh hoặc menu hệ thống

            3.2. Cấu tạo lệnh

[phạm vi] [FIELDS ] [FOR ] [WHILE ]  [FROM / ARRAY ] [TO print/tên file/dsách biến]

 

4. MỘT SỐ LỆNH CƠ BẢN

            4.1 Định vị con trỏ đến một bản ghi

            a. Định vị tuyệt đối

            Cú pháp: GO |[TOP]|[BOTTOM]

            b. Định vị tương đối

            Cú pháp: Skip [+|-] []

            4.2. Lấy dữ liệu từ bảng

            a. Lệnh Display

            Cú pháp:   Display [] [fields] [For] [While] [on|off ]

            b. Lệnh LIST

            Cú pháp:       List   [] [fields] [For] [While] [on|off]

            c. Lệnh ?|??

            Cú pháp:      ?|??

            4.3. Chèn, bổ sung bản ghi

            a. Chèn bản ghi

            Cú pháp: INSERT [BEFORE][BLANK]

            b. Bổ sung bản ghi

            Cú pháp: APPEND [BLANK]

            4.4. Sửa chữa nội dung bản ghi

            a. Lệnh BROWSE

            Cú pháp: BROWSE [field] [Freeze][nodelete] [NOEDIT] [FOR]

            b. Lệnh Edit

            Cú pháp: Edit [] [field][ Noappend][nodelete] [noedit]  [for] [While]

            c. Lệnh REPLACE

            Cú pháp: REPLACE []WITH[, WITH   .......[for] [While]

            4.5. Xoá và khôi phục bản ghi

            a. Đánh dấu xoá

            Cú pháp: DELETE [] [For] [While]

            b. Xoá

            Cú pháp: PACK

            c. Khôi phục bản ghi đã bị đánh dấu xoá

            Cú pháp:  RECALL [] [For] [While]

            4.6. Lọc dữ liệu

            Cú pháp: SET FILTER TO

            4.7. Thao tác với cấu trúc bảng

            a. Xem cấu trúc bảng (List|Display structure)

            Cú pháp: List | Display structure

            b. Sửa đổi cấu trúc bảng dữ liệu

            Cú pháp: MODIFY STRUCTURE

            c. Sao lưu cấu trúc bảng dữ liệu   

            Cú pháp: Copy structure to [fields]

            d. Sao chép bảng

            Cú pháp: Copy to [] [fields ] [For] [While]

 

5. SẮP XẾP, TÌM KIẾM VÀ THỐNG KÊ

            5.1. Sắp xếp theo chỉ mục

a. Lập chỉ mục IDX cho bảng dữ liệu

Cú pháp:  INDEX ON  TO [FOR] [UNIQUE]

b. Một số lệnh liên quan

SET INDEX TO : Dùng để mở file chỉ mục sau khi đã mở một bảng dữ liệu.

SET INDEX TO: Dùng để đóng file chỉ mục.

REINDEX: Dùng để cập nhật lại file chỉ mục sau khi có sự sửa đổi trên bảng dữ liệu.

            5.2. Tìm kiếm

            a. Tìm kiếm tuần tự

Cú pháp:  LOCATE [] FOR [WHILE]

b. Lệnh continue

Cú pháp : CONTINUE

            c. Tìm kiếm sau khi đã lập chỉ mục

Cú pháp : SEEK

            5.3. Thống kế

            a. Đếm số lượng bản ghi

            Cú pháp:COUNT [][FOR] [WHILE] [TO]

            b. Tính tổng giá trị các trường kiểu số

Cú pháp: SUM [] [] [TO ][FOR ] [WHILE ]

            c. Tính trung bình cộng các trường kiểu số

Cú pháp: AVERAGE  [] [] [TO ] [FOR ] [WHILE ]

            d. Tính tổng các trường số theo nhóm

            Cú pháp:   TOTAL ON to [

[FIELD ][FOR ][WHILE < Bthức Logic>]

 

A. Bài tập có lời giải

 

BÀI SỐ 1

            Để quản lý thông tin của nhân viên người ta sử dụng một tập tin dự án QLNV.PJX chứa tập tin cơ sở dữ liệu QLNV.DBC, tập tin này chứa bảng HOSONV.DBF có cấu trúc như sau:

Tên trường

Kiểu dữ liệu

Độ rộng

Diễn giải

Ghi chú

MANV

C

5

Mã nhân viên

Khoá chính

MADV

C

2

Mã đơn vị

 

HOLOT

C

20

Họ đệm

 

TEN

C

10

Tên

 

NGAYSINH

D

8

Ngày sinh

 

DIACHI

C

30

Địa chỉ

 

GIOITINH

L

1

Giới tính

Nam: .T.

 

            a. Dùng lệnh SORT để sắp xếp lại bảng dữ liệu HOSONV.DBF sang một bảng dữ liệu mới HOSONVSX.DBF theo chỉ tiêu: Các bản ghi được sắp xếp theo mã đơn vị (giảm dần), trong mỗi đơn vị thứ tự tên, họ được sắp xếp tăng dần.

            b. Mở tập tin HOSONVSX.DBF

            Sử dụng lệnh BROW liệt kê các trường MADV, HOLOT, TEN, NGAYSINH, MLUONG .

            c. Lập 3 tập tin chỉ mục: CMASO.IDX theo trường MANV, CDONVI.IDX theo trường MADV, CLUONG.IDX theo trường LUONG giảm dần.

            Bằng cách thay thế tập tin chỉ mục chủ, hãy liệt kê các bản ghi theo MANV tăng dần, theo MADV tăng dần, theo LUONG giảm dần.

            d. Dùng lệnh LOCATE:

            Tìm người có họ tên là ‘NGUYEN MINH HUONG’. Dùng lệnh DISPLAY cho hiện nội dung của bản ghi này, rồi dùng lệnh EDIT để sửa lại.

            Tìm những người ở phòng Tổ chức (MADV=’TC’), cho hiện đầy đủ thông tin của những người này.

            Tìm những người có LUONG > 100000.

e. Dùng lệnh SEEK để tìm kiếm người có MANV=’0001A’ rồi hiển thị nội dung của bản ghi này.

            f. Cho biết địa chỉ của người có tên là ‘THUY’, sinh ngày 11/11/80 .

 

Hướng dẫn giải

            Chọn File/New/Project/Newfile

            Trong mục Enter Project:  QLNV

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Chọn Data/Databases/New/New Databases

Trong mục Enter Database                         : QLNV

Chọn Database/New table/New Table

Trong mục Enter Table                                : HOSONV

 

 

 

 

 

 

 

 

 

 

 

Trong mục     Name              : Chọn tên trường, chọn Indexes, chọn Primary đối với trường MANV.

                        Type               : Chọn kiểu dữ liệu

                        Width             : Chọn độ rộng

                        Decimal         : Số chữ số thập phân

                        Index              : Thiết lập chỉ mục:

                        Null: Cho phép giá trị của trường là Null hoặc không

Trong mục Display              : Chọn hình thức hiển thị của dữ liệu

Trong mục Field Validation: Chọn ràng buộc dữ liệu và đặt giá trị mặc định.

Sau khi tạo cấu trúc bảng xong, nhập 10 bản ghi cho bảng dữ liệu HOSONV.

MANV

MADV

HOLOT

TEN

NGAYSINH

DIACHI

GIOITINH

0001A

0001B

K0003

K0001

C0002

C0003

C0004

T0005

T0006

T0007

TC

HC

TC

HC

KT

TC

HC

KT

TC

HC

 

Cao Van

Nguyen Thi

Dau Van

Le

Te Thi

Le Van

Cao

Do Duc

Lo Thi

Ly Van

Huong

Ly

Tung

Cung

Quen

Ty

Cuoi

Lan

Huong

Hy

 

11-04-1975

12-05-1965

04-12-1978

06-06-1979

18-10-1977

09-04-1969

01-10-1965

15-02-1968

08-01-1967

02-06-1965

Hue

Hue

Quang Binh

TP.HCM

TP.HCM

Hue

Hue

Da Nang

Hue

Qtri

.T.

.F.

.T.

.T.

.T.

.F.

.T.

.F.

.T.

.F.

Trở về cửa sổ lệnh (Command) rồi lần lượt thực hiện các lệnh sau

USE HOSONV

a. SORT TO HOSONVSX ON MADV/D, TEN/A, HOLOT/A

b. USE HOSONVSX

            BROW Fiel MADV, HOLOT, TEN, NGAYSINH, MLUONG .

c. USE HOSONV

            INDE ON MANV TO CMASO

            INDE ON MADV TO CDONVI

INDE ON -LUONG TO CLUONG

SET INDE TO CMASO

            BROW

SET INDE TO CDONVI

            BROW

SET INDE TO CLUONG

            BROW

d. LOCA FOR ALLT(HOLOT)+' '+ALLT(TEN)='NGUYEN MINH HUONG'

            DISP

            EDIT

LOCA FOR MADV='TC'

            DISP

LOCA FOR LUONG>1000000

e.  INDE ON MANV TO SXMANV

            SEEK '0001A'

            DISP

f.  BROW FIEL DIACHI FOR TEN='THUY' AND NGAYSINH={11/11/80}

 

BÀI SỐ 2      

            Để quản lý điểm của sinh viên bộ phận giáo vụ sử dụng một tập tin dự án QLDIEMSV.PJX chứa tập tin cơ sở dữ liệu QLDIEM.DBC, tập tin này chứa bảng DIEMSV.DBF có cấu trúc như sau:

Tên trường

Kiểu dữ liệu

Độ rộng

Diễn giải

Ghi chú

MASV

C

5

Mã sinh viên

Khoá chính

HOLOT

C

20

Họ lót

 

TEN

C

10

Tên

 

NGAYSINH

D

8

Ngày sinh

 

QUEQUAN

C

30

Quê quán

 

VFOX

N

2

Điểm VFOX

 

ACCESS

N

2

Điểm ACCESS

 

PASCAL

N

2

Điểm Pascal

 

DTB

N

4,2

Điểm TB

 

XEPLOAI

C

20

Xếp loại

 

 

Nhập vào 10 bản ghi cho các trường: MASV, HOLOT, TEN, NGAYSINH, QUEQUAN, VFOX, ACCESS, PASCAL như sau:

MASV

HOLOT

TEN

NGAYSINH

QUEQUAN

VFOX

ACCESS

PASCAL

K0001

K0002

K0003

T0001

T0002

T0003

T0004

T0005

T0006

T0007

Cao Van

Nguyen Thi

Dau Van

Le

Te Thi

Le Van

Cao

Do Duc

Lo Thi

Ly Van

Huong

Ly

Tung

Cung

Quen

Ty

Cuoi

Lan

Huong

Hy

11-04-1975

12-05-1965

04-12-1978

06-06-1979

18-10-1977

09-04-1969

01-10-1965

15-02-1968

08-01-1967

02-06-1965

Hue

Hue

Quang Binh

TP.HCM

TP.HCM

Hue

Hue

Da Nang

Hue

Qtri

6

7

7

7

8

7

9

7

8

8

9

6

4

7

4

6

9

6

4

5

7

8

7

9

7

9

10

9

4

2

a. Tính (điểm trung bình), biết rằng VFOX có hệ số hai, ACCESS có hệ số 1, PASCAL có hệ số 3. Xếp loại, biết rằng:

DTB>=9         : Xếp loại ‘GIOI’

7<=DTB<9    : Xếp loại ‘KHA’

5<=DTB<7    : Xếp loại ‘TB’

DTB<5           : Xếp loại ‘YEU’

b. Sắp xếp giảm dần theo DTB và ghi vào bảng dữ liệu SXDTB.DBF. Mở bảng dữ liệu SXDTB.DBF rồi dùng lệnh BROWSE để xem kết quả

c. Đổi dữ liệu của trường QUEQUAN thành chữ hoa.

d. Tính trung bình cộng của các môn học cho toàn bộ các bản ghi, cho từng nhóm có MASV bắt đầu bằng 'K', 'T'.

e. Cho biết số sinh viên có ít nhất hai môn có điểm >=8.

f. Từ bảng dữ liệu DIEMSV.DBF hãy tạo ra một bảng dữ liệu DIEMGIOI.DBF để lưu thông tin của những sinh viên Xếp loại giỏi.

g. Loại bỏ những sinh viên xếp loại yếu ra khỏi bảng dữ liệu DIEMSV.DBF.

Hướng dẫn giải

USE DIEMSV

a. REPL ALL DTB WITH (VFOX*2+ACCESS+PASCAL*3)/6

REPL  ALL  XEPLOAI  WITH IIF(DTB<5, 'YEU', IIF(DTB<7,'TB', IIF(DTB<8,'KHA','GIOI')))

b. SORT TO SXDTB ON DTB/D

            USE  SXDTB

            BROW

c.  REPL ALL QUEQUAN WITH UPPE(QUEQUAN)

d.  SUM VFOX, ACCESS, PASCAL TO X, Y, Z

SUM  VFOX, ACCESS, PASCAL FOR LEFT(MASV,1)='T' TO X, Y, Z

SUM  VFOX, ACCESS, PASCAL FOR LEFT(MASV,1)='K' TO X, Y, Z

e. COUN TO X FOR MIN(VFOX,ACCESS)>=8 OR MIN(VFOX,PASCAL)>=8 OR MIN(ACCESS, PASCAL)>=8

f. COPY TO DIEMGIOI FOR XEPLOIA='GIOI'

g. DELE FOR XEPLOAI='YEU'

PACK

 

B. Bài tập không lời giải

 

BÀI SỐ 1 

            Để quản lý vật tư trong của hàng XYZ sử dụng một tập tin dự án QLVATTU.PJX chứa tập tin cơ sở dữ liệu QLVATTU.DBC, tập tin này chứa các bảng  có cấu trúc như sau:

Bảng NHAPVATU.DBF

Tên trường

Kiểu dữ liệu

Độ rộng

Diễn giải

Ghi chú

MAVT

C

5

Mã vật tư

 

NGAYNHAP

D

8

Ngày nhập kho

 

MANX

C

1

Mã nhập, xuất

Nhập: N

SOLUONG

N

6

Số lượng nhập

 

DONGIA

N

9

Đơn giá

 

THANHTIEN

N

10

Thành tiền

 

Nhập vào 10 bản ghi theo bảng dữ liệu trên:

MAVT

NGAYNHAP

MANX

SOLUONG

DONGIA

TV001

01-01-1998

N

12

3850000

TL001

04-01-1998

N

10

4700000

ML001

08-01-1998

X

40

5100000

BU001

04-05-1998

N

30

220000

QB001

05-01-1998

N

28

350000

MG001

05-06-1998

X

12

4000000

ND001

06-06-1998

N

20

650000

HD002

10-10-1998

N

12

13000000

HD004

01-01-1998

N

10

16000000

XD001

01-01-1998

X

30

1200000

 

Bảng TONKHO99.DBF

Tên trường

Kiểu dữ liệu

Độ rộng

Diễn giải

Ghi chú

MAVT

C

5

Mã vật tư

 

TONDAU

N

10

Tồn đầu kỳ

 

SLN

N

10

Số lượng nhập

 

SLX

N

10

Số lượng xuất

 

TONCUOI

N

10

Tồn cuối

 

Nhập vào các bản ghi cho bảng dữ liệu

MAVT

TONDAU

TV001

TL001

ML001

BU001

QB001

MG001

ND001

HD002

HD004

XD001

12

30

50

40

50

55

100

50

45

100

Bảng DMVTU.DBF

Tên trường

Kiểu dữ liệu

Độ rộng

Diễn giải

Ghi chú

MAVT

C

5

Mã vật tư

Khoá chính

TENVT

C

30

Tên vật tư

 

Nhập vào các bản ghi cho bảng dữ liệu.

MAVT

TENVT

TV01

Tivi mau SHAP 14

TL001

Tu lanh TOSHIBA 1401

ML001

May lanh 1.5 HP

BU001

Ban ui Philip

QB001

Quat ban Hitachi

MG001

May giat SANYO 40

ND001

Noi com dien SANYO

HD002

Xe cub 86

XD001

Xe dap NHAT

HD002

Xe Union

a. Tính giá trị trường THANHTIEN của tập tin NHAPVT.DBF

b. Tính tổng số tiền nhập của mỗi loại vật tư có chữ cái đầu tiên bên trái giống nhau.

c. Tính SLN, SLX, TONCUOI, sau thời gian nhập xuất trên.

d. Tạo bảng dữ liệu TONKHO95.DBF có cấu trúc giống như bảng TONKHO99.DBF. Lấy TONCUOI của bảng dữ liệu TONKHO95.DBF để cập nhật vào TONDAU của TONKHO99.DBF

e. Liệt kê danh sách Nhập vật tư gồm các mục sau:

MAVT            TENVT           NGAYNHAP             MANX          SOLUONG

f.  Liệt kê danh sách TONKHO gồm các mục sau:

            MAVT            TENVT           TONDAU                   TONCUOI

BÀI SỐ 2 

Để quản lý điểm của một trung tâm tin học, ban giám đốc trung tâm sử dụng Project QLHV.PJX chứa một CSDL QuanlyHV.dbc gồm các bảng dữ liệu có cấu trúc như sau:

 

Bảng HOCVIEN có cấu trúc như sau:

Tên trường

Kiểu dữ liệu

Độ rộng

Diễn giải

Ghi chú

MA_HV

C

5

Mã học viên

Khoá chính

MA_LOP

C

4

Mã lớp

 

HO

C

20

Họ

 

TEN

C

10

Tên

 

PHAI

L

1

Phái

 

NGAY_SINH

D

8

Ngày sinh

 

NOI_SINH

C

30

Nơi sinh

 

DIA_CHI

C

30

Địa chỉ

 

MA_GV_CN

C

3

Mã GVCN

 

 

Bảng GVCN

Tên trường

Kiểu dữ liệu

Độ rộng

Diễn giải

Ghi chú

MA_GV_CN

C

3

Mã GVCN

Khoá chính

TEN

C

30

Họ tên GVCN

 

DIACHI

C

30

Địa chỉ

 

SODT

C

9

Số điện thoại

 

 

Bảng DIEMHOCVIEN

Tên trường

Kiểu dữ liệu

Độ rộng

Diễn giải

Ghi chú

MA_HV

C

5

Mã học viên

Khoá chính

DIEM_LT

N

4,1

Điểm LT

 

DIEM_TH

N

4,1

Điểm TH

 

DIEMTB

N

4,1

Điểm TB

 

XEPLOAI

C

15

Xếp loại

 

a. Nhập dữ liệu thích hợp cho các bảng dữ liệu trên.

b. Sử dụng bảng HOCVIEN hãy hiển thị các thông tin HO, TEN, PHAI, NGAY_SINH đối với những học viên nữ (PHAI=.F.).

c. Hiển thị tổng số học viên trong bảng HOCVIEN.

d. Tính giá trị DIEMTB=(DIEM_LT+DIEM_TH*2)/3.

XEPLOAI: "Yếu" nếu DIEMTB<5, "TB" nếu 5<=DIEMTB<7, "KHÁ" nếu 7<=DIEMTB<8,"GIỎi" nếu DIEMTB>=8.

e. Thực hiện các yêu cầu sau:

Hiển thị danh sách các học viên nam (PHAI=.T.).

Hiển thị các học viên nam có tuổi từ 18 đến 35.

Hiển thị theo thứ tự tăng đần của TEN, HO của nhứng học viên có địa chỉ ở TT-Huế.

Loại bỏ các học viên xếp loại "YẾU"

f. Thiết lập mối quan hệ cho 3 bảng dữ liệu trên.

g. Đếm xem có bao nhiêu học viên có nơi sinh ở Huế xếp loại "giỏi".

h. Sử dụng lệnh SET FILTER TO để xem những học viên nữ  đạt loại "TB".

i. Hiển thị danh sách học viên thuộc lớp của giáo viên chủ nhiệm "Lê văn Tam" nhưng chỉ gồm các thông tin: Mã lớp, Họ và tên, Điểm trung bình, Xếp loại.

 

BÀI SỐ 3

Để quản lý các mặt hàng bán được trong một siêu thị HÙNG VƯƠNG, ban quản lý siêu thị sử dụng Project QLSIEUTHI.PJX chứa một CSDL Banhang.dbc gồm các bảng dữ liệu có cấu trúc như sau:

Bảng KH_HANG (Khách hàng)

 

Tên trường

Kiểu dữ liệu

Độ rộng

Diễn giải

Ghi chú

MA_KH

C

6

 

 

TEN_KH

C

30

 

 

DIA_CHI

C

30

 

 

TINH_TP

C

20

 

 

THIXA_QH

C

30

 

 

SO_DT

C

9

 

 

FAX

C

15

 

 

 

Bảng DON_HANG (Đơn hàng)

 

Tên trường

Kiểu dữ liệu

Độ rộng

Diễn giải

Ghi chú

MA_DH

C

6

 

 

MA_KH

C

6

 

 

MA_NV

C

6

 

 

TEN_NV

C

30

 

 

DIACHI_NN

C

30

 

 

THANHPHO_NN

C

15

 

 

NGAY_DH

D

8

 

 

NGAY_GIAO

D

8

 

 

TIEN

N

12

 

 

 

Bảng CHITIET_DH (Chi tiết đơn hàng)

 

Tên trường

Kiểu dữ liệu

Độ rộng

Diễn giải

Ghi chú

MA_DH

C

6

 

 

MA_SP

C

6

 

 

DONGIA

N

8

 

 

SOLUONG

N

6

 

 

 

Bảng NHAN_VIEN (Nhân viên)

 

Tên trường

Kiểu dữ liệu

Độ rộng

Diễn giải

Ghi chú

MA_NV

C

6

 

 

HO_NV

C

20

 

 

TEN_NV

C

10

 

 

NGAYSINH

D

8

 

 

DIA_CHI

C

30

 

 

THANH_PHO

C

20

 

 

NUOC

C

15

 

 

SO_DT

C

9

 

 

 

Bảng MAT_HANG (Mặt hàng) có cấu trúc như sau:

Tên trường

Kiểu dữ liệu

Độ rộng

Diễn giải

Ghi chú

MA_SP

C

6

 

 

TEN_SP

C

20

 

 

SOLUONGCO

N

10

 

 

 

a. Lập các chỉ mục và thiết lập mối quan hệ cho các bảng dữ liệu trên.

Bảng KH_HANG

Tên chỉ mục

Loại chỉ mục

Biểu thức

MA_KH

PRIMARY

MA_KH

TINH_TP

REGULAR

TINH_TP

 

Bảng DON_HANG

Tên chỉ mục

Loại chỉ mục

Biểu thức

MA_DH

PRIMARY

MA_DH

MA_KH

REGULAR

MA_KH

MA_NV

REGULAR

MA_NV

 

Bảng CHITIET_DH

Tên chỉ mục

Loại chỉ mục

Biểu thức

MA_DH

PRIMARY

MA_DH

MA_SP

REGULAR

MA_SP

 

Bảng MAT_HANG

 

Tên chỉ mục

Loại chỉ mục

Biểu thức

MA_SP

PRIMARY

MA_SP

 

Bảng NHAN_VIEN

Tên chỉ mục

Loại chỉ mục

Biểu thức

MA_NV

PRIMARY

MA_NV

 

b. Nhập dữ liệu phù hợp cho các bảng dữ liệu trên.

c. Dùng bảng dữ liệu KH_HANG để hiển thị tên khách hàng, tên cơ quan, địa chỉ, số điện thoại của các khách hàng ở "HÀNỘI".

d. Dùng bảng dữ liệu KH_HANG để tạo truy vấn với yêu cầu sau: Hiển thị tên khách hàng, tên cơ quan, địa chỉ, số điện thoại của các khách hàng ở "HUẾ"và có tên bắt đầu là "T".

e. Hiển thị các khách hàng có tổng giá trị đơn hàng từ 50000 đến 200000.

f. Hiển thị các khách hàng ở "TPHCM" và có tổng giá trị đơn hàng >=500000.

g. Sử dụng bảng NHAN_VIEN hiển thị danh sách các nhân viên có Tuổi là 30.

h. Hiển thị các thông tin Mã số đơn hàng, mã số khách hàng, ngày đặt hàng, ngày giao hàng, người nhận, địa chỉ đối với các đơn hàng có giá trị trên1000000.

i. Hiển thị các thông tin Mã số đơn hàng, mã số khách hàng, ngày đặt hàng, ngày giao hàng, người nhận, địa chỉ đối với các đơn hàng giao trong quý 1 năm 2000 và sắp xếp theo thứ tự về thời gian.

j. Hiển thị 5 đơn đặt hàng có giá trị lớn nhất trong.khoảng thời gian từ20/10/99 đến 31/12/99.

k. Hiển thị 5 mặt hàng có số lượng đặt hàng nhiều nhưng chỉ hiển thị mã mặt hàng, tên mặt hàng và số lượng.

m. Sử dụng 2 bảng KH_HANG và DON_HANG để hiển thị các đơn hàng của khách hàng trong tháng 8 năm 99.

l. Hiển thị 5 đơn hàng của 5 khách hàng có giá trị lớn nhất.

p. Hiển thị tổng giá trị các đơn hàng của các khách hàng ở "Đà Nẵng".

q. Hiển thị tổng số lượng của mỗi mặt hàng bán ra trong quý 1 năm 2000.

k. Dùng bảng dữ liệu KH_HANG để tạo truy vấn với yêu cầu: Hiển thị thông tin tên khách hàng, tên cơ quan, địa chỉ, số điện thoại, thị xã, huyện của khách hàng ở HÀ NỘI hoặc HẢI PHÒNG hoặc TPHCM.

s. Hiển thị các khách hàng ở HUẾ nhưng có tổng giá trị đơn đặt hàng >1000000.

r. Dùng bảng NHAN_VIEN để liệt kê danh sách các nhân viên có tuổi là 35.

t. Hiển thị các đơn hàng có giá trị trên 500000. Xuất ra màn hình các thông tin mã số đơn hàng, mã số khách hàng, ngày đặt hàng, ngày giao hàng, người nhận, địa chỉ.

v. Hiển thị các thông tin mã số đơn hàng, mã số khách hàng, ngày đặt hàng, ngày giao hàng, người nhận, địa chỉ đối với các đơn hàng có ngày giao hàng trong tháng 10 và xếp theo thứ tự tăng dần của thời gian.

x. Hiển thị 10 đơn đặt hàng có giá trị lớn nhất trong khoảng thời gian từ 01/01/95 đến 01/01/96.

y. Hiển thị 10 mặt hàng có số lượng đặt hàng nhiều nhất, xuất ra màn hình mã mặt hàng và số lượng.

w. Sử dụng 2 bảng KH_HANG và DON_HANG để xuất ra màn hình các đơn hàng của khách hàng trong tháng 9 năm 2000.

z. Hiển thị tổng giá trị các đơn hàng của khách hàng ở thành phố.

 

BÀI SỐ 4                                                         

a. Tạo một tập tin dự án Quanly.pjx chứa tập tin cơ sở dữ liệu ql.dbc, tập tin này chứa 3 bảng dữ liệu có cấu trúc như sau:

Bảng HSNV.DBF

 

Tên trường

Kiểu dữ liệu

Độ rộng

Diễn giải

Ghi chú

MA_SO_NV

C

7

Mã số nhân viên

 

HOLOT

C

35

Họ nhân viên

 

TEN

C

9

Tên nhân viên

 

PHAI

L

1

Giới tính (T:Nam)

 

DIA_CHI

C

30

Địa chỉ

 

NGAY_SINH

D

8

Ngày sinh

 

TDVH

C

2

Trình độ văn hoá

 

LUONG

N

10

Lương

 

NGAY_LUONG

D

8

Ngày xếp lương

 

MA_DV

C

4

Mã đơn vị

 

GHI_CHU

Memo

10

Ghi chú

 

           

            Thực hiện việc cập nhật thông tin cho bảng trên, trong đó trường TDVH được qui định như sau: 1-12: từng lớp phổ thông, 13:Đại học, 14:Cao học, 15:Tiến sĩ, 0:Mù chữ.

Bảng HOCVIEN.DBF

 

Tên trường

Kiểu dữ liệu

Độ rộng

Diễn giải

Ghi chú

MA_HV

C

5

Mã Học viên

 

MA_LOP

C

4

Mã lớp

 

HOLOT

C

35

Họ học viên

 

TEN

C

9

Tên học viên

 

PHAI

L

1

Giới tính (T:Nam)

 

NGAY_SINH

D

8

Ngày sinh

 

NOI_SINH

C

30

Nơi sinh

 

DIA_CHI

C

30

Địa chỉ

 

MA_GVCN

C

3

Mã gvcn

 

DIEM_LT

N

4,2

Điểm Lý thuyết

 

DIEM_TH

N

4,2

Điểm Thực hành

 

XEP_LOAI

C

10

Xếp loại học viên

GHI_CHU

Memo

10

Ghi chú

 

 

Thực hiện việc cập nhật thông tin cho bảng trên.

Bảng DS_GVCN.DBF

Tên trường

Kiểu dữ liệu

Chiều rộng

Diễn giải

Ghi chú

MA_GVCN

C

3

Mã GVCN

 

TEN

C

30

Tên GVCN

 

 

b. Mở bảng dữ liệu HSNV hãy cho biết các thông tin HOLOT, TEN, PHAI, NGAY_SINH, LUONG.

c. Mở bảng dữ liệu HOCVIEN hãy cho biết các thông tin HOLOT, TEN, PHAI, NGAY_SINH, DIEM_LT, DIEM_TH.

d. Tạo chỉ mục cho trường MA_GVCN trong bảng HOCVIEN và  DS_GVCN.

e. Thiết lập mối quan hệ giữa hai bảng HOCVIEN và DS_GVCN.

f. .Dùng hàm RECCOUNT() để cho biết tổng số Record của hai bảng dữ liệu.

g. Thêm vào bảng HOCVIEN trường DTB  N(4,2) rồi thực hiện các yêu cầu sau:

            Tính DTB=(DIEM_LT*2+DIEM_TH)/3

            Hiển thị tất cả học viên Nam

            Hiển thị tất cả các học viên Nam có tuổi từ 18-30.

            Hiển thị tất cả học viên có DTB>=8

            Hiển thị tất cả học viên có tên bắt đầu là 'T'

            Sắp thứ tự học viên theo DTB

            Hiển thị 3 học viên có điểm cao nhất

            Đánh dấu xoá các học viên có DTB<3

            Khôi phục lại các học viên đã bị đánh dấu xoá

h. Tính giá trị trường XEP_LOAI theo tiêu chuẩn sau:

            DTB>=9: Xuất sắc

            8<=DTB<9: Giỏi

            7<=DTB<8: Khá

            5<=DTB<7: Trung bình

            DTB<5: Yếu

i. .Đếm xem mỗi xếp loại có bao nhiêu học viên?

j. Dùng lệnh SET FILTER để xem những học viên loại Xuất sắc

k. Mở bảng HSNV, lập các chỉ mục sau:

            Lập chỉ mục dựa trên trường TEN tăng dần, nếu tên trùng nhau thì tăng dần theo HOLOT và đặt chỉ mục này là HTEN.

            Lập chỉ mục dựa trên trường LUONG.

            Lập chỉ mục dựa trên trường MANV.

 

C. Bài tập nâng cao

 

            Bài toán quản lý nhân sự và lương cho một phòng giáo dục, với các yêu cầu chính sau:

            Quản lý về lý lịch của nhân viên trong phòng giáo dục.

            Quản lý quá trình khen thưởng và kỷ luật.

            Quản lý về quá trình đào tạo và bổ sung của nhân viên.

            Quản lý về trình độ tin học và ngoại ngữ của nhân viên

Trong đó:

Phần quản lý về lý lịch cần lưu trữ các thông tin như sau:

            Đơn vị công tác, Họ tên nhân viên, Phái, ngày sinh, nơi sinh, dân tộc, quê quán, địa chỉ, tôn giáo, chức vụ, loại hình lao động, các thông tin liên quan về chính trị, trình độ văn hoá, trình độ chuyên môn gốc, ngành được đào tạo, nước được đào tạo, năm tốt nghiệp, các thông tin liên quan đến lương....

Phần quản lý về quá trình kỷ luật, khen thưởng cần lưu trữ các thông tin sau:

            Nhân viên được khen thưởng hay kỷ luật, loại hình khen thưởng, kỷ luật, ngày khen thưởng, kỷ luật.

            Phần quản lý về đào tạo bổ sung cần lưu trữ các thông tin sau:

Nhân viên được cử đi đào tạo bổ sung, chuyên môn được đào tạo, ngày được cử đi đào tạo, ngày tốt nghiệp và bằng cấp.

Phần quản lý về Tin học và ngoại ngữ cần lưu trữ các thông tin sau:

Loại trình độ về tin học và ngoại ngữ của nhân viên.

Chương 2

TRUY VẤN VÀ VIEW

 

Tóm tắt lý thuyết

1. Truy vấn

            1.1. Tạo truy vấn

            Có thể tạo một truy vấn với nhiều lý do khác nhau như: Tổ chức thông tin cho Report, trả lời nhanh một câu hỏi hoặc nhóm dữ liệu.

            Các bước tạo truy vấn ( Sử dụng Query Designer)

            Trong Project Manager Data, Chọn Queries/New/New Query

 

 

 

 

 

 

 

 

 

 

            Chọn các bảng hoặc View tham gia truy vấn, chọn Add, chọn Close

 

 

 

 

 

 

 

 

 

Trong mục     Fields : Chọn các trường tham gia truy vấn, chọn Add

                        Join    :Thiết lập mối quan hệ giữa các bảng

                                    Inner Join

                                    Left Outer Join

                                    Right Outer Join

                                    Full Join

                        Filter: Chọn điều kiện lọc dữ liệu

 

 

 

 

 

 

 

 

 

            Trong Fieldname: Chọn tên trường (Hoặc biểu thức: Expression)

                        Criteria: Chọn phép toán.

                        Example: Chọn giá trị so sánh.

                        Case: Nếu chọn thì không phân biệt chữ hoa.

                        Logical: Phép toán logic.

            Trong mục Orerby              : Chọn trường cần sắp xếp.

            Trong mục Group by           : Chọn trường để nhóm dữ liệu

            Trong mục Miscellaneous  : Chọn phần trăm số bản ghi cần hiển thị

 

            1.2. Thêm biểu thức vào truy vấn

           

            Trong mục Fields, nhập biểu thức cần thêm trong mục Fucntions and Expression, chọn nút Add.

            Nếu muốn đặt tên mới: As .

2. View

            2.1. Khái niệm

            Có thể sử dụng View để xuất một số bản ghi từ bảng dữ liệu, hiệu chỉnh một số bản ghi rồi gửi đến bảng dữ liệu gốc. Có thể tạo View từ các bảng dữ liệu, các view khác...

            2.2.Tạo View cục bộ

            Cách tạo View tương tựu cách tạo truy vấn, được thực hiện như sau:

            Trong Project Manager Data, Chọn Database/ Chọn Local View, chọn New/ New View.

            Chọn các bảng vào tham gia View và thiết lập các mục (giống trong queries).

 

 

 

 

 

 

 

 

 

 

            Tuy nhiên khác với truy vấn, trong các View có thể chọn sự thay đổi nào mà chúng ta muốn dữ liệu trong một View được gửi về nguyên bản, hay các bảng để tạo thành view.

 

 

A. Bài tập có lời giải

 

BÀI SỐ 1

Để quản lý điểm thi học kỳ của trường PTTH Lê lợi, bộ phậ khảo thí nhfa trường dụng Project QLDIEMHK.PJX chứa một CSDL Diemthi.dbcgồm các bảng dữ liệu có cấu trúc như sau:

Bảng DSLOP.DBF (Danh sách lớp)

Tên trường

Kiểu dữ liệu

Độ rộng

Diễn giải

Ghi chú

MALOP

C

2

Mã lớp

Khoá chính

TENLOP

C

20

Tên lớp

 

TENGVCN

C

30

Tên GV chủ nhiệm

 

 

Bảng DSHSINH.DBF (Danh sách học sinh)

 

Tên trường

Kiểu dữ liệu

Độ rộng

Diễn giải

Ghi chú

MAHS

C

3

Mã học sinh

Khoá chính

MALOP

C

2

Mã lớp

 

TENHS

C

30

Họ và tên

 

NSINH

D

8

Ngày sinh

 

GIOITINH

L

1

Giới tính

Nam:.T.

QUEQUAN

C

30

Quê quán

 

DTB

N

4,1

Điểm TB thi

 

XEPLOAI

C

20

Xếp loại

 

 

Bảng DSDIEMHS.DBF (Danh sách điểm)

 

Tên trường

Kiểu dữ liệu

Độ rộng

Diễn giải

Ghi chú

MAHS

C

3

Mã học sinh

Khoá chính

TOAN

N

4,1

Điểm môn Toán

 

LY

N

4,1

Điểm môn Lý

 

VAN

N

4,1

Điểm môn Văn

 

HOA

N

4,4

Điểm môn Hoá

 

a. Thiết lập chỉ mục cho các bảng như sau:

Bảng DSLOP.DBF

Tên chỉ mục

Loại chỉ mục

Biểu thức

MALOP

PRIMARY

MALOP

 

Bảng DSHSINH.DBF

 

Tên chỉ mục

Loại chỉ mục

Biểu thức

MALOP

REGULAR

MALOP

MAHS

PRIMARY

MAHS

 

 

Bảng DSDIEMHS.DBF

Tên chỉ mục

Loại chỉ mục

Biểu thức

MAHS

PRIMARY

MAHS

 

b. Cập nhật dữ liệu cho các bảng trên.

c. Thiết lập mối quan hệ giữa các bảng dữ liệu

d. Tạo truy vấn để hiển thị các thông tin: Tenlop, Tenhs, QUEQUAN.

e. Tạo truy vấn để hiển thị các thông tin: Tenlop, Tenhs, Toan, Ly đối với những học sinh thuộc lớp 11.

f. Tạo truy vấn để hiển thị các thông tin: Tenlop, Tenhs, DTB, Xeploai biết rằng:

DTB=(TOAN*2 +LY+HOA+VAN*2)/6

Xeploai:         DTB<5: Yếu

                        5<= DTB<7: Trung bình

                        7<=DTB<8: Khá

                        DTB>=8: Giỏi

g. Tạo truy vấn để hiển thị những học sinh xếp loại khá hoặc giỏi bao gồm các thông tin MAHS, TENLOP, TENHS, TENGVCN, NSINH.

h. Tạo một truy vấn để hiển thị tổng số học sinh lớp 12 xếp loại giỏi bao gồm các thông tin: Tenlop, tongsohs, Xeploai.

g. Tạo một truy vấn để hiển thị những học sinh nữ lớp 10 sinh trước năm 1987 bao gồm các thông tin: TENHS, NSINH, GIOITINH.

i. Tạo một View để hiển thị những học sinh nam có QUEQUAN ở Huế bao gồm các thông tin: TENLOP, TENHS, GIOITINH, QUEQUAN.

j. Tạo một View để hiển thị những học sinh  lớp xếp loại yếu bao gồm các thông tin: TENLOP, TENHS, XEPLOAI.

k. Tạo một View để hiển thị tổng số học sinh lớp 12 có điểm TOAN và LY>=8 bao gồm các thông tin: TENLOP, TONGSOHS.

Hướng dẫn giải

 

c. Thiết lập quan hệ theo sơ đồ sau:

 

 

 

 

 

 

 

 

 

 

 

 

 

d.

Trong cửa sổ Project, chọn data/ Queries/New Query

Đưa hai bảng Dslop và Dshsinh tham gia truy vấn, đưa các trường: Tenlop, Tenhs, Quequan

 

 

 

 

 

 

 

 

 

e.

Trong mục Field: Chọn các trường

 

 

 

 

 

 

 

 

 

 

Trong mục Filter: Chọn biểu thức lọc.

 

 

 

 

 

 

 

 

 

 

f.  Tại Fucntion and Expression: round((toan*2+ly+hoa+van*2)/6,1) as dtb

 

 

 

 

 

 

 

 

Sau đó chọn nút Add

 

 

 

 

 

 

 

 

 

g. Trong mục Field chọn các trường

 

 

 

 

 

 

 

 

Trong mục Filter: Chọn điều kiện lọc

 

 

 

 

 

 

 

 

 

 

 

h.

Trong mục Field: Chọn trường Tenlop, Xeploai

Tại mục Function ansd Expressions: Nhạp vào count([Xeploai]) rồi nhấn Add

 

 

 

 

 

 

 

 

 

 

 

 

Trong mục Group by: chọn trường Xeploai

 

 

 

 

 

 

 

 

 

 

 

Trong mục Filter chọn các điều kiện lọc

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

g.

 Trong mục Field chọn các trường

 

 

 

 

 

 

 

Trong mục Filter chọn các điều kiện lọc

 

 

 

 

 

 

 

 

i. Trong mục Field chọn các trường

 

 

 

 

 

 

Trong mục Filter chọn các điều kiện lọc

 

 

 

 

 

j. Trong mục Field chọn các trường

 

 

 

 

 

 

 

 

 

Trong mục Filter chọn các điều kiện lọc

 

 

 

 

 

 

 

 

 

k. Trong mục Field chọn các trường

 

 

 

 

 

 

 

 

 

 

Trong mục Group by chọn TENLOP

 

 

 

 

 

 

 

 

 

Trong mục Filter chọn các điều kiện lọc

 

 

 

 

 

 

 

 

 

 

 

 

 

B. Bài tập không lời giải

BÀI SỐ 1

 

Hãy tạo Project TuyenSinh.Pjx lưu trữ cơ sở dữ liệu Thidaihoc.dbc để quản lý kết quả thi vào đại học của các thí sinh thi vào Đại học Huế gồm các bảng có cấu trúc sau:  

Bảng KHOI.DBF

Tên trường

Kiểu DL

Độ rộng

Diễn giải

Ghi chú

Makhoi

C

3

Mã khối thi

 

Manganh

C

6

Mã ngành thi

 

Tennganh

C

20

Tên ngành

 

Matruong

C

2

Mã trường

 

Mon1

C

6

Mã môn thi 1

 

Mon2

C

6

Mã môn thi 2

 

Mon3

C

6

Mã môn thi 3

 

Heso1

N

5,2

Hệ số môn 1

 

Heso2

N

5,2

Hệ số môn 2

 

Heso3

N

5,2

Hệ số môn 3

 

 

Bảng Hocsinh.DBF

 

Tên trường

Kiểu DL

Độ rộng

Diễn giải

Ghi chú

Makhoi

C

3

Mã khối thi

 

Manganh

C

6

Mã ngành dự thi

 

Mahs

C

10

Mã thí sinh

 

Ho

C

20

Họ và lót

 

Ten

C

10

Tên

 

Phai

L

1

Giới tính

 

Diachi

C

30

Địa chỉ

 

Ngaysinh

D

8

Ngày sinh

 

Diem1

N

5,2

Điểm môn 1

 

Diem2

N

5,3

Điểm môn 2

 

Diem3

N

5,2

Điểm môn 3

 

Khuvuc

C

1

Khu vực

 

Tongdiem

N

5

Tổng điểm

 

Ketqua

C

10

Kết quả thi

 

Ghichu

Memo

 

Ghi chú

 

 

Bảng Diemcong.DBF

 

Tên trường

Kiểu DL

Độ rộng

Diễn giải

Ghi chú

Khuvuc

C

1

Khu vực

 

Diem

N

5,2

Điểm cộng

 

 

Bảng Chitieu.DBF

 

Tên trường

Kiểu DL

Độ rộng

Diễn giải

Ghi chú

Makhoi

C

3

Mã khối thi

 

Manganh

C

6

Mã ngành

 

Chinhqui

N

3

Chỉ tiêu chính qui

 

Morong

N

3

Chỉ tiêu mở rộng

 

 

Bảng Monhoc.DBF

Tên trường

Kiểu DL

Độ rộng

Diễn giải

Ghi chú

Mamh

C

6

Mã môn thi

 

Tenmh

C

20

Tên môn thi

 

 

Bảng DsTruong.DBF

 

Tên trường

Kiểu DL

Độ rộng

Diễn giải

Ghi chú

Matruong

C

2

Mã trường

 

Tentruong

C

20

Tên trường

 

 

Hãy xác định khóa chính cho từng bảng và thiết lập mối quan hệ giữa các bảng thoe mô hình dưới đây và nhập dữ liệu cho các bảng (Các trường in đậm và nghiêng là khóa chính, các trường in nghiêng là khóa ngoại)

 

 

 

 

 

 

a. Hãy cập nhật dữ liệu cho các bảng sau:

Bảng KHOI.DBF

Makhoi

Manganh

Tennganh

Mon1

Mon2

Mon3

Heso1

Heso2

Heso3

Matruong

DLA

DLAVLY

Vật Lý

TOAN

LY

HOA

1

2

1

KH

DLA

DLAHOA

Hóa

TOAN

LY

HOA

1

1

2

KH

DLA

DLATIN

Tin học

TOAN

LY

HOA

2

2

1

KH

DLB

DLBSIN

Sinh

TOAN

HOA

SINH

1

1

2

SP

DLC

DLAVAN

Văn

VAN

SU

DIA

2

1

1

SP

 

Bảng Hocsinh.DBF

 

Makhoi

Manganh

Mahs

Ho

Ten

Phai

Khuvuc

DLA

DLATIN

0001

Nguyễn Thanh

Hùng

Nam

1

DLA

DLAVLY

0002

Trần Cao

Thúy

Nữ

1

DLA

DLAVLY

0003

Hồ Tùng

Mậu

Nam

2

DLA

DLATIN

0004

Lã Thế

Thanh

Nữ

3

DLA

DLAHOA

0005

Hoàng Văn

Thu

Nam

3

DLA

DLAVLY

0006

Xuân Mai

Diệu

Nữ

2

DLA

DLAVLY

0007

Thu Thanh

Bồn

Nam

1

DLA

DLATIN

0008

Huy Văn

Cùng

Nam

1

DLA

DLAHOA

0009

Văm Nỹ

Cao

Nam

2

DLA

DLATIN

0010

Hái Hùng

Trí

Nữ

2

DLB

DLBSIN

0011

Cao Xuân

Ca

Nữ

3

DLB

DLBSIN

0012

Nguyễn

Vy

Nam

3

DLB

DLBSIN

0013

Trịnh

Chi

Nam

3

DLC

DLCVAN

0014

Hải Văn

Mưa

Nữ

2

DLC

DLCVAN

0015

Lý Qua

Ngọc

Nam

2

DLC

DLCVAN

0016

Văn

Méo

Nam

1

DLA

DLAVLY

0017

Thanh

Tèo

Nữ

2

DLB

DLBSIN

0018

Hà Xuân

Miến

Nam

1

DLA

DLAHOA

0019

Trù Văn

Huấn

Nữ

1

DLC

DLCVAN

0020

Ha La

Na

Nữ

3

DLC

DLCVAN

0021

Điện Biên

Phúc

Nam

2

DLA

DLATIN

0022

Chi Và

Làng

Nam

1

DLC

DLCVAN

0023

Trương Tấn

Đáo

Nam

2

DLB

DLBSIN

0024

Lê Văn

Duẩn1

Nữ

1

DLA

DLAVLY

0025

Thành Cát

Từ

Nam

2

DLB

DLBSIN

0026

Mai Vàng

Sáu

Nữ

2

 

 

Diachi

Ngaysinh

Diem1

Diem2

Diem3

Tong Diem

Ketqua

Ghichu

Huế

10/10/75

8

10

5.5

 

 

 

Q Bình

20/05/76

9

3

4.5

 

 

 

Đ Nẵng

12/12/77

9

4

8.5

 

 

 

Q Trị

23/12/78

3

5

9

 

 

 

Hà Tĩnh

03/03/79

4

6

8

 

 

 

Huế

07/07/78

5

7.5

9.5

 

 

 

Huế

29/04/79

6

8.5

3

 

 

 

Q.Nam

30/12/78

7.5

9

5.5

 

 

 

Nha Trang

11/03/79

6.5

8

10

 

 

 

Phan Rang

10/10/75

9

9.5

3

 

 

 

Phan Thiết

20/05/76

8

3

4

 

 

 

Hà Nội

12/12/77

9

5.5

5

 

 

 

Hà Nội

23/12/78

8.5

4.5

6

 

 

 

Huế

03/03/79

10

8.5

7.5

 

 

 

Sài Gòn

07/07/78

3

9

8.5

 

 

 

Thanh Hóa

29/04/79

4

8

9

 

 

 

Đ Nẵng

30/12/78

5

9.5

8

 

 

 

Hội An

11/03/79

6

3

9.5

 

 

 

Huế

10/10/75

7.5

5.5

3

 

 

 

Hà Nội

20/05/76

8.5

4.5

5.5

 

 

 

Q Ngãi

12/12/77

9

8.5

4.5

 

 

 

Qui Nhơn

23/12/78

8

9

8.5

 

 

 

Phú Yên

03/03/79

9.5

8

9

 

 

 

Huế

07/07/78

3

9.5

8

 

 

 

CamRanh

29/04/79

5.5

3

9.5

 

 

 

Huế

30/12/78

4.5

5.5

3

 

 

 

 

Bảng Chitieu.DBF

Makhoi

Manganh

Chinhqui

Morong

DLA

DLAVLY

30

5

DLA

DLAHOA

35

10

DLA

DLATIN

50

20

DLB

DLBSIN

15

5

DLC

DLCVAN

30

10

 

Bảng Diemcong.DBF

 

Khuvuc

Diem

1

0

2

1

3

1.5

Bảng Monhoc.DBF

 

Mamh

Tenmh

TOAN

Toán

LY

HOA

Hóa

VAN

Văn

SU

Sử

DIA

Địa

 

Bảng Dstruong.DBF

 

Matruong

Tentruong

KH

Đại học Khoa học Huế

SP

Đại học Sư Phạm Huế

 

b. Tạo các View có tên lần lượt V1, V2, V3 như sau:

V1: Tạo danh sách gồm: sobd (manganh+mahs), ho, ten, phai, ngaysinh, makhoi: Sắp xếp tăng dần theo makhoi, ten, ho.

V2: Tạo bảng điểm gồm có: Tenkhoi, Tennganh, sobd (mananh +mahs), ho, ten, ngaysinh, diem1, diem2, diem3 và sắp xếp tăng dần theo manganh, ten, ho.

V3: Tạo bảng điểm như V2 nhưng chỉ lấy những thí sinh không có điểm môn thi nào dưới 5.

c. Sử dụng cơ sở dữ liệu thidaihoc.dbc, hãy tạo các truy vấn sau:

Q1: Tạo danh sách gồm: sobd (manganh+mahs), ho, ten, phai (Nam/Nữ), ngaysinh, makhoi. Sắp theo thứ tự tăng dần makhoi.

Q2: Tạo bảng điểm gồm sobd, ho, ten, ngaysinh, diem1, diem2, diem3, diemcong, tongdiem và sắp giảm dần theo Tongdiem.

Q3: Tạo bảng điểm giống Q2 nhưng chỉ chọn 3 thí sinh có điểm cao nhất.

Q4: Tạo bảng điểm giống Q2 nhưng chỉ chọn những thí sinh không có điểm môn thi nào bằng 0.

Q5: Thống kê số thí sinh dự thi theo từng ngành gồm: Manganh, Tennganh, Tổng số thí sinh dự thi.

Q6: Cho biết tổng số thí sinh nam, nữ dự thi theo từng ngành.

Q7: Danh sách các thí sinh đậu hệ chính quy ngành Vật Lý trường Đại học Khoa học Huế gồm: Sobd, ho, ten, ngaysinh, phai, diem1, diem2, diem3, diemcong, tongdiem.

 

 

 

Chương 3

LẬP TRÌNH TRÊN VISUALFOX

 

Tóm tắt lý thuyết

1. CHƯƠNG TRÌNH

            1.1. Khái niệm

Là một dãy lệnh liên tiếp được tổ chức vào 1 file chương trình, file chương trình mặc định có phần mở rộng là *. PRG.

            1.2. Các bước tiến hành khi lập trình

            Khi bắt đầu lập trình, thông thường phải thực hiện các bước sau:

            Hiểu rõ vấn đề bạn sắp viết chương trình.

            Chia nhỏ vấn đề cần giải quyết thành các mục nhỏ hơn.

            Xác định các dạng dữ liệu nhập, xuất.

            Chương trình hoá các mục này.

            Kiểm tra và chỉnh sửa các mục.

            Kết nối các mục lại với nhau thành một chương trình.

            1.3. Cấu trúc chung của một chương trình

            a.Tạo môi trường làm việc: thường chứa các lệnh sau:

SET DATE FRENCH: đặt ngày tháng năm theo dạng DD-MM-YY

SET CURENCY ON : đặt năm có 4 chữ số

SET TALK OFF/ON : ẩn hiện các kết quả thực hiện lệnh

SET DEFAULT TO <đường dẫn> : đặt đường dẫn hiện thời

CLEAR: xoá màn hình hiển thị kết quả

CLOSE ALL: đóng các bảng dữ liệu, các file cơ sở dữ liệu,...

            b. Phần thân chương trình

Thực hiện các công việc mà chương trình yêu cầu như :

Cập nhập dữ liệu

Xử lý, tính toán

Kết xuất thông tin

            c. Kết thúc chương trình

Đóng các tập tin CSDL, các bảng dữ liệu đang sử dụng.

Giải phóng biến nhớ .

Trả lại các chế độ cho hệ thống.

            d. Chú thích trong chương trình

            Là các giải thích được thêm vào để làm rõ cho chương trình, phải được bắt đầu bởi dấu * hay &&

* : Bắt đầu một dòng

            && : Viết sau một lệnh

            Một lệnh có thể được viết trên nhiều dòng, nhưng cuối mỗi dòng phải có dấu chấm phẩy trừ dòng cuối cùng.

 

2. CÁC CÂU LỆNH NHẬP, XUẤT DỮ LIỆU

            2.1. Nhập dữ liệu

            Cú pháp: @ Say.........get..........read

            2.2. Xuất dữ liệu

            Cú pháp: @ Say

3. CÁC CẤU TRÚC ĐIỀU KHIỂN

            3.1. Cấu trúc tuần tự: Chương trình được thực hiện từ trên xuống.

 

            3.2. Cấu trúc rẽ nhánh

Bthức L

.F.

 

Các lệnh

.T.

Cấu trúc rẽ nhánh có hai dạng: dạng khuyết và dạng đầy đủ:

a. Dạng khuyết

                        Cú pháp:

IF

ENDIF

 

Bthức L

.F.

.T.

 

Các lệnh 1

 

Các lệnh 2

b. Dạng đầy đủ

            Cú pháp:

             IF

            

            ELSE

            

            ENDIF

            c. Lựa chọn một trong nhiều trường hợp

            Cú pháp:

DO CASE

CASE

CASE

......................

CASE

                                    [OTHERWISE

                                                ]

                        ENDCASE

            3.3. Cấu trúc lặp

            a. Cấu trúc DO WHILE

Cú pháp:

DO WHILE

[LOOP]

[EXIT]

ENDDO

            b. Cấu trúc SCAN

Cú pháp:

SCAN [] [FOR] [WHILE]

[LOOP]

[EXIT]

END SCAN

            c. Cấu trúc FOR

Cú pháp:

FOR = TO [Step ]

END FOR

 

A. Bài tập có lời giải

BÀI SỐ 1

Viết chương trình nhập vào chỉ số điện kế cũ và mới của một hộ gia đình, rồi tính tiền điện của hộ đó. Biết rằng đơn giá trong định mức là 550đồng/Kwh, định mức tiêu thụ được cho bởi bảng sau:

1. Hộ dân                               :                       60Kwh/Tháng

2. Hộ công nhân viên           :                       120Kwh/Tháng

3. Hộ dân kinh doanh          :                       500Kwh/Tháng

4. Hộ sản xuất                       :                       700Kwh/Tháng

Nếu sử dụng điện quá định mức thu số Kwh sẽ được tính giá 800đồng/Kwh.

Hướng dẫn giải

close all

clea

set talk off

@5,5 say 'Chi so cu' get chisocu defa 0

@6,5 say 'Chi so moi' get chisomoi defa 0

@7,5 say 'Loai ho gia dinh' get Loaiho defa space(20)

read

do case

            case Loaiho='HO DAN'

                        if (chisomoi-chisocu)<=60

                                    thanhtien=(chisomoi-chisocu)*550

                        else

                                    thanhtien=60*550+(chisomoi-chisocu-60)*800

                        endi

            case Loaiho='CONG NHAN VIEN'

                        if (chisomoi-chisocu)<=120

                                    thanhtien=(chisomoi-chisocu)*550

                        else

                                    thanhtien=120*550+(chisomoi-chisocu-120)*800

                        endi

            case Loaiho='KINH DOANH'

                        if (chisomoi-chisocu)<=500

                                    thanhtien=(chisomoi-chisocu)*550

                        else

                                    thanhtien=500*550+(chisomoi-chisocu-500)*800

                        endi

            othe

                        if (chisocu-chisomoi)<=700

                                    thanhtien=(chisocu-chisomoi)*550

                        else

                                    thanhtien=700*550+(chisocu-chisomoi-700)*800

                        endi

endcase

@10,10 say 'So tien phai tra la ' +str(thanhtien)

set talk on

 

BÀI SỐ 2

            Viết chương trình nhập vào tiền lương hàng tháng của một người nào đó, sau đó tính thuế thu nhập mà người đó phải nộp. Biết rằng

            Lương <= 5000000 không phải nộp thuế.

Lương > 5000000 thì số tiền dư sẽ được tính thuế 10%

Hướng dẫn giải

close all

clea

set talk off

@5,5 say 'Nhap tien luong' get Luong defa 0

read

if Luong<=5000000

            mLuong=Luong

else

            mluong=5000000+(Luong-5000000)/10

endif

@10,10 say 'Luong thuc nhan la' + str(mluong)

set talk on

BÀI SỐ 3

            Viết chương trình tìm bội số chung nhỏ nhất của 2 số nguyên

 

Hướng dẫn giải

clea

clos all

set talk off

@5,5 say 'Nhap so thu nhat' get so1 defa 0

@6,5 say 'Nhap so thu hai' get so2 defa 0

read

p=so1*so2

do while so1<>so2

            if so1>so2 then

                        so1=so1-so2

            else

                        so2=so2-so1

            endif

enddo

@10,5 say 'Boi so chung nho nhat la'  +str(p/so1)

clos all

set talk on

BÀI SỐ 4

            Viết chương trình in ra màn hình các số nguyên tố trong phạm vi n

 

Hướng dẫn giải

clea

set talk off

@5,5 say 'Nhap pham vi' get n defa 0 vali n>=0

read

dem=0

i=2

do while (i<=n)

            if songuyento(i)

                        dem=dem+1

                        ??i,''

                                    if mod(dem,20)=0

                                                ?

                                    endif  

            endif

            i=i+1 

enddo

Function Songuyento

Para x

j=2

k=int(sqrt(x))

do while (j<=k) and (mod(x,j)<>0)

            j=j+1

enddo

if j>k

            Songuyento=.T.

else

            Songuyento=.F.

Endif

return songuyento

 

BÀI SỐ 5

Để quản lý bán hàng trong một Salon xe gắn máy Hồng Phát, người ta sử dụng tập tin dự án QLYXE.PJX chứa tập tin cơ sở dữ liệu CSDL.DBC chứa 2 bảng dữ liệu sau:

Bảng DSXE.DBF

Tên trường

Kiểu dữ liệu

Độ rộng

Diễn giải

Ghi chú

MAXE

C

4

Mã xe

Khoá chính

TENXE

C

30

Tên xe

 

SOLUONG

N

2

Số lượng có

 

DONGIA

N

7

Đơn giá

 

 

Bảng BANXE.DBF

Tên trường

Kiểu dữ liệu

Độ rộng

Diễn giải

Ghi chú

MAXE

C

4

Mã xe

 

TENKHACH

C

30

Họ và tên khách

 

DIACHI

C

30

Địa chỉ khách

 

SLBAN

N

1

Số lượng bán

 

NGAYBAN

D

8

Ngày bán

 

THANTIEN

N

10

Thành tiến

 

 

            a. Viết chương trình bổ sung các loại xe cho bảng DSXE.DBF

            b. Viết chương trình bổ sung một số bản ghi cho bảng BANXE.DBF mỗi khi có khách hàng mua xe, chú ý rằng trong quá trình bổ sung phải đảm bảo mối quan hệ giữa hai bảng dữ liệu, SOLUONG=SOLUONG-SLBAN mỗi khi khách hàng mua xe.

            c. Viết chương trình in bảng thống kê tình hình bán mỗi loại xe trong một năm nào đó.

            d. Viết chương trình nhập vào một tháng và một loại xe bất kỳ, in danh sách những khách hàng mua loại xe trong tháng đó, tổng số lượt khách và tổng số lượng bán

Hướng dẫn giải

            Tạo cấu trúc hai bảng dữ liệu trên.

Câu a

clea

clos all

set talk off

set date fren

Do capnhat

procedure  capnhat

use dsxe

Do while .T.

            scat memv blan

            if last()=27

                        exit

            endif

            @5,5 say 'Ma xe' get M.maxe vali kt_maxe(M.maxe)

            @6,5 say 'Ten xe' get M.Tenxe

            @7,5 say 'So luong' get M.Soluong vali M.soluong>0

            @8,5 say 'Don gia' get M.Dongia vali M.dongia>0

            read

            appe blan

            gath memv

enddo

Function kt_maxe

para x

loca for x=maxe

            if found()

                        kt_maxe=.F.

            else    

                        kt_maxe=.T.

            endif  

Return kt_maxe

Câu b

clea

clos all

set talk off

set date fren

sele 1

use dsxe

inde on maxe to sx

sele 2

use banxe

set rela to maxe into A

 

Do capnhat

procedure  capnhat

Do while .T.

            clea

            scat memv blan

            if last()=27

                        exit

            endif

            @5,5 say 'Ma xe' get M.maxe vali kt(M.maxe)

            @6,5 say 'Ten khach' get M.Tenkhach

            @7,5 say 'Dia chi' get M.diachi

            @8,5 say 'So luong ban' get M.Slban vali M.Slban>0

            @9,5 say 'Ngay ban' get M.Ngayban vali M.Ngayban<=Date()

            read

            appe blan

            gath memv

            repl all thanhtien with slban*A.dongia

            sele 1

            repl soluong with soluong-M.slban for M.maxe=maxe

enddo

return

Function kt

para y

sele 1

loca for y=maxe

            if found()

                        kt=.T.

            else    

                        kt=.F.

            endif  

sele 2

return kt

Câu c

clea

clos all

set talk off

set date fren

Do Thongke

Procedure Thongke

            Do thietlap

            Do Tinhtoan

return

Procedure Thietlap

sele 1

use dsxe

inde on maxe to sx

sele 2

use banxe

inde on maxe+str(year(ngayban)) to s1

total on maxe+str(year(ngayban)) to ketqua fiel slban,thanhtien

sele 3

use ketqua

set rela to maxe into A

Return

Procedure Tinhtoan

            @5,5 say 'Nhap nam bat ky' get nam defa 0

            read

            set filt to year(ngayban)=nam

            count to dem

            if dem=0

                        @10,10 say 'Trong nam nay khong ban'

            else

                        go top

                        brow Fiel A.Tenxe, Slban, Thanhtien

                        sum thanhtien,Slban to x,y

                        @20,10 say 'Tong thanh tien'+str(x)

                        @21,10 say 'Tong so luong'+str(y)

Return

Câu d

clea

clos all

set talk off

set date fren

Do Inan

Procedure Inan

            Do TLquanhe

            Do Xuly

return

Procedure TLquanhe

sele 1

use dsxe

inde on maxe to sx

sele 2

use banxe

set rela to maxe into A

Return

Procedure Xuly

            @5,5 say 'Nhap nam bat ky' get thang defa 0

            @6,5 say 'Nhap ma xe' get ma defa space(4)

            read

            set filt to mont(ngayban)=thang and ma=maxe

            count to dem

            if dem=0

                        @10,10 say 'Trong thang nay khong ban laoi xe'+ ma

            else

                        go top

                        stt=1

                        i=5

                        @4,10 say ' STT     Ho va ten      Sluong ban        Ngay ban  Thanhtien '

                        do while not eof()

                        @i,10 say str(stt)+ tenkhach+str(slban)+DTOC(ngayban)+str(thanhtien)

                                    skip

                                    i=i+1

                        enddo

                        sum Slban to x

                        @20,10 say 'Tong luot khach'+str(dem)

                        @21,10 say 'Tong so luong ban'+str(x)

            endif  

Return

 

B. Bài tập không lời giải

            Sử dụng Project Tuyensinh.PJX trong bài thực hành số 1 (phần bài tập không có lời giải) trong chương 2, hãy thực hiện các yêu cầu sau:

BÀI SỐ 1

Dựa vào bảng học sinh hãy viết chương trình nhập vào một khối thi nào đó, cho biết khối thi đó có bao nhiêu thí sinh nam dự thi, bao nhiêu thí sinh nữ dự thi

BÀI SỐ 2

Giả sử khối A ngành Tin học có điểm chuẩn là 20 điểm, hày viết chương trình in danh sách các thí sinh đậu khối A ngành Tin học bao gồm các thông tin: Makhoi, manganh, Tentruong, mahs, Hoten, Phai, Tongdiem

 

 

 

 

Chương 4

BIỂU MẪU VÀ BÁO CÁO

 

Tóm tắt lý thuyết

1. KHÁI NIỆM VỀ FORM

Thiết kế và lập trình hướng đối tượng là một sự thay đổi đối với phong cách lập trình cũ, lập trình theo hướng thủ tục. ở đây, thay vì nghĩ đến các chức năng của chương trình ta chỉ cần nghĩ đến các đối tượng đang tạo: là các thành phần độc lập của một ứng dụng với chức năng riêng của nó. Mỗi một đối tượng đều có một bộ thuộc tính mô tả đối tượng; các phương thức là những đoạn trình chứa trong điều khiển, cho điều khiển biết cách thức để thực hiện một công việc nào đó; và tập hợp những sự kiện đó là những phản ứng của đối tượng.

Trong Visual Foxpro, các form và control là các đối tượng được dùng để xây dựng các ứng dụng.

            Tạo form thông qua thiết kế

Để tạo form thông qua thiết kế, từ cửa sổ lệnh ta thực hiện lệnh sau:

CREATE FORM 

Khi đó ta được màn hình thiết kế form như sau:

            a. Quản lý form

            Lưu Form: Từ menu file, chọn save để lưu vào , mặc định phần mở rộng là scx.

Chạy form: Từ cửa sổ lệnh, thực hiện lệnh sau:

DO FORM

Đóng form (giải phóng khỏi bộ nhớ)

RELEASE

            1.1. Thuộc tính của đối tượng (Properties)

            Để chỉ đến một thuộc tính của đối tượng nào ta dùng cú pháp sau:

.

            1.2. Phương thức của đối tượng (Methods)

            Để gọi đến phương thức của một đối tượng, ta dùng cú pháp:

.

Một số phương thức thường dùng

 Refresh: Làm tươi lại đối tượng.

 Show: Hiện đối tượng.

 Hide: ẩn đối tượng.

 Release: Giải phóng đối tượng.

SetFocus: Thiết lập “tầm ngắm” cho đối tượng.

            1.3. Sự kiện của đối tượng

Để chỉ đến sự kiện của đối tượng, ta dùng cú pháp sau:

.

Một số sự kiện thường dùng

            Click: Được gọi khi kích chuột vào đối tượng.

            DbClick: Được gọi khi kích đúp chuột vào đối tượng.

MouseMove: Được gọi khi di chuyển chuột trên bề mặt của đối tượng.

            KeyPress: Được gọi khi nhấn một phím kích chuột vào đối tượng.

            Got focus: Được gọi khi đưa đối tượng vào tầm ngắm.

            Lostfocus: Được gọi khi đưa đối tượng ra khỏi tầm ngắm

            Change: Được gọi khi có sự thay đổi nội dung dữ liệu kiểu chuỗi của đối tượng.

                  1.4. Tuy cập đến các đối tượng trên form

            Muốn chỉ đến một đối tượng nào trên form, ta dùng:

            . <đối tượng>: nếu <đối tượng> không cùng với form đang thao tác.

.<đối tượng>: nếu đối tượng nằm trên form đang thao tác.

            Muốn thay đổi giá trị các thuộc tính trên form, ta dùng:

            .= : nếu muốn thay đổi  thuộc tính của form không phải là form hiện hành.

.=: nếu muốn thay đổi các thuộc tính của form hiện hành.

 Các thuộc tính, phương thức, sự kiện thường dùng trên form.

Thuộc tính:

            BackColor     : Màu nền

            BorderStyle   : Dạng đường viền

            Caption          : Tiêu đề của form

            FillColor        : Màu để tô đối tượng

            Fontname       : Font chữ cho các đối tượng chứa văn bản

            Fontsize         : Kính thước fontname

            Moveable      : Cho phép di chuyển hay không

            .................

 

Tình huống:

            MoveMouse  : Đáp ứng khi di chuyển chuột trên bề mặt form

            Destroy          : Đáp ứng khi giải phóng form

            Load               : Đáp ứng khi nạp form vào bộ nhớ

            1.5. Thanh công cụ Control Toolbar

            Muốn đưa đối tượng trên thanh Control vào form: 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

       Quy ước đặt tên cho các đối tượng

 

Loại đối tượng

Tên

Form

Bắt đầu bởi Frm

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

 

2. MỘT SỐ ĐỐI TƯỢNG TRÊN CONTROL

            Label : Dùng để thể hiện các chuỗi trên form.

Các thuộc tính thường dùng:

Caption: Chuỗi thể hiện

Autosize: Giá trị logic, cho phép kích thước của Label có tự động chỉnh sửa theo độ dài của caption hay không.

            Command Bottom: Dùng để thể hiện các nút lệnh trên form.

Các thuộc tính thường dùng:

 Caption: tên xuất hiện trên nút lệnh

 Picture: Hình xuất hiện trên nút lệnh

 Enable: giá trị Logic, cho phép chọn nút lệnh hay không

Các Sự kiện thường dùng:

 Click: Khi kích chuột vào nút lệnh thì sự kiện này được gọi.

      TextBox: 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.

Các thuộc tính thường dùng.

ControlSource: Tên của trường hay biến mà giá trị của nó được hiện trong textbox

Value: Giá trị hiện thời của textbox.

Sự kiện thường dùng

 Change: Khi có sự thay đổi của thuộc tính value

 KeyPress: Khi có phím bất kỳ được ấn.

            Editbox: Tương tự như textbox, được dùng để chỉnh sửa dữ liệu từ các trường memo.

Các thuộc tính thường dùng

            Control Source: Tên của trường mà giá trị của nó được thể hiện trong editbox.

 ScrollBars: Có hiện thanh cuộn trong khung editbox hay không.

 ReadOnly: Cho phép có được chỉnh sửa nội dung hay không

Sự kiện thường dùng

 Change: Khi có sự thay đổi của thuộc tính value.

 Keypress: Khi có phím bất kỳ được ấn.

            Images:  Dùng để đưa các hình ảnh trên form.

Các thuộc tính thường dùng

 Picture: Xác định file hình ảnh

 Stretch: Xác định cách thức thể hiện hình ảnh (phóng to, thu nhỏ, nguyên mẫu).

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.

Các thuộc tính thường dùng.

 Enabled: Xác định xem Timer có hiệu lực hay không

 Interval: Quy định khoảng thời gian xác định cho tình huống timer.

Sự kiện thường dùng

             Timer: Được kích hoạt đều đặn sau một khoảng thời gian xác định ở thuộc tính Interval.

            Grid: Dùng để thể hiện dữ liệu theo dạng bảng.

Các thuộc tính thường dùng.

 Row Source: Xác định bảng dữ liệu cần thể hiện.

 ColumnCount: Xác định số cột của Grid.

3. KHÁI NIỆM BÁO CÁO

Reports là công cụ để trình bày và tóm tắt dữ liệu trong một văn bản khi in. Report có hai thành phần cơ bản cấu thành: dữ liệu nguồn, thông thường là các bảng dữ liệu và hình thức trình bày là dạng thức của report sẽ định dạng cách kết xuất dữ liệu.

Màn hình thiết kế Report

 

            3.1. Các bước  thiết kế Report

Ta có thể thiết kế report để thể hiện dữ liệu ở nhiều dạng thức khác nhau trên giấy khi in. Quá trình thiết kế gồm 4 bước chính như sau:

1. Xác định loại Report cần tạo: Tức là quyết định chọn dạng thức mà report hiển thị kết quả.

2. Tạo Report layout: Có thể sử dụng report wizard hay report designer. Report layout được lưu trên đĩa với phần mở rộng của file là FRX: Lưu trử chi tiết của report.

3. Sửa đổi layout của report.

4. Xem và in report.

            3.2. Tạo Report bằng Wizard

Từ menu Tools, chọn Wizard, chọn Report sau đó làm theo các bước hướng dẫn.

Bước 1: Chọn bảng dữ liệu và các trường cần thể hiện

 

Bước 2: Tạo nhóm dữ liệu kết xuất

 

Bước 3:  Chọn kiểu Report thể hiện

Bước 4: Chọn cách trình bày trên giấy in

Bước 5:  Chọn trường Sắp xếp

Bước 6: Đặt tựa đề, kết thúc

3.3. Tạo Report sử dụng công cụ Report DESIGNER

            a. Quản lý Report

            Tạo mới Report: CREATE REPORT 

Ví dụ: create report  TEST

Lúc này màn hình xuất hiện hộp thoại report

 

 Mở một report sẵn có: MODIFY 

Xem trước khi in: REPORT FORM  PREVIEW

Xem trước khi in có điều kiện:

REPORT FORM  PREVIEW <điều kiện>

In report:                    REPORT FORM  TO PRINTER

            b. Các thành phần trên Report

 

Title: Dùng để in trên mỗi report: Từ menu report, chọn title summary

Page Header: Để in trên mỗi header của mỗi trang in.

Column header: Để in tên header của mỗi cột. Để chọn, từ menu file chọn page setup, chọn giá trị cho column number lớn hơn 1.

Group header: Xuất hiện mỗi khi bắt đầu nhóm mới. Để chọn, từ menu report chọn data grouping.

Detail: phần chi tiết trên mỗi record (ứng với từng record trên bảng dữ liệu).

Group footer: In phần Footer của mỗi nhóm. Để chọn, từ menu report chọn data grouping.

Column footer: In phần Footer của mỗi cột. Để chọn, từ menu file, chọn page setup, chọn giá trị cho column nimber lớn hơn 1.

Page Footer: In phần Footer của mỗi trang.

Sumary: Phần tốm tắt của mỗi report.

            c. Các control trên Report

            Thanh công cụ Report Control

Chức năng của các control:

Field trong bàng dữ liệu, biến và các biểuthức toán

Field

Text thuần tuý

Label

Đường kẻ

Line

Hộp và đồng khung

Rectangle

Hình tròn, elip

Rounded Rectangle

Hình ảnh hoặc field General

Picture

            d. Đưa các control vào report

Thực hiện các bước sau:

 Chọn control thích hợp

 Kéo rê chuột trên report để xác định vị trí của nó trên report

 Hiệu chỉnh các control

Đưa field vào report:

                         Kích chuột vào

Trong hộp  report Expression, chọn nút lệnh sau hộp Expression.

Trong hộp field, hcọn tên trường hay biến thích hợp.

Chọn OK.

Đưa label vào report:

                         Chọn          

 Gỏ nội dung của label 

Đưa Picture bound  control vào report:

 Chọn picture bound control

              Xuất hiện hộp hội thoại report picture, chọn file, nếu muốn chèn hình ảnh từ file, chọn field nếu muốn chọn trường General.

 Chọn Ok.

 

 

 

A. Bài tập có lời giải

BÀI SỐ 1

 

            Tạo một Project có tên QLYSACH.PJX chứa tập tin cơ sở dữ liệu QuanLySach.dbc, tập tin này chứa 2 bảng dữ liệu có cấu trúc như sau:

Bảng Danhmucsach.dbf

 

Tên trường

Kiểu dữ liệu

Độ rộng

Diễn giải

Ghi chú

MASACH

C

5

Mã sách

Khoá chính

TENSACH

C

30

Tên sách

 

NAMXB

N

4

Năm xuất bản

 

TACGIA

C

30

Tên tác giả

 

 

Bảng Docgiamua.dbf

 

Tên trường

Kiểu dữ liệu

Độ rộng

Diễn giải

Ghi chú

MASACH

C

5

Mã sách

 

TENDOCGIA

C

30

Tên độc giả

 

SL

N

1

Số lượng mua

 

NGAYMUA

D

8

Ngày mua

 

 

Hãy thiết kế các biểu mẫu có dạng sau rồi viết mã lệnh cho các nút lệnh.

 

 

 

 

 

 

 

 

 

 

 

BÀI SỐ 2

 

            Hãy thiết kế biểu mẫu theo dạng dưới đây, khi chọn tên sách bất kỳ thì ở vùng lưới sẽ hiển thị danh sách những độc giả mua sách đó.

 

 

 

 

 

 

 

 

 

 

 

 

Hướng dẫn giải

BÀI SỐ 1

 

Tạo biểu mẫu Danhmucsach rồi lần lượt đưa các Textbox vào biểu mẫu.

            Textbox1:      Có thuộc tính name  txtmasach

                                    Control Source: Danhmucsach.Masach

            Textbox2:      Có thuộc tính name  txtTensach

                                    Control Source: Danhmucsach.Tensach

            Textbox3:      Có thuộc tính name  txttacgia

                                    Control Source: Danhmucsach.Tacgia

            Textbox4:      Có thuộc tính name  txtnamxb

                                    Control Source: Danhmucsach.namxb

Đưa các nút lệnh vào biểu mẫu rồi lần lượt viết mã lệnh như sau:

Nút Dau (Thuộc tính name: cmddau)

Go top

Thisform.refresh

 

Nút Cuoi (Thuộc tính name: cmdcuoi)

Go bott

Thisform.refresh

Nút Truoc (Thuộc tính name: cmdtruoc)

If not bof()

            Skip -1

endif

Thisform.refresh

Nút Sau (Thuộc tính name: cmdSau)

If not eof()

            Skip

endif

Thisform.refresh

Nút Them (Thuộc tính name: cmdthem)

Appe blan

Thisform.refresh

Nút Ket Thuc (Thuộc tính name: cmdKthuc)

Thisform.release

Thuộc tính Load của biểu mẫu

Use Danhmucsach

 

BÀI SỐ 2

 

Tạo biểu mẫu rồi lần lượt đưa các điều khiển vào biểu mẫu.

 

 

 

 

 

 

 

 

 

Thiết lập thuộc tính  cho combo2 như sau:

Click chuột phải vào combo2, chọn builder

 

 

 

 

 

 

 

 

 

 

 

 

 

            Trong mục Database and table: Chọn Danhmucsach, rồi chọn trường Tensach chuyển vào mục Selected Field, chọn OK.

Thiết lập thuộc tính  cho Lưới như sau:

Click chuột phải vào lưới, chọn builder

 

 

 

 

 

 

 

 

 

 

 

 

            Trong mục Database and table: Chọn Docgiamua, rồi chọn trường 3 trường Tendocgia, Sl, ngaymua chuyển vào mục Selected Field, chọn OK.

            Chọn mục 4.RelationShip

 

 

 

 

 

 

 

 

 

 

            Trong mục Key Filed in parent table: Chọn Danhmucsach.Tensach

            Trong mục Related index in child table: Chọn Masach

B. Bài tập không có lời giải

 

            Sử dụng Project Tuyensinh.PJX trong bài thực hành số 1 (phần bài tập không có lời giải) trong chương 2, hãy thực hiện các yêu cầu sau:

BÀI SỐ 1

 

Thiết kế một form MONHOC dùng để hiển thị, điều chỉnh, xóa hoặc đăng ký thêm môn thi vào bảng MONHOC

 

 

 

 

 

 

 

 

 

 

 

 

 

BÀI SỐ 2

 

Thiết kế form dùng để hiển thị và cập nhật cho bảng KHOI và HOCSINH như sau:

BÀI SỐ 3

Hãy thiết kế báo cáo R1 để xuất kết quả như sau:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

BÀI SỐ 4

Từ hai bảng dữ liệu Khoi và Hocsinh hãy thiết kế báo cáo R2 để in kết quả dự thi của những thí sinh theo từng ngành và theo mẫu sau:

ĐIỂM THI CỦA THÍ SINH THEO NGÀNH

Mã khối DLA, Mã ngành DLAHOA, Tên ngành: Hóa học

 

STT

Số báo danh

Họ tên

Phái

Nsinh

Toán

Hóa

1

DLAHOA01

An

Nam

10/10/78

8

9

8

2

DLAHOA02

Thủy

Nữ

20/10/79

3

3

8

3

DLAHOA03

Lan

Nam

01/10/77

7

6

9

4

DLAHOA04

Hoài

Nữ

30/10/78

8

9

9

Số thí sinh dự thi: 4

 

Mã khối DLA, Mã ngành DLATIN, Tên ngành: Tin học

 

STT

Số báo danh

Họ tên

Phái

Nsinh

Toán

Hóa

1

DLATIN01

Hùng

Nam

10/10/75

8

9

8

2

DLATIN02

Minh

Nữ

20/10/76

3

7

8

Số thí sinh dự thi: 2

BÀI SỐ 5

Tạo phiếu báo điểm cho từng thí sinh như sau:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

C. Bài tập nâng cao

BÀI SỐ 1        

            Thiết kế một form có một đối tượng Pageframe gồm 2 trang:

            Trang 1: Chứa nội dung vùng memo của bảng dữ liệu Nhanvien.dbfnào đó, 2 đối tượng Textbox để hiển thị họ và tên nhân viên và nhóm các nút dùng làm di chuyển trong bảng dữ liệu.

            Trang 2: Chứa nội dung của 1 file Text, file này được chọn từ hộp thoại Open, một vùng để thể hiện nội dung tên File đã chọn, một nút Open dùng để mở file, nút SAVE dùng để lưu lại nội dung vừa sửa và một nút Thoát nằm trên Form chính dùng để thoát khỏi chương trình.

BÀI SỐ 2

            Viết chương trình cho phép người dùng định dạng nội dung của file văn bản theo các kiểu: Chữ hoa, chữ thường, các ký tự đầu mỗi từ là chữ hoa. Ngoài ra còn có thông báo cho người dùng biết số ký tự, số từ, số đoạn văn hiện có trong File Text

BÀI SỐ 3

            Viết chương trình dùng công cụ Grid để thể hiện trên màn hình nội dung sau:

             Cột thứ 1 thể hiện Mã sản phẩm

             Cột thứ 2 thể hiện tên sản phẩm

             Cột thứ 3 thể hiện số lượng đặt hàng của sản phẩm

             Cột thứ 4 thể hiện đơn giá của sản phẩm

             Cột thứ 5 thể hiện tổng giá, cột này được tự động tính khi bạn thay đổi đơn giá hay số lượng đặt hàng của sản phẩm.

BÀI SỐ 4

            Viết chương trình dùng công cụ Grid để thể hiện trên màn hình nội dung sau:

             Cột thứ 1 thể hiện tên sản phẩm.

             Cột thứ 2 thể hiện đơn giá.

             Cột thứ 3 thể hiện số lượng tồn kho của sản phẩm.

             Cột thứ 4 dùng đối tượng checkbox để cho người sử dụng chọn hay không chọn việc giảm giá.

            Ngoài ra còn có các đối tượng checkbox để bật hay không bật các đối tượng Spinner cho 2 cột đơn giá và số lượng, đối tượng Checkbox ở cột giảm giá

BÀI SỐ 5

            Viết chương trình thêm nội dung do người dùng gõ trong đối tượng Textbox và Listbox sau khi nhấn phím Enter để kết thúc việc nhập

BÀI SỐ 6

            Viết chương trình thể hiện 2 danh sách thuộc dạng Listbox. Một danh sách chứa các mục gốc, một danh sách chứa các mục chọn từ danh sách nguồn. Ngoài ra còn có 4 nút Thêm, Thêm hết, Xoá, Xoá hết để điều khiển công việc trên. Trong danh sách chọn, còn có chức năng cho phép sắp xếp lại các mục đã chọn.

BÀI SỐ 7

            Viết chương trình thể hiện sự chọn lựa nhiều thành phần 1 lúc trong 1 danh sách. Ngoài ra có một đối tượng dạng Textbox thông báo cho biết bạn đã chọn bao nhiêu mục.

BÀI SỐ 8

            Viết chương trình cho phép mở nhiều File dạng *.TXT cùng một lúc, danh sách các file được thể hiện trong một đối tượng dạng Listbox.

Màn hình có dạng sau:

BÀI SỐ 9

            Viết chương trình sắp xếp đối tượng trong danh sách theo mẫu tự Alphabet

BÀI SỐ 10

            Viết chương trình làm bài thi trắc nghiệm trên máy. Mỗi câu hỏi đều có 4 khả năng chọn lựa. Sau khi làm bài xong bạn nhấn nút Kết quả để xem kết quả bài làm của mình.

BÀI SỐ 11

            Viết chương trình cho phép người dùng gõ vào nội dung câu thông báo, xác định tiêu đề cửa sổ thông báo, chọn biểu tượng xuất hiện trong hộp thông báo, chọn các loại nút.

BÀI SỐ 12

            Viết chương trình để đếm giờ trên màn hình. Có 3 nút kèm theo: Nút ngừng, nút Reset dùng để khởi động lại và nút để thoát khỏi chương trình.

Màn hình có dạng sau:

 

BÀI SỐ 13

            Viết chương trình cho phép người dùng chọn giá trị từ danh sách theo 2 loại Listbox và combo box

 

 

 

Phụ Lục

MỘT SỐ CHƯƠNG TRÌNH QUẢN LÝ

 

1. Phân tích, thiết kế và xây dựng chương trình quản lý sách trong thư viện của một trường trung học phổ thông.

2. Phân tích, thiết kế và xây dựng chương trình quản lý sách nhân sự trong một cơ quan hành chính sự nghiệp nào đó.

3. Phân tích, thiết kế và xây dựng chương trình quản lý khách sạn.

4. Phân tích, thiết kế và xây dựng chương trình quản lý hồ sơ sinh viên trong một trường đại học.

5. Phân tích, thiết kế và xây dựng chương trình quản lý bệnh nhân của một bệnh viện đa khoa.

6. Phân tích, thiết kế và xây dựng chương trình quản lý vật tư của một cửa hàng kinh doanh vật liệu phục vụ xây dựng.

7. Phân tích, thiết kế và xây dựng chương trình quản lý hộ khẩu.

8. Phân tích, thiết kế và xây dựng chương trình quản lý kỳ thi tốt nghiệp trung học phổ thông .

9. Phân tích, thiết kế và xây dựng chương trình quản lý điểm học sinh của một trường trung học phổ thông .

10. Phân tích, thiết kế và xây dựng chương trình quản lý bán hàng trong siêu thị.

11. Phân tích, thiết kế và xây dựng chương trình quản lý hồ sơ xe máy của phòng cảnh sát giao thông tỉnh.

12. Phân tích, thiết kế và xây dựng chương trình quản lý các đề tài nghiên cứu khoa học.

12. Phân tích, thiết kế và xây dựng chương trình quản lý các đề tài nghiên cứu khoa học.

13. Phân tích, thiết kế và xây dựng chương trình quản lý các bênh nhân.

 

 

Yêu cầu chung

- Phân tích và thiết kế bài toán.

- Xây dựng các bảng dữ liệu và các mối quan hệ giữa các bảng dữ liệu.

- Phân rã các chức năng của bài toán để xây dựng các chức năng phù hợp.

- Thiết kế các biểu mấu, báo cáo.....

            - Thiết kế menu chương trình và gắn các chức năng cần thiế

Đơn vị chủ quản: CÔNG TY TNHH THƯƠNG MẠI ĐIỆN TỬ THIÊN THI
372/10 Điện Biên Phủ, Phường 17, Q.Bình Thạnh, HCM
giấy phép MXH: 102/GXN - TTĐT
Lên đầu trang