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

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

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

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

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

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

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

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

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

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

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

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. • Phạm vi tác động của biến phụ thuộc vào vị trí mà nó được khai báo. 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ó chỉ có ý nghĩa khi tập tin chứa nó được mở ra để sử dụng. người sử dụng không thể giải phóng biến loại này.Bài giảng Visual FoxPro ấn. Biến B có tác động trong chương trình con 1. chương trình con 1 và chương trình con 2. 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 . kiểu là số -> Tạo ra biến monhoc. 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 . Ví dụ RELEASE a. • 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. XVIII. 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). RELEASE monhoc. 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. 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. Biến C chỉ có tác động trong chương trình con 2.

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

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

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

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

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 .

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

Bài giảng Visual FoxPro 2. • Chọn lệnh Add. chọn Tab Data. • Trong Project Manager. 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. 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ình 3 . chọn Tab Data. 3. 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. khi đó cửa sổ Database designer xuất hiện. tiếp đến chọn mục Database. • Chọn Database cần sửa (vì trong một Project có thể có nhiều hơn một Database) rồi chọn lệnh Modify. Sửa đổi Database • Trong Project Manager.Hộp thoại Open file (Select Database) Bộ môn Tin học – ĐHTN 21 .

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

chữ số. • 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.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.dbf) có cấu trúc sau: Bộ môn Tin học – ĐHTN 23 . 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. 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ỳ ý. ký tự đầu tiên của tên trường phải là chữ cái. mỗi bảng dữ liệu có hai phần: cấu trúc và nội dung của bảng. 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. mỗi file dữ liệu chỉ có một cấu trúc cụ thể. ký tự gạch dưới.

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

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

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

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

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

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

Lệnh LIST Cú pháp: List [<phạm vi>] [fields<danh sách trường>] 32 Bộ môn Tin học – ĐHTN . Lệnh : COUNTINUE Khi sử dụng lệnh LOCATE. ta có thể dùng lệnh COUNTINUE để tìm bản ghi tiếp theo thoả mãn <BieuThuc>. 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.Bài giảng Visual FoxPro c. 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.F. Lệnh này sẽ đưa con trỏ bản ghi đến bản ghi đầu tiên thoả mãn BieuThuc nếu tìm thấy.) Lưu ý: Khi tìm thấy thì hàm FOUND() sẽ trả về giá trị TRUE. Định vị con trỏ có điều kiện Cú pháp: LOCATE FOR <BieuThuc> Trong đó BieuThuc là một biểu thức Logic. Lấy dữ liệu từ bảng a. Theo mặc định thì tất cả các trường trong bảng dữ liệu sẽ được hiển thị. <phạm vi> mặc định là bản ghi hiện hành. 3. 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=. nếu có mệnh đề FOR thì phạm vi mặc định là ALL. ngược lại trả về FALSE. b. Lệnh Display Cú pháp: display [<phạm vi>] [fields<danh sách trường>] [For<bthức logic>] [While<bthức logic>] [on|off] Chức năng: Hiển thị nội dung của các bản ghi trong <phạm vi> được chỉ định và thoả mãn điều kiện của các biểu thức logic đi sau FOR và WHILE nếu có.

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

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

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

Tùy chọn FOR cho phép thực hiện lệnh với những bản ghi thỏa mãn BieuThucLogic. Ví dụ: USE HOSOSV REPLACE ALL ghichu with “Ghi chu ALL” GO 5 REPLACE ghichu with “Ghi chu 5” GO 15 REPLACE NEXT 10 ghichu with “Ghi chu Next 10” REPLACE REST ghichu with “Ghi chu REST” Chú ý: Kiểu dữ liệu của <Bthuc> và của <trường> tương ứng phải tương đương nhau. 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ụ: Đánh dấu xóa những nhân viên có năm làm việc trước 1951. 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. 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.Bài giảng Visual FoxPro  Trường hợp mặc định là bản ghi hiện hành. nếu không thì FOX sẽ thông báo lỗi “Data Type Mismatch”. Bộ môn Tin học – ĐHTN 36 . DELETE FOR NAMLV < 1 950↵ B2: Xóa chính thức các bản ghi.

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

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

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

2. 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 date()-NGAYSINH to CMNSINHG list Bộ môn Tin học – ĐHTN 40 . Thứ tự của bản ghi ở đây là thứ tự sắp xếp. 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.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 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á>. mặc định là tất cả các bản ghi. khi truy xuất dữ liệu của bảng. 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. 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ự giảm dần của namlv của các nhân viên. thứ tự của các bản ghi là thứ tự được quy định trong file chỉ mục này. do vậy khi lựa chọn <bthức khoá> thì phải chọn cho phù hợp. use NHANVIEN↵ index on -NAMLV to CMNAMLVG list Ví dụ 2: Hiển thị theo thứ tự giảm dần của ngaysinh.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à .

hàm EOF() có giá trị . 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>. hàm FOUND() sẽ cho giá trị .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.F. XXVIII. 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.T. Tìm kiếm Tìm kiếm tuần tự a. 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. 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 . dùng để tìm bản ghi kế tiếp sau thỏa mãn điều kiện đã nêu. nếu tìm thấy thì Bộ môn Tin học – ĐHTN 41 . • SET INDEX TO: Dùng để đóng file chỉ mục.

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

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

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

Để hạn chế số lượng các bản ghi tham gia vào quá trình xử lý. Trong đó: IDXFile . TagName . thỏa mãn điều kiện cho trước. 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).tên file dạng IDX (đã tạo bằng lệnh INDEX trước đó). Trong đó BieuThucLogic là tiêu chuẩn để lọc. Hủy bỏ việc lọc dữ liệu: SET FILTER TO ↵ Ví dụ: Chỉ hiển thị những nhân viên nữ: SET FILTER TO !GIOITINH↵ LIST↵ Bộ môn Tin học – ĐHTN 45 . 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.Tên chỉ mục trong file kết hợp (file dạng CDX). 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. các bản ghi được lọc từ bảng dữ liệu.

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

năm hiện tại của hệ 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. 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. năm. tháng. Bộ môn Tin học – ĐHTN 47 . 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(). 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. tháng. SET DATE FRENCH DATE() Ngày hiện hành của hệ thống sẽ được hiển thị theo thứ tự ngày. Thứ tự kết quả hiển thị của lệnh này phụ thuộc vào lệnh SET DATE. 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).

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

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

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

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

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.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.4 Rules For Inserting o Ignore: Cho phép thêm các bản ghi vào bảng con một cách độc lập (không phụ thuộc vào bảng cha). Ví dụ Bộ môn Tin học – ĐHTN 52 . Các qui tắc ứng xử ở đây là: Hình 6. đây là giá trị mặc định.Bài giảng Visual FoxPro Hình 6.

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

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

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

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

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

6 • Phía trên: Thể hiện các bảng (hoặc View) sử dụng trong Query.6 . Hình 6. Tiếp đến giao diện Query xuất hiện như hình 6.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 .Query Designer Đường nối thể hiện quan hệ giữa các bảng.

Selected Fields: Các trường đã chọn.        Available Fields: Các filed có thể chọn cho query. 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. Khi truy xuất dữ liệu. đơ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. Các bảng dùng cho 1 query thường có quan hệ với nhau. Như vậy khi ghép 2 bảng này mặt hang H4. 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ì. Lệnh Remove: Loại bỏ 1 trường đã chọn trong Selected Fields. các bản ghi này không có trong Hoađon. H5. 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. dùng khai báo AS <TenTruong> để đặt tên cho biểu thức này). và ngược lại trong Hoadon có mặt hàng H10 là loại hàng chưa có trong Dmhang.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. Lệnh Add: Thêm trường đã chọn từ Available Fields vào Selected Fields. Lệnh Add All: Thêm tất cả các trường từ Available Fields vào Selected Fields. kiểu liên kết (Joint Type) có vai trò quan trọng trong việc ứng xử giữa các bảng. Bộ môn Tin học – ĐHTN 59 . Tab Joint: Thiết lập các thuộc tính về kết nối giữa 2 bảng. Lệnh Remove All: Loại bỏ tất cả các trường đã chọn trong Selected Fields.

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

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

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

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

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

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

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

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

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

.

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

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

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

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

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

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

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

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). cũng như các đối tượng khác. Form có các thuộc tính riêng của nó. Hiển thị cửa sổ Properties: R_Click vào phần nền của Form đang thiết kế => Pop-up menu xuất hiện và ta chọn chức năng Properties. .8. 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.

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

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

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

y): Cho phép vẽ lên form 1 vòng tròn bán kính r. • Cls: Xóa sạch nền form. • Vào menu View/Data environment. Thực hiện tương tự như trên nhưng chọn Event là Destroy và viết lệnh: MESSAGEBOX("Load!") 10.y • Release: Xóa form hiện thời.y): Vẽ điểm x. XXXIX. x.y1. Load: Tình huống này xảy ra trước khi các đối tượng được khởi tạo.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. • Hide: ẩn form • Line(x1.x2.y. Thiết lập DATA ENVIRONMENT: • Mở Form cần làm việc ở chế độ Form Design. 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. xuất hiện giao diện: . • Show: Hiển thị form. Ví dụ: Hiển thị thông báo “Load” khi tình huống này xảy ra.y2 • Print(cText): In một dòng text ra màn hình • Pset(x. • Circle(r. cClass): thêm mới một đối tượng.y1 đến x2. Một số phương thức (Methods) thường sử dụng của Form • AddObject(cName. tâm tại x.y2): Vẽ đoạn thẳng từ x1. 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ương tự như FORM). • Thanh công cụ Form Controls: Khi đang mở Form ở chế độ thiết kế (Form Designer). Ví dụ giao diện sau được thiết kế từ FORM và các control. • • 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. Visual Foxpro hiển thị thanh công cụ Form Controls như hình bên. Tuy nhiên có thể sử dụng với mục đích khác.R_Click lên vùng trống trong Data Environment ->click Add để thêm các bảng. 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. Report. View.. . Label. o Vẽ nó trên form để xác định vị trí. • Các Control được xác định qua các Properties (thuộc tính). • Có thể hiển thị/ẩn Form Control bằng cách trong menu View chọn Form Control Toolbar. o Viết mã lệnh cho các tình huống tương ứng. Mỗi loại đối tượng thường được thiết kế cho một mục đích nhất định. đối tượng Command Button để thể hiện các nút lệnh. đối tượng TextBox được dùng để cho phép nhập liệu. o Thiết lập các thuộc tính thích hợp. Methods (Phương thức) và Events (sự kiện .. Ví dụ đối tượng Label (nhãn) được dùng để hiển thị một chú thích.

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

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

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

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

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

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

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

Các thuộc tính của Combo box Property ControlSource DisplayControl InputMask Diễn giải Chỉ rõ field trong table. Đ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. Dùng dấu phẩy để phân cách giữa các field trong RowSource.• 0 (Drop-down Combo): vừa cho phép chọn một mục trong danh sách. • 2 (Drop-down List): chỉ cho phép chọn mục từ danh sách. Chỉ rõ số lượng mục được hiển thị trong danh sách. Có thể thể hiện thông tin từ nhiều Table. 1: Value Phải chỉ rõ giá trị trong thuộc tính RowSource. 7: Files Nội dung thể hiện là danh sách các file có trong thư mục hiện hành Chọn nhiều mục một lúc trong ListBox: khai báo thuộc tính MultiSelect = . Có thể sử dụng method AddItem và RemoveItem. 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 . nơi dùng để lưu giá trị được chọn hay gõ vào từ danh sách. vừa có thể gõ giá trị cần tìm để di chuyển nhanh đến một mục. Sử dụng thuộc tính ColumnWidths để quy định độ rộng của các cột. 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.T. Khai báo tên của query trong RowSource. 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. Thuộc tính ColumnCount cho phép khai báo các field đầu tiên cần thể hiện. 5: Array Nguồn dữ liệu là từ các phần tử của mảng. 3: SQL statement Thêm câu lệnh SQL vào thuộc tính RowSource. 6: Fields Chỉ rõ field hay danh sách field cần thể hiện.

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

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

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

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

XLV.• • • • Bước 1: Chọn bảng dữ liệu và các trường cần thể hiện Bước 2: Tạo nhóm dữ liệu kết xuất Bước 3: Chọn kiểu Report thể hiện Bước 4: Chọn cách trình bày trên giấy in • • Bước 5: Chọn trường Sắp xếp. Tạo Report bằng REPORT DESIGNER Quản lý Report Tạo mới Report: CREATE REPORT <tên Report> . Bước 6: Đặt tựa đề. kết thúc.

Ví dụ: create report THU Lúc này màn hình xuất hiện hộp thoại report • • • Mở một report sẵn có: MODIFY <tên report> Xem trước khi in: REPORT FORM <tên report> PREVIEW Xem trước khi in có điều kiện: REPORT FORM <tên report> PREVIEW <điều kiện> • In report: REPORT FORM <tên report> TO PRINTER Các thành phần trên Report • • Title: Dùng để in trên mỗi report: Từ menu report. . chọn title summary Page Header: Để in trên mỗi header của mỗi trang in.

Column footer: In phần Footer của mỗi cột. Page Footer: In phần Footer của mỗi trang. 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. Sumary: Phần tóm tắt của mỗi report. . từ menu file chọn page setup. Detail: phần chi tiết trên mỗi record (ứng với từng record trên bảng dữ liệu). Để chọn. Group header: Xuất hiện mỗi khi bắt đầu nhóm mới. XLVI. Group footer: In phần Footer của mỗi nhóm. Để chọn. 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. Để chọn. từ menu report chọn data grouping. Để chọn. từ menu report chọn data grouping. chọn page setup.• • • • • • • Column header: Để in tên header của mỗi cột. chọn giá trị cho column number lớn hơn 1.

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

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

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

• Code: và những file khác: Liệt kê các file chương trình và các file khác được sử dụng trong chương trình.Tạo mới các đề án Thực hiện lệnh: CREATE PROJECT <tên đề án> Lúc này xuất hiện cửa sổ quản lý đề án Project Manager: • Database: Bao gồm các: o Table: Các bảng dữ liệu có liên kết với nhau hay các bảng tự do. Muốn loại bỏ bất kỳ một thành phần nào của đề án ta chọn nó rồi chọn nút remove. o 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. Để 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). Để 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. o Query: Là cấu trúc để lấy thông tin từ các bảng table. bao gồm các form và report. • Documents: Chứa các tài liệu sử dụng cho đề án. .

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

Sign up to vote on this title
UsefulNot useful

Master Your Semester with Scribd & The New York Times

Special offer for students: Only $4.99/month.

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

Cancel anytime.