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

là hệ CSDL dùng cho các tổ chức. bảo mật. thậm chí với cả một số cá nhân.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. Những bài toán quản lý có thể kể đến như: Bộ môn Tin học – ĐHTN 4 . • MySQL: Hệ CSDL mã nguồn mở. an toàn là không cao. doanh nghiệp lớn.trường (Field) và các dòng . là hệ CSDL dùng cho các tổ chức. tổ chức. Hệ quản trị CSDL cung cấp 2 tính năng chính sau: • • Lưu trữ. • Oracle: Phát triển bởi Oracle. doanh nghiệp lớn. • 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ỏ. Đảm bảo tính an toàn. quản lý dữ liệu. • Bảng (Table): Mô tả qua các cột . III.) thông qua các bảng (Table). tính bảo mật.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). 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 bảo tính an toàn. khai thác dữ liệu. 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. Công cụ truy cập. • Foxpro. là hệ CSDL dùng cho các tổ chức. môn học . • 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. doanh nghiệp vừa và nhỏ. Các Hệ quản trị csdl thường dùng hiện nay: • SQL Server: Phát triển bởi Microsoft. mỗi bảng lại được mô tả qua các trường dữ liệu.. (Đượ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). bảo mật. II. Bài toán quản lý Bài toán quản lý có ở hầu hết mọi đơn vị.. có khả năng triển khai trên mạng. kiểu (Type) và độ rộng (Width). được sử dụng chủ yếu cho các ứng dụng Web. Access: Phát triển bởi Microsoft. Khả năng đáp ứng trên mạng cao. Khả năng đáp ứng trên mạng cao. Mô hình dữ liệu của các hệ quản trị csdl là mô hình quan hệ. hàng hóa.

Quản lý lương. Quản lý sinh viên. lọc thông tin. Quản lý hàng hóa.. điểm.. Quản lý sách. Đặ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ý kế toán. • Khối lượng dữ liệu thường là rất lớn. thống kê. 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. 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 .Bài giảng Visual FoxPro • • • • • • Quản lý nhân sự.

Sau khi đã cài đặt Visual FoxPro.0.0.C2: Menu File/ Quit.C1: Từ cửa sổ Command. nó được kế thừa từ Foxpro for Windows. FoxPro được thừa kế và phát triển trên phần mềm DBASE III PLUS và DBASE IV. II.6. 4. những sản phẩm nổi tiếng của hãng ASTON-TATE.Bài giảng Visual FoxPro BÀI 2: TỔNG QUAN VỀ FOXPRO VÀ VISUAL FOXPRO I. Hãng Microsoft đã cho ra đời nhiều phiên bản Visual Foxpro 3. 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.0. 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. 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ý. Khởi động Visual Foxpro. Thoát khỏi VS FoxPro: . 5. Từ khi phát triển đến nay. Bộ môn Tin học – ĐHTN 6 .0. 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. gõ lệnh: Quit . chạy được trên hai môi trường DOS và Windows. Visual Foxpro là sản phẩm của hãng Microsoft.

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

Các tham số trong lệnh của fox có thể có. Từ khóa (Key Word): Là các từ mà Visual Foxpro đã sử dụng cho một mục đích nào đó. 3.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. • Các lệnh chỉ thực hiện trong chương trình. 5. [Tham số] . Bộ môn Tin học – ĐHTN 8 . 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ừ> . 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. Tham khảo tài liệu về tất cả các khóa của Visual Foxpro. Lệnh II. 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. Các lệnh trực tiếp cũng thực hiện được trong chương trình. ví dụ từ khoá CREATE có thể chỉ cần viết Crea (Visual Foxpro không phân biệt chữ hoa. kí hiệu. có thể không.gọi là Lệnh trực tiếp. Lệnh ?. hoặc có thể có nhiều. 4. chữ thường). Từ khóa. Một số lệnh trực tiếp của Visual Foxpro 1.Động từ tiếng anh (tương ứng với công việc cần làm). 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á đó. ?? -> 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. Và người dùng không được phép đặt tên trùng với từ khóa. 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) . III. 2.

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

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

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

F. (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.Bài giảng Visual FoxPro Việc diễn tả thứ tự ngày (D). Bộ môn Tin học – ĐHTN 12 . nghĩa là: o Nếu SET EXACT ON thì 'AB' = 'AB ' -----------> . OR NOT hay ! phủ định của toán hạng theo sau. AND. nếu bằng nhau thì so sánh tiếp. 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. Visual FoxPro quy ước: .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ố. 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. 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. (3) Lệnh SET MARK TO <bthức C>: để ấn định ký tự phân cách ngày tháng. : e. • 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. Ví dụ: 'ABCD' < 'ABCE' -----------> . nếu SET CENTURY OFF (dạng mặc định) thì năm được biểu diễn theo dạng hai con số.F. tháng (M). d. • Trường hợp hai chuỗi có độ dài khác nhau. thì việc so sánh dựa vào việc thiết lập môi trường SET EXACT ON/OFF. 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. Trong kiểu logic.F. • • 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ố.<.T. Nếu SET CENTURY ON thì năm được biểu diễn theo dạng bốn con số. 'a' < 'A' ------------> . Phép toán logic: Visual FoxPro có 3 phép toán logic: NOT. o Nếu SET EXACT OFF thì 'ABCD' = 'AB' -----------> .T.

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

Biến C chỉ có tác động trong chương trình con 2. người sử dụng không thể giải phóng biến loại này. RELEASE monhoc. 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). 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. 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. nó chỉ có ý nghĩa khi tập tin chứa nó được mở ra để sử dụng. • Phạm vi tác động của biến phụ thuộc vào vị trí mà nó được khai báo. Ví dụ RELEASE a. XVIII. 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 đó. o Biến trường: Tên các trường trong tập tin CSDL .Bài giảng Visual FoxPro ấn. Ví dụ o a=150 o STORE ”Visual Foxpro“ TO monhoc -> Tạo ra biến có tên là a. Bộ môn Tin học – ĐHTN 14 . Biến B có tác động trong chương trình con 1. kiểu là số -> Tạo ra biến monhoc. chương trình con 1 và chương trình con 2. 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ớ. 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. Visual Foxpro dùng lệnh RELEASE <tenbien> để xoá bỏ các biến. • 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.

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

Các phép số học: o o o o o Dấu âm. Từ khoá Từ khoá là những từ được Visual FoxPro sử dụng vào một mục đích riêng.Bài giảng Visual FoxPro 4.<=. 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. hàm.<> 4. Thông thường từ khoá là những động từ của lệnh thực hiện. người sử dụng không được đặt tên trùng với các từ khoá này. trừ 2. dương Luỹ thừa Nhân. biế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.<. Các phép logic: NOT. Bên trái tính trước. D. 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. Một biểu thức có thể rất phức tạp. 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. AND. dấu ngoặc tròn.>=. (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. Các phép chuỗi: +. 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. Bộ môn Tin học – ĐHTN 16 . phép toán. L..>.. chía Phần dư Cộng. Trị của biểu thức thuộc về một trong 4 kiểu: N. 3. bên phải tính sau.. Sau khi tính toán biểu thức sẽ cho một trị duy nhất. XX. Các phép quan hệ: =.

PRG XXI. b.. cũng có trường hợp là một kí hiệu như: !. 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. 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. 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ự. Trong Visual FoxPro có 3 cách để ban hành lệnh: a.. 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ài giảng Visual FoxPro Ví dụ: Câu lệnh MODIFY COMMAND LUONG. sau khi thi hành xong câu lệnh cũng được lưu lại trên cửa sổ lệnh. Lệnh trong Visual FoxPro thường là một động từ. tại cửa sổ lệnh đưa câu lệnh DO <tên file. c. Cách này chỉ hạn chế trong một số lệnh thông thường trên tập tin CSDL.PRG có 2 từ khoá là MODIFY và COMMAND có thể viết gọn là: MODI COMM LUONG. Dùng menu: Lệnh được ban hành bằng cách kích hoạt menu tương ứng. sau khi ấn Enter lệnh được thi hành ngay. Dùng cửa sổ lệnh: Lệnh được đưa vào cửa sổ lệnh. 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 đó. . Bộ môn Tin học – ĐHTN 17 . 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. ?. Để thực hiện chương trình này.PRG>. 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.

XXII. 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. 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. tiếp chọn chọn Save. Other file Bộ môn Tin học – ĐHTN 18 . Queries Documents: Forms. Text file. Chọn New file để tạo một Project trống. khi đó giao diện New của VS Foxpro xuất hiện • • • Tiếp đến chọn File type = Project (Mặc định). Labels. API Libraries. • 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. • Kết thúc việc tạo mới. Free Tables. cửa sổ Project Manager xuất hiện (xem phần tiếp theo) cho phép quản lý. Chọn Wizard để tạo một Project theo một trong các mẫu thiết kế sẵn của Microsoft. 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. Applications Other: Menu. Class Code: Program. Reports. làm việc với Project này.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 .

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. đòi hỏi phải có kiến thức và kinh nghiệm trong lĩnh vực cụ thể đó. Xuất phát từ việc phân tích yêu cầu. 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ý. 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. XXIII. 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 đó. rồi chọn Save để ghi lại. Tạo Database 1. • Chọn New Database để tạo một database trống. view. chọn mục Database rồi chọn New. Hình 1 . khi đó giao diện New database xuất hiện như hình 1.) trong csdl. • Giao diện Database Designer cho phép xem một cách tổng thể các thành phần (bảng. 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. • 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.Hộp thoại New database Bộ môn Tin học – ĐHTN 20 .Bài giảng Visual FoxPro BÀI 3: XÂY DỰNG DATABASE VÀ CÁC TABLES I.. Khi đó giao diện Database designer xuất hiện như hình 2.. mỗi quan hệ giữa các bảng .

chọn Tab Data. • Trong Project Manager. Sửa đổi Database • 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. 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. 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.Bài giảng Visual FoxPro 2. tiếp đến chọn mục Database. • Chọn lệnh Add. chọn Tab Data. 3. Hình 3 . 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) .Hộp thoại Open file (Select Database) Bộ môn Tin học – ĐHTN 21 .

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

ký tự đầu tiên của tên trường phải là chữ cá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.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. Ví dụ: bảng nhân viên (nhanvien. 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. ký tự gạch dưới. 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ỳ ý. 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. chữ số.dbf) có cấu trúc sau: Bộ môn Tin học – ĐHTN 23 .

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

Bài giảng Visual FoxPro • Nhập vào tên Table (file có phần mở rộng là dbf). 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 •

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

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

Nếu điều kiện sai thì lệnh được dừng ngay. 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. DISPLAY FIELDS HOTEN. CÁC LỆNH CƠ BẢN TRÊN FILE DBF 1. 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ở. 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.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>. WHILE <btL2>: chừng nào <btL2> còn đúng thì lệnh còn hiệu lực. • Đối với dữ liệu kiểu số nếu có phần thập Bộ môn Tin học – ĐHTN 30 . HSLUONG DISP FIEL HOTEN. 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à . 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ự.T.Bài giảng Visual FoxPro XXVI. Chú ý: • Các tên trường không được trùng nhau. 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). FOR <btL1>: mẫu tin nào thoả mãn <btL1> mới bị tác động bởi lệnh. • Lệnh: một từ khoá. 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. 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. Nghĩa là. 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ể.) hoặc đến hết file dữ liệu. cho biết mục đích của công việc. 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 đó. 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 đến khi gặp một bản ghi không thoả mãn biểu thức logic (có giá trị . 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. không được trùng với từ khoá.

trả lời <Yes> để tiến hành nhập các bản ghi. • • GO TOP: Dùng để chuyển con trỏ bản ghi về đầu file dữ liệu. b. 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ị. Khi đó file dữ liệu sẽ có dạng <tên file>. a. Định vị con trỏ đến một bản ghi 2. Đị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.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ị. lúc đó sẽ xuất hiện cửa sổ nhập dữ liệu cho trường này. ta đưa con trỏ đến hộp memo rồi nhấn tổ hợp phím Ctrl_PgUp. Sau khi kết thúc việc nhập dữ liệu cho nó. ta nhấn tổ hợp Ctrl+W để ghi lại. 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. • Để nhập dữ liệu cho trường MEMO. Bộ môn Tin học – ĐHTN 31 . nhấn tổ hợp <Ctrl+W> để lưu file dữ liệu lên đĩa. 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. Khi chọn Yes sẽ tiếp tục xuất hiện hộp thoại để nhập dữ liệu. GO BOTTOM: Dùng để chuyển con trỏ bản ghi về cuối file dữ liệu. • Lúc này: trả lời <No> thì sẽ quay lại cửa sổ lệnh. lúc này sẽ nhận được hộp thoại. Khi kết thúc việc nhập dữ liệu. Đị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. • Để kết thúc việc nhập cấu trúc ta ấn đồng thời phím Ctrl+W.DBF.

Bài giảng Visual FoxPro c. nếu có mệnh đề FOR thì phạm vi mặc định là ALL. 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 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ệ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ó. ngược lại trả về FALSE. 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=. Lệnh : COUNTINUE Khi sử dụng lệnh LOCATE. 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. Theo mặc định thì tất cả các trường trong bảng dữ liệu sẽ được hiển thị. 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. 3. ta có thể dùng lệnh COUNTINUE để tìm bản ghi tiếp theo thoả mãn <BieuThuc>. b. Đị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.F.) Lưu ý: Khi tìm thấy thì hàm FOUND() sẽ trả về giá trị TRUE. <phạm vi> mặc định là bản ghi hiện hành. Lấy dữ liệu từ bảng a.

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 . 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 “. Ví dụ: cho biết họ tên. 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. còn lệnh ?? thì không. bổ sung bản ghi a.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. Nếu có [BLANK] thì sẽ chèn một bản ghi trắng.”.hoten.namlv↵ 4. 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.’nam lam viec:’. Lệnh ? trước khi in dữ liệu thì xuống dưới 1 dòng. 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’. năm làm việc của người có số hiệu là 2: Go 2 ↵ ?’ho ten:’.

nếu có tham số [BLANK] thì sẽ bổ sung một bản ghi trắng. Bộ môn Tin học – ĐHTN 34 . mỗi bản ghi được thể hiện trong một hàng (dòng). Sửa chữa nội dung bản ghi a. 5. 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. 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.hoten) VALUE(“00001”. ta có thể xem và di chuyển hộp sáng từ trường này qua trường khác. Ví dụ: USE HOSOSV INSERT INTO HOSOSV(masv.”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).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 đó.

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ị. FieldName2 với giá trị của BieuThuc2 . • [NODELETE]: không cho phép xoá • [NOEDIT]: không cho phép sửa đổi. BROWSE FIELD HOTEN.. .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ị. NAMLV đ ể tiến hành sửa đổi.. Lệnh REPLACE Cú pháp: REPLACE [<Phạmvi>]<Trường 1>WI TH<Bthức 1>[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.. Ví dụ: Hiển thị nội dung của các t rường HOTEN. b.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. c.<Trường 2> WITH <Bthức 2> [ADDITIVE]. • [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. Tham số Scope xác định phạm vi tác động của lệnh.][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.. 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 .

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. Ví dụ: Đánh dấu xóa những nhân viên có năm làm việc trước 1951. nếu không thì FOX sẽ thông báo lỗi “Data Type Mismatch”. Lệnh: PACK Chức năng: Xóa các bản ghi đã được đánh dấu bằng lệnh DELETE. 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 .Bài giảng Visual FoxPro  Trường hợp mặc định là bản ghi hiện hành. 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. DELETE FOR NAMLV < 1 950↵ B2: Xóa chính thức các bản ghi. 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ụ 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.

bao gồm: tên trường. 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. dbf> với các trường trong mục <ds trường>. 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. GIOITINH. 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ở.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. Ví dụ: Sao lưu cấu trúc của NHANVIEN thành file có tên luu.Bài giảng Visual FoxPro Phục hồi các bản ghi đã được đánh dấu xóa. Thao tác với cấu trúc bảng.dbf nhưng chỉ gồm các trường: HOTEN. 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. kiểu và độ rộng của trường. Mặc định là tất cả các trường có trong bảng dữ liệu đang mở. 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.

Ví dụ: Tạo bảng dữ liệu NU.Bài giảng Visual FoxPro USE NHANVIEN↵ COPY STRUCTURE TO LUU FIELDS HOTEN. NAMLV. Mặc định. tất cả các bản ghi được sao chép.DBF gồm các trường HOTEN. NGAYSINH. • Ds trường để chỉ định các trường được sao chép.Dbf từ file NHANVIEN. GIOITINH. NAMLV↵ Chú ý: Chỉ sao chép cấu trúc chứ không sao chép nội dung. USE NHANVIEN COPY TO NU FIELDS HOTEN. 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ở. NGAYSINH. NAMLV FOR !GIOITINH USE NU &&Mở Để XEM KếT QUả LIST Bộ môn Tin học – ĐHTN 38 . • 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.

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

Ví dụ 1: Hiển thị theo thứ tự giảm dần của namlv của các nhân viên. Thứ tự của bản ghi ở đây là thứ tự sắp xếp. 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. Ví dụ 1: Hiển thị theo thứ tự tăng dần của namlv của các nhân viên. 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á>. khi truy xuất dữ liệu của bảng. 2. use NHANVIEN↵ index on -NAMLV to CMNAMLVG list Ví dụ 2: Hiển thị theo thứ tự giảm dần của ngaysinh.IDX) chỉ có hai trường: trường khoá sắp xếp và trường số hiệu bản ghi. use NHANVIEN index on date()-NGAYSINH to CMNSINHG list Bộ môn Tin học – ĐHTN 40 . thứ tự của các bản ghi là thứ tự được quy định trong file chỉ mục này. 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. 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.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à . 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 3. • 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. XXVIII..F. nếu tìm thấy thì Bộ môn Tin học – ĐHTN 41 . 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. Nếu tìm được. hàm FOUND() sẽ cho giá trị . hàm EOF() có giá trị . Lệnh continue Cú pháp : CONTINUE Chức năng : Theo sau lệnh LOCATE. • REINDEX: D ù n g đ ể c ậ p n h ậ t f i l e c h ỉ m ụ c . 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. dùng để tìm bản ghi kế tiếp sau thỏa mãn điều kiện đã nêu. Tìm kiếm Tìm kiếm tuần tự a.T. 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>. • SET INDEX TO: Dùng để đóng file chỉ mục.

kết quả được đưa ra màn hình. Kết quả được đưa ra màn hình hay đưa vào <biến nhớ> nếu có TO. Ví dụ: 1. use NHANVIEN index on . tìm nhân viên có tên “Nguyen Van AN”. 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. Mặc định.F. Sắp xếp theo thứ tự giảm dần của NAMLV. Bộ môn Tin học – ĐHTN 42 .NAMLV to CMNAMLVG list seek -1981 disp XXIX. ‘ 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ố. use NHANVIEN index on upper(HOTEN) to CMHOTEN seek “Nguyen Van An” disp 2.Bài giảng Visual FoxPro hàm FOUND() có giá trị . 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: ‘. songuoi.T. và hàm EOF () có giá trị . 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. Sắp xếp theo thứ tự tăng dần của Họ Tên. của các bản ghi trong bảng dữ liệu. 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>.

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. Mặc định thì tất cả các trường kiểu số đều được cộng dồn. lệnh sẽ lấy giá trị đó đem chia cho tổng số bản ghi tham gia vào câu lệnh.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 . PHUCAP to tbluong. WHILE. PHUCAP to tongluong. 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. tongpc ?’ tong luong la:’ . PHU CAP. nếu có FIELDS <danh sách trường> thì chỉ có các trường liệt kê mới được cộng. tbluong ?’ trung bình phu cap:’ . tbphucap ?’ trung binh luong:’ . Ví dụ: dựa vào bảng NHANVIEN. bảng dữ liệu phải định sắp xếp theo khoá. cho biết tổng LUONG phải trả và tổng PHUCAP là bao nhiêu. Ví dụ: Dựa vào bảng NHANVIEN. tong luong ?’ tong phu cap la:’ . cho biết trung bình mỗi nhân viên nhận được bao nhiêu LUONG.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>. 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. Chú ý: Trước khi dùng lệnh này. use NHANVIEN sum LUONG. Ví dụ: Dựa vào bảng VATTV. use NHANVIEN average 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 . 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.

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

Để 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 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. 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 . TagName .Tên chỉ mục trong file kết hợp (file dạng CDX). thỏa mãn điều kiện cho trước. 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í 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.tên file dạng IDX (đã tạo bằng lệnh INDEX trước đó). Trong đó: IDXFile .

trong đó BieuThuc là tiêu chuẩn đế đặt quan hệ. Vùng 3 (hoặc DIEM). • Chọn các tables -> Click vào Relations. Ví dụ: SELECT A USE DMLOP ALIAS LOP Bộ môn Tin học – ĐHTN 46 .Bài giảng Visual FoxPro XXXII. Lệnh SELECT <n | TableName| AliasName > Lệnh này cho phép chọn vùng làm việc. 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. 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). Lưu ý: Bảng được mở trong vùng AliasName phải được index theo BieuThuc này rồi. Vùng 2 (hoặc vùng B hoặc SINHVIEN). Visual Foxpro cho phép mở tối đa là 255 vùng làm việc đồng thời. 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). TableName là tên bảng hoặc aliasname. Lưu ý: Khi chọn n=0 thì Visual Foxpro sẽ tự động chọn vùng cao nhất còn trống. mỗi bảng trên một vùng làm việc (WorkArea) nhất định. 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. trong đó: n là số thứ tự của vùng cần chuyển đến. mỗi vùng được xác định qua tên hoặc số hiệu vùng. • Menu Window/Data sesion.

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). tháng. min(expr). 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. 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. 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. Bộ môn Tin học – ĐHTN 47 . Thứ tự kết quả hiển thị của lệnh này phụ thuộc vào lệnh SET DATE. 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.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.

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

mối quan hệ tạm thời .Bài giảng Visual FoxPro CHƯƠNG IV: QUERIES VÀ VIEWS I. Chú ý: Tạo Index cho các trường trước khi thiết lập quan hệ giữa các bảng. Không giống như các mối quan hệ tạm thời được tạo bằng lệnh SET RELATION. 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. Chọn Database cần làm việc. Mối quan hệ bền vững được tạo trong quá trình thiết kế CSDL. hoặc trong quá trình thiết kế cơ sở dữ liệu . Thiết lập quan hệ giữa các bảng Trên thực tế. 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ác bảng của CSDL thường có quan hệ nào đó với nhau.1.mối quan hệ bền vữ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. Thiết lập quan hệ bền vững giữa các bảng trong CSDL. 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. 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. Chọn mục Modify. Để đặ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. Mối quan hệ giữa các bảng có thể thiết lập qua lệnh (Lệnh SET RELATION ) . Lần lượt thêm các tables vào. khi đó giao diện Database Designer xuất hiện. • Dùng để lưu thông tin về mối quan hệ toàn vẹn. 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). • • Tạo index trong Table Designe. 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. • Được thể hiện trong Data Environment.

Thêm (Insert).Bài giảng Visual FoxPro Hình 6.2. 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. tiếp đến chọn lệnh Referential Integrity như hình 6.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. Để thiết lập quan hệ toàn vẹn giữa các bảng. D_Click vào đường liên kết bất kỳ giữa 2 bảng.2 Bộ môn Tin học – ĐHTN 50 . • 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. Hình 6. có thể hiệu chỉnh mối quan hệ giữa các tables ở bước này. Các qui tắc đó sẽ kiểm soát các việc như thay đổi (Update).

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.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. 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). các thông tin của một quan hệ gồm có: Bảng cha (Parent Table). Bộ môn Tin học – ĐHTN 51 . • 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á. • 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. Trường/Biểu thức quan hệ trên bảng con (Child Tag).3 Hình 6. 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. 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.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). 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. 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). đây là giá trị mặc định. Trường/Biểu thức quan hệ trên bảng cha (Parent Tag). đây là giá trị mặc định.

Bài giảng Visual FoxPro Hình 6. Ví dụ Bộ môn Tin học – ĐHTN 52 . 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. đây là giá trị mặc định. Các qui tắc ứng xử ở đây là: Hình 6.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).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.

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

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

Column.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). Min.Define Layout: Bộ môn Tin học – ĐHTN 55 .Finish). Tuỳ chọn Subtotal cho phép thêm vào cột cuối để tính subtotal cho mỗi dòng. trong ví dụ này thì Summary chọn là Count. Data) tương ứng.Add summary Information: Chọn các hàm thống kê đối với đối tượng Data.> Được kết quả thể hiển của Query. Trong cửa sổ Project Manager chọn Query vừa tạo rồi chọn lệnh Run . 2. các hàm này có thể là: Sum. Chọn Next để tiếp tục 4. 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 đồ. 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 . Khi đó sử dụng Graph Wizard như sau: 1. Step 1 . Step 3 . Chọn Graph Wizard. Max.Select Fields: Như ví dụ trên 3. Step 2 . Countm Average. Column (Mamon) và Data (Diem1) bàng cách nhấp-thả (Drag) các trường vào các ô (Row. chọn OK.

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

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

Bài giảng Visual FoxPro 6. 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). 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. Tiếp đến giao diện Query xuất hiện như hình 6.6 .Query Designer Đường nối thể hiện quan hệ giữa các bảng. Hình 6.

       Available Fields: Các filed có thể chọn cho query. Bộ môn Tin học – ĐHTN 59 . 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.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. Các bảng dùng cho 1 query thường có quan hệ với nhau. 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. 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 Remove: Loại bỏ 1 trường đã chọn trong Selected Fields. Khi truy xuất dữ liệu. H5. các bản ghi này không có trong Hoađon. dùng khai báo AS <TenTruong> để đặt tên cho biểu thức này). 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. Lệnh Remove All: Loại bỏ tất cả các trường đã chọn trong Selected Fields. đơ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. Như vậy khi ghép 2 bảng này mặt hang H4. Lệnh Add All: Thêm tất cả các trường từ Available Fields vào Selected Fields. Lệnh Add: Thêm trường đã chọn từ Available Fields vào Selected Fields. Selected Fields: Các trường đã chọn. 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ì.

Vì vậy. 3. • Thẻ Group By: chọn field hoặc biểu thức làm tiêu chuẩn nhóm. o Chọn một field làm chuẩn để chọn các record.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ây dựng biểu thức tính toán kết quả nhóm: o Trong thẻ Field. • Có thể giới hạn kết quả hiển thị: 60 Bộ môn Tin học – ĐHTN . o Chọn nút Add để đặt biểu thức này vào hộp Selected Fields. o Case: không phân biệt chữ hoa hay chữ thường. cần đặt điều kiện lọc dữ liệu cho kết quả Query trong tab Filter. Sắp xếp thứ tự các field kết xuất: trong phần selected fields. Trong tab Order By: o Đặt tiêu chuẩn sắp xếp: tại Selected Fields. • • • • • • • Chọn các field cần xuất: tại available fields chọn tên field -> Click nút Add. Có thể thực hiện việc tính toán trên nhóm các records. Loại bỏ field: tại selected field chọn field cần bỏ -> click nút Remove. o Từ danh sách Criteria. 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. hộp Functions and expressions: gõ biểu thức tính toán. Sắp xếp các kết quả Query. Xác định các kết quả. o Loại bỏ tiêu chuẩn sắp xếp: chọn field muốn loại bỏ -> Remove. 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 đó. • 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. kéo ô vuông tương ứng với field và thả vào vị trí thích hợp. 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. 4. 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>. o Nhập tiêu chuẩn so sánh trong hộp Example. chọn tên field -> Add. Nhóm kết quả của Query Là tập hợp những record cùng loại. chọn biểu thức so sánh.

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

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

MAX(1. Nhận giá trị trả về từ hàm. • 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. • Tham trị: Chỉ rõ một biến sẽ được truyền tới hàm bằng giá trị.9): trả về giá trị 9. 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.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. 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. Ví dụ: DATE(): trả về ngày hiện hành của hệ thống.3. 4. 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.T. Ví dụ: Hàm dưới đây trả về một ngày sau khi cộng thêm 14 ngày. tuy nhiên có thể trả về bất kì giá trị nào bằng câu lệnh RETURN.. mọi hàm đều trả về giá trị .6. Thông thường. Truyền tham biến hay tham trị. 7. Cách gọi Cách 1: sử dụng câu lệnh DO. Bộ môn Tin học – ĐHTN 63 . 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. Các thủ tục và hàm do người sử dụng tự tạo. 6. ?myfunc() Xuất giá trị của hàm ra cửa sổ hiện hành. phải được bắt đầu bởi dấu * hay && • *: Bắt đầu một dòng • && : Viết sau một lệnh XXXIV. 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.

nếu đã có thì thay thế bởi giá trị mới. hay . 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> . 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..Bài giảng Visual FoxPro XXXV. kết thúc bởi phím Enter. Kiểu Logic: Nhập giá trị . b. Kiểu Date: Phải được để trong dấu {}. giá trị nhận được sẽ đưa cho <biến>. Ví dụ: ACCEPT ‘nhap ho ten’ to bhoten ? ‘Ho ten vua nhap'. c Nhập giá trị cho biến từ bàn phím. ' hay ". b. ".F. 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 ' . nếu <biến> chưa tồn tại nó sẽ khai báo. bhoten <Bthức chuỗi> là một câu nhắc nhở người sử dụng. Ví dụ: STORE 0 To a..T.. 64 Bộ môn Tin học – ĐHTN . Kiểu Numberic: Nhập dữ liệu kiểu số..

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ó giá trị . Cấu trúc tuần tự. ngược lại thực hiện các lệnh tiếp theo sau lệnh ENDIF. Bộ môn Tin học – ĐHTN 65 . nếu biến chưa có thì nó sẽ tự khai báo. 2. nếu đã có thì nó sẽ thay giá trị của biến bởi giá trị vừa nhập. <Bthức L> sẽ được tính. Có hai dạng: a. Quy ước: Chương trình được thực hiện từ trên xuống dưới.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.T. 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. Còn được gọi là cấu trúc chọn lựa. Cấu trúc rẽ nhánh. Các cấu trúc điều khiển chương trình 1. thì <các lệnh> sẽ được thực hiện. XXXVI.

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

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

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ó.

Tương ứng với một bản ghi tìm được. .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. ngược lại vòng lặp sẽ dừng. <các lệnh> sẽ được thực hiện.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. Chú ý: <trị-đầu> phải nhỏ hơn <trị cuối>. hiển thị nữ nhân viên sinh năm đó. Ví dụ: Viết chương trình nhập năm (bằng chữ số). 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.

.

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

<đối tượng>: nếu đối tượng nằm trên form đang thao tác. Ví dụ: Giao diện của một Form nhập dữ liệu 1. 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. 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. ta dùng: <tên form>. • Chạy form: Từ cửa sổ lệnh. mặc định phần mở rộng là scx. chọn save để lưu vào <tên form>. hiển thị thông tin. nếu muốn thay đổi thuộc tính của 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. Muốn thay đổi giá trị các thuộc tính trên form. FORM Form được dùng để làm giao diện nhập. chọn Documents. <đối tượng>: nếu <đối tượng> không cùng với form đang thao tác. <this form>.XXXVIII. chọn Form rồi chọn Form cần thi hành rồi nhấn Run. • Quản lý form Lưu Form: Từ menu file.

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

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

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

Nút lệnh dạng chữ (Text). Step 3 . 4. • • • Text . 5. Picture .Không có button. Button type: Kiểu nút lệnh. Step 4 – Finish Nhập vào tiêu đề cho form rồi chọn Finish.Tuỳ chọn.Sort Records Sắp xếp: Chọn 1 trong các trường để sắp xếp hoặc có thể bỏ qua. • Custom . • Nên chọn là Text hoặc Picture. Tiếp đến nhập vào tên form rồi chọn Save để ghi lại.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. .Nút lệnh dạng ảnh. No button .

Giao diện Form Designer xuất hiện: Trong đó: • • Phía trên là thanh toolbar Form Designer. Tạo form thông qua thiết kế Để tạo form thông qua thiết kế. Mở Project cần thực hiện. 2. Bên phải là thanh toolbar Form Controls. 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ác thành phần liên quan đến công cụ Form Design. trong Project Manager chọn Tab Documents. Chọn Form 3. • • • 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) . Chọn New 4. Chọn New Form.7.

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.8. 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.

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

• Chọn form DMKHOA • Chọn Modify. • Procedure: Hiển thị tình huống (event) có thể đáp ứng của đối tượng (Object) đó. 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. 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. • 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.Tên của form DMHANG). khi đó giao diện Form Designer xuất hiện Trong Form Designer D_Click chuột trái vào nền Form. trong ví dụ này tình huống cần chọn là Activate. • Chọn mục Form và mở rộng.butTONSET1. Activate: Tình huống này xảy ra khi form được “kích hoạt” (active). 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.click .cmdEnd. Cách thực hiện: • Trong cửa sổ Project Manager chọn mục Documents. 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. 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 .

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. butTONSET1: Tên lớp chứa các nút lệnh. 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. 2. Click: Tình huống click của đối tượng cmdEnd. Ví dụ: Hiển thị thông báo “Destroy” khi tình huống này xảy ra. cmdEnd: Tên nút lệnh Bottom. 5. Destroy: Tình huống này xảy ra khi form được hủy bỏ (destroy). 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. 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!”. . 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. Ví dụ: hiển thị một thông báo khi thôi kích hoạt 1 form. Ví dụ: Hiển thị thông báo “Init” khi tình huống này xảy ra.Trong đó: • • • • Thisform: là tên thay thế của form hiện hành. 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!”. 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). đó 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. Init: Tình huống này xảy ra khi form được khởi tạo.

y1 đến x2. 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.y): Cho phép vẽ lên form 1 vòng tròn bán kính r.y2 • Print(cText): In một dòng text ra màn hình • Pset(x.y • Release: Xóa form hiện thời. 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. tâm tại x. Ví dụ: Hiển thị thông báo “Load” khi tình huống này xảy ra.y): Vẽ điểm x. • Show: Hiển thị form. 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.y. Load: Tình huống này xảy ra trước khi các đối tượng được khởi tạo. 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. • Vào menu View/Data environment. • Circle(r. • Cls: Xóa sạch nền form. Một số phương thức (Methods) thường sử dụng của Form • AddObject(cName.x2. • Hide: ẩn form • Line(x1. x.y1.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. cClass): thêm mới một đối tượng. XXXIX. xuất hiện giao diện: .

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

mỗi một cửa sổ đều xuất hiện trên màn hình nền của Window. • Control không gắn liền với dữ liệu. • Floating form: Là form thuộc về một form cha. 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.  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. o Thuộc tính ShowWindow: 2 – As Top Level Form. click và di chuyển chúng khắp trên Form. XLI. • Cho phép người sử dụng một giá trị nằm trong một khoảng nhất định. 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. 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. • 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 dùng trong một ứng dụng MDI. nó nằm dưới cửa sổ form cha. 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. Thêm một control vào form: • Trên thanh công cụ Form Control.XL. Khi bị thu nhỏ. Sử dụng Control Control dùng để thao tác với cơ sở dữ liệu. • Cho phép người sử dụng nhập các giá trị không thể định trước. Form con không thêt di chuyển ra khỏi form cha. Single Document Interface (SDI): Là ứng dụng chứa một hay nhiều cửa sổ độc lập. có thể dùng để gõ nội dung vào. Visual Foxpro cho phép tạo nhiều loại form: • Child form: Là form nằm trong một form khác. • 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. chọn nút Control cần dùng: . 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. • Top-level Form: Là form độc lập. không ảnh hưởng đến form cha. Form set XLII. • Thể hiện thông tin. 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.

2. • 1 . Caption: Text hiển thị như một nhãn. ForeColor: Đặt mầu chữ. 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. Label cũng có nhiều Methods và Events. Width: Độ rộng của label. 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. 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. Thuộc tính này có thể nhận một trong các giá trị: • 0 .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”).T. chú thích. Các Properties thường sử dụng: • • • • • • • • • • • • • • Alignment: Canh lề phần text hiển thị của label. Thuộc tính này có thể nhận các giá trị: • 0 – Left • 1-Right Canh phải.o Drag nút Control này lên Form.Center canh giữa.F. BackStyle: Thiết lập tính chất nền. BorderStyle: Thiết lập thuộc tính đường viên của đối tượng. BackColor: Đặt mầu nền của Label. Label: Sử dụng cho: hiển thị nhãn. Các Properties thường sử dụng: .Opaque không cho quan sát các đối tượng phía sau. Thuộc tính này nhận chuỗi text bất kỳ. 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 nhận 2 giá trị: . • 2 . hoặc . FontName: Đặt Font chữ. o Hoặc Click lên trên Form. 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. 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. • Khai báo nguồn dữ liệu thông qua thuộc tính ControlSource hoặc RecordSource 1.

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. đặt thuộc tính ControlSource = text1 (text1 là 1 biến). A . khi đó cần thực hiện Refresh để làm tươi lại dữ liệu trên Text. Value: Giá trị là xâu text hiển thị trên đối tượng này.Vô hiệu lực Format: Định dạng dữ liệu hiển thị. Visual Foxpro qui định kí hiệu sử dụng cho InputMask của textbox. 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ỳ. . SelectOnEntry: Thiết lập chế độ đánh dấu text khi đối tượng này nhận quyền điều khiển. 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ế. .có hiệu lực. Ví dụ đặt Format là !A (! ..T. Không cho phép.Chỉ nhập các ký tự) InputMask: Định dạng dữ liệu nhập.. Ví dụ. thêm 1 textbox vào form và đặt thuộc tính controlSource=”Hososv.) và dấu chấm (. .T. 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. . . Thuộc tính này nhận các giá trị: .99 để giới hạn giá trị số nhập vào chỉ được nhỏ hơn 1000000 và chỉ có 2 số lẻ. Thuộc tính này nhận các giá trị: .Cho phép chế độ đánh dấu. Nhật. nếu không thì chỉ được sử dụng chuột để chọn textbox. Đức.999. 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.F. Enabled: Cho phép có hiệu lực hay vô hiệu khả năng đáp ứng sự kiện của textbox. • SetFocus (method): Đưa con trỏ đến đối tượng này.nhập chữ số) cho phép nhập 3 chữ số hoặc 999. Visual Foxpro qui định kí hiệu sử dụng cho Format của textbox. Ví dụ.• • • • • • • • • 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).Hiển thị chữ hoa. o Ví dụ đặt InputMask là ### (# .hoten” ->Run Form. đây là giá trị mặc định).) sẽ tự động xuất hiện trong vùng nhập. 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ỹ. sau đó gán cho text1 =”Visual Foxpro”. .F. dấu phẩy (.

valid được viết như sau: khoahoc=this.• 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. Giá thiết textbox được thiết lập các thuộc tính: Name = Khoa Maxlength=10 Khi đó sự kiện Khoa.lblTenKhoa.valid được viết như sau: hk=this. xét ô text khóa.value IF !hk$"1.ten ELSE IF !EMPTY(khoahoc) THEN WAIT WINDOW "Ma khoa khong dung!!" NOWAIT RETURN 0 ELSE thisform. Ta có học kỳ chỉ nhận 2 giá trị là 1 hoặc 2. Ví dụ 1: Trong hình 1. 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.Value SELECT dmkhoa LOCATE FOR (ma=khoahoc) IF FOUND() THEN thisform.Caption=dmkhoa. nếu không hợp lệ thì có thể yêu cầu người sử dụng nhập lại. Giá thiết textbox được thiết lập các thuộc tính Name = hocky Maxlength=1 Khi đó sự kiện hocky. 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.Caption="" .2" then WAIT WINDOW "Gia tri khong dung! Hoc ky = 1 hoac 2" NOWAIT RETURN 0 ENDIF Ví dụ 2: Trong hình 1.lblTenKhoa. xét ô text học kỳ. để đả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.

Page Up. Edit box có chế độ tự động Word-Wrapping. thường là 1 field của table Cho phép chèn Tab vào trong Edit box. SpinnerHighValue Giá trị lớn nhất mà spinner hiển thị khi click vào mũi tên lên. Sử dụng cho: Tạo các nút lệnh. Đặt dòng text (tooltip) khi đưa con trỏ tới nút lệnh . Cho phép đưa một ảnh vào nút lệnh. Có hiển thị thanh cuộn trong khung Edit box hay không. Cho phép chỉnh sửa nội dung hay không. Property ControlSource AllowTabs ReadOnly ScrollBars 4. 3. Nút này có thể chọn được hay không. 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. 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. Command Button và Command Button Group Diễn giải Khai báo nguồn dữ liệu gắn với Edit box. EditBox Cho phép chỉnh sửa dữ liệu cho một field kí tự hay memo. 5. Spinner Thường được dùng chọn hoặc nhập vùng giá trị kiểu số. KeyboardLowValue Giá trị nhỏ nhất mà người sử dụng có thể nhập vào. SpinnerLowValue Giá trị nhỏ nhất mà spinner hiển thị khi click vào mũi tên lên.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). 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. Hình sẽ hiển thị khi nút này được nhấn. dùng các phím chức nă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.

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

List box và Drop-down List box Cung cấp cho người sử dụng một danh sách cuốn. Bốn trạng thái của checkbox: 0 (. Đối với Drop-down list box. bật hay tắt.. Khi đó sự kiện click được viết như sau: IF this.Giá trị 0 hoặc .F. 2. hoặc event nào đặt biệt. 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.). 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.T. thuộc tính Style: .Caption="Nam" ELSE this. 7.Giá trị 1 hoặc . CheckBox Sử dụng cho: Lựa chọn một trong 2 khả năng: đúng hay sai. Các Properties thường dùng: • • Caption: Thể hiện phần text của đối tượng Value: Checked .F. 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.Caption="N÷" ENDIF 8. hoặc ngược lại.T. Trong List box.T. không chọn nếu là .F.). chứa một số thông tin để chọn. mở hay đóng.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ử . nhiều mục được thể hiện một lúc. 1 (. 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à . Các Methods và Events thường dùng: Không có methods. và Unchecked là nữ.Value THEN this. Unchecked . R_Click vào đối tượng/ Edit và chọn phần tử để thiết lập các thay đổi.

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. Thuộc tính ColumnCount cho phép khai báo các field đầu tiên cần thể hiện.T. Các thuộc tính của Combo box Property ControlSource DisplayControl InputMask Diễn giải Chỉ rõ field trong table. 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 = .• 0 (Drop-down Combo): vừa cho phép chọn một mục trong danh sách. Có thể thể hiện thông tin từ nhiều Table. 2: Alias Nguồn giá trị từ một hay nhiều field của Table. Chỉ rõ loại dữ liệu có thể gõ vào trong combo box . 6: Fields Chỉ rõ field hay danh sách field cần thể hiện. Chỉ rõ số lượng mục được hiển thị trong danh sách. 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. 1: Value Phải chỉ rõ giá trị trong thuộc tính RowSource. Sử dụng thuộc tính ColumnWidths để quy định độ rộng của các cột. Có thể sử dụng method AddItem và RemoveItem. 5: Array Nguồn dữ liệu là từ các phần tử của mảng. 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. 3: SQL statement Thêm câu lệnh SQL vào thuộc tính RowSource. Dùng dấu phẩy để phân cách giữa các field trong RowSource. nơi dùng để lưu giá trị được chọn hay gõ vào từ danh sách. Đ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. nguyên mẫu). Các thuộc tính thường sử dụng. ColumnCount: Xác định số cột của Grid. 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. chọn Properties. RowSource Chỉ rõ nguồn dữ liệu của các mục trong danh sách. • • Row Source: Xác định bảng dữ liệu cần thể hiện. • 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). Chú ý: • Nếu Row Source không được chỉ ra thì lấy bảng dữ liệu hiện hành. Grid Dùng để thể hiện dữ liệu theo dạng bảng. 9. Grid đang ở chế độ Edit có một đường viền bao quanh.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. • Control Source: Được xác định cho từng cột. . Image Dùng để đưa các hình ảnh trên form. • • 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. 11. 10. • Allow Addnew: Cho phép thêm các bản ghi mới hay không. thu nhỏ. dùng để khai báo nguồn dữ liệu cho cột đó. Timer Dùng để thiết lập các công việc thực hiện đều đặn sau một khoảng thời gian. Các thuộc tính thường 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.

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.

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

Sửa đổi layout của report. 4. Quá trình thiết kế gồm 4 bước chính như sau: 1. 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ả. 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. 2. chọn Report sau đó làm theo các bước hướng dẫn. 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. Xem và in report. Tạo Report layout: Có thể sử dụng report wizard hay report designer.CHƯƠNG VII: REPORT XLIII. Report có hai thành phần cơ bản cấu thành: dữ liệu nguồn. thông thường là các bảng dữ liệu và hình thức trình bày là dạng thức của report sẽ định dạng cách kết xuất dữ liệu. chọn Wizard. . Tạo Report bằng Wizard Từ menu Tools. 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.

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

. chọn title summary Page Header: Để in trên mỗi header của mỗi trang in.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.

Page Footer: In phần Footer của mỗi trang. từ menu report chọn data grouping. Để chọn. Group header: Xuất hiện mỗi khi bắt đầu nhóm mới. Để chọn. từ menu file. chọn giá trị cho column number lớn hơn 1. 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.• • • • • • • Column header: Để in tên header của mỗi cột. Group footer: In phần Footer của mỗi nhóm. . XLVI. Kéo rê chuột trên report để xác định vị trí của nó trên report. Hiệu chỉnh các control. từ menu report chọn data grouping. từ menu file chọn page setup. Để chọn. chọn page setup. Sumary: Phần tóm tắt của mỗi report. Column footer: In phần Footer của mỗi cột. Để chọn. 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 giá trị cho column number lớn hơn 1.

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

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à *. 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. Tạo menu hệ thống.CHƯƠNG VIII: TẠO MENU VÀ QUẢN LÝ ĐỀ ÁN I. từ màn hình Menu Designer chọn lệnh Generate. kiểm tra. Biên dịch menu Tiến hành chạy thử. 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. Tạo menu hệ thống thông qua Menu Designer Sau khi thực hiện lệnh Create menu. XLVII. XLVIII. Gắn các câu lệnh tương ứng với công việc. cần những menu con nào? Sử dụng menu designer. tạo menu và các Submenu. 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. File menu sau khi dịch sẽ có phần mở rộng là MPR.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. ta được màn hình giao diện Menu: Designer như sau: .

. • Kết thúc.. o Procedure nếu muốn thi hành thủ tục o Command nHu muHn thHc hiHn mHt lHnh. hình ảnh. hình ảnh con trỏ. Một đề án trong Visual Foxpro được lưu trữ trên file có phần mở rộng mặc định là *. XLIX.PRJ... 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. chọn: o Submenu nếu muốn tạo menu con. ta đưa vào tên cần hiển thị trên giao diện. ấn Ctrl_W. Trong hộp Result. 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). Quản lý đề án Đề án là tên gọi để chỉ đến ứng dụng mà bạn đang xây dựng.• • Trong hộp Prompt. tài liệu.

. Để 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. • Class: Liệt kê các thư viện được sử dụng. • 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. • Documents: Chứa các tài liệu sử dụng cho đề án. o Query: Là cấu trúc để lấy thông tin từ các bảng table.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. 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. 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. bao gồm các form và report. Để 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).

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

Sign up to vote on this title
UsefulNot useful

Master Your Semester with Scribd & The New York Times

Special offer: Get 4 months of Scribd and The New York Times for just $1.87 per week!

Master Your Semester with a Special Offer from Scribd & The New York Times