P. 1
notes

notes

|Views: 6,973|Likes:
Published by urglyduck

More info:

Published by: urglyduck on Jan 20, 2011
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as DOC, PDF, TXT or read online from Scribd
See more
See less

04/08/2013

pdf

text

original

Sections

  • CHƯƠNG I: GIỚI THIỆU HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU VS FOXPRO
  • BÀI 1: GIỚI THIỆU
  • I.Hệ quản trị csdl
  • II.Mô hình dữ liệu quan hệ
  • III.Bài toán quản lý
  • BÀI 2: TỔNG QUAN VỀ FOXPRO VÀ VISUAL FOXPRO
  • I.Giới thiệu
  • II.Khởi động Visual Foxpro
  • III.Thoát khỏi VS FoxPro:
  • CHƯƠNG II: XÂY DỰNG PROJECT VÀ CƠ SỞ DỮ LIỆU NG PROJECT VÀ CƠ SỞ DỮ LIỆU
  • BÀI 1: CÁC THÀNH PHẦN CƠ BẢN CỦA NGÔN NGỮ
  • III. Kí hiệu comment:
  • IV. Lệnh của Visual Foxpro
  • V. Một số lệnh trực tiếp của Visual Foxpro
  • VI.Kiểu dữ liệu
  • VII. Charater (C):
  • VIII. Date and DateTime
  • IX. Currency
  • X. Logic
  • XI. Numeric
  • XII. Memo
  • XIII. General
  • XIV.Các phép toán
  • XIX.Biểu thức
  • XXI.Lệnh và chương trình
  • BÀI 2: XÂY DỰNG PROJECT
  • I.Tạo mới một Project
  • XXII.Cửa sổ Project (Project Manager)
  • BÀI 3: XÂY DỰNG DATABASE VÀ CÁC TABLES
  • XXIII.Tạo Database
  • XXIV.Bảng dữ liệu (Table)
  • XXV.Tạo bảng
  • XXVI.CÁC LỆNH CƠ BẢN TRÊN FILE DBF
  • XXVII.Thao tác với cấu trúc bảng
  • Xem cấu trúc bảng
  • Sửa cấu trúc bảng:
  • Sao chép bảng
  • CHƯƠNG III: SẮP XẾP, TÌM KIẾM, THỐNG KÊ
  • I.Sắp xếp
  • 1.Sắp xếp theo chỉ mục
  • 2.Lập chỉ mục IDX cho bảng dữ liệu
  • 3.Một số lệnh liên quan
  • XXVIII.Tìm kiếm
  • Tìm kiếm tuần tự
  • Tìm kiếm sau khi đã lập chỉ mục
  • XXIX.THỐNG KÊ
  • Đếm số lượng bản ghi
  • XXXII.Làm việc với nhiều bảng
  • Vùng làm việc
  • Liên kết giữa các bảng
  • Một số hàm và lệnh khác
  • Một số hàm
  • Một số lệnh khác
  • Một số hàm thông dụng
  • CHƯƠNG IV: QUERIES VÀ VIEWS
  • I.Thiết lập quan hệ giữa các bảng
  • XXXIII.Tạo các queries
  • CHƯƠNG V: LẬP TRÌNH TRÊN VISUAL FOXPRO
  • I.Chương trình
  • II.Soạn thảo chương trình
  • XXXIV.Các thủ tục và hàm do người sử dụng tự tạo
  • XXXV.Biến nhớ
  • XXXVI.Các cấu trúc điều khiển chương trình
  • I.Khái niệm lập trình hướng đối tượng
  • XXXVII.Lập trình trên Windows
  • XXXVIII.FORM
  • 1.Quản lý form
  • 2.Truy cập đến các đối tượng trên form
  • 3.Thuộc tính của đối tượng (Properties)
  • 4.Phương thức của đối tượng (Methods)
  • 5.Sự kiện của đối tượng
  • 6.Tạo form thông qua Wizard
  • 7.Tạo form thông qua thiết kế
  • 8.Một số thuộc tính của FORM
  • 9.Một số sự kiện (Event) thường sử dụng của Form
  • 10.Một số phương thức (Methods) thường sử dụng của Form
  • XXXIX.Data Environment
  • XL.Tạo giao diện Single – Multiple Document
  • CHƯƠNG VII: REPORT
  • XLIII.Khái niệm
  • XLIV.Tạo Report bằng Wizard
  • XLV.Tạo Report bằng REPORT DESIGNER
  • XLVI.Các control trên Report
  • I.TẠO MENU
  • XLVII.Tạo menu hệ thống
  • XLVIII.Tạo menu hệ thống thông qua Menu Designer
  • XLIX.Quản lý đề án

Bài giảng Visual FoxPro

MỤC LỤC
MỤC LỤC...........................................................................................................................................1 CHƯƠNG I: GIỚI THIỆU HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU VS FOXPRO...................................4 BÀI 1: GIỚI THIỆU...........................................................................................................................4 I. Hệ quản trị csdl............................................................................................................................4 II. Mô hình dữ liệu quan hệ.............................................................................................................4 III. Bài toán quản lý........................................................................................................................4 BÀI 2: TỔNG QUAN VỀ FOXPRO VÀ VISUAL FOXPRO...........................................................6 I. Giới thiệu.....................................................................................................................................6 II. Khởi động Visual Foxpro...........................................................................................................6 III. Thoát khỏi VS FoxPro:.............................................................................................................6 CHƯƠNG II: XÂY DỰNG PROJECT VÀ CƠ SỞ DỮ LIỆU..........................................................8 BÀI 1: CÁC THÀNH PHẦN CƠ BẢN CỦA NGÔN NGỮ..............................................................8 I. Từ khóa, kí hiệu, Lệnh.................................................................................................................8 II. Từ khóa (Key Word): ................................................................................................................8 III. Kí hiệu comment: .....................................................................................................................8 IV. Lệnh của Visual Foxpro............................................................................................................8 Các câu lệnh có thể thực hiện trực tiếp từ cửa sổ lệnh (Command Windows) - gọi là Lệnh trực tiếp. 8 Các lệnh chỉ thực hiện trong chương trình. Các lệnh trực tiếp cũng thực hiện được trong chương trình.................................................................................................................................................8 V. Một số lệnh trực tiếp của Visual Foxpro ...................................................................................8 VI. Kiểu dữ liệu...............................................................................................................................9 VII. Charater (C):............................................................................................................................9 VIII. Date and DateTime................................................................................................................9 IX. Currency..................................................................................................................................10 X. Logic........................................................................................................................................10 XI. Numeric..................................................................................................................................10 XII. Memo.....................................................................................................................................10 XIII. General.................................................................................................................................10 XIV. Các phép toán.......................................................................................................................10 XV. Toán hạng..............................................................................................................................13 XVI. Hằng.....................................................................................................................................13 XVII. Biến.....................................................................................................................................13 XVIII. Hàm...................................................................................................................................14 XIX. Biểu thức..............................................................................................................................16 XX. Từ khoá..................................................................................................................................16 XXI. Lệnh và chương trình..........................................................................................................17 BÀI 2: XÂY DỰNG PROJECT........................................................................................................18 I. Tạo mới một Project..................................................................................................................18 XXII. Cửa sổ Project (Project Manager).......................................................................................18 BÀI 3: XÂY DỰNG DATABASE VÀ CÁC TABLES...................................................................20 I. Giới thiệu...................................................................................................................................20 XXIII. Tạo Database.....................................................................................................................20 XXIV. Bảng dữ liệu (Table).........................................................................................................22 XXV. Tạo bảng.............................................................................................................................24 XXVI. CÁC LỆNH CƠ BẢN TRÊN FILE DBF.........................................................................30 Bộ môn Tin học – ĐHTN 1

Bài giảng Visual FoxPro XXVII. Thao tác với cấu trúc bảng...............................................................................................37 Xem cấu trúc bảng......................................................................................................................37 Sửa cấu trúc bảng:........................................................................................................................37 Sao chép bảng..............................................................................................................................38 CHƯƠNG III: SẮP XẾP, TÌM KIẾM, THỐNG KÊ........................................................................39 I. Sắp xếp.......................................................................................................................................39 1. Sắp xếp theo chỉ mục................................................................................................................39 2. Lập chỉ mục IDX cho bảng dữ liệu...........................................................................................40 3. Một số lệnh liên quan................................................................................................................41 XXVIII. Tìm kiếm........................................................................................................................41 Tìm kiếm tuần tự..........................................................................................................................41 Tìm kiếm sau khi đã lập chỉ mục.................................................................................................41 XXIX. THỐNG KÊ.....................................................................................................................42 Đếm số lượng bản ghi..................................................................................................................42 Tính tổng giá trị các trường kiểu số.............................................................................................42 Tính trung bình cộng các trường kiểu số.....................................................................................43 Tính tổng các trường số theo nhóm.............................................................................................43 XXX. Sắp xếp...............................................................................................................................44 XXXI. Lọc....................................................................................................................................45 XXXII. Làm việc với nhiều bảng.................................................................................................46 Vùng làm việc..............................................................................................................................46 Liên kết giữa các bảng.................................................................................................................46 Một số hàm và lệnh khác.............................................................................................................47 Một số hàm...................................................................................................................................47 Một số lệnh khác..........................................................................................................................47 Một số hàm thông dụng...............................................................................................................47 CHƯƠNG IV: QUERIES VÀ VIEWS.............................................................................................49 I. Thiết lập quan hệ giữa các bảng................................................................................................49 XXXIII. Tạo các queries...............................................................................................................53 CHƯƠNG V: LẬP TRÌNH TRÊN VISUAL FOXPRO...................................................................62 I. Chương trình..............................................................................................................................62 II. Soạn thảo chương trình.............................................................................................................62 XXXIV. Các thủ tục và hàm do người sử dụng tự tạo..................................................................63 XXXV. Biến nhớ..........................................................................................................................64 XXXVI. Các cấu trúc điều khiển chương trình............................................................................65 I. Khái niệm lập trình hướng đối tượng........................................................................................73 XXXVII. Lập trình trên Windows................................................................................................73 XXXVIII. FORM..........................................................................................................................74 1. Quản lý form.............................................................................................................................74 2. Truy cập đến các đối tượng trên form.......................................................................................74 3. Thuộc tính của đối tượng (Properties)......................................................................................75 4. Phương thức của đối tượng (Methods)....................................................................................75 5. Sự kiện của đối tượng...............................................................................................................76 6. Tạo form thông qua Wizard......................................................................................................76 7. Tạo form thông qua thiết kế......................................................................................................79 8. Một số thuộc tính của FORM...................................................................................................80 9. Một số sự kiện (Event) thường sử dụng của Form....................................................................82 10. Một số phương thức (Methods) thường sử dụng của Form....................................................84 XXXIX. Data Environment..........................................................................................................84 Bộ môn Tin học – ĐHTN 2

Bài giảng Visual FoxPro XL. Tạo giao diện Single – Multiple Document...........................................................................86 XLI. Form set................................................................................................................................86 XLII. Sử dụng Control..................................................................................................................86 CHƯƠNG VII: REPORT..................................................................................................................97 XLIII. Khái niệm...........................................................................................................................97 XLIV. Tạo Report bằng Wizard...................................................................................................97 XLV. Tạo Report bằng REPORT DESIGNER............................................................................98 XLVI. Các control trên Report...................................................................................................100 I. TẠO MENU............................................................................................................................102 XLVII. Tạo menu hệ thống.........................................................................................................102 XLVIII. Tạo menu hệ thống thông qua Menu Designer.............................................................102 XLIX. Quản lý đề án...................................................................................................................103

Bộ môn Tin học – ĐHTN

3

Khả năng đáp ứng trên mạng cao.. mỗi bảng lại được mô tả qua các trường dữ liệu. có khả năng triển khai trên mạng. môn học . là hệ CSDL dùng cho các tổ chức. là hệ CSDL dùng cho các tổ chức. (Được đánh giá là mạnh hơn SQL verver và thực tế giá phần mền này cũng đắt hơn SQL Server). III. • Quan hệ giữa các bảng (Relationship): Là cách thức mô tả một đối tượng lớn hơn từ những đối tượng nhỏ.. Công cụ truy cập.) thông qua các bảng (Table). Đảm bảo tính an toàn. • Oracle: Phát triển bởi Oracle. • Bảng (Table): Mô tả qua các cột . • Foxpro.trường (Field) và các dòng . Khả năng đáp ứng trên mạng cao. • MySQL: Hệ CSDL mã nguồn mở. Đảm bảo tính an toàn. doanh nghiệp lớn.Bản ghi (Record) (ví dụ) (Mỗi bảng có thể hiểu như một [quan hệ]) • Trường (Field): Mô tả 1 thuộc tính nào đó của đối tượng thông qua tên trường (Field name). Access: Phát triển bởi Microsoft.Bài giảng Visual FoxPro CHƯƠNG I: GIỚI THIỆU HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU VS FOXPRO BÀI 1: GIỚI THIỆU I. tính bảo mật. bảo mật. Mô hình dữ liệu quan hệ Trong mô hình này người ta mô tả các [đối tượng] (như con người. doanh nghiệp vừa và nhỏ. Hệ quản trị csdl Hệ quản trị cơ sở dữ liệu (Database Management System) là một hệ thống phần mềm máy tính được thiết kế chuyên biệt cho bài toán quản lý. Mô hình dữ liệu của các hệ quản trị csdl là mô hình quan hệ. là hệ CSDL dùng cho các tổ chức. tổ chức. Các Hệ quản trị csdl thường dùng hiện nay: • SQL Server: Phát triển bởi Microsoft. Bài toán quản lý Bài toán quản lý có ở hầu hết mọi đơn vị. doanh nghiệp lớn. thậm chí với cả một số cá nhân. bảo mật. an toàn là không cao. Những bài toán quản lý có thể kể đến như: Bộ môn Tin học – ĐHTN 4 . được sử dụng chủ yếu cho các ứng dụng Web. quản lý dữ liệu. hàng hóa. Hệ quản trị CSDL cung cấp 2 tính năng chính sau: • • Lưu trữ. khai thác dữ liệu. kiểu (Type) và độ rộng (Width). II. • Bản ghi (Record): Tập các giá trị cụ thể của các trường của cùng 1 đối tượng.

điểm. Quản lý sinh viên. • . • Khối lượng dữ liệu thường là rất lớn. Quản lý hàng hóa. lọc thông tin.Bài giảng Visual FoxPro • • • • • • Quản lý nhân sự.. thống kê. Quản lý sách. tìm kiếm. Đặc điểm này thực sự là một thách thức lớn nếu chúng ta phải quản lý thủ công (việc tìm kiếm... Đặc điểm chung của những bài toán này: • Không cần sử dụng những thuật toán phức tạp mà yêu cầu chủ yếu là: Thống kê. Quản lý lương. Quản lý kế toán. lọc -> mất rất nhiều thời gian và không chính xác) Bộ môn Tin học – ĐHTN 5 .

là một trong những công cụ tiện lợi để giải quyết các bài toán trong lĩnh vực quản lý cho những người chuyên nghiệp và không chuyên nghiệp. 5. Hãng Microsoft đã cho ra đời nhiều phiên bản Visual Foxpro 3. 6. Giới thiệu Foxpro là hệ quản trị cơ sở dữ liệu dùng để giải quyết các bài toán trong các lĩnh vực quản lý.6. Khởi động Visual Foxpro. gõ lệnh: Quit .0. II. Từ khi phát triển đến nay. nó được kế thừa từ Foxpro for Windows. Bộ môn Tin học – ĐHTN 6 .C2: Menu File/ Quit. những sản phẩm nổi tiếng của hãng ASTON-TATE. Sau khi đã cài đặt Visual FoxPro.0. Visual Foxpro là sản phẩm của hãng Microsoft. chạy được trên hai môi trường DOS và Windows.0.0.C1: Từ cửa sổ Command. 4. FoxPro được thừa kế và phát triển trên phần mềm DBASE III PLUS và DBASE IV. Thoát khỏi VS FoxPro: . ta có thể khởi động nó bằng cách thực hiện: • • C1: Start/Progam/Microsoft studio/ Microsoft Visual Foxpro C2: Click chuột vào biểu tượng của FoxPro hoặc Visual Foxpro trên Desktop Màn hình Visual Foxpro sau khi khởi động: III.Bài giảng Visual FoxPro BÀI 2: TỔNG QUAN VỀ FOXPRO VÀ VISUAL FOXPRO I. Khi các công cụ lập trình và các ứng dụng trên môi trường Windows ngày nhiều thì Microsoft cho ra đời các phiên bản FoxPro 2.

Bộ môn Tin học – ĐHTN 7 . đẹp.Project manager đem lại một cách nhìn tổng quan. • Công cụ Report Designer tiện dụng. hiệu quả trong việc phát triển một ứng dụng nào đó. • Công cụ trực quan cho phép thiết kế giao diện được nhanh chóng.Bài giảng Visual FoxPro III.0 trợ giúp nhanh và hữu hiệu với việc lập trình. Những nét đặc trưng cơ bản • Công cụ quản lý ứng dụng . • Công cụ tool tip trong Visual Foxpro 7. cho phép tạo ra nhiều report đa dạng.

3. chữ thường). Các lệnh trực tiếp cũng thực hiện được trong chương trình. trường hợp có nhiều tham số thì thứ tự các tham số này có thể không quan trọng. Một số lệnh trực tiếp của Visual Foxpro 1. 2. Lệnh ?. Tham khảo tài liệu về tất cả các khóa của Visual Foxpro.gọi là Lệnh trực tiếp. ?? -> In kết quả lên màn hình QUIT -> Thoát khỏi foxpro CLEAR -> Xoá màn hình SET DEFAULT TO <Path> -> Thiết lập đường dẫn mặc định SET DATE <FRENCH | AMERICA> -> Thiết lập ngày tháng V. • Các lệnh chỉ thực hiện trong chương trình.Các tham số trong lệnh của fox có thể có.Bài giảng Visual FoxPro CHƯƠNG II: XÂY DỰNG PROJECT VÀ CƠ SỞ DỮ LIỆU BÀI 1: CÁC THÀNH PHẦN CƠ BẢN CỦA NGÔN NGỮ I. Bộ môn Tin học – ĐHTN 8 . 4. có thể không. Và người dùng không được phép đặt tên trùng với từ khóa. Từ khóa. ví dụ từ khoá CREATE có thể chỉ cần viết Crea (Visual Foxpro không phân biệt chữ hoa. Lệnh của Visual Foxpro Trong Visual Foxpro có hai loại câu lệnh: • Các câu lệnh có thể thực hiện trực tiếp từ cửa sổ lệnh (Command Windows) . Trong Foxpro từ khoá có thể không cần viết đầy đủ mà chỉ cần viêt 4 ký tự đầu của từ khoá đó. Lệnh II. hoặc có thể có nhiều. Cấu trúc lệnh trực tiếp của Foxpro có dạng: Trong đó: <Động từ> [Các tham số] ↵ <Động từ> . Kí hiệu comment: Đối với phần cuối 1 dòng dùng kí tự && Với cả dòng: dùng ký tự * hoặc && IV. [Tham số] . Từ khóa (Key Word): Là các từ mà Visual Foxpro đã sử dụng cho một mục đích nào đó.Động từ tiếng anh (tương ứng với công việc cần làm). 5. III. kí hiệu.

Charater (C): Chứa các số liệu là tổ hợp một số bất kỳ các ký tự ASCII. các kiểu chỉ dùng cho các trường của bảng gồm có: Memo (Văn bản). giờ dùng 8 bytes để lưu trữ. Kiểu dữ liệu Đối tượng xử lý của V.FOXPRO phải chia dữ liệu thành nhiều kiểu dữ liệu khác nhau. để quản lý và khai thác tốt các dữ liệu này. {^2005-12-10 10:20:25} • Các phép toán: • Ngày + Số • Số + Ngày • Ngày . • Date and DateTime Date (D): Dùng cho những số liệu dạng ngày tháng như ngày sinh.Bài giảng Visual FoxPro VI. Currency (Tiền tệ).. • Kiểu ngày. dd-mm-yyyy. Date và DateTime (Ngày.. ‘Việt nam’ hoặc [Visual Fox] Các phép toán: • +: Nối chuỗi 2 vào chuổi 1. tuỳ theo tính chất. /.. họ hoặc là số nhưng không có nhu cầu tính toán như số chứng minh. FOXPRO là dữ liệu. Numeric (Số). VII.Ngày Tương tự cho ngày giờ = Ngày = Ngày = Ngày = Số Bộ môn Tin học – ĐHTN 9 . • $: Chứa ở trong (st1$st2 – st1 có trong st2 ->TRUE.. • -: Nối 2 chuỗi nhưng huỷ bỏ các khoảng trắng trước và sau mỗi chuỗi.-. số phòng. • Hằng Date và DateTime: {^yyyy-mm-dd [hh[:mm[:ss]][alp]]}. Các kiểu dữ liệu trong Visual Foxpro gồm có: Character (Xâu kí tự). Là xâu ký tự a->z.. A->Z. 0 ->9 và một số các ký tự khác như +. V.. General (Tổng hợp . Độ dài cố định của dữ liệu kiểu ngày là 8 ký tự. đó là những số nguyên dạng "yyyymmdd" khi hiển thị ra bên ngoài sẽ được chuyển thành dạng ngày tháng bình thường như mm-dd-yy. = …. ví dụ “Hà nội”. địa chỉ. ngày đến. ‘’. hoặc []. tuỳ theo yêu cầu của người lập trình. ngược lại ->FALSE) VIII.ảnh). giờ).*. ví dụ: {^2005-1210}.… Mỗi dữ liệu kiểu chuỗi có độ dài tối đa 255 ký tự (mỗi ký tự chiếm 1 byte trong bộ nhớ)..Số • Ngày . Ví dụ: tên. Kiểu dữ liệu là thuộc tính gắn liền với biến hay trường trong các bảng. Logic. Hằng xâu kí tự: Đặt trong dấu “”.

X. file ảnh và thường được sử dụng để lưu trữ file ảnh. XIV... thường được sử dụng trong các chương trình thuộc lĩnh vực khoa học kỹ thuật. . Mỗi dữ liệu kiểu số chiếm tối đa 20 chữ số gồm cả phần nguyên.Bài giảng Visual FoxPro IX.. • Kiểu logíc. • Các phép toán: +.. thường được dùng trong các chương trình "quản lý nhân sự".) • Các phép toán: NOT.f. phần thập phân và dấu chấm thập phân. Currency Kiểu tiền tệ (thực chất là kiểu số và thêm kí tự tiền $ hoặc ký tự bất kỳ khác) vào số đó. • Kiểu hình ảnh . ->FALSE sai (hoặc .... .BMP.T. XI. chúng được lưu trữ trong một tập tin khác có cùng tên nhưng phần mở rộng là .t. như khen thưởng. • Hằng số: 10. dùng 4 byte để ánh xạ đến 1 file khác có phần mở rộng là fpt. dùng tối đa 20 byte. AND. file excel. % (chia lấy phần dư) XII.. XIII.03e5 (2. . • Numeric 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..Ficture (P): Dữ liệu lưu dưới dạng hình ảnh . /. Kiểu này cho phép lưu 1 đối tượng bất kỳ như file văn bản. Kiểu này thường ít được sử dụng.03 x105). Độ dài khai báo là 10 nhưng nội dung thực sự của kiểu ghi nhớ là tuỳ ý. 20. lý kịch.. ->TRUE đúng (hoặc . OR. ^ (mũ). 15.. đối tượng ưu tiên. • Kiểu số. • Float (F): Dùng để biểu diễn số là các số có dấu chấm động như: 2..Độ dài cố định của dữ liệu kiểu lý luận là 1 ký tự. Phép toán số học: được thực hiện trên các dữ liệu kiểu số.. quá trình công tác. . General • Kiểu kí ức... file word.).FPT (FoxPro Text). tập giá trị là Đúng hoặc Sai • Hằng Logic: . Memo Memo (M): Dữ liệu kiểu ghi nhớ là một đoạn văn bản có độ dài lớn hơn 255 ký tự.7 . quản lý. gồm các phép toán: Bộ môn Tin học – ĐHTN 10 . *.. Các phép toán a. . • Logic Logical (L): Dùng cho những dữ liệu chỉ có một trong hai trường hợp hoặc đúng (T) hoặc sai (F) như giới tính.F. "nhận dạng".

Một số không thể trừ (-) với một dữ liệu kiểu ngày. nhưng 'ab $ "AaBb" cho giá trị .20 -------> {12/07/2003} Chú ý: Hai dữ liệu kiểu ngày không thể cộng (+) cho nhau.{05/07/2003} -------> 25 Một dữ liệu kiểu ngày có thể cộng (+) hay trừ (-) một số nguyên để cho kết quả là một dữ liệu kiểu ngày.35 {01/08/2003} . kết quả của phép toán là một dữ liệu kiểu chuỗi. • c. o Ví dụ: 'ab' $ "ABab" cho giá trị . o Ví dụ: Trung tâm' + 'Tin học' -----> 'Trung tâm Tin học' • Phép toán ghép nối (-): dùng để ghép 2 chuỗi cạnh nhau và di chuyển các dấu cách ở chuỗi thứ nhất (nếu có) ra cuối chuỗi tạo thành. o Ví dụ: 'Trung tâm ' . có thể thay đổi thứ tự tính toán bằng cách đặt chúng trong 2 dấu ngoặc đơn ( ) như các quy tắc tính toán số học thông thường.' Tin học' -----> 'Trung tâm Tin học ' • Phép toán $: kiểm tra chuỗi bên trái có nằm trong chuỗi bên phải không. Phép toán ghép nối (+): dùng để ghép 2 chuỗi cạnh nhau. Ví dụ: • • {01/08/2003} .{05/09/2003} -------> . Phép toán chuỗi: Dùng để xử lý các dữ liệu kiểu chuỗi.Bài giảng Visual FoxPro Độ ưu tiên các phép toán theo thứ tự đã nêu ở trên.T. b. Phép toán ngày: Hai dữ liệu kiểu ngày có thể trừ (-) cho nhau để cho khoảng cách đại số giữa 2 ngày.F. Kết quả của phép toán có kiểu logic. Ví dụ: {01/08/2003}+ 10 -------> {11/08/2003} {01/08/2003}. Bộ môn Tin học – ĐHTN 11 .

Ví dụ: 'ABCD' < 'ABCE' -----------> . năm (Y) trong một dữ liệu kiểu ngày còn phụ thuộc vào thời điểm hiện tại đang theo hệ thống ngày tháng nào. Bộ môn Tin học – ĐHTN 12 .Bài giảng Visual FoxPro Việc diễn tả thứ tự ngày (D).T. AND. Nếu SET CENTURY ON thì năm được biểu diễn theo dạng bốn con số. Phép toán quan hệ: dùng để so sánh hai giá trị của hai biểu thức cùng kiểu. nghĩa là: o Nếu SET EXACT ON thì 'AB' = 'AB ' -----------> . Phép toán logic: Visual FoxPro có 3 phép toán logic: NOT. Hai dữ liệu kiểu ngày được so sánh dựa theo biểu diễn của chúng theo chiều của thời gian. Trong kiểu logic. (3) Lệnh SET MARK TO <bthức C>: để ấn định ký tự phân cách ngày tháng. thì việc so sánh dựa vào việc thiết lập môi trường SET EXACT ON/OFF. • Trường hợp hai chuỗi có độ dài khác nhau. d. nếu bằng nhau thì so sánh tiếp.T. : e.F.<. tháng (M). o Nếu SET EXACT OFF thì 'ABCD' = 'AB' -----------> . 'a' < 'A' ------------> . Visual FoxPro quy ước: . (1) Lệnh SET DATE FRENCH |AMERICAN| JAPAN: Cho phép thiết lập dữ liệu dạng ngày theo kiểu Pháp|Mỹ|Nhật.T. (2) SET CENTURY ON|OFF: Quy ước năm có một dữ liệu dạng ngày được biểu diễn theo dạng hai số (mặc định) hay dạng bốn số. • • Hai dữ liệu kiểu số được so sánh dựa theo biểu diễn của chúng trên trục số. • Hai dữ liệu kiểu chuỗi có độ dài bằng nhau được so sánh dựa theo nguyên tắc sau: đầu tiên so sánh 2 mã ASCII của 2 ký tự đầu của hai chuỗi. OR NOT hay ! phủ định của toán hạng theo sau.F.F. năm là <bthức Dùng lệnh SET MARK TO để trở về ký tự phân cách ngày tháng mặc định. nếu SET CENTURY OFF (dạng mặc định) thì năm được biểu diễn theo dạng hai con số.

.. Hằng logic: chỉ có 2 giá trị .]. được xác định qua tên biến. Hằng cũng được xác định qua tên. và . nếu cả hai toán hạng đều .T.2. kiểu và phạn vi tác động của nó. do người sử dụng tạo ra trong bộ nhớ. o Kiểu: Các kiểu dữ liệu kể trên trừ kiểu General.T. Khai báo hằng: Visual Foxpro dùng từ khoá #DEFINE <Tênhằng> <Giá trị> để khai báo hằng." hoặc '. XVII. '123'.. Số lượng tối đa của biến được phép sử dụng là 2048 biến. có độ dài tối đa không quá 253 kí tự. kiểu và phạm vi tác động của biến o Tên biến: Dài không quá 254 kí tự... Trừ kiểu dữ liệu memo thì mỗi kiểu dữ liệu đều có hằng của nó. XVI. dấu gạch dưới (_) nhưng không được bắt đầu bằng chữ số (và không được trùng với từ khoá).. Ví dụ: del=b^2 . Kiểu của hằng phụ thuộc vào kiểu của biểu thức <Giá trị> Phạm vi tác động của hằng được xác định tương tự với Biến.F. Toán hạng Toán hạng là các dữ liệu tham gia vào các phép toán.Bài giảng Visual FoxPro • AND : cho giá trị .. • • Hằng kiểu ngày: phải được đặt trong cặp dấu {.T. • OR : cho giá trị .4. Hằng kiểu số: như -2.14 Hằng kiểu chuỗi: hằng loại nầy phải để trong hai dấu ".F. tổng hợp'.. 4. Visual FoxPro hiểu kiểu của biến là kiểu của giá trị mà nó đang mang.. {}: ngày rỗng. Có tên bắt đầu bằng dấu gạch nối ( _ ) thường được sử dụng trong vấn đề in o Bộ môn Tin học – ĐHTN 13 .c là các toán hạng.. Biến • Là đại lượng lưu trữ dữ liệu trong bộ nhớ. Ví dụ: hsl = 3.5. có thể dùng các chữ cáI.F. Kiểu của biến trong Visual Foxpro có thể thay đổi. Hằng • • • • • Là đối tượng dữ liệu mà giá trị của nó chỉ xác định 1 lần khi khai báo và không thay đổi được. chữ số. khi không sử dụng nữa có thể giải phóng để tiết kiệm bộ nhớ.4*a*c thì b.} Ví dụ: {01/01/96}. nếu cả hai toán hạng đều .. o Visual FoxPro chia biến làm 3 loại: o Biến bộ nhớ: Gọi chung là biến.... 100.12 ngaysinh = {01/01/88} Biến hệ thống: Được tạo ra ngay từ khi khởi động Visual FoxPro.' hoặc [.a.. XV. Ví dụ: "abc".

RELEASE monhoc. Ví dụ o a=150 o STORE ”Visual Foxpro“ TO monhoc -> Tạo ra biến có tên là a. nó chỉ có ý nghĩa khi tập tin chứa nó được mở ra để sử dụng. Visual Foxpro dùng lệnh RELEASE <tenbien> để xoá bỏ các biến. kiểu xâu kí tự • Xoá bỏ các biến: Khi không dùng nữa thì có thể xoá bỏ các biến để giảI phóng bộ nhớ. Bộ môn Tin học – ĐHTN 14 . kiểu là số -> Tạo ra biến monhoc. chương trình con 1 và chương trình con 2. nếu trong chương trình con 1 có lời gọi chương trình con 2 thì biến B có thể tác động trong chương trình con 2 (nhưng nếu lời gọi chương trình con 2 tại vị trí khác mà ở đó không khai báo B thì lúc đó sẽ phát sinh lỗi). người sử dụng không thể giải phóng biến loại này. Hàm Hàm là những đoạn chương trình được viết sẵn nhằm thực hiện một công việc nào đó. • Phạm vi tác động của biến phụ thuộc vào vị trí mà nó được khai báo. o Biến trường: Tên các trường trong tập tin CSDL . Biến trường và biến hệ thống có phạm vi tác động trong toàn bộ chương trình. • Khai báo biến: Trong Visual Foxpro thực ra không có khái niệm khai báo biến (như trong PASCAL) mà các biến sẽ được sinh ra khi thực hiện lệnh gán (=) hoặc lệnh STORE. Ví dụ RELEASE a. XVIII. Ví dụ Chương trình chính Biến A Chương trình Con 1 Biến B Gọi chương trình con 2 Chương trình con 2 Biến C Trong ví dụ trên: Biến A có tác động trong toán bộ chương trình chính.Bài giảng Visual FoxPro ấn. Nếu có một biến đặt trùng với một biến trường thì biến trường được ưu tiên thực hiện trước. Biến C chỉ có tác động trong chương trình con 2. Biến B có tác động trong chương trình con 1.

ALLTRIM(st). nhưng cũng có hàm chỉ thi hành một việc nào đó mà không cho ra một trị nào cả. 2. Trong phần này sẽ giới thiệu một số hàm do Visual Foxpro cung cấp.p. LEN(st) 8. LTRIM(st). DATE() DATETIME() TIME() CTOD(st) DAY(d) MONTH(d) YEAR(d) 3. các đối số này đặt cách nhau bởi dấu phẩy. 2. Về hình thức.2). Một hàm có thể có nhiều đối số hoặc không có đối số nào cả nhưng phải có ( ) theo sau.n) AT(st1. 6. RIGHT(st. RTRIM(st) LEFT(st.n). hàm được đặc trưng bởi tên hàm và theo sau là cặp dấu ( ) dùng để bao các đối số. 5. CHR(n) 6. Hàm số 1.st2. 3. 7.Bài giảng Visual FoxPro Các hàm này thường cho ra một giá trị. 4. 4.n). STR(ex) 2. 5.n) LOWER(st). ABS(ex) INT(ex) ROUND(ex. RAT(st1.st2. DTOC(d) 7. Sqrt(x): căn bậc 2 của x.n) VAL(st) Bộ môn Tin học – ĐHTN 15 . 3. Hàm Date và DateTime 1. Ví dụ: Date ( ): cho biết ngày tháng năm hệ thống. Có 2 loại hàm: Hàm có sẵn của Visual FoxPro và hàm tự tạo do người sử dụng tạo ra. UPPER(st) ASC(ch). 4. 3. Hàm xâu kí tự 1. 1. SUBSTRING(st. 2.

trị của biểu thức được tính theo nguyên tắc • Thứ tự ưu tiên của các phép toán trong 1 biểu thức 1.>. dấu ngoặc tròn... OR • Sử dụng cập dấu () trong biểu thức để tránh sai sót về thứ tự ưu tiên các phép toán. chía Phần dư Cộng. Bên trái tính trước.<> 4. D. Hàm tự tạo của người sử dụng Cú pháp FUNCTION <Tenham> [PARAMETER <danh sách các tham số>] . Các phép chuỗi: +. biến. Các phép quan hệ: =. C. L. Thông thường từ khoá là những động từ của lệnh thực hiện.. bên phải tính sau. người sử dụng không được đặt tên trùng với các từ khoá này. Bộ môn Tin học – ĐHTN 16 . XX. Một biểu thức có thể rất phức tạp. dương Luỹ thừa Nhân. Nếu từ khoá có nhiều hơn 4 ký tự thì khi sử dụng chỉ cần ghi 4 ký tự đầu. trừ 2. Biểu thức Biểu thức là tập hợp của một hay nhiều thành phần như hằng.<.>=. Sau khi tính toán biểu thức sẽ cho một trị duy nhất.Bài giảng Visual FoxPro 4.<=. Từ khoá Từ khoá là những từ được Visual FoxPro sử dụng vào một mục đích riêng. Các phép số học: o o o o o Dấu âm. 3. Trị của biểu thức thuộc về một trong 4 kiểu: N. hàm. phép toán. Các phép logic: NOT. AND. (Các lệnh của fox) RETURN <Biểu thức> Trong đó TenHam: Tên hàm do người sử dụng tự định nghĩa Parameter: Từ khoá cho phép truyền vào các tham số cho hàm XIX.

sau khi ấn Enter lệnh được thi hành ngay. Thi hành xong một lệnh thì lệnh cũ được lưu lại trên cửa sổ lệnh có thể sử dụng cho lần sau. tại cửa sổ lệnh đưa câu lệnh DO <tên file. Dùng chương trình: Soạn thảo trước một chương trình gồm nhiều lệnh thích hợp. Dùng cửa sổ lệnh: Lệnh được đưa vào cửa sổ lệnh. Tập hợp các lệnh nhằm đạt được một mục tiêu đề ra gọi là chương trình. Chương trình được lưu trên đĩa dưới tên một tập tin có phần mở rộng PRG. Cách này thường dùng trong những tính toán đơn giản để kiểm tra kết quả của lệnh. ?. b.PRG>. Lệnh và chương trình Lệnh là những yêu cầu để thực hiện một nhiệm vụ nào đó. Lệnh trong Visual FoxPro thường là một động từ. Dùng menu: Lệnh được ban hành bằng cách kích hoạt menu tương ứng.PRG có 2 từ khoá là MODIFY và COMMAND có thể viết gọn là: MODI COMM LUONG. cũng có trường hợp là một kí hiệu như: !. c. . Bộ môn Tin học – ĐHTN 17 . Cách này chỉ hạn chế trong một số lệnh thông thường trên tập tin CSDL.. Trong Visual FoxPro có 3 cách để ban hành lệnh: a. sau khi thi hành xong câu lệnh cũng được lưu lại trên cửa sổ lệnh..PRG XXI.Bài giảng Visual FoxPro Ví dụ: Câu lệnh MODIFY COMMAND LUONG. Sau khi ấn Enter chương trình được nạp vào bộ nhớ và từng lệnh được thực hiện theo thứ tự. Để thực hiện chương trình này.

Free Tables. XXII. làm việc với Project này. Text file. Applications Other: Menu. Tạo mới một Project Việc phát triển một ứng dụng trong Visual Foxpro thường được tổ chức thành một Project Dự án. API Libraries. Labels. Queries Documents: Forms. Class Code: Program. tiếp chọn chọn Save. Reports. khi đó giao diện New của VS Foxpro xuất hiện • • • Tiếp đến chọn File type = Project (Mặc định). • Khi chọn New file hộp thoại Create hiển thị cho phép nhập vào tên project cần tạo. Cửa sổ Project (Project Manager) [Chạy Foxpro -> Project Manager] Các thành phần chính trong Project Manager 1-Các tuỳ chọn (Tab) : • • • • • Data: Database. • Kết thúc việc tạo mới. Chọn Wizard để tạo một Project theo một trong các mẫu thiết kế sẵn của Microsoft. Chọn New file để tạo một Project trống. cửa sổ Project Manager xuất hiện (xem phần tiếp theo) cho phép quản lý. Việc tạo mới một Project có thể được thực hiện bằng 1 trong hai cách sau: • Cách 1: Trong cửa sổ lệnh gõ vào lệnh CREATE PROJECT <Tên Project> • Cách 2: Vào menu File ->Chọn New. Other file Bộ môn Tin học – ĐHTN 18 .Bài giảng Visual FoxPro BÀI 2: XÂY DỰNG PROJECT I.

Bài giảng Visual FoxPro 2-Các nút chức năng trong 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 MODIFY BROWSE REMOVE TẠO MỘT THÀNH PHẦN MỚI TRONG PROJECT SỬA CẤU TRÚC CỦA MỘT THÀNH PHẦN TRONG PROJECT XEM VÀ SỬA DỮ LIỆU CỦA CÁC BẢNG HAY TRUY VẤN LOẠI BỎ MỘT THÀNH PHẦN TRONG PROJECT Bộ môn Tin học – ĐHTN 19 .

Tạo mới Database Câch 1: Sử dụng câu lệnh Bằng cách này chúng ta có thể tạo ta một Database. Xuất phát từ việc phân tích yêu cầu. • Giao diện Database Designer cho phép xem một cách tổng thể các thành phần (bảng. các mẫu biểu của bài toán để từ đó đưa ra cấu trúc các bảng sao cho phù hợp. • Chọn New Database để tạo một database trống.Bài giảng Visual FoxPro BÀI 3: XÂY DỰNG DATABASE VÀ CÁC TABLES I. Cách 2: Sử dụng Project Manager Bằng cách này thì Database được tạo ra sẽ là một thành phần của Project • Mở Project QLDIEM • Trong Tab Data. mỗi quan hệ giữa các bảng . Tạo Database 1.) trong csdl. rồi chọn Save để ghi lại. Giới thiệu Bảng dữ liệu (gọi tắt là bảng) là nơi lưu trữ dữ liệu và nó đóng một vai trò quan trọng trong các bài toán quản lý. khi đó giao diện New database xuất hiện như hình 1. Hình 1 .. • Visual Foxpro sẽ yêu cầu nhập vào tên Database (file có phần mở rộng là DBC). đáp ứng các yêu cầu đặt ra là một công việc khá phức tạp. XXIII. Khi đó giao diện Database designer xuất hiện như hình 2. đòi hỏi phải có kiến thức và kinh nghiệm trong lĩnh vực cụ thể đó.. view.Hộp thoại New database Bộ môn Tin học – ĐHTN 20 . tuy nhiên database này là một Database độc lập (không liên quan đến Project nào) Câu lệnh: CREATE DATABASE <TenDatabase> ↵ Kết thúc lệnh này Visual Foxpro sẽ tạo ra file Database có tên là TenDatabase (phần mở rộng là DBC) Về sau có thể thêm Database này vào trong 1 Project nào đó. chọn mục Database rồi chọn New.

tiếp đến chọn Database và mở rộng đối tượng này (bằng cách kích vào dấu + phía trước) . khi đó sẽ xuất hiện cửa số open file (hình 3) cho phép chúng ta chọn csdl cần thêm vào.Hộp thoại Open file (Select Database) Bộ môn Tin học – ĐHTN 21 . chọn Tab Data. • Chọn lệnh Add. Hình 3 . tiếp đến chọn mục Database.Bài giảng Visual FoxPro 2. khi đó cửa sổ Database designer xuất hiện. Thêm vào Project một Database đã có Trường hợp Project sử dụng một Database đã có (đã thiết kế trước đó) thì chúng ta có thể thêm (Add) Database đó vào Project. chọn Tab Data. 3. • Trong Project Manager. • Chọn Database cần sửa (vì trong một Project có thể có nhiều hơn một Database) rồi chọn lệnh Modify. Sửa đổi Database • Trong Project Manager.

Cách tổ chức một file dữ liệu File dữ liệu: Là tập hợp dữ liệu phản ánh về một tập hợp các đối tượng được quản lý thông qua các thuộc tính của nó. Loại dữ liệu. XXIV.. Bảng dữ liệu (Table) 1. chọn Tab Data. tiếp đến chọn mục Database và mở rộng đối tượng này.Hộp thoại Remove Database • Chọn Remove (khỏi Project) nếu không muốn xoá hẳn Database này. • Trường (Field): Là một thuộc tính trong file dữ liệu. Bộ môn Tin học – ĐHTN 22 . Chọn khóa. kiểu trường và kích thước trường. mỗi cột được gọi là một trường (field) của bảng. Tạo chỉ mục. Loại bỏ một Database khỏi Project Khi không cần dùng một Database nào đó. Thiết lập các mối quan hệ giữa các Tables. chúng ta có thể loại bỏ Database đó khỏi Project như sau: • Trong Project Manager. • Bản ghi (Record): Là một bộ giá trị các thuộc tính phản ánh về một đối tượng.Bài giảng Visual FoxPro 4. Hình 4 . Tạo bẫy lỗi. chọn Cancel khi muốn huỷ bỏ thao tác này. tiếp đến chọn lệnh Remove. Một số công việc cần làm khi làm việc các tables: • • • • • • 2. khi đó xuất hiện hộp thoại như hình 4. mỗi dòng được gọi là một mẫu tin (record). giá trị mặc định cho từng field. Khái niệm Bảng dữ liệu chứa dữ liệu theo dạng dòng và cột. • Xác định các Field cần thiết có trong table. chọn Delete nếu muốn xoá hẳn Database này. • Chọn Database cần bỏ. mỗi trường được xác định bởi tên trường.. tạo tiêu đề diễn giải.

chữ số. Cấu trúc file: Mỗi tổ hợp trường sắp xếp theo thứ tự nhất định gọi là cấu trúc của file dữ liệu. mỗi bảng dữ liệu có hai phần: cấu trúc và nội dung của bảng.dbf) có cấu trúc sau: Bộ môn Tin học – ĐHTN 23 . Ví dụ: bảng nhân viên (nhanvien. mỗi file dữ liệu chỉ có một cấu trúc cụ thể. • Kiểu trường (Field type): Kiểu trường có các dạng sau: • Kích thước trường (Field Width): Là khoảng bộ nhớ cần thiết để lưu trữ các giá trị của trường. kích thước của trường phụ thuộc vào kiểu trường: • Kiểu C: Tối đa 254 Byte • Kiểu N: Tối đa 20 Byte kể cả dấu thập phân • Kiểu L: Chiếm 1 Byte • Kiểu D: Chiếm 8 Byte • Kiểu M: độ dài tuỳ ý.Bài giảng Visual FoxPro • Tên trường (Field name): Tên trường dài tối đa 10 ký tự bao gồm chữ cái. ký tự gạch dưới. chiếm 10 Byte khi khai báo • Currency: Chiếm 8 byte Mỗi bảng dữ liệu được lưu trữ trên đĩa với tên file có phần mở rộng mặc định là DBF. ký tự đầu tiên của tên trường phải là chữ cái.

Bộ môn Tin học – ĐHTN Hình 5 . Khi đó giao diện New table có dạng như hình 5. Bằng cách này.DBF XXV.Tên trường 1. • Chọn Database cần làm việc và mở rộng đối tượng này (bằng cách click vào dấu + phía trước).Kiểu trường 1 (dùng các chữ cái đầu của kiểu trong fox để mô tả) • With1 .New table 24 . .Bài giảng Visual FoxPro Nội dung của NHANVIEN.]) TableName . Tạo mới Tables Cách 1: Sử dụng câu lệnh Trong Visual Foxpro. • Ftype1 . chọn mục Database và mở rộng đối tượng này (bằng cách kích vào dấu + phía trước).. • Chọn New Tbale để tạo một Table trống. Câu lệnh: Trong đó: • CREATE TABLE <TableName>(FieldName1 Ftype1(width1) [. Ví dụ: CREATE TABLE Hososv(masv C(10).độ rộng của trường. • FieldName1 . một bảng dữ liệu có thể tồn tại ở một trong hai trạng thái: tự do (free) hoặc thuộc một CSDL nào đó. tiếp đến chọn Tables rồi chọn New.tên bảng (không chứa dấu cách). Tạo bảng 1. Tương tự như vậy cho trường thứ 2. Hoten C(30)) Cách 2: Sử dụng Project Manager • Trong Project Manager chọn Tab Data.. Table được tạo ra là một Table độc lập.

Giao diện Table Designer: Bộ môn Tin học – ĐHTN 25 . rồi chọn Save để ghi lại.Bài giảng Visual FoxPro • Nhập vào tên Table (file có phần mở rộng là dbf).

Bài giảng Visual FoxPro •

Tab Field: Phần khai báo chính cho 1 trường của bảng Tên trường. Kiểu dữ liệu của trường. Độ rộng của trường.

Trong đó: Name: Type: Width:

Decimal: Số chữ số lẻ sau phần dấu chấm thập phân, phần này chỉ sử dụng cho dữ liệu kiểu số. Index Sắp xếp (Ascending, Descending, None) Null Format Checked or Unchecked: cho phép hoặc không cho phép giá trị null Định dạng dữ liệu hiển thị (sử dụng các ký tự qui định cho format của Foxpro - xem bảng sau)

Hình 6 - Table Designer Các kiểu dữ liệu:
Kiểu dữ liệu Diễn giải Kiểu dữ liệu Diễn giải Kiểu dữ liệu Diễn giải

C Kí tự D Ngày T Ngày giờ N Số Format Code: ! Force text to uppercase. B Left justify . J Right justify. I Center justify. L Leading zeros. Z ( C X $ Blank if zero.

F I B Y Description

Float Integer Double Tiền tệ

L M G

Logic Memo General Applies to data of type: Character only All types All types All types Numeric only Numeric, Date, and DateTime Numeric only Numeric only Numeric only Numeric only
26

Surround negative numbers with (). Appends " CR" to positive, non-zero numbers. Appends " DB" to negative, non-zero numbers. Uses currency notation.

Bộ môn Tin học – ĐHTN

Bài giảng Visual FoxPro

D E YL YS R

Use current SET DATE setting. All types Display as if SET DATE BRITISH was in effect. All types Display using system Long Date format. Date Display using system Short Date format. Date Prevents non-formatting characters in the template string from replacing the corresponding character of the field expression Character value. When @R is used, the template string interleaves instead of Numeric overlaying.

and

Input Mask: Định dạng dữ liệu nhập (sử dụng các ký tự qui định cho Input mask của Visual Foxpro - xem bảng sau) cMask ! # $ $$ , . 9 A H L N U W X Y

Description Converts lowercase letters to uppercase letters. Permit entry of digits, spaces, and signs, such as the minus sign ( – ). Displays the current currency symbol, as specified by the SET CURRENCY command, in a fixed position. Displays floating currency symbol that always appears adjacent to the digits in a spinner or text box. Displays the current digit-grouping, or separator, symbol as set by the Regional and Language Options setting in the Windows Control Panel. Displays the current decimal point character as specified by the SET POINT command setting. (Default is a period (.)) Permits entry of digits and signs. Permits alphabetic characters only. Prevents entry of non-hexadecimal symbols in the specified position. Permits logical data only. Permits letters and digits only. Permits alphabetic characters only and converts them to uppercase (A - Z). Permits alphabetic characters only and converts them to lowercase (a - z). Permits any character. Permits the letters, Y, y, N, and n for the logical values True (.T.) and False (.F.), respectively.

Rule: Quy tắc kiểm tra tính đúng đắn của dữ liệu nhập vào field (dữ liệu nhập vào cho trường này phải thoả mãn quy tắc đặt ra) • Message: Thông báo khi dữ liệu nhập không thoả mãn luật qui định với trường ở Rule. • Default: Giá trị mặc định cho trường dữ liệu này khi thêm mới 1 bản ghi. • Display library, Display class: Xác định lớp gắn với ứng trường này (ví dụ nếu kiểu của trường này là Character - > Lớp mặc định được dùng là Textbox, Là Logic ->Lớp mặc định được dùng là Checkbox ...), người sử dụng có thể tạo ra các lớp của riêng mình và sử dụng ở đây.
Bộ môn Tin học – ĐHTN 27

Bài giảng Visual FoxPro o Tab Index: Phần khai báo các index (chỉ mục) cho bảng

• Order: Ascending, Đescening • Name: Tag name • Type: Kiểu type Primary Description Number allowed Được tạo trên 1 field đảm bảo chỉ một giá trị duy nhất được đưa 1/ 1 table vào, thường sử dụng cho việc tạo khóa chính. Candidate Tương tự Primary key. Có thể tạo cho free table và database table Nhiều/1 table Cho phép trùng nhau về mặt dữ liệu. Được sử dụng cho việc tạo Regular Nhiều/1 table khóa ngoại. Binary Indexes records based on a valid and non-null logical expression. Nhiều/1 table Nếu có nhiều record trùng nhau trên cùng field thì chỉ xuất hiện Unique Nhiều/1 table record đầu tiên.. • Expression: xây dựng biểu thức cho các trường index. • Filter: xây dựng biểu thức lọc trước khi tiến hành index.
o Tab Table: Tính chất chung của bảng

Bộ môn Tin học – ĐHTN

28

được đánh số từ 1 đến mẫu tin cuối cùng. 2. Trong khi làm việc. Hàm RECNO( ) cho biết số thứ tự của mẫu tin hiện thời. Số thứ tự của mẫu tin (record number . Message: Thông báo lỗi khi Rule không thoả mãn. Số thứ tự này do FoxPro qui định một cách tuần tự. Kích thước của các mẫu tin của một file DBF đều bằng nhau. • Trong Project Manager/Database Designer. Bộ môn Tin học – ĐHTN 29 .T. • Chọn Table cần xóa. nếu xoá một mẫu tin thì số thứ tự này cũng tự động được cập nhật theo cho phù hợp. Rule: Quy tắc kiểm tra dữ liệu ở mức Record. Các quy tắc này đều ở mức Table. nếu con trỏ mẫu tin cuối file DBF đang mở. chỉ xuất hiện trong Project Manager. Xóa bảng dữ liệu. ngược lại hàm cho giá trị . Update. mẫu tin hiện hành là mẫu tin có thể truy nhập vào thời điểm đó. các giá trị mặc định và các quy tắc kiểm tra dữ liệu thì dùng lệnh Drop Table. Database: Thuộc vào Database nào. chiều dài tối đa là 128 kí tự. • Hàm EOF( ) (end of file) cho giá trị . ngược lại hàm cho giá trị . Insert Trigger: Cho phép nhập vào 1 biểu thức. Hàm RECSIZE( ) dùng để biết được kích thước của một mẫu tin. Nguyên tắc hoạt động Chúng ta chỉ có thể truy nhập đến các phần tử của một file DBF nếu file đó đã được mở bằng lệnh USE <tên file DBF>.Bài giảng Visual FoxPro Hình 7 • • • • • Name: Tên bảng. • Để xóa Table kèm với khóa. Mẫu tin hiện hành được trỏ đến bởi con trỏ mẫu tin (record pointer). Chọn nút Remove. Mỗi mẫu tin đang mở có 2 vị trí đặc biệt chú ý: đầu file và cuối file. Ở mỗi thời điểm bất kỳ. nếu con trỏ mẫu tin cuối file DBF đang mở.recno): mô tả số thứ tự vật lý của mẫu tin trong tập tin cơ sở dữ liệu DBF. Để biết được con trỏ mẫu tin ở đầu hay ở cuối file ta dùng các hàm logic sau: • Hàm BOF( ) (begin of file) cho giá trị . • • • Hàm RECOUNT( ) dùng để biết số mẫu tin của một tập tin DBF đang mở. Delete với các record. 3. biểu thức này sẽ được tính khi xảy ra sự kiện Insert.T.F. mỗi file DBF đang mở sẽ có một mẫu tin hiện hành.F. Chọn mục Delete.

TO PRINT/tên file/dsách biến: chuyển kết quả sau khi thực hiện lệnh đến máy in/file/biến. Ví dụ: • • • • • • • • • Các mệnh đề theo sau lệnh có mặt hay không tuỳ trường hợp và không cần phải viết theo thứ tự như đã nêu. • Đối với dữ liệu kiểu số nếu có phần thập Bộ môn Tin học – ĐHTN 30 .F. FIELDS <dsách trường>: lệnh chỉ có tác dụng trên những trường nêu trong <dsách rường>. lệnh sẽ tác động lên các bản ghi thoả mãn biểu thức logic đi kèm (có giá trị là . Chú ý: • Các tên trường không được trùng nhau.Bài giảng Visual FoxPro XXVI. WHILE <btL2>: chừng nào <btL2> còn đúng thì lệnh còn hiệu lực. CÁC LỆNH CƠ BẢN TRÊN FILE DBF 1.) cho đến khi gặp một bản ghi không thoả mãn biểu thức logic (có giá trị . FROM <tên file>: tên của file mà từ đó lệnh lấy số liệu để sử dụng cho file DBF đang mở. Nếu điều kiện sai thì lệnh được dừng ngay. phạm vi có thể là: ALL: tất cả các mẫu tin trong file dữ liệu đều bị tác động của lệnh (nếu có sử dụng FOR thì phạm vi được hiểu là ALL). • Lệnh: một từ khoá. Một lệnh trong Foxpro nói chung có cú pháp tổng quát như sau: Lệnh [phạm vi] [FIELDS <dsách trường>] [FOR <btL1>] [WHILE <btL2>] [FROM <tên file>/ ARRAY <tên mảng>] [TO print/tên file/dsách biến] Trong đó. HSLUONG DISP FIEL HOTEN.) hoặc đến hết file dữ liệu. phải viết đầu tiên và có thể viết 4 kí tự đầu nếu lệnh có nhiều hơn 4 ký tự. Trong lệnh nếu vừa có FOR vừa có WHILE thì mệnh đề WHILE ưu tiên thực hiện trước. DISPLAY FIELDS HOTEN. Dạng lệnh tổng quát Lệnh là một chỉ thị cho máy thực hiện một thao tác cụ thể. không được trùng với từ khoá. RECORD <n> Lệnh chỉ tác động đến mẫu tin thứ n REST Lệnh sẽ tác động từ mẫu tin hiện thời cho đến hết. NEXT <n>: n mẫu tin tiếp theo tính từ mẫu tin hiện thời bị tác động của lệnh. cho biết mục đích của công việc. Nghĩa là. FOR <btL1>: mẫu tin nào thoả mãn <btL1> mới bị tác động bởi lệnh.T. HSLUONG Phạm vi (Scope): chỉ định phạm vi các mẫu tin chịu sự tác động của lệnh.

• Để nhập dữ liệu cho trường MEMO. ta đưa con trỏ đến hộp memo rồi nhấn tổ hợp phím Ctrl_PgUp. Khi kết thúc việc nhập dữ liệu. b. Định vị tương đối Cú pháp: Skip [+|-] [<n>] Chức năng: Di chuyển con trỏ bản ghi về trước (-) hay sau (+) so với bản ghi hiện hành. a. GO BOTTOM: Dùng để chuyển con trỏ bản ghi về cuối file dữ liệu. Chú ý: Khi chỉ gõ lệnh Skip ↵ thì con trỏ bản ghi sẽ được di chuyển về sau bản ghi hiện hà nh một đơn vị. ta nhấn tổ hợp Ctrl+W để ghi lại. Định vị con trỏ đến một bản ghi 2. • • GO TOP: Dùng để chuyển con trỏ bản ghi về đầu file dữ liệu. Bộ môn Tin học – ĐHTN 31 .DBF. lúc này sẽ nhận được hộp thoại.Bài giảng Visual FoxPro phân thì độ rộng của phần thập phân phải nhỏ hơn độ rộng của trường ít nhất là 2 đơn vị. Khi chọn Yes sẽ tiếp tục xuất hiện hộp thoại để nhập dữ liệu. nhấn tổ hợp <Ctrl+W> để lưu file dữ liệu lên đĩa. Khi đó file dữ liệu sẽ có dạng <tên file>. USE DIEM GO 10 SKIP -5 GO 20 SKIP 5 (Sau lệnh này con trỏ ở bản ghi 30) Lưu ý: Khi vượt quá phía đầu. lúc đó sẽ xuất hiện cửa sổ nhập dữ liệu cho trường này. trả lời <Yes> để tiến hành nhập các bản ghi. Định vị tuyệt đối Cú pháp: GO <N>|[TOP]|[BOTTOM] Chức năng: Dùng để chuyển con trỏ bản ghi đến bản ghi có số hiệu <n> được chỉ định trong câu lệnh. • Lúc này: trả lời <No> thì sẽ quay lại cửa sổ lệnh. Sau khi kết thúc việc nhập dữ liệu cho nó. • Để kết thúc việc nhập cấu trúc ta ấn đồng thời phím Ctrl+W. phía cuối file (bảng) thì chương trình sẽ trả về thông báo: Beginning of file encountred hoặc End of file encountred.

nếu có mệnh đề FOR thì phạm vi mặc định là ALL. Ví dụ: USE HOSOSV LOCATE FOR (Hoten=”Phan Văn Việt”) and (malop=”3A-04”) LOCATE FOR (Hoten=”Phan Văn Việt”) and (gioi=. ngược lại trả về FALSE.F. b. Theo mặc định thì tất cả các trường trong bảng dữ liệu sẽ được hiển thị. ta có thể dùng lệnh COUNTINUE để tìm bản ghi tiếp theo thoả mãn <BieuThuc>.Bài giảng Visual FoxPro c. <phạm vi> mặc định là bản ghi hiện hành. Định vị con trỏ có điều kiện Cú pháp: LOCATE FOR <BieuThuc> Trong đó BieuThuc là một biểu thức Logic. Lấy dữ liệu từ bảng a. Ví dụ 1: Hiển thị tất cả các bản ghi của bảng dữ liệu nhanvien: Use nhanvien Display all Ví dụ 2: Hiển thị tất cả những người có năm làm việc (namlv) trước 1980 Display for namlv <1980 ↵ Chú ý: Trong câu lệnh của Fox. 3. nếu có [field<danh sách trường>] thì những trường được chỉ ra trong danh sách này mới được hiển thị lên màn hình. Lệnh LIST Cú pháp: List [<phạm vi>] [fields<danh sách trường>] 32 Bộ môn Tin học – ĐHTN . Lệnh : COUNTINUE Khi sử dụng lệnh LOCATE. Lệnh này sẽ đưa con trỏ bản ghi đến bản ghi đầu tiên thoả mãn BieuThuc nếu tìm thấy.) Lưu ý: Khi tìm thấy thì hàm FOUND() sẽ trả về giá trị TRUE. Lệnh Display Cú pháp: display [<phạm vi>] [fields<danh sách trường>] [For<bthức logic>] [While<bthức logic>] [on|off] Chức năng: Hiển thị nội dung của các bản ghi trong <phạm vi> được chỉ định và thoả mãn điều kiện của các biểu thức logic đi sau FOR và WHILE nếu có.

Lệnh ? trước khi in dữ liệu thì xuống dưới 1 dòng.Bài giảng Visual FoxPro [For<bthức logic>] [While<bthức logic>] [on|off] Chức năng: Hiển thị nội dung của các bản ghi như lệnh Display nhưng mặc định là ALL Ví dụ 1: Hiển thị tất cả các bản ghi của bảng dữ liệu nhanvien: Use nhanvien List Ví dụ 2: Hiển thị tất cả những người có năm làm việc (namlv) trước 1980 List for namlv <1980 ↵ c. Ví dụ: chèn một bản ghi vào sau bản ghi thứ 3: Go 3 ↵ Bộ môn Tin học – ĐHTN 33 .’nam lam viec:’.namlv↵ 4. Ví dụ: Cho hiển thị họ tên của người có số hiệu là 5 lên màn hình: Go 5 ↵ ? ‘ho ten’. Chèn. hoten ↵ Chú ý: danh sách biểu thức trong Fox được viết cách nhau bởi dấu phẩy “. bổ sung bản ghi a. Chèn bản ghi Cú pháp: INSERT [BEFORE][BLANK] Chức năng: Chèn một bản ghi ngay sau bản ghi hiện thời (nếu có [Before]) với nội dung được nhập vào.”. Ví dụ: cho biết họ tên. Lệnh ?|?? Cú pháp: ?|?? <danh sách biểu thức> Chức năng: Lệnh này tính toán và cho hiển thị kết quả của danh sách biểu thức lên màn hình. năm làm việc của người có số hiệu là 2: Go 2 ↵ ?’ho ten:’. còn lệnh ?? thì không. Nếu có [BLANK] thì sẽ chèn một bản ghi trắng.hoten.

Lệnh BROWSE: Cú pháp: BROWSE [FIELD<dsach trường>] [FREEZE<dsach trường>] [NODELETE] [NOEDIT] [FOR<bthức LOGIC>] Chức năng: Hiển thị nội dung của bảng d ữ liệu. mỗi bản ghi được thể hiện trong một hàng (dòng). Ví dụ: USE HOSOSV INSERT INTO HOSOSV(masv. nếu có tham số [BLANK] thì sẽ bổ sung một bản ghi trắng.”TEST”) Bổ sung bản ghi Cú pháp: APPEND [BLANK] Chức năng: Để chèn 1 bản ghi vào cuối bảng dữ liệu (giá trị được nhập vào). 5.Bài giảng Visual FoxPro Insert INSERT INTO <TableName>(FieldName List) VALUE(Value List) Thêm mới 1 bản ghi đồng thời xác định giá trị cho các trường của bản ghi đó.hoten) VALUE(“00001”. Bộ môn Tin học – ĐHTN 34 . ta có thể xem và di chuyển hộp sáng từ trường này qua trường khác. Sửa chữa nội dung bản ghi a. bản ghi này sang bản ghi khác và có thể sửa đổi nội dung của từng mẫu tin trong bản ghi.

b.][FOR<Bthức LOG IC>] [WHILE<Bthức LOGIC>] Chức năng: Dùng để thay thế nội dung các trường được chỉ ra của bản ghi nằm trong <phạm vi> và thỏa mãn điều kiện của <Bthức> Lệnh này cho phép cập nhật giá trị của FieldName1 với giá trị của BieuThuc1. Ví dụ: Hiển thị nội dung của các t rường HOTEN. NAMLV đ ể tiến hành sửa đổi. BROWSE FIELD HOTEN.. • [FREEZE<dsách Trường>]: cho phép các t rường trong danh sách này luôn đ ư ợ c hiển thị trên màn hình. có thể là:     ALL NEXT n RECOR n REST :Tất cả các bản ghi : n bản ghi tính từ bản ghi hiện thời : Bản ghi thứ n : Từ bản ghi hiện thời đến cuối 35 Bộ môn Tin học – ĐHTN . Tham số Scope xác định phạm vi tác động của lệnh. c. FieldName2 với giá trị của BieuThuc2 ...Bài giảng Visual FoxPro Ví dụ: USE NHANVIEN BROWSE • [FIELD<dsách Trường>]: cho phép các t rường trong danh sách này được hiển thị trên màn hình.NAMLV FREEZE NAMLV [FOR<Bthức LOGIC>]: Chỉ cho phép những biểu thức thoả mãn điều kiện của biểu thức LOGIC mới được hiển thị. Lệnh REPLACE Cú pháp: REPLACE [<Phạmvi>]<Trường 1>WI TH<Bthức 1>[ADDITIVE] [. nếu không có tham s ố này thì tất cả các t rường trong bảng d ữ liệu sẽ được hiển thị. • [NODELETE]: không cho phép xoá • [NOEDIT]: không cho phép sửa đổi.<Trường 2> WITH <Bthức 2> [ADDITIVE]. Lệnh EDIT Cú pháp: EDIT [<Phạm vi>] [FIELD<Dsáchtrường>][ NOAPPEND] [NODELETE] [NOEDIT][FOR<Bthức LOGIC>] [WHILE<Bt hức LOG IC>] Chức năng: Tương t ự lệnh BROWSE nhưng các b ản ghi được xuất hiện như ở lệnh APPEND. ..

Bài giảng Visual FoxPro  Trường hợp mặc định là bản ghi hiện hành. DELETE FOR NAMLV < 1 950↵ B2: Xóa chính thức các bản ghi. Lệnh: PACK Chức năng: Xóa các bản ghi đã được đánh dấu bằng lệnh DELETE. Xoá bản ghi Việc xóa bản ghi trong bảng dữ liệu được thưc hiện thông qua 2 bước: B1: Đánh dấu bản ghi luốn xóa. nếu không thì FOX sẽ thông báo lỗi “Data Type Mismatch”. CÚ PHÁP: DELETE [<PHạM VI>] [FOR<BTHứC LOGIC>] [WHILE<BTHứC LOGIC>] Sau khi thực hiện lệnh này thì các bản ghi được chỉ định đánh dấu xóa sẽ xuất hiện dấu * . Ví dụ: Đánh dấu xóa những nhân viên có năm làm việc trước 1951. Tùy chọn FOR cho phép thực hiện lệnh với những bản ghi thỏa mãn BieuThucLogic. Ví dụ: USE HOSOSV REPLACE ALL ghichu with “Ghi chu ALL” GO 5 REPLACE ghichu with “Ghi chu 5” GO 15 REPLACE NEXT 10 ghichu with “Ghi chu Next 10” REPLACE REST ghichu with “Ghi chu REST” Chú ý: Kiểu dữ liệu của <Bthuc> và của <trường> tương ứng phải tương đương nhau. Bộ môn Tin học – ĐHTN 36 . Ví dụ 1: Thay thế Họ Tên của nhân viên trong file NHANVIEN bằng chữ in hoa: REPLACE ALL HOTEN WITH UPPER(HOTEN) ↵ Ví dụ 2: Nâng lương của nhân viên nữ lên thêm 50000 REPLACE LUONG WITH LUONG+50000 FOR !GIOITINH ↵ 6.

kiểu và độ rộng của trường.DBF> [FIELDS<ds trường >]↵ Chức năng: Sao chép cấu trúc của bảng đang được mở sang một bảng mới có tên được chỉ ra trong <ten file.dbf nhưng chỉ gồm các trường: HOTEN. NAMLV Bộ môn Tin học – ĐHTN 37 . Ví dụ: USE NHANVIEN MODIFY STRUCTURE Sao lưu cấu trúc bảng CÚ PHÁP: COPY STRUCTURE TO <TEN FILE. Ví dụ: USE NHANVIEN↵ LIST STRUCTURE Sửa cấu trúc bảng: CÚ PHÁP: MODIFY STRUCTURE↵ Chức năng: Hiển thị và cho phép sửa đổi cấu trúc bảng dữ liệu. Mặc định là tất cả các trường có trong bảng dữ liệu đang mở. CALL [<PHạM VI>] [FOR<BTHứC LOGIC>] [WHI LE<BTHứC L OGIC>] Lệnh xóa dữ liệu trên file DBF. dbf> với các trường trong mục <ds trường>. Ví dụ: Sao lưu cấu trúc của NHANVIEN thành file có tên luu. CÚ PHÁP: ZAP Trường hợp đã xác định rõ cần xóa toàn bộ các bản ghi khỏi bảng thì có thể sử dụng lệnh ZAP (ZAP = DELETE +PACK) XXVII. Xem cấu trúc bảng CÚ PHÁP: LIST | DISPLAY STRUCTURE↵ Chức năng: Hiển thị cấu trúc bảng dữ liệu đang được mở. GIOITINH. Thao tác với cấu trúc bảng. bao gồm: tên trường.Bài giảng Visual FoxPro Phục hồi các bản ghi đã được đánh dấu xóa.

NGAYSINH. • Ds trường để chỉ định các trường được sao chép.Bài giảng Visual FoxPro USE NHANVIEN↵ COPY STRUCTURE TO LUU FIELDS HOTEN. GIOITINH. tất cả các bản ghi được sao chép.Dbf từ file NHANVIEN. NGAYSINH. USE NHANVIEN COPY TO NU FIELDS HOTEN.DBF gồm các trường HOTEN. Mặc định. NAMLV. Ví dụ: Tạo bảng dữ liệu NU. • Nếu có phạm vu và các biểu thức logic thì chỉ những bản ghi nào thỏa mãn điều kiện mới được sao chép. NAMLV FOR !GIOITINH USE NU &&Mở Để XEM KếT QUả LIST Bộ môn Tin học – ĐHTN 38 . Sao chép bảng CÚ PHÁP: COPY TO <tên bảng đích> [<phạm vi>] [FIELDS <ds trường>] [FOR<BTHứC LOGIC>] [WHILE<BTHứC LOGIC>]↵ Chức năng: Dùng để tạo bảng mới có tên được chỉ ra <tên bảng đích> với nội dung được lấy từ bảng dữ liệu đang mở. NAMLV↵ Chú ý: Chỉ sao chép cấu trúc chứ không sao chép nội dung.

THỐNG KÊ I. Khái niệm về chỉ mục Ta đã biết mỗi bảng dữ liệu chứa các bản ghi và mỗi bản ghi đều được đánh số hiệu theo số thứ tự từ 1 đến n. Sắp xếp theo chỉ mục a. phục vụ cho việc khai thác thông tin.DBF có dạng sau: Khi xử lý thông tin trong bảng dữ liệu. 1. TÌM KIẾM. Ví dụ: bảng NHANVIEN. các mẫu tin có thể được truy xuất theo số hiệu. Sắp xếp.Bài giảng Visual FoxPro CHƯƠNG III: SẮP XẾP. Dữ liệu trong một bảng có thể được sắp xếp theo một tiêu chuẩn nào đó. Ví dụ: use NHANVIEN ↵ list ↵ Kết quả in ra sẽ như sau: Bộ môn Tin học – ĐHTN 39 .

IDX) chỉ có hai trường: trường khoá sắp xếp và trường số hiệu bản ghi. 2. do vậy khi lựa chọn <bthức khoá> thì phải chọn cho phù hợp.Bài giảng Visual FoxPro Sắp xếp bảng dữ liệu theo chỉ mục là tạo ra một file mới (có phần mở rộng mặc định là . use NHANVIEN index on date()-NGAYSINH to CMNSINHG list Bộ môn Tin học – ĐHTN 40 . Lập chỉ mục IDX cho bảng dữ liệu Cú pháp: INDEX ON <bthức khoá> TO <tên file idx>[FOR<bthức logic>] [UNIQUE] C hức nă ng : Lệnh sắp xếp file dữ liệu theo chiều tăng dần của <Bthức khoá> của các bản ghi thoả mãn <Bthức logic> sau FOR. use NHANVIEN↵ index on -NAMLV to CMNAMLVG list Ví dụ 2: Hiển thị theo thứ tự giảm dần của ngaysinh. khi truy xuất dữ liệu của bảng. Thứ tự của bản ghi ở đây là thứ tự sắp xếp. use NHANVIEN↵ index on NAMLV to CMNAMLV list Chú ý: Lệnh luôn sắp xếp theo thứ tự tăng dần của <bthức khoá>. Ví dụ: File chỉ mục của bảng nhanvien theo thứ tự của năm làm việc: Lúc này. mặc định là tất cả các bản ghi. Ví dụ 1: Hiển thị theo thứ tự giảm dần của namlv của các nhân viên. Nếu có từ khoá [UNIQUE] thì các bản ghi nào có <Bthức khoá> trùng nhau sẽ bị bỏ qua trên file chỉ mục. Ví dụ 1: Hiển thị theo thứ tự tăng dần của namlv của các nhân viên. thứ tự của các bản ghi là thứ tự được quy định trong file chỉ mục này.

Ví dụ: Tìm nhân viên đầu tiên trong bảng dữ liệu sinh năm 1970 trong bảng nhanvien use NHANVIEN Locate for year(NGAYSINH) = 1970 Display b. Ví dụ: Tìm 2 nhân viên đầu tiên sinh năm 1970 use NHANVIEN locate for year ( NGAY SINH) = 1970 display continue display Tìm kiếm sau khi đã lập chỉ mục Cú pháp : SEEK <biểu thức> Chức năng : sau khi đã lập chỉ mục theo <bthức khóa> đề tìm bản ghi nào thỏa mãn một điều kiện dựa vào <bthức khóa> Ta sử dụng lệnh SEEK theo sau là <giá trị> của biểu điều kiện cần tìm.T.F.. Tìm kiếm Tìm kiếm tuần tự a. • Một số lệnh liên quan SET INDEX TO <file chỉ mục>: Dùng để mở file chỉ mục sau khi đã mở một bảng dữ liệu.Bài giảng Visual FoxPro 3. • SET INDEX TO: Dùng để đóng file chỉ mục. XXVIII. • REINDEX: D ù n g đ ể c ậ p n h ậ t f i l e c h ỉ m ụ c . Lệnh Locate: Cú pháp: LOCATE [<phạm vi>] FOR<bthức logic> [WHILE<bthức logic>] C hức năn g: Lệnh sẽ duyệt tuần tự các bàn ghi trong bảng dữ liệu và tìm đến bản ghi đầu tiên trong <phạm vi> thoả mãn điều kiện của <bthức logic>. Lệnh continue Cú pháp : CONTINUE Chức năng : Theo sau lệnh LOCATE. hàm EOF() có giá trị . Nếu tìm được. dùng để tìm bản ghi kế tiếp sau thỏa mãn điều kiện đã nêu. nếu tìm thấy thì Bộ môn Tin học – ĐHTN 41 . hàm FOUND() sẽ cho giá trị .

Bài giảng Visual FoxPro hàm FOUND() có giá trị . Sắp xếp theo thứ tự giảm dần của NAMLV. songuoi. của các bản ghi trong bảng dữ liệu. nếu có TO <dsbiến> thì kết quả của các <biểu thức> sẽ được đưa vào các <biến> tương ứng. THỐNG KÊ Đếm số lượng bản ghi Cú pháp: COUNT [<phạm vi>][FOR<btlogic>] [WHILE<btlogic>] [TO<biến nhớ>] Chức năng :lệnh dùng để đếm số mẫu tin trong bảng dữ liệu hiện hành thỏa mãn điều kiện các <bthức logic> nằm trong phạm vi được chỉ ra. nằm trong <phạm vi> và thỏa mãn điều kiện của các <bthức logic>. ‘ làm việc năm 1980’ Tính tổng giá trị các trường kiểu số Cú pháp: SUM [<phạm vi>] [<dsách bt>] [TO <ds biến>] [FOR <bt logic>] [WHILE <btlogic>] Chức năng : Lệnh sẽ lấy tổng theo các biểu thức được xây dựng dựa trên các trường kiểu số. tìm nhân viên có năm làm việc 1981. Nếu không có <ds biểu thức> thì các trường kiểu số đều được lấy tổng. và hàm EOF () có giá trị . Kết quả được đưa ra màn hình hay đưa vào <biến nhớ> nếu có TO.F. Bộ môn Tin học – ĐHTN 42 .T. tìm nhân viên có tên “Nguyen Van AN”. Sắp xếp theo thứ tự tăng dần của Họ Tên. use NHANVIEN index on upper(HOTEN) to CMHOTEN seek “Nguyen Van An” disp 2. use NHANVIEN index on .NAMLV to CMNAMLVG list seek -1981 disp XXIX. Mặc định. Ví dụ: 1. Ví dụ: Cho biết có bao nhiêu nhân viên có NAMLV là 1980 use NHANVIEN count for NAMLV = 1980 to songuoi ?’ có songuoi: ‘. kết quả được đưa ra màn hình.

DBF>.Bài giảng Visual FoxPro Chú ý : Phải tương ứng 1-1 giữa <ds biểu thức> và <ds biến>. PHUCAP to tbluong.DBF>[<PHạM VI>] [FIELD <dstrường>][FOR <biêủ thức L>][WHILE < biêủ thức L>] Chức năng: Lệnh sẽ cộng dồn các trường kiểu số theo từng nhóm bản ghi có <bt khóa> giống nhau và đưa vào bảng mới có tên được chỉ ra ở <tên bảng . Ví dụ: dựa vào bảng NHANVIEN. use NHANVIEN average LUONG. WHILE. Mặc định thì tất cả các trường kiểu số đều được cộng dồn. tbphucap Tính tổng các trường số theo nhóm CÚ PHÁP: TOTAL ON <BT KHÓA> TO <TÊN BảNG MớI. Lệnh chỉ tác động đến các bàn ghi nằm trong (phạm vi) và thoả mãn điều kiện đi sau các mệnh đề FOR. cho biết trung bình mỗi nhân viên nhận được bao nhiêu LUONG. use VATTV index on MAXN + MAVT to CMTK total on MAXN + MAVT to THONGKE fields SOLUONG use THONGKE ? ‘chi tiet la :’ Bộ môn Tin học – ĐHTN 43 . PHU CAP. tongpc Tính trung bình cộng các trường kiểu số Cú pháp: AVERAGE [<phạm vi>] [<ds biểu thức>] [TO <ds biến >] [FOR <bt logic>][WHILE <bt logic>] Chức năng : giống như lệnh SUM ở trên nhưng sau khi lấy tổng. nếu có FIELDS <danh sách trường> thì chỉ có các trường liệt kê mới được cộng. Ví dụ: Dựa vào bảng NHANVIEN. Chú ý: Trước khi dùng lệnh này. PHUCAP to tongluong. lệnh sẽ lấy giá trị đó đem chia cho tổng số bản ghi tham gia vào câu lệnh. use NHANVIEN sum LUONG. cho biết tổng LUONG phải trả và tổng PHUCAP là bao nhiêu. tong luong ?’ tong phu cap la:’ . tbphucap ?’ trung binh luong:’ . Ví dụ: Dựa vào bảng VATTV. bảng dữ liệu phải định sắp xếp theo khoá. tongpc ?’ tong luong la:’ . hãy thống kê xem mỗi mặt hàng đã xuất hay nhập một số lượng là bao nhiêu. tbluong ?’ trung bình phu cap:’ .

MAVT. Sắp xếp Lệnh INDEX ON <BieuThuc> <TO IDXFile | TAG TagName> [ASCENDING | DESCENDING] • Với các bảng dữ liệu.Bài giảng Visual FoxPro list MAXN.index) đối với bảng. có thể sắp xếp các bản ghi theo một thứ tự (tiêu chuẩn nào đó) nào đó. với tên file là IDXFile và phần mở rộng là IDX (tạo chỉ mục dạng này sẽ không thể chọn được chiều DESCENDING và mỗi file chỉ xác định 1 tiêu chuẩn sắp xếp). • Tùy chọn TO IDXFile cho phép tạo ra file chỉ mục dạng IDX. tham số <BieuThuc> chính là tiêu chuẩn sắp xếp. DONGIA Giả sử bảng VATTU sau khi sắp xếp là: Kết quả của bảng THONGKE.DBF là: XXX. và phần mở rộng là CDX). • Tùy chọn TAG TagName cho phép tao ra một chỉ mục có tên là TagName trong file chỉ mục kết hợp (file chỉ mục này có tên trùng với tên bảng. Ví dụ USE HOSOSV INDEX ON masv TO masvidx BROW Bộ môn Tin học – ĐHTN 44 . SOLUONG. Lệnh INDEX cho phép tạo ra các tiêu chuẩn sắp xếp (chỉ mục .

Để hạn chế số lượng các bản ghi tham gia vào quá trình xử lý. Ví dụ USE HOSOSV SET FILTER TO malop=”3A-01” BROWSE SET FILTER TO ngaysinh=date() BROWS TITLE “Sinh nhat: ”+ DTOC(date()) Sau lệnh lọc thì các lệnh tiếp sau chỉ có tác dụng với các bản ghi đã được lọc. Trong đó BieuThucLogic là tiêu chuẩn để lọc. Hủy bỏ việc lọc dữ liệu: SET FILTER TO ↵ Ví dụ: Chỉ hiển thị những nhân viên nữ: SET FILTER TO !GIOITINH↵ LIST↵ Bộ môn Tin học – ĐHTN 45 . thỏa mãn điều kiện cho trước.Tên chỉ mục trong file kết hợp (file dạng CDX). Trong đó: IDXFile .tên file dạng IDX (đã tạo bằng lệnh INDEX trước đó). Ví dụ USE HOSOSV SET ORDER TO Masv BROW SET ORDER TO Hoten2 BROW SET ORDER TO masvidx SET ORDER TO XXXI.Bài giảng Visual FoxPro INDEX ON hoten TAG hoten2 DESCENDING BROW Lệnh SET ORDER TO [IDXFile | TagName] Lệnh này cho phép thay đổi tiêu chuẩn sắp xếp của bảng. TagName . các bản ghi được lọc từ bảng dữ liệu. Lọc Lệnh SET FILTER TO <BieuThucLogic> (không tham số) dùng để bỏ việc sắp xếp (trở lại thứ tự nhập).

Vùng 2 (hoặc vùng B hoặc SINHVIEN). Lưu ý: Bảng được mở trong vùng AliasName phải được index theo BieuThuc này rồi. Ví dụ: SELECT A USE DMLOP ALIAS LOP Bộ môn Tin học – ĐHTN 46 .Bài giảng Visual FoxPro XXXII. Có thể xem danh sách các tables đã được mở: Menu Window/Data session Liên kết giữa các bảng Visual Foxpro cho phép đặt liên kết (mối “quan hệ”) giữa các bảng để có thể tạo ra một bảng to hơn từ các bảng con. mỗi bảng trên một vùng làm việc (WorkArea) nhất định. Lệnh SET RELATION TO <BieuThuc> INTO <n| TableName | AliasName> Lệnh này cho phép đặt quan hệ từ bảng hiện thời vào bảng được mở ở vùng n (hoặc TableName hoặc AliasName). mỗi vùng được xác định qua tên hoặc số hiệu vùng. trong đó: n là số thứ tự của vùng cần chuyển đến. Lưu ý: Khi chọn n=0 thì Visual Foxpro sẽ tự động chọn vùng cao nhất còn trống. TableName là tên bảng hoặc aliasname. • Menu Window/Data sesion. Vùng 3 (hoặc DIEM). trong đó BieuThuc là tiêu chuẩn đế đặt quan hệ. Ví dụ SELECT A USE DMLOP ALIAS LOP SELECT B USE HOSOSV ALIAS SINHVIEN SELECT 0 USE DIEM Trong ví dụ trên đã tạo ra 3 vùng làm việc: Vùng 1 (hoặc vùng A hoặc LOP). • Chọn các tables -> Click vào Relations. Làm việc với nhiều bảng Vùng làm việc Visual Foxpro cho phép mở nhiều bảng dữ liệu đồng thời. Visual Foxpro cho phép mở tối đa là 255 vùng làm việc đồng thời. Lệnh SELECT <n | TableName| AliasName > Lệnh này cho phép chọn vùng làm việc.

Bộ môn Tin học – ĐHTN 47 .Bài giảng Visual FoxPro INDE ON ma TO malopidx BROW SELECT B USE HOSOSV ALIAS SINHVIEN SET RELATION TO malop INTO LOP BROW (trong ví dụ này bảng DMLOP gọi là bảng cha. năm. SET DATE FRENCH DATE() Ngày hiện hành của hệ thống sẽ được hiển thị theo thứ tự ngày. Thứ tự kết quả hiển thị của lệnh này phụ thuộc vào lệnh SET DATE. min(expr). aver(expN) • COPY TO <FileName> [ FOR expL1 ] [ While expL2 ] [ Phạm vi ] • COPY STRUCTURE TO <FileName> [EXTENDED] • APPEND FROM <FileName> [ FOR <ExpL>] Một số hàm thông dụng Các hàm về ngày tháng DATE(): trả về ngày. bảng HOSOSV gọi là bảng con) Khi con trỏ di chuyển trong bảng con thì con trỏ trong bảng cha cũng thay đổi tương ứng. tháng. Một số hàm và lệnh khác Một số hàm Hàm RECNO() Hàm RECCOUNT() Hàm ALIAS() Hàm DBF() Hàm EOF(). tháng. năm hiện tại của hệ thống. BOF() Trả về số hiệu bản ghi hiện thời Trả về số bản ghi hiện có của bảng Định danh của vùng hiện thời Tên file DBF Trạng thái TRUE nếu con trỏ vượt quá Beginning và End Một số lệnh khác • LIST [Scope] [Field <FieldName List>] [FOR <BieuthucLogic>] • COUNT [ TO VarName ] [ FOR expL1 ] [ While expL2 ] [ Phạm vi ] • AVERAGE expN TO VarName [ FOR expL1 ] [ While expL2 ] [ Phạm vi ] • SUM <Danh sách biểu thức> TO <Danh sỏch biến số> • FOR expL1 ] [ While expL2 ] [ Phạm vi ] • CALC <Danh sách biểu thức> TO <Danh sỏch biến số> • [ FOR expL1 ] [ While expL2 ] [ Phạm vi ] • max(expr).

ALLTRIM (<BTHứC C>): cho kết quả là một chuỗi sau khi đã loại bỏ các kí tự trắng ở hai bên của <BTHứC C>. ROUND(X. 8. Chuỗi rỗng có chiều dài là 1. tính bằng Byte. MONTH(<BTHứC DATE>): trả về năm của <BTHứC DATE>. Bộ môn Tin học – ĐHTN 48 . Ví dụ : ?ALLTRIM("NGUYEN VAN AN ") → "NGUYEN VAN AN" UPPER(<BTHứC C>): kết quả là chuỗi in hoa của <BTHứC C>.<N>): Làm tròn X với N số lẻ. <N2>): trích ra chuỗi con của <BTHứC C>.Bài giảng Visual FoxPro YEAR(<BTHứC DATE>): trả về năm của <BTHứC DATE>. 3" KếT QUả CHO CHUỗI "VAN". 6) → CHO KếT QUả LÀ "NGUYEN". <N1>. RIGHT(<BTHứC C>. LEFT(<BTHứC C>. từ vị trí <N1> và gồm <N2> kí tự. SUBSTR (<BTHứC C>. INT(X): trả về phần nguyên của X. Ví dụ : ? SUBSTR ("NGUYEN VAN AN". Ví dụ: YEAR(DATE()) → trả về năm hiện hành của hệ thống. <N>): trích ra một chuỗi gồm n kí tự của <BTHứC C>. tính từ bên trái sang. tính từ bên phải sang. <N>): trích ra một chuỗi gồm n kí tự của <BTHứC C>. Ví dụ : ?UPPER ("Nguyen Van AN") → "NGUYEN VAN AN" LOWER <BTHứC C>: kết quả là chuỗi in thường của <BTHứC C>. Các hàm số học ASB(X): Trị tuyệt đối của X. Ví dụ : ?LEFT("NGUYEN VAN AN". SIN(X): cho giá trị SIN X COS (X): cho giá trị COS X. Các hàm về chuỗi LEN(<BTHứC C>): trả về chiều dài của <Bthuc C>.

Không giống như các mối quan hệ tạm thời được tạo bằng lệnh SET RELATION. Thiết lập quan hệ bền vững giữa các bảng trong CSDL. Chọn mục Modify. Chú ý: Tạo Index cho các trường trước khi thiết lập quan hệ giữa các bảng. Để đặt quan hệ giữa các bảng thì việc đầu tiên cần làm đó là xác định các Index cho bảng. Việc xác định các Index cho bảng có thể thực hiện qua lệnh (lệnh INDEX) hoặc có thể xác định khi thiết kế bảng trong giao diện Table Designer. hoặc trong quá trình thiết kế cơ sở dữ liệu . • Dùng để lưu thông tin về mối quan hệ toàn vẹn. • • Tạo index trong Table Designe. Thiết lập quan hệ giữa các bảng Trên thực tế. Chọn Database cần làm việc.mối quan hệ bền vững.mối quan hệ tạm thời . khi đó giao diện Database Designer xuất hiện. các bảng của CSDL thường có quan hệ nào đó với nhau. mối quan hệ bền vững không không cần phải tạo lại mỗi khi sử dụng đến các bảng dữ liệu. Lần lượt thêm các tables vào. Mối quan hệ bền vững được tạo trong quá trình thiết kế CSDL. Các bước thiết lập quan hệ bền vững • • • Mở Project / Chọn Tab Data Chọn mục Database và mở rộng (expand). và được lưu lại trong file csdl (DBC) và có những đặc điểm sau: • Được tự động sử dụng như các kết nối mặc nhiên (khi tạo Queries và Views) • Được thể hiện bằng các đường nối trong Database Designer. Tuy nhiên bởi mối quan hệ bền vững không điều khiển các con trỏ bản ghi giữa các bảng dữ liệu nên mối quan hệ tạm thời vẫn rất cần thiết khi phát triển ứng dụng. • Được thể hiện trong Data Environment. Sau khi thiết lập xong quan hệ giữa các bảng ta có giao diện Database Designer có dạng như hình 6. Mối quan hệ giữa các bảng có thể thiết lập qua lệnh (Lệnh SET RELATION ) . Bộ môn Tin học – ĐHTN 49 . • Trong giao diện Database Designer để tạo quan hệ giữa 2 bảng chỉ cần kéo-thả trường Index (Primary) từ bảng cha đến trường Index (Regular) của bảng con.Bài giảng Visual FoxPro CHƯƠNG IV: QUERIES VÀ VIEWS I.1.

Để thiết lập quan hệ toàn vẹn giữa các bảng.2. Thêm (Insert). tiếp đến chọn lệnh Referential Integrity như hình 6. Các qui tắc đó sẽ kiểm soát các việc như thay đổi (Update). Xoá (Delete) sao cho vẫn đảm bảo mối quan hệ giữa các bảng này không bị vi phạm. D_Click vào đường liên kết bất kỳ giữa 2 bảng. Hình 6. • Thiết lập quan hệ toàn vẹn giữa các bảng Thực chất là xác định các qui tắc ứng xử giữa các bảng có quan hệ với nhau.1 Quan hệ giữa các bảng trong CSDL Đường nối thể hiện quan hệ giữa các bảng. có thể hiệu chỉnh mối quan hệ giữa các tables ở bước này.2 Bộ môn Tin học – ĐHTN 50 .Bài giảng Visual FoxPro Hình 6.

Rules For Updating Trong đó: • Dòng (trong grid phía dưới): Thể hiện các quan hệ hiện có của CSDL. Các qui tắc ứng xử ở đây là: o Ignore: Cho phép xoá các bản ghi liên quan trên bảng con một cách độc lập (không phụ thuộc vào bảng cha).Bài giảng Visual FoxPro Khi chọn Referential Integrity giao diện này xuất hiện như hình 6. Bảng con (Child Table). Các qui tắc ứng xử ở đây là: o Ignore: Cho phép sửa các bản ghi liên quan trên bảng con một cách độc lập (không phụ thuộc vào bảng cha).3 Giao diện Referential Integrity. o Restrict: Không cho phép sửa đổi các bản ghi trong bảng cha nếu tồn tại những bản ghi liên quan trong bảng con. Bộ môn Tin học – ĐHTN 51 . o Cascade: Sửa tất cả những bản ghi có quan hệ trong bảng con với giá trị khoá mới tương ứng của bảng cha. o Cascade: Xoá tất cả những bản ghi có quan hệ trong bảng con tương ứng với bản ghi bị xoá của bảng cha.3 Hình 6. • Tab Rules for Deleting: cho phép thiết lập qui tắc ứng xử giữa 2 bảng cha/con của một quan hệ nào đó (phía dưới) khi xoá. đây là giá trị mặc định. Trường/Biểu thức quan hệ trên bảng cha (Parent Tag). o Restrict: Không cho phép xoá các bản ghi trong bảng cha nếu tồn tại những bản ghi liên quan trong bảng con. các thông tin của một quan hệ gồm có: Bảng cha (Parent Table). • Tab Rules for Updating: cho phép thiết lập qui tắc ứng xử giữa 2 bảng cha/con của một quan hệ nào đó (phía dưới) khi sửa đổi. đây là giá trị mặc định. Trường/Biểu thức quan hệ trên bảng con (Child Tag).

Bài giảng Visual FoxPro Hình 6.4 Rules For Deleting • Tab Rules for Inserting: cho phép thiết lập qui tắc ứng xử giữa 2 bảng cha/con của một quan hệ nào đó (phía dưới) khi thêm mới. Ví dụ o Restrict: Không cho phép thêm các bản ghi vào bảng con nếu không tồn tại một bản ghi tương ứng trong bảng cha. Ví dụ Bộ môn Tin học – ĐHTN 52 . Các qui tắc ứng xử ở đây là: Hình 6. đây là giá trị mặc định.4 Rules For Inserting o Ignore: Cho phép thêm các bản ghi vào bảng con một cách độc lập (không phụ thuộc vào bảng cha).

Ví dụ 1: Tạo một Cross Tab Query Giả sử cần xác định xem số lượng thí sinh thi trượt lần 1 các môn học theo lớp có số lượng là như thế nào? Số liệu cần đưa ra dạng sau: Lớp /môn 3A-04 3B-04 . .. . Report. • Ví dụ... Bộ môn Tin học – ĐHTN MH1 4 3 .. . ... có các kiểu là Cross-Tab. .Bài giảng Visual FoxPro XXXIII. .. 1.. 53 MHn . o Tôt chức các kết quả bằng cách nhóm và sắp xếp..... Trong Project Manager chọn Tab Data 2. o Xác định kết quả Query bằng cách chọn các field cần thiết.. Browse. o Chọn kiểu kết xuất: Table. • Có thể tạo ra query đáp ứng các tiêu chuẩn nhằm: để tổ chức thông tin cho Report. ... ...... Chọn kiểu Query Wizard cần tạo. . kiểu sắp xếp.. • Quá trình thiết kế Query: o Bắt đầu tạo Query với một Wizard Query hoặc Query Designer. Chọn Queries/Chọn New/Chọn Query Wizard 3..... ...… o Chạy và kiểm tra Query. .... . MH2 7 5 . để trả lời nhanh một câu hỏi ... . o Chọn Table hoặc View chứa thông tin... Graph và Query. . .Sắp xếp và nhóm các record khi cần thiết....... với bảng DIEM. biểu đồ. điều kiện của các record muốn hiển thị. Tạo các queries Query: Công cụ truy vấn dữ liệu. . khi biết mã sinh viên và cần xem sinh viên đó có tên là gì? Bảng điểm của một môn học nào đó. Tạo mới một Query sử dụng Wizard 1.

Select Fields: Chọn Database. Tables và Fields (Sử dụng lệnh >. 1. 2. Chọn Cross-Tab Wizard. chọn OK. chọn Next để qua bước 3.Define Layout: Bộ môn Tin học – ĐHTN 54 . Step 2 . Step 1 .Bài giảng Visual FoxPro Khi đó cần sử dụng một Cross-Tab. Khi đã chọn xong các trường. 3. >> để chọn các trường cần thiết).

Countm Average. Tiếp đến chọn Finish và nhập vào tên file Query để hoàn tất công việc (hoặc chọn Next sẽ chuyển đến bước 4 Step 4 .Select Fields: Như ví dụ trên 3. các hàm này có thể là: Sum. Tuỳ chọn Subtotal cho phép thêm vào cột cuối để tính subtotal cho mỗi dòng. Column (Mamon) và Data (Diem1) bàng cách nhấp-thả (Drag) các trường vào các ô (Row. Step 1 .> Được kết quả thể hiển của Query. Max. Step 2 .Add summary Information: Chọn các hàm thống kê đối với đối tượng Data. Chọn Next để tiếp tục 4.Define Layout: Bộ môn Tin học – ĐHTN 55 . Column. trong ví dụ này thì Summary chọn là Count. chọn OK.Finish). Step 3 . 2. Ví dụ 2: Tạo một Graph Form bằng Graph Wizard Giả sử cần thể hiện số lượng sản phẩm của các mặt hàng hiện có trong kho dạng biểu đồ.Bài giảng Visual FoxPro Bước này cần định nghĩa 3 đối tượng cho Cross-Tab đó là: Row (trong ví dụ này là Malop). Trong cửa sổ Project Manager chọn Query vừa tạo rồi chọn lệnh Run . Chọn Graph Wizard. Min. Data) tương ứng. Khi đó sử dụng Graph Wizard như sau: 1.

Bài giảng Visual FoxPro Bước này cần định nghĩa 2 đối tượng cho là: Data series . 4.Trường số (trong ví dụ này là Soluong) và Axis .Select Graph Style Bộ môn Tin học – ĐHTN 56 .Trong ví dụ này là Ma. Step 3 . Chọn Next để tiếp tục (lưu ý là Next và Finish chỉ cho phép khi đã chọn đủ Data series và Axis).

Trong cửa sổ Project Manager chọn Form vừa tạo rồi chọn lệnh Run .> Được kết quả thể hiển của Query. Tạo mới một Query sử dụng Queries Designer Giả sử cần xem bảng điểm một môn học của một lớp nào đó. Hoten. Chọn Next để tiếp tục 5. trong ví dụ này chọn biểu đồ cột (thứ 6). 3. Trong ví dụ này chọn Table Diem (rồi Add) và Hososv (rồi Add).Finish: Chọn Finish rồi nhập vào tên form cần lưu (Kết quả của Wizard này là một Form). Với yêu cầu này có thể sủ dụng Query để lấy thông tin theo các bước sau: 1. Với ví dụ 2 ta có form DMHANG dạng biểu đồ như hình sau: 2. bảng điểm bao gồm Masv.Bài giảng Visual FoxPro Bước này cho phép chọn kiểu biểu đồ. 4. Trong Project Manager chọn Tab Data Chọn Queries Chọn New Chọn New Query 5. Ngaysinh và điểm. Chọn Close để đóng cửa sổ Add Table or View Bộ môn Tin học – ĐHTN 57 . Step 4 . 2. Chọn Table hoặc View làm nguồn cho Query như hình sau.

Hình 6.Bài giảng Visual FoxPro 6. Bộ môn Tin học – ĐHTN 58 .6 • Phía trên: Thể hiện các bảng (hoặc View) sử dụng trong Query. o Run Query: Thực hiện (chạy) query này o View SQL: Xem query ở dạng SQL o Remove Table: Loại bỏ bảng đã chọn khỏi Query (khi chọn vào bảng) o Add Table: Show giao diện Add Table or View o Output Setting: Tuỳ chọn đầu ra cho query (xem sau).Query Designer Đường nối thể hiện quan hệ giữa các bảng.6 . Tiếp đến giao diện Query xuất hiện như hình 6.

Ví dụ có 2 bảng Dmhang và Hoadon được dùng trong 1 query và có số liệu như hình sau: Bảng Dmhang có chứa các bản ghi H4. các bản ghi này không có trong Hoađon. đơn giá là bao nhiêu? Để giái quyết vấn đề này chúng ta sẽ xét các Joint sau đây. Lệnh Add All: Thêm tất cả các trường từ Available Fields vào Selected Fields. Các bảng dùng cho 1 query thường có quan hệ với nhau.        Available Fields: Các filed có thể chọn cho query.Bài giảng Visual FoxPro • Phía dưới: Các tuỳ chọn cho thiết kế Query Tab Fields: Chọn các trường cho query. Tab Joint: Thiết lập các thuộc tính về kết nối giữa 2 bảng. H5 có số hóa đơn là bao nhiêu? Hóa đơn 7 mặt hàng H10 thì tên hàng là gì. Selected Fields: Các trường đã chọn. dùng khai báo AS <TenTruong> để đặt tên cho biểu thức này). Như vậy khi ghép 2 bảng này mặt hang H4. và ngược lại trong Hoadon có mặt hàng H10 là loại hàng chưa có trong Dmhang. Lệnh Add: Thêm trường đã chọn từ Available Fields vào Selected Fields. Lệnh Remove All: Loại bỏ tất cả các trường đã chọn trong Selected Fields. kiểu liên kết (Joint Type) có vai trò quan trọng trong việc ứng xử giữa các bảng. Lệnh Remove: Loại bỏ 1 trường đã chọn trong Selected Fields. Bộ môn Tin học – ĐHTN 59 . H5. Khi truy xuất dữ liệu. Mục Functions and Expressions: Khai báo 1 biểu thức và có thể thêm (Add) biểu thức này vào Selected fields (và nó có vai trò như 1 trường.

Sắp xếp các kết quả Query. o Thứ tự các field trong Ordering criteria xác định tầm quan trọng của kết quả sắp xếp. • Right Outer joint: tương tự Left Outer Joint nhưng tất cả các record nằm trong table bên phải sẽ xuất hiện trong kết quả • Full Joint: là loại kết nối giữa Left Outer Joint và Right Outer Joint.Bài giảng Visual FoxPro • Left Table: Bảng phía trái (bảng cha) • Right Table: Bảng phía phải (bảng con) • Joint Type: Có thể 1 trong các loại sau: • Inner joint: Chỉ trả về các bản ghi có thể so khớp được với nhau trên 2 bảng (khi đó các bản ghi H4. Xác định các kết quả. Loại bỏ field: tại selected field chọn field cần bỏ -> click nút Remove. o Chọn nút Add để đặt biểu thức này vào hộp Selected Fields. o Từ danh sách Criteria. • Xây dựng biểu thức tính toán kết quả nhóm: o Trong thẻ Field. Vì vậy. chọn tên field -> Add. o Case: không phân biệt chữ hoa hay chữ thường. 4. o Loại bỏ tiêu chuẩn sắp xếp: chọn field muốn loại bỏ -> Remove. kéo ô vuông tương ứng với field và thả vào vị trí thích hợp. o Chọn một field làm chuẩn để chọn các record. • Có thể giới hạn kết quả hiển thị: 60 Bộ môn Tin học – ĐHTN . Trong tab Order By: o Đặt tiêu chuẩn sắp xếp: tại Selected Fields. Có thể thực hiện việc tính toán trên nhóm các records. chọn biểu thức so sánh. hộp Functions and expressions: gõ biểu thức tính toán. Hiển thị tên riêng cho 1 field: trong hộp Functions and expression gõ: <tên-field> AS <tên-riêng>. • • • • • • • Chọn các field cần xuất: tại available fields chọn tên field -> Click nút Add. Nhóm kết quả của Query Là tập hợp những record cùng loại. 3. o Nhập tiêu chuẩn so sánh trong hộp Example. Có thể giới hạn kết quả tìm kiếm bằng cách kết hợp với các toán tử ở mục logical. H5 và H7 trong cả 2 bảng sẽ không được trả về) • Left Outer Joint: là mối kết nối giữa hai tables mà các record nằm trong table bên trái sẽ xuất hiện trong kết quả của Query cho dù nó có so khớp với bảng kia hay không. Sắp xếp thứ tự các field kết xuất: trong phần selected fields. Chọn các record cho kết quả: thông thường các kết quả trả về phải thỏa mãn một tiêu chuẩn nào đó. • Thẻ Group By: chọn field hoặc biểu thức làm tiêu chuẩn nhóm. cần đặt điều kiện lọc dữ liệu cho kết quả Query trong tab Filter.

Hiển thị kết quả Query trong cửa sổ Visual FoxPro chính. 5.lbx) Bộ môn Tin học – ĐHTN 61 . o Hộp thoại Having:  Field name: chọn tên field hoặc biểu thức tính toán. kết quả của Query sẽ được hiển thị trong cửa sổ Browse.  Example: Nhập giá trị tiêu chuẩn.  Chọn biểu thức so sánh. Kết quả Query có thể sử dụng với Microsoft Graph . Gửi kết xuất vào file Report (.ứng dụng độc lập với Visual FoxPro. Hướng kết xuất của Query.Bài giảng Visual FoxPro o Trong Group By.frx) Gửi đầu xuất vào file Label (. • Từ thanh công cụ Query Design. hoặc trong cửa sổ tích cực hiện hành. Mặc định. chọn nơi kết xuất: Nút lệnh Browse Cursor Table Graph Screen Report Label Nơi kết xuất Hiển thị kết quả trong cửa sổ Browse Lưu kết quả của Query trong table để đọc tạm Lưu kết quả Query như một Table. chọn Query Destination. • Trong hộp thoại Query Destination. Có thể gửi kết quả của Query đến các nơi khác nhau. chọn Having.

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 CURRENCY ON : đặt năm có 4 chữ số. Giải phóng biến nhớ. Soạn thảo chương trình. mỗi lệnh được viết trên một hàng và mỗi hàng chỉ chứa một lệnh tại một cột bất kỳ. Trả lại các chế độ cho hệ thống. Xử lý. tính toán. • • MODIFY COMAND < tên file chương trình > Lúc này xuất hiện cửa sổ chương trình để ta có thể đưa các lệnh vào cho nó. • Từ cửa sổ chương trình. PRG. Một chương trình foxpro thường có 3 phần.. Chương trình Là một dãy lệnh liên tiếp được tổ chức vào 1 file chương trình. các file cơ sở dữ liệu. SET TALK OFF/ON : ẩn hiện các kết quả thực hiện lệnh. gõ Ctrl + E. . Trong một chương trình. II.. Để soạn thảo chương trình. Bộ môn Tin học – ĐHTN 62 . 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. • Nếu hộp thoại Save xuất hiện. chọn OK. từ cửa sổ lệnh đưa vào lệnh. file chương trình mặc định có phần mở rộng là *. CLOSE ALL: đóng các bảng dữ liệu. 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ả.. 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. Kết xuất thông tin.Bài giảng Visual FoxPro CHƯƠNG V: LẬP TRÌNH TRÊN VISUAL FOXPRO I.

Truyền tham biến hay tham trị. Ví dụ: DATE(): trả về ngày hiện hành của hệ thống. Ví dụ: Hàm dưới đây trả về một ngày sau khi cộng thêm 14 ngày. 6. Cách gọi Cách 1: sử dụng câu lệnh DO. tuy nhiên có thể trả về bất kì giá trị nào bằng câu lệnh RETURN. Cú pháp: DO <tên-chương-trình-con> Cách 2: chỉ ra tên hàm và cung cấp các tham số cho hàm. MAX(1. • Tham biến: Tương tự tham trị nhưng nếu ta thay đổi giá trị của biến đó trong thủ tục hoặc hàm thì giá trị gốc của nó cũng thay đổi theo. mọi hàm đều trả về giá trị . Thông thường.Bài giảng Visual FoxPro 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. FUNCTION ngayto PARAMETERS dDate RETURN dDate + 14 ENDFUNC Các cách có thể lưu trữ giá trị trả về từ hàm: Lệnh Diễn giải var = myfunc() Lưu giá trị trả về từ hàm vào một biến. Thủ tục và hàm cho phép giữ đoạn chương trình ở một nơi và có thể gọi thi hành nó khắp nơi trong ứng dụng. 4.9): trả về giá trị 9. 7. • Tham trị: Chỉ rõ một biến sẽ được truyền tới hàm bằng giá trị. Các thủ tục và hàm do người sử dụng tự tạo. Bộ môn Tin học – ĐHTN 63 . 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 XXXIV. ?myfunc() Xuất giá trị của hàm ra cửa sổ hiện hành.T. Nhận giá trị trả về từ hàm. Cấu tạo PROCEDURE <tên-chương-trình-con> <Các câu lệnh> ENDPROCEDURE FUNCTION <tên-hàm>[tham số] <Các câu lệnh> RETURN 5. khi đó giá trị của biến này có thể bị thay đổi trong phạm vi thủ tục hoặc hàm nhưng giá trị gốc của nó không thay đổi.6..3.

Biến nhớ Khai báo biến a) Lệnh gán = Cú pháp: Ví dụ: b) Lệnh STORE Cú pháp: STORE <bthức> to <ds biến> <biến> = <biểu thức> a= 5 ngay = Date() Chức năng: Gán giá trị <bthức> cho <ds biến> . Kiểu Logic: Nhập giá trị . c Nhập giá trị cho biến từ bàn phím. a) Lệnh ACCEPT Cú pháp ACCEPT <bthức chuỗi> to <biến chuỗi> Chức năng: Dùng để nhập một chuỗi từ bàn phím. Ví dụ: STORE 0 To a. nếu <biến> chưa tồn tại nó sẽ khai báo.T. 64 Bộ môn Tin học – ĐHTN .Bài giảng Visual FoxPro XXXV. b. ' hay ". bhoten <Bthức chuỗi> là một câu nhắc nhở người sử dụng.. ". giá trị nhận được sẽ đưa cho <biến>. b.. hay . kết thúc bởi phím Enter. Kiểu Date: Phải được để trong dấu {}. Lệnh INPUT Cú pháp: INPUT <Bthức chuỗi> to <biến> Chức năng: Tương tự lệnh trên nhưng có thể nhận dữ liệu theo từng kiểu: • • • • Kiểu Charater: Phải được đặt trong cặp dấu ' .F.. Kiểu Numberic: Nhập dữ liệu kiểu số.. Ví dụ: ACCEPT ‘nhap ho ten’ to bhoten ? ‘Ho ten vua nhap'. nếu đã có thì thay thế bởi giá trị mới.

Có hai dạng: a. <Bthức L> sẽ được tính. thì <các lệnh> sẽ được thực hiện. Bộ môn Tin học – ĐHTN 65 . ngược lại thực hiện các lệnh tiếp theo sau lệnh ENDIF. 2.Bài giảng Visual FoxPro Ví dụ: • • INPUT 'Nhap ngay sinh' TO bngaysinh INPUT 'Nhap diem" TO bdiem Chú ý: Trong hai lệnh trên. Còn được gọi là cấu trúc chọn lựa. nếu có giá trị . Dạng khuyết: Cú pháp: IF <Bthức L> <các lệnh> ENDIF Chức năng : Khi gặp cấu trúc này. Quy ước: Chương trình được thực hiện từ trên xuống dưới. nếu biến chưa có thì nó sẽ tự khai báo.T. XXXVI. Ví dụ : Viết chương trình nhập vào 2 số. thông báo số lớn nhất. nếu đã có thì nó sẽ thay giá trị của biến bởi giá trị vừa nhập. Cấu trúc tuần tự. Cấu trúc rẽ nhánh. Các cấu trúc điều khiển chương trình 1.

Bài giảng Visual FoxPro Bộ môn Tin học – ĐHTN 66 .

Ví dụ: Dựa vào bảng nhanvien.) thì sẽ thực hiện <các lệnh 2>.F.b. thì <các lệnh1> sẽ được thực hiện. Dạng đầy đủ: Cú pháp: Chức năng: Khi gặp cấu trúc này. hãy nhập vào một họ tên nhân viên. Sau đó tiếp tục thực hiện các lênh tiếp theo trong chương trình. tìm xem có đúng là nhân viên của công ty hay không. nếu đúng thì thông báo năm sinh và năm làm việc. Nếu có giá trị . .T. <Bthức L> sẽ được tính. ngược lại (có giá trị . ngược lại thì thông báo là không phải nhân viên của công ty.

3. Lựa chọn một trong nhiều trường hợp DO CASE CASE <Bthức L1> <các lệnh 1> CASE <Bthức L2> <các lệnh 2> ………….. CASE <Bthức Ln> <các lệnh n> [OTHERWISE <Các lệnh n+1>] ENDCASE Chức năng: Khi gặp cấu trúc DO CASE, các <Bthức L> điều kiện sẽ được tính. Nếu <Bthức L> điều kiện nào đó có giá trị .T. thì nhóm lệnh tương ứng sẽ được thực hiện và kết thúc cấu trúc này, rồi tiếp tục thực hiện các lênh sau ENDCASE. Trong trường hợp không có <bthức L> nào từ 1 đến n có giá trị .T. thì <nhóm lệnh n+1> (nếu có) sẽ được thực hiện. Ví dụ: Viết chương trình nhập vào một năm (có 4 chữ số), sau đó nhập thêm một tháng, cho biết tháng này có bao nhiêu ngày.

4. Cấu trúc lặp. Cấu trúc DO WHILE

Chức năng: Khi gặp cấu trúc này thì <Bthức L> sẽ được tính, nếu có giá trị .F. thì sẽ dừng và thực hiện các lệnh sau ENDDO. Nếu có giá trị .T. thì các lệnh trong thân vòng lặp sẽ được thực hiện và lại quay về kiểm tra điều kiện trong <bthức L> và cứ thế tiếp tục.

[LOOP]: Khi gặp lệnh này, Foxpro sẽ quay về kiểm tra điều kiện logic mà bỏ qua các lệnh phía sau [LOOP]. • [EXIT]: Khi gặp lệnh này thĩ sẽ thoát ra khỏi chương trình. Ví dụ: Cho biết dang sáchhọ tên của các nhân viên trong công ty.

Chú ý: Khi sử dụng cấu trúc này, các lệnh trong thân vòng lặp phải thay đổi được giá trị của <Bthức L> để đảm bảo tính kết thúc. Ví dụ: Nhập vào một năm, hãy thông báo danh sách họ tên, ngày sinh của những nhân viên làm việc trong năm đó, nếu không có thì thông báo là không có.

hiển thị nữ nhân viên sinh năm đó. Chú ý: <trị-đầu> phải nhỏ hơn <trị cuối>. <các lệnh> sẽ được thực hiện. Cấu trúc SCAN Cú pháp: SCAN [<phạm vi>] [FOR<Bthức L>] [WHILE<bthức L>] <các lệnh> [LOOP] [EXIT] END SCAN Chức năng: Dùng để duyệt lần lượt các bản ghi trong bảng dữ liệu hiện hành nằm trong <phạm vi> được chỉ ra và thoả mãn điều kiện của các <Bthức L> sau FOR hoặc WHILE.Cấu trúc SCAN sẽ dừng khi nào duyệt đến bản ghi cuối cùng của bảng dữ liệu đang xét. . Ví dụ: Viết chương trình nhập năm (bằng chữ số). ngược lại vòng lặp sẽ dừng.Cấu trúc FOR Cú pháp: FOR <biến>=<trị-đầu> TO <trị-cuối> <Các câu lệnh> ENDFOR Chức năng: Tương tự DO WHILE nhưng chỉ sử dụng khi số vòng lặp đã biết trước. Tương ứng với một bản ghi tìm được.

.

Height .. với đối tượng TextBox sử dụng phương thức Refresh để làm tươi dữ liệu. cho điều khiển biết cách thức để thực hiện một đoạn công việc nào đó. Khái niệm lập trình hướng đối tượng.Tên đối tượng. Trong Visual Foxpro. phương thức Move để di chuyển vị trí . định danh của đối tượng như: Name . các điểm khác biệt chính là: Sử dụng nhiều đối tượng trực quan trong thiết kế giao diện. Width .. XXXVII. các thuộc tính này qui định tính chất hiển thị. Ho (Textbox). Các phương thức được thiết lập sẵn nhằm thực thi một công việc cụ thể. .CHƯƠNG VI: FORMS I. Phương thức (Methods): Mỗi đối tượng điều khiển thường có một vài phương thức tương ứng với một “hành động” nào đó.Font chữ. Lưới (GRID) . và tập hợp những sự kiện đó là những phản ứng của đối tượng. Double Click ..độ rộng.. Đối tượng (điều khiển . Các sự kiện do người lập trình viết nhằm thực thi một công việc nào đó. Mỗi một đối tuợng đều có một bộ thuộc tính mô tả đối tượng. nút lệnh (Command Button)....chiều cao .Ở đâ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ó.. Change . phương thức Line để vẽ một đoạn thẳng. 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ũ.Control): Các cụng cụ lập trình trên Windows thường cung cấp sẵn các đối tượng điều kiển như: Cửa sổ (FORM).. Thuộc tính (Properties): Mỗi đối tượng điều khiển được mô tả qua một số thuộc tính nào đó. lập trình hướng thủ tục. Lập trình trên Windows • • • • • Lập trình trên Windows có nhiều khác biệt so với lập trình trên DOS (như lập trình bằng PASCAL). Ví dụ: đối tượng Command Button cú khả năng đáp ứng sự kiện Click.. các form và control là các đối tượng được dùng để xây dựng các ứng dụng. Font . và nhiều đối tượng điều khiển khác thường dùng cho việc thiết kế giao diện. Logic chương trình diễn ra theo sự kiện . Ví dụ với FORM có thể sử dụng phương thức Cls để xóa Form. các phương thức là những đoạn trình chứa trong điều khiển. Sự kiện (Events): Mỗi đối tượng điều khiển có khả năng đáp ứng một số sự kiện nào đó.. Các sự kiện này do người sử dụng tạo ra. Các thuộc tính của đối tượng do người lập trình xác lập.. đối tượng Text box có khả năng đáp ứng sự kiện Click.

• Quản lý form Lưu Form: Từ menu file.<đối tượng>: nếu đối tượng nằm trên form đang thao tác. chọn save để lưu vào <tên form>. Ví dụ: Giao diện của một Form nhập dữ liệu 1. nó cung cấp một tập hợp các đối tượng để đáp lại những thao tác của người sử dụng làm cho ứng dụng ra dáng chuyên nghiệp. o Cách 2: Thực hiện qua lệnh Do FORM như sau: DO FORM <Tên Form> • Đóng form (giải phóng khỏi bộ nhớ): RELEASE <tên form> 2. thực hiện lệnh sau: Thực thi một Form bằng 1 trong hai cách: o Cách 1: Từ cửa sổ Project Manager. mặc định phần mở rộng là scx. <đối tượng>: nếu <đối tượng> không cùng với form đang thao tác. nếu muốn thay đổi thuộc tính của form .XXXVIII. chọn Documents. Muốn thay đổi giá trị các thuộc tính trên form. hiển thị thông tin. ta dùng: <tên form>. Truy 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. chọn Form rồi chọn Form cần thi hành rồi nhấn Run. • Chạy form: Từ cửa sổ lệnh. FORM Form được dùng để làm giao diện nhập. <this form>.

o False: Không có quyền làm việc. ta dùng cú pháp: <tên đối tượng>.không phải là form hiện hành. Name: Tên để chỉ đối tượng. Enable: Giá trị logic: o True: có quyền làm việc. Width: Chiều rộng của đối tượng. Phương thức của đối tượng (Methods) Để gọi đến phương thức của một đối tượng. Show: Hiện đối tượng. Height: Chiều cao của đối tượng. Hide: ẩn đối tượng. 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: <tên đối tượng>. • Visible: Giá trị logic: o True: Thấy được đối tượng. 3. .caption= “Chương trình ứng dụng” Các thuộc tính thông dụng: • • • • • • Left: Vị trí cạnh trái của đối tượng so với vật chứa nó. 4. Release: Giải phóng đối tượng. SetFocus: Thiết lập “tầm ngắm” cho đối tượng.<t_tính>=<giá trị>.<thuộc tính> Ví dụ: Myform. ta sử dụng <tên form>.<phương thức> Ví dụ: Myform.<thuộc tính>= <giá trị>. Top: Vị trí trên của đối tượng so với vật chứa nó.show Một số phương thức thường dùng: • • • • • Refresh: Làm tươi lại đối tượng. Nếu muốn thay đổi các thuộc tính của form hiện hành: <Thisform>. o False: Không thấy được đối tượng.

khi đó giao diện chọn kiểu Form Wizard xuất hiện: • Chọn kiểu Form Wizard:  Form Wizard .<sự kiện> Một số sự kiện thường sử 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. Tạo mới một FORM sử dụng Wizard Các bước thực hiện: • • • Mở Project cần thực hiện.  One-To-Many Form Wizard Tạo Form từ 2 bảng có quan hệ (1-nhiều) với nhau. xuất hiện giao diện wizard selection. MouseMove: Được gọi khi di chuyển chuột trên bề mặt của đối tượng. trong Project Manager chọn Tab Documents Chọn Form / Chọn New Chọn Form Wizard. chọn form. Tạo form thông qua Wizard 6. 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. . Got focus: Được gọi khi đưa đối tượng vào tầm ngắm. Từ menu Tools. rồi thông qua hướng dẫn. ta dùng cú pháp sau: <tên đối tượng>.5. Sự kiện của đối tượng Để chỉ đến sự kiện 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.Tạo Form từ một bảng đơn. chọn wizard.

Chọn Form Wizard.Select Fields: Chọn Database. chọn Next để qua bước 2.Ví dụ 1: Tạo Form từ bảng đơn . chọn tất cả các trường.Form cập nhật danh mục khoa (DMKHOA) 1. 3.Choose Form Style: Chọn kiểu form. chọn OK 2. Step 1 . Trong ví dụ này chọn bảng DMKHOA. kiểu nút lệnh . Step 2 . Tables và Fields (Sử dụng lệnh >. >> để chọn các trường cần thiết). Khi đó chọn xong các trường.

Nút lệnh dạng chữ (Text).Sort Records Sắp xếp: Chọn 1 trong các trường để sắp xếp hoặc có thể bỏ qua. Button type: Kiểu nút lệnh.Nút lệnh dạng ảnh. Tiếp đến nhập vào tên form rồi chọn Save để ghi lại. 5.Style: Khi chọn một kiểu form thì dạng form tương ứng sẽ hiển thị phần bên trái. Step 3 . 4. Picture .Tuỳ chọn.Không có button. • Nên chọn là Text hoặc Picture. Step 4 – Finish Nhập vào tiêu đề cho form rồi chọn Finish. . • Custom . No button . • • • Text .

Các thành phần liên quan đến công cụ Form Design. • • • Thanh công cụ Color Palette (Tự tìm hiểu) Thanh công cụ Layout (Tự tìm hiểu) Thanh công cụ Toolbar (Tự tìm hiểu) .7. Bên phải là thanh toolbar Form Controls. Chọn Form 3. Chọn New Form. Mở Project cần thực hiện. 2. trong Project Manager chọn Tab Documents. Giao diện Form Designer xuất hiện: Trong đó: • • Phía trên là thanh toolbar Form Designer. Chọn New 4. 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 <tên form> Các bước thực hiện: 1.

Có hai cách để thiết lập các thuộc tính của form: sử dụng cửa sổ Properties và sử dụng lệnh để thiết lập (có những thuộc tính chỉ cho phép thiết lập ở chế độ lệnh). . Hiển thị cửa sổ Properties: R_Click vào phần nền của Form đang thiết kế => Pop-up menu xuất hiện và ta chọn chức năng Properties.8. Form có các thuộc tính riêng của nó. Một số thuộc tính của FORM Form là đối tượng quan trọng trong thiết kế giao diện trên Windows. cũng như các đối tượng khác.

Closable: Cho phép sử dụng lệnh Close trong hộp Control ..Fixed Single: Dạng đơn. hoặc .F. . Maxbutton. ControlBox: Hiển thị hoặc không hộp Control menu box góc trên bên trái form.Một số thuộc tính thường sử dụng của Form. ví dụ “.. .F. BackColor: Mầu nền của Form. hoặc . hoặc . o 1 .T. Giới hạn nội dung của Caption là 256 kí tự.T. (Nếu . thì vị trí của Form phụ thuộc vào thuộc tính Top. Minimize. Có thể nhận 1 trong các giá trị: o 0 . Visible: chỉ rõ đối tượng xuất hiện hay ẩn. MinButton: Hiển thị hay không các nút lệnh Maximize.vnTime”. cố định. Trong chương trình thuộc tính này nhận xâu text thể hiện tên của font chữ nào đó. BorderStyle: Dạng đường viền của Form.T. AutoCenter: vị trí xuất hiện của Form là giữa màn hình.T. và kí tự đặc biệt.Bình thường (Normal).No Border: Không có đường viền.F. Tên form là xâu kí tự không chứa dấu cách. Nếu các biểu thức hoặc Form có lỗi thì Form sẽ không khởi động được. Thuộc tính này nhận các giá trị: . Showtips: cho phép hay không việc xuất hiện toolTip của các đối tượng. WindowState: Xác định trạng thái form. o 1 . Thuộc tính này có thể nhận các giá trị: o 0 . “Times New Roman”.Phóng to hết cỡ màn hình (Maximize). Khi thiết kế có thể dùng hộp thoại chọn font để chọn các font chữ hiện có trong máy tính. • • • • • • • • • • • • • • • AlwaysOnTop: Form luôn nằm trên các đối tượng khác.Fixed Dialog: Theo dạng cửa sổ hộp thoại. mặc định caption là tên form.F. Left (mặc định)).F. o 2 . Caption: Tiêu đề của Form. bên phải form.T. Thuộc tính này nhận giá trị là một xâu kí tự. kích thước của form như thiết kế (mặc định).menu hoặc nút Close góc trên. khi chạy. Nếu thiết lập bằng hàm hoặc các biểu thức thì chúng sẽ được tính tóa trước khi chạy form. Có thể nhận 1 trong hai giá trị: . Enabled: Cho phép có hiệu lực hay vô hiệu khả năng đáp ứng sự kiện của các control trên form (và cả form). FontName: Xác định font chữ dùng để hiển thị các đối tượng text trên form.F. o 3 – Sizable: Có thể thay đổi kích thước (Mặc định).Thu thành biểu tượng trên task bar (Minimize). Thuộc tính này nhận các giá trị: . hoặc . Có thể nhận 1 trong hai giá trị: . Thuộc tính này nhận các giá trị: . tức là vị trí. FontSize: Kích thước font chữ. o 2 .T. . Name: Tên (định danh) Form. Thuộc tính có thể thay đổi hoặc thiết lập bằng một biểu thức. Thuộc tính này nhận các giá trị: .F.

• Viết lệnh: Khi đó chọn đúng đối tượng và tình huống cần thiết thì cửa sổ bên dưới cho phép soạn thảo lệnh nhằm đáp ứng tình huống đặt ra. • Chọn mục Form và mở rộng. • Procedure: Hiển thị tình huống (event) có thể đáp ứng của đối tượng (Object) đó. • Chọn form DMKHOA • Chọn Modify. khi đó giao diện Form Designer xuất hiện Trong Form Designer D_Click chuột trái vào nền Form.Tên của form DMHANG).click .butTONSET1. Kích chuột trái vào mũi tên xuống (bên cạnh) để chọn Object nếu cần. khi đó giao diện lập trình trong form xuất hiện như sau: • Object: hiển thị tên đối tượng (trong tình huống này là Form1 . Trong ví dụ này chúng ta cần đưa về bản ghi cuối rồi nhập vào lệnh: thisform.9. Một số sự kiện (Event) thường sử dụng của Form 1. Cách thực hiện: • Trong cửa sổ Project Manager chọn mục Documents. Activate: Tình huống này xảy ra khi form được “kích hoạt” (active). Kích chuột trái vào mũi tên xuống (bên cạnh) để chọn tình huống nếu cần.cmdEnd. Ví dụ: Khi kích hoạt form DMKHOA (tạo bằng Form Wizard trước đó) cần đưa về bản ghi cuối cùng. trong ví dụ này tình huống cần chọn là Activate.

Thực hiện tương tự như trên nhưng chọn Event là click và viết lệnh: MESSAGEBOX("Ban vua click chuot trai tren form!") 3. Thực hiện tương tự như trên nhưng chọn Event là Destroy và viết lệnh: MESSAGEBOX("Destroy!") 6. Ví dụ: Hiển thị thông báo “Init” khi tình huống này xảy ra. . Click: Tình huống click của đối tượng cmdEnd. Thực hiện tương tự như trên nhưng chọn Event là Dbclick và viết lệnh: MESSAGEBOX("Ban vua Double click chuot trai tren form!") 4. butTONSET1: Tên lớp chứa các nút lệnh. 5. Destroy: Tình huống này xảy ra khi form được hủy bỏ (destroy). Ví dụ: khi Dbclick chuột trái lên form DMKHOA -> Hiển thị thông báo “Ban vua Double click chuot trai len form!”. Click: Tình huống xảy ra khi người sử dụng click phím trái chuột trên đối tượng Ví dụ: khi click chuột trái lên form DMKHOA -> Hiển thị thông báo “Ban vua click chuot trai len form!”. 2. Ví dụ: hiển thị một thông báo khi thôi kích hoạt 1 form.Trong đó: • • • • Thisform: là tên thay thế của form hiện hành. đó hoặc thay đổi giá trị của một đối tượng nào đó hoặc trên khoảng trống của form. Ví dụ: Hiển thị thông báo “Destroy” khi tình huống này xảy ra. Init: Tình huống này xảy ra khi form được khởi tạo. Dbclick: Tình huống này xảy ra khi người sử dụng D_Click chuột trái trên form. Deactivate: Tình huống xảy ra khi form bị thôi kích hoạt (ngược vơi kích hoạt). cmdEnd: Tên nút lệnh Bottom.

y. x. xuất hiện giao diện: . Data Environment Là đối tượng dùng để chứa các bảng dữ liệu hay View cùng với các quan hệ của chúng mà Form cần sử dụng.y1 đến x2. tâm tại x. • Show: Hiển thị form. cClass): thêm mới một đối tượng. • Vào menu View/Data environment. Thực hiện tương tự như trên nhưng chọn Event là Destroy và viết lệnh: MESSAGEBOX("Load!") 10.y1. • Circle(r. • Hide: ẩn form • Line(x1.x2.Thực hiện tương tự như trên nhưng chọn Event là Init và viết lệnh: MESSAGEBOX("Init!") 7. XXXIX.y): Cho phép vẽ lên form 1 vòng tròn bán kính r.y): Vẽ điểm x. DATA ENVIRONMENT tự động mở các bảng và View khi Form được khởi động và cũng tự đóng chúng khi kết thúc làm việc với Form.y • Release: Xóa form hiện thời. Thiết lập DATA ENVIRONMENT: • Mở Form cần làm việc ở chế độ Form Design.y2): Vẽ đoạn thẳng từ x1. Load: Tình huống này xảy ra trước khi các đối tượng được khởi tạo. Một số phương thức (Methods) thường sử dụng của Form • AddObject(cName.y2 • Print(cText): In một dòng text ra màn hình • Pset(x. • Cls: Xóa sạch nền form. Ví dụ: Hiển thị thông báo “Load” khi tình huống này xảy ra.

• Các Control được xác định qua các Properties (thuộc tính). . • • Muốn đưa đối tượng trên thanh Control vào form: 4 bước o Kích chuột vào đối tượng cần đưa. o Thiết lập các thuộc tính thích hợp. • Có thể hiển thị/ẩn Form Control bằng cách trong menu View chọn Form Control Toolbar. Mỗi loại đối tượng thường được thiết kế cho một mục đích nhất định. Visual Foxpro hiển thị thanh công cụ Form Controls như hình bên.tương tự như FORM).R_Click lên vùng trống trong Data Environment ->click Add để thêm các bảng. • Thanh công cụ Form Controls: Khi đang mở Form ở chế độ thiết kế (Form Designer). đối tượng Command Button để thể hiện các nút lệnh.. Ví dụ giao diện sau được thiết kế từ FORM và các control. View. Report. Methods (Phương thức) và Events (sự kiện . Một số đối tượng trên Controls • Các đối tượng điều khiển (Control) được sử dụng trong việc thiết kế giao diện trên Form. Tuy nhiên có thể sử dụng với mục đích khác. o Viết mã lệnh cho các tình huống tương ứng. đối tượng TextBox được dùng để cho phép nhập liệu. Ví dụ đối tượng Label (nhãn) được dùng để hiển thị một chú thích.. Label. o Vẽ nó trên form để xác định vị trí.

• Control không gắn liền với dữ liệu.  1 – In Top-Level Form: cửa sổ con xuất hiện bên trong một cửa sổ dạng Top-Level. không ảnh hưởng đến form cha. Có hai loại Control: • Control gắn liền với dữ liệu: giá trị gõ vào hoặc được chọn sẽ được lưu vào trong dữ liệu nguồn thông qua việc thiết lập thuộc tính ControlSource hoặc RecordSource. Single Document Interface (SDI): Là ứng dụng chứa một hay nhiều cửa sổ độc lập. Sử dụng Control Control dùng để thao tác với cơ sở dữ liệu. Visual Foxpro cho phép tạo nhiều loại form: • Child form: Là form nằm trong một form khác. • Cho phép người sử dụng nhập các giá trị không thể định trước. chọn nút Control cần dùng: . nó được dùng để tạo ứng dụng dạng SDI hay làm form cha cho các form con khác trong ứng dụng MDI. • Top-level Form: Là form độc lập. Các loại chức năng muốn xây dựng trên Form: • Cung cấp cho người sử dụng các giá trị có thể chọn. • Cho phép người sử dụng một giá trị nằm trong một khoảng nhất định. mỗi một cửa sổ đều xuất hiện trên màn hình nền của Window. • Thể hiện thông tin. • Yêu cầu của một form con: o Dùng form design tạo mới hoặc chỉnh sửa một form. XLI.XL. có thể di chuyển khắp màn hình nhưng không thể di chuyển ra sau cửa sổ cha. được dùng trong một ứng dụng MDI. click và di chuyển chúng khắp trên Form. Khi bị thu nhỏ. o Thuộc tính ShowWindow: 2 – As Top Level Form. • Yêu cầu của một Top-level form: o Dùng form design tạo mới hoặc chỉnh sửa một form. có thể dùng để gõ nội dung vào. o Thuộc tính ShowWindow: chọn một trong hai giá trị:  0 – Inscreen: Form cha sẽ trở thành cửa sổ chính của Visual Foxpro. Thêm một control vào form: • Trên thanh công cụ Form Control. Tạo giao diện Single – Multiple Document Multiple Document Interface (MDI): Là ứng dụng chứa một cửa sổ chính và các cửa sổ khác của ứng dụng được chứa trong hay nằm trên cửa sổ chính. • Floating form: Là form thuộc về một form cha. nó nằm dưới cửa sổ form cha. Form set XLII. Form con không thêt di chuyển ra khỏi form cha.

chú thích.Transparent xác định tính chất trong suốt của nền (có thể nhìn thấy mọi đối tượng “phía sau”).o Drag nút Control này lên Form. hoặc . Thuộc tính này nhận 2 giá trị: .Opaque không cho quan sát các đối tượng phía sau. Thuộc tính này có thể nhận một trong các giá trị: • 0 . BorderStyle: Thiết lập thuộc tính đường viên của đối tượng. Label: Sử dụng cho: hiển thị nhãn. 2. BackColor: Đặt mầu nền của Label. tuy nhiên vì mục đích của đối tượng này là hiển thị một đoạn text nên trong phần này không giới thiệu các methods và events này. • 2 . Autosize: Tự động thay đổi kích thước phù hợp cho việc hiển thị thuộc tính Caption của nó. Thuộc tính này có thể nhận các giá trị: • 0 – Left • 1-Right Canh phải. o Hoặc Click lên trên Form.F. Trong khi thiết kế có thể dùng hộp mầu để chọn hoặc khi chạy chương trình có thể sử dụng hàm RBG() để xác định mầu. Các Properties thường sử dụng: . Height: Chiều cao Left: Vị trí cạnh trái Name: Tên của đối tượng (dùng để sử dụng trong chương trình) Top: Vị trí cạnh trên Visible: Thiết lập tính chất Hiện/ẩn. FontName: Đặt Font chữ. Trong khi thiết kế có thể dùng hộp mầu để chọn hoặc khi chạy chương trình có thể sử dụng hàm RBG() để xác định.T. TextBox Cho phép người sử dụng nhập dữ liệu không định trước hoặc chỉnh sửa dữ liệu trong các field không thuộc kiểu memo. Label cũng có nhiều Methods và Events.Center canh giữa. ForeColor: Đặt mầu chữ. BackStyle: Thiết lập tính chất nền. • Khai báo nguồn dữ liệu thông qua thuộc tính ControlSource hoặc RecordSource 1. • 1 . Caption: Text hiển thị như một nhãn. Width: Độ rộng của label. Thuộc tính này nhận chuỗi text bất kỳ. Các Properties thường sử dụng: • • • • • • • • • • • • • • Alignment: Canh lề phần text hiển thị của label.

Cho phép chế độ đánh dấu. . • SetFocus (method): Đưa con trỏ đến đối tượng này. Visual Foxpro qui định kí hiệu sử dụng cho Format của textbox.F. đặt thuộc tính ControlSource = text1 (text1 là 1 biến). chẳng hạn: dấu * MaxLength: Số ký tự tối đa có thể nhập (nếu MaxLength=0 thì số ký tự là bất kỳ. sau đó gán cho text1 =”Visual Foxpro”.T.Vô hiệu lực Format: Định dạng dữ liệu hiển thị. A .hoten” ->Run Form.• • • • • • • • • ControlSource: Cho phép “gắn kết” (bound) textbox với 1 trường hoặc biến nào đó (thông thường với 1 trường). o Ví dụ đặt InputMask là ### (# . Thuộc tính này nhận các giá trị: .Chỉ nhập các ký tự) InputMask: Định dạng dữ liệu nhập. Ví dụ.F.nhập chữ số) cho phép nhập 3 chữ số hoặc 999. Việc “Gắn kết” ở đây được hiểu là nếu text trên textbox thay đổi thì trường hoặc biến “gắn kết” với nó cũng thay đổi theo. Không cho phép. Visual Foxpro qui định kí hiệu sử dụng cho InputMask của textbox. Nhật. Ví dụ đặt Format là !A (! . Value: Giá trị là xâu text hiển thị trên đối tượng này. o Nội dung text box hiển thị dưới dạng Password: thuộc tính PasswordChar được khai báo bằng kí tự hiển thị thay thế. khi đó cần thực hiện Refresh để làm tươi lại dữ liệu trên Text. đây là giá trị mặc định).Hiển thị chữ hoa. thêm 1 textbox vào form và đặt thuộc tính controlSource=”Hososv. Ví dụ. SelectOnEntry: Thiết lập chế độ đánh dấu text khi đối tượng này nhận quyền điều khiển. . Enabled: Cho phép có hiệu lực hay vô hiệu khả năng đáp ứng sự kiện của textbox. StrictDateEntry Cho phép gõ dạng ngày khác với mặc định là 99/99/99 • Các Methods và Event thường sử dụng: • Refresh (method): “Làm tươi” lại dữ liệu hiển thị trên textbox.99 để giới hạn giá trị số nhập vào chỉ được nhỏ hơn 1000000 và chỉ có 2 số lẻ.T. .. dấu phẩy (. Nhập dữ liệu dạng ngày: thiết lập các thuộc tính Property Diễn giải Century Cho phép hay không xuất hiện 2 kí tự số dầu tiên của năm Dateformat Định dạng ngày nhập theo 15 dạng quy ước theo Mỹ. Thuộc tính này nhận các giá trị: .có hiệu lực.. Đức. . . .999. nếu không thì chỉ được sử dụng chuột để chọn textbox.) sẽ tự động xuất hiện trong vùng nhập. TabIndex: Thứ tự theo Index của đối tượng (khi sử dụng phím Tab con trỏ sẽ di chuyển theo thứ tự Index từ thấp đến cao) TabStop: cho phép hay không việc sử dụng phím tắt để điều khiển.) và dấu chấm (.

Giá thiết textbox được thiết lập các thuộc tính Name = hocky Maxlength=1 Khi đó sự kiện hocky.lblTenKhoa.Caption="" .Value SELECT dmkhoa LOCATE FOR (ma=khoahoc) IF FOUND() THEN thisform.Caption=dmkhoa. để đảm bảo yêu cầu này chúng ta sẽ viết đoạn lệnh đáp ứng sự kiện valid để kiểm. xét ô text khóa. Vì lý do như vậy nên sự kiện này thường dùng để kiểm tra tính hợp lệ của dữ liệu.• Valid (Event): Sự kiện này xảy ra trước khi chuyển quyền điều khiển tới đối tượng khác.lblTenKhoa. nếu không hợp lệ thì có thể yêu cầu người sử dụng nhập lại.2" then WAIT WINDOW "Gia tri khong dung! Hoc ky = 1 hoac 2" NOWAIT RETURN 0 ENDIF Ví dụ 2: Trong hình 1.valid được viết như sau: hk=this. xét ô text học kỳ.ten ELSE IF !EMPTY(khoahoc) THEN WAIT WINDOW "Ma khoa khong dung!!" NOWAIT RETURN 0 ELSE thisform.value IF !hk$"1. Ví dụ 1: Trong hình 1. Giá thiết textbox được thiết lập các thuộc tính: Name = Khoa Maxlength=10 Khi đó sự kiện Khoa. Ta thấy các khóa nhập vào ở đây phải nằm trong DMKHOA thì mới có nghĩa -> Viết sự kiện valid để kiểm tra tính hợp lệ này của ô text khóa. Ta có học kỳ chỉ nhận 2 giá trị là 1 hoặc 2.valid được viết như sau: khoahoc=this.

dùng các phím chức năng. KeyboardLowValue Giá trị nhỏ nhất mà người sử dụng có thể nhập vào. Command Button và Command Button Group Diễn giải Khai báo nguồn dữ liệu gắn với Edit box. Nút này có thể chọn được hay không. 3.ENDIF ENDIF • Đối tượng EditBox tương đối giống TextBox (khác biệt chủ yếu là cho phép soạn text trên nhiều dòng). Nếu cho phép điều này thì người sử dụng phải sử dụng Ctrl+Tab để di chuyển đến các control khác trên Form. Cho phép chỉnh sửa nội dung hay không. SpinnerHighValue Giá trị lớn nhất mà spinner hiển thị khi click vào mũi tên lên. Đặt dòng text (tooltip) khi đưa con trỏ tới nút lệnh . thường là 1 field của table Cho phép chèn Tab vào trong Edit box. Sử dụng cho: Tạo các nút lệnh. Page Up. SpinnerLowValue Giá trị nhỏ nhất mà spinner hiển thị khi click vào mũi tên lên. 5. Property ControlSource AllowTabs ReadOnly ScrollBars 4. Các thuộc tính thông dụng: Property Interval Diễn giải Độ tăng hay giảm mỗi khi người sử dụng click mũi tên lên/ xuống. EditBox Cho phép chỉnh sửa dữ liệu cho một field kí tự hay memo. Edit box có chế độ tự động Word-Wrapping. Cho phép đưa một ảnh vào nút lệnh. Các Properties thường sử dụng: Property Caption DisabledPicture DownPicture Enabled Picture ToolTipText Diễn giải Text hiển thị như tên (khác với name) của nút lệnh Hình sẽ hiển thị khi nút này không có tác dụng. Spinner Thường được dùng chọn hoặc nhập vùng giá trị kiểu số. Có hiển thị thanh cuộn trong khung Edit box hay không. Page Down và thanh cuộn để di chuyển trong cửa sổ Edit box. KeyboardHighValue Giá trị lớn nhất mà người sử dụng có thể nhập vào. Hình sẽ hiển thị khi nút này được nhấn.

ControlSource của từng Option button không thể là kiểu kí tự.Click được viết như sau: IF MESSAGEBOX("Dong form nay lai?". thiết lập các thuộc tính: Caption=Thoát Name=cmdThoat Khi đó dự kiện cmdThoat. giá trị này là số thứ tự mục chọn. tiếp đến chon Builder.. BackStyle Nền của nhóm nút sẽ trong suốt (transparent) hay mờ đục.Value=2 <Thực hiện thủ tục đối với nút 2> CASE THIS. có thể thay đổi một số thuộc tính khác của OptionGroup bằng cách click chuột phải vào đối tượng. Khi thiết kế.F.• Click (Event): Sự kiện này xảy ra khi người sử dụng click chuột trái vào nút lệnh (nút lệnh được thiết kế chính để đáp ứng sự kiện này). Mặc định là 2 và option button đầu tiên được chọn. 6.Value=1 <Thực hiện thủ tục đối với nút 1> CASE THIS.Value=3 <Thực hiện thủ tục đối với nút 3> END CASE Các thuộc tính thông dụng của Command Button Group Property Diễn giải ButtonCount Số lượng nút trong nhóm. .).Release ENDIF Đáp ứng thao tác Click trong nhóm các nút lệnh. . có thể dùng thủ tục chung: DO CASE CASE THIS. ButtonCount: Số option button. Option button Group Sử dụng cho: Cho phép người sử dụng chỉ chọn một giá trị đưa ra.T. ControlSource thường là field số (0 hay 1) hoặc kiểu logic (.4+32)=6 THEN thisform.. Ví dụ 1: Thêm vào form nút lệnh “Thoát” để đóng form. • Value: Giá tị trả về của option. Các Properties thường sử dụng: • • ControlSource: Nguồn dữ liệu gắn với option group.

Giá trị 1 hoặc . NULL (Ctrl+O) Nếu ControlSource của checkbox là một field logic thì giá trị của record tương ứng sẽ được hiển thị: chọn nếu là .T.F. 2.Value THEN this.F. CheckBox Sử dụng cho: Lựa chọn một trong 2 khả năng: đúng hay sai. R_Click vào đối tượng/ Edit và chọn phần tử để thiết lập các thay đổi. Các Methods và Events thường dùng: • Click (Event): Xảy ra khi người sử dụng click chuột trái vào check box. bật hay tắt.). và Unchecked là nữ.F. hoặc ngược lại. Bốn trạng thái của checkbox: 0 (. 1 (.Caption="N÷" ENDIF 8.T. không chọn nếu là . thuộc tính Style: . nhiều mục được thể hiện một lúc. Trong List box. Các Methods và Events thường dùng: Không có methods. List box và Drop-down List box Cung cấp cho người sử dụng một danh sách cuốn.T. mở hay đóng. chứa một số thông tin để chọn.Giá trị 0 hoặc . Drop-down list box chỉ có một mục được thể hiện nhưng có mũi tên xuống để thể hiện danh sách các mục. 7. Đối với Drop-down list box.).Caption="Nam" ELSE this. hoặc event nào đặt biệt.. Các Properties thường dùng: • • Caption: Thể hiện phần text của đối tượng Value: Checked . Unchecked .Vì đây là một dạng container nên để thay đổi các thuộc tính của từng phần tử . Khi đó sự kiện click được viết như sau: IF this. Ví dụ: Giả sử dùng check box để hiển thị thông tin về giới tính với qui ước checked Nam.

4: Query Nội dung của danh sách là kết quả của một Query được thiết kế trong Query Designer. • 2 (Drop-down List): chỉ cho phép chọn mục từ danh sách. Có thể thể hiện thông tin từ nhiều Table.T. vừa có thể gõ giá trị cần tìm để di chuyển nhanh đến một mục. Khai báo tên của query trong RowSource. 1: Value Phải chỉ rõ giá trị trong thuộc tính RowSource. 7: Files Nội dung thể hiện là danh sách các file có trong thư mục hiện hành Chọn nhiều mục một lúc trong ListBox: khai báo thuộc tính MultiSelect = . 3: SQL statement Thêm câu lệnh SQL vào thuộc tính RowSource. Các thuộc tính và Method thông dụng: Method AddItem Diễn giải Thêm một mục vào danh sách với điều kiện giá trị thuộc tính RowSource là 0 RemoveItem Gỡ bỏ một mục ra khỏi danh sách với điều kiện giá trị thuộc tính RowSource là 0 Requery Cập nhật danh sách nếu giá trị trong RowSource bị thay đổi. 2: Alias Nguồn giá trị từ một hay nhiều field của Table. 5: Array Nguồn dữ liệu là từ các phần tử của mảng. Chỉ rõ loại dữ liệu có thể gõ vào trong combo box . Chỉ rõ số lượng mục được hiển thị trong danh sách. Các thuộc tính của Combo box Property ControlSource DisplayControl InputMask Diễn giải Chỉ rõ field trong table. Dùng dấu phẩy để phân cách giữa các field trong RowSource. Thuộc tính ColumnCount cho phép khai báo các field đầu tiên cần thể hiện. Sử dụng thuộc tính ColumnWidths để quy định độ rộng của các cột. 6: Fields Chỉ rõ field hay danh sách field cần thể hiện. nơi dùng để lưu giá trị được chọn hay gõ vào từ danh sách.• 0 (Drop-down Combo): vừa cho phép chọn một mục trong danh sách. Có thể sử dụng method AddItem và RemoveItem. Điền giá trị: Thông tin cho List box và Combo box có thể từ nhiều nguồn khác nhau thông qua việc thiết lập các thuộc tính RowSourceType và RowSource RowSourceType Nguồn dữ liệu cho các mục của danh sách 0: None Người sử dụng phải tự thêm các mục vào danh sách.

Các thuộc tính thường dùng. Chú ý: Muốn thay đổi các thuộc tính trên Grid thì chuyển Grid sang dạng edit bằng cách nhấn phím phải chuột lên Grid. thu nhỏ. nguyên mẫu). Chú ý: • Nếu Row Source không được chỉ ra thì lấy bảng dữ liệu hiện hành. RowSource Chỉ rõ nguồn dữ liệu của các mục trong danh sách. 10. Grid Dùng để thể hiện dữ liệu theo dạng bảng. • Nếu Column count không chỉ ra thì mặc định là tất cả các trường trong bảng dữ liệu (Column count=-1).IncrementalSearch Có so khớp mục đầu tiên trong danh sách khi người sử dụng gõ từng kí tự hay không. . • • Row Source: Xác định bảng dữ liệu cần thể hiện. • Allow Addnew: Cho phép thêm các bản ghi mới hay khô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. Grid đang ở chế độ Edit có một đường viền bao quanh. ColumnCount: Xác định số cột của Grid. Các thuộc tính thường sử 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. • Control Source: Được xác định cho từng cột. Các thuộc tính thường sử dụng. 9. dùng để khai báo nguồn dữ liệu cho cột đó. 11. chọn Properties. Image Dùng để đưa các hình ảnh trên form. 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.

Ví dụ: Các thuộc tính chính : • • TxtMANV các thuộc tính ControlSource là MANV TxtHOTEN các thuộc tính ControlSource là HOTEN .Sự kiện thường sử 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.

loa d use hoso CmdDau.Click if not eof() skip endif thisform.refresh CmdSau.Clic k if not bof() skip -1 endif thisform.release .Clic k use thisform.refresh CmdTruoc.FrmXem.refres h CmdCuoi.Click go top thisform.refresh CmdThoat.Click go bottom thisform.

Xem và in report. Khái niệm 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.CHƯƠNG VII: REPORT XLIII. chọn Report sau đó làm theo các bước hướng dẫn. 4. . Quá trình thiết kế gồm 4 bước chính như sau: 1. Sửa đổi layout của report. 3. 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. XLIV. Màn hình thiết kế Report Các bước tạo 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. 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. chọn Wizard. 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. Tạo Report layout: Có thể sử dụng report wizard hay report designer. Tạo Report bằng Wizard Từ menu Tools.

XLV. Bước 6: Đặt tựa đề. kết thúc.• • • • 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. Tạo Report bằng REPORT DESIGNER Quản lý Report Tạo mới Report: CREATE REPORT <tên Report> .

Ví dụ: create report THU 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 <tên report> Xem trước khi in: REPORT FORM <tên report> PREVIEW Xem trước khi in có điều kiện: REPORT FORM <tên report> PREVIEW <điều kiện> • In report: REPORT FORM <tên report> TO PRINTER 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. .

Để chọn. Hiệu chỉnh các control. chọn giá trị cho column number lớn hơn 1. từ menu file.• • • • • • • Column header: Để in tên header của mỗi cột. Để chọn. Sumary: Phần tóm tắt của mỗi report. Column footer: In phần Footer của mỗi cột. Detail: phần chi tiết trên mỗi record (ứng với từng record trên bảng dữ liệu). Để chọn. Group header: Xuất hiện mỗi khi bắt đầu nhóm mới. chọn giá trị cho column number lớn hơn 1. từ menu report chọn data grouping. XLVI. . từ menu report chọn data grouping. từ menu file chọn page setup. chọn page setup. Group footer: In phần Footer của mỗi nhóm. Page Footer: In phần Footer của mỗi trang. Kéo rê chuột trên report để xác định vị trí của nó trên report. Để chọn. Các control trên Report Thanh công cụ Report Control Chức năng của các control: Đưa các control vào report Thực hiện các bước sau: • • • Chọn control thích hợp.

Đưa Picture bound control vào report: • • Chọn picture bound control. nếu muốn chèn hình ảnh từ file. . hcọn tên trường hay biến thích hợp. • Chọn Ok. b. Đưa field vào report: • • • • Kích chuột vào Trong hộp report Expression.DBF ở bài tập 2). Xuất hiện hộp hội thoại report picture. Chọn OK. Đưa label vào report: • • Chọn Gõ nội dung của label c. chọn file.a. chọn field nếu muốn chọn trường General. Trong hộp field. Ví dụ : Thiết kế Report như sau (dựa vào Bảng CANBO. chọn nút lệnh sau hộp Expression.

Tạo menu hệ thống. Tạo menu hệ thống thông qua Menu Designer Sau khi thực hiện lệnh Create menu. Biên dịch menu Tiến hành chạy thử. XLVIII. từ màn hình Menu Designer chọn lệnh Generate. XLVII.CHƯƠNG VIII: TẠO MENU VÀ QUẢN LÝ ĐỀ ÁN I. Việc sắp xếp và thiết kế menu thích hợp sẽ giúp cho người dùng được thuận lợi khi sử dụng hệ thống menu của bạn.MNX Tạo menu bằng công cụ Designer Menu: Thực hiện lệnh: CREATE MENU <tên menu> Mở menu đã có: MODIFY MENU <tên menu> Dịch file Menu: Để dịch file menu. tạo menu và các Submenu. Các bước tạo một menu hệ thống • • • • • Sắp xếp và thiết kế: Quyết định menu nào bạn cần chúng xuất hiện ở vị trí nào trên màn hình. cần những menu con nào? Sử dụng menu designer. TẠO MENU 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. 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à *. File menu sau khi dịch sẽ có phần mở rộng là MPR. kiểm tra. ta được màn hình giao diện Menu: Designer như sau: . Gắn các câu lệnh tương ứng với công việc.

hình ảnh con trỏ. Quản lý đề án Đề án là tên gọi để chỉ đến ứng dụng mà bạn đang xây dựng. chọn: o Submenu nếu muốn tạo menu con. XLIX. o Procedure nếu muốn thi hành thủ tục o Command nHu muHn thHc hiHn mHt lHnh. Một đề án trong Visual Foxpro được lưu trữ trên file có phần mở rộng mặc định là *. Trong hộp Result. .PRJ. • Kết thúc. Các file cơ sở dữ liệu (database) Các form Các report Các query Các file khác như âm thanh.• • Trong hộp Prompt.. tài liệu... Thông thường các thành phần của một đề án bao gồm: • • • • • • Các bảng dữ liệu (table). ấn Ctrl_W. hình ảnh. ta đưa vào tên cần hiển thị trên giao diện.

• Code: và những file khác: Liệt kê các file chương trình và các file khác được sử dụng trong chương trình.Tạo mới các đề án Thực hiện lệnh: CREATE PROJECT <tên đề án> Lúc này xuất hiện cửa sổ quản lý đề án Project Manager: • Database: Bao gồm các: o Table: Các bảng dữ liệu có liên kết với nhau hay các bảng tự do. • Class: Liệt kê các thư viện được sử dụng. • Documents: Chứa các tài liệu sử dụng cho đề án. bao gồm các form và report. Muốn loại bỏ bất kỳ một thành phần nào của đề án ta chọn nó rồi chọn nút remove. o Query: Là cấu trúc để lấy thông tin từ các bảng table. Để thêm bất kỳ một file nào cho đề án ta kích nút add (nếu chọn file đã có) hoặc nút new (nếu tạo mới). o View: Là các Query chuyên dụng mà ta có thể truy xuất dữ liệu cục bộ và từ xa cho phép cập nhật các nguồn dữ liệu bằng cách làm thay đổ Report bởi quyre. Để chỉnh sửa bất kỳ một thành phần nào trong đề án ta chọn nó rồi chọn nút Modify. .

Read Events: Bắt đầu thực hiện vòng lặp để thực hiện công việc. Dùng lệnh BUILD <tên đề án> • Dịch sang file có phần mở rộng là exe: Khi này. . để chọn đề án phải có một bản sao của Visual Foxpro. Do cleanup. chọn Set main. trả lại môi trường cho hệ thống và thoát khỏi hệ thống. có một điểm bắt đầu.dll và vfp6renu. người dùng không cần có Visual Foxpro nhưng phải cung cấp hai file: vfp6r.prg • • • • Do Setup. ta có thể chạy đề án thông qua lệnh: DO <tên ứng dụng> Đặt Starting Point cho đề án Khi ứng dụng được thi hành. Thông thường. Để chọn một thành phần của dự án là Starting point: • • Chọn thành phần được đặt là Starting point. • Dùng lệnh: BUILD EXE <tên đề án> Chạy đề án Sau khi đã dịch. phải có lệnh Clear Events để thoát khỏi vòng lặp đã được thiết lập bởi lệnh Read Events. Từ Menu Project.prg: là thực hiện chương trình thiết lập môi trường cho hệ thống.prg Do mainmenu.prg: Chạy chương trình dọn dẹp môi trường. Do mainmenu. đó là Starting point.mpr Read Events Do cleanup. Starting point là một chương trình khởi động chứa các thành phần: Do setup. Ở đây.dll được cài đặt trong đường dẫn hoặc trong cùng thư mục với ứng dụng.Mở một đề án đã có Thực hiện lệnh: MODIFY PROJECT <tên đề án> Dịch đề án • Dịch sang APP: Khi này.mpr: Chạy file menu chính để thiết lập giao diện cho hệ thống.

You're Reading a Free Preview

Download
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->