Giáo trình Visual FoxPro 6.0

Giáo trình được tổ chức theo 11 chương:

Chương 1: Làm quen với môi trường VF

Chương 2: Các loại dữ liệu trong VF

Chương 3: DataBase và Table

Chương 4: Truy vấn và hiển thị thông tin

Chương 5: Form Report

Chương 6: Lập trình trong VF

Chương 7: Thiết kế giao diện

Chương 8: Bẫy trong chương trình

Chương 9: Mảng và chuyển giao dữ liệu

Chương 10: Một số lệnh hiệu chỉnh dữ liệu

Chương 11: Chương trình con

Chương 12: Ghép dữ liệu

 

pdf146 trang | Chia sẻ: phuongt97 | Lượt xem: 447 | Lượt tải: 0download
Bạn đang xem trước 20 trang nội dung tài liệu Giáo trình Visual FoxPro 6.0, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
NENO() thông báo số thứ tự dòng bị lỗi Lệnh ON ERROR thông có tham số cho phép huỷ bỏ bẫy lỗi. Ví dụ: set talk off clear ON ERROR DO ThongBao WITH MESS(1), ERROR(), MESS(), LINENO() ?sin(9 USU Nhansu Brws ON ERROR PROCEDURE ThongBao PARAMETER a, b, c,d ? 'Sai lệnh nào? : ' +a ? 'Mã của lỗi : ' + STR(b) ? 'Sai gì? : ' + c ?' Dòng nào sai :'+Str(c) ?'----------------------------------------------- ' RETURN 8.2 Lệnh ON KEY Lệnh có dạng như sauL: ON KEY [] Khi ấn một phím bất kỳ thì lệnh được kích hoạt và thực hiện . Chương trình sau ta tạo một vòng lặp, khi chương trình đang chạy nếu ấn một phím bất kỳ thi lệnh ON KEY được kích hoạt và chương trình con có tên TamDung được thực hiện: SET TALK OFF USE khoia ELEC Trang 107 TRUNG TÂM ĐÀO TẠO TRỰC TUYẾN - ĐẠI HỌC KINH DOANH & CÔNG NGHỆ H À NỘI CLEAR ON KEY DO TamDung FOR i=1 to 10000 ?i,sin(i),cos(i) Next PROCEDURE TamDung h= INKEY() ?'Bạn đã gõ phím:',H WAIT RETURN 8.3 Lệnh ON KEY = Lệnh có dạng: ON KEY [=] Trong đó là mã phím hoặc tổ hợp phím. Bảng mã phím như sau: Mã phím Tên phím khi gõ 272-281 Alt+Q đến Alt +P 286-294 Alt+A đến Alt +L 300- 306 Alt+Z đến Alt +M 315-324 F1 đến F10 327 HOME 328 Up arrow (  ) 329 PgUp 331 Left arrow (  ) 333 Right arrow ( ) 335 End 336 Down arrow (  ) 337 PgDn 338 Ins 339 Ins 340-349 Shift+F1 đến Shift +F10 350 - 359 Ctrl+F1 đến Ctrl +F10 360 - 369 Alt+F1 đến Alt +F10 370 Ctrl+Print+Scrn 371 Ctrl+left arrow 372 Ctrl+right arrow 373 Ctrl+End 374 Ctrl+PgDn 375 Ctrl+Home 376 - 387 Alt+1 đến Alt +0,Alt+-,Alt+= 388 Ctrl+PgUp ELEC Trang 108 TRUNG TÂM ĐÀO TẠO TRỰC TUYẾN - ĐẠI HỌC KINH DOANH & CÔNG NGHỆ H À NỘI Ví dụ 1: CLEAR ON KEY = 315 DO TroGiup WITH VARREAD() SET TALK OFF USE khoia SCATTER TO temp DEFINE WINDOW VAO FROM 6,10 TO 20,70 PANEL ACTIVATE WINDOW VAO DO WHILE NOT EOF() @ 1,3 SAY 'Ho va dem: ' GET hodem @ 3,3 SAY 'Ten : ' GET ten @ 5,3 SAY 'Diem toan: ' GET toan @ 7,3 SAY 'Diem ly : ' GET ly @ 9,3 SAY 'Diem hoa : ' GET hoa @ 11,8 SAY 'An ESC de thoat hoac an F1 de tro giup' READ SKIP ENDDO DEACTIVATE WINDOW VAO RELEASE WINDOW VAO PROCEDURE TroGiup PARAMETERS TenTruong CLEAR DEFINE WINDOW HelpMe FROM 1,0 TO 5,79 ACTIVATE WINDOW HelpMe @ 0,20 SAY 'Đây là tên trường có tên: ' + TenTruong+ ' bạn chỉ vào DL hoặc chấp nhận' WAIT RELEASE WINDOW HelpMe RETURN 8.4 Lệnh ON KEY LABEL Lệnh có dạng sau: ON KEY [LABEL ] [] Sau đây là các nhãn phím: Tên nhãn Cách viết Shift+F11, Shift+F12 Shift+F11 ... Alt+F1 đến Alt +F12 Alt+F1, Alt+F2 ... ELEC Trang 109 TRUNG TÂM ĐÀO TẠO TRỰC TUYẾN - ĐẠI HỌC KINH DOANH & CÔNG NGHỆ H À NỘI Alt+0 đến Alt -9 Alt+0, Alt+1 ... Alt+A đến Alt +Z Alt+A, Alt+B ... Alt+PgUp Alt+PGUP Alt+PgDn Alt+PGDN Ctrl+left arrow Ctrl+LEFTARROW Ctrl+right arrow Ctrl+RIGHTARROW Ctrl+Home Ctrl+HOME Ctrl+End Ctrl+END Ctrl+PgUp Ctrl+PGUP Ctrl+PgDn Ctrl+PGDN Ctrl+A đến Ctrl +Z Ctrl+A, Ctrl+B ... Right Mouse RIGHTMOUSE Left Mouse LEFTMOUSE Mouse MOUSE Escape ESC 8.5 Lệnh ON ESCAPE Lệnh có dạng sau: ON ESCAPE Khi ấn phím ESC thì được thi hành Ví dụ chương trình: SET TALK OFF CLEAR ON KEY LABEL RIGHTARROW? 'Đây là phím d ịch phải (Right Arrow) ' ON KEY LABEL LEFTARROW? 'Đây là phím d ịch trái (Left Arrow)' ON KEY LABEL UPARROW? 'Đây là phím lên d òng (Up Arrow)' ON KEY LABEL DNARROW? 'Đây là phím xuống một dòng (Down Arrow)' SET ESCAPE ON Thoat=.T. ON ESCAPE Thoat=.F. @ 2,0 SAY 'Ấn các phím , ,  và  để xem lệnh ON KEY LABEL, ấn ESC để thoát' DEFINE WINDOW Input FROM 10,20 TO 14,60 DOUBLE ACTIVATE WINDOW Input DO WHILE Thoat ENDDO DEACTIVATE WINDOW Input ON KEY 8.6 Lệnh ON READERROR Lệnh có dạng: ELEC Trang 110 TRUNG TÂM ĐÀO TẠO TRỰC TUYẾN - ĐẠI HỌC KINH DOANH & CÔNG NGHỆ H À NỘI ON READERROR [] Khi nhập dữ liệu nếu gặp lỗi thì thực hiện Ví dụ chương trình: CLOSE DATABASES SET STATUS OFF SET TALK OFF USE KhoiA ON READERROR DO LoiNhap @ 10,13 SAY 'Vào họ và đệm : ' GET HODEM @ 12,13 SAY 'Vào Tên : ' GET Ten @ 14,13 SAY 'Vào số báo danh : ' @ 14,30 GET SBDC Valid Val(right(sbdc,4))<=3000 READ PROCEDURE LoiNhap ?'Không có số báo danh '+sbdc WAIT 'ấn phím để tiếp tục' Clear RETURN ELEC Trang 111 TRUNG TÂM ĐÀO TẠO TRỰC TUYẾN - ĐẠI HỌC KINH DOANH & CÔNG NGHỆ H À NỘI Chương 9: Mảng và chuyển giao dữ liệu giữa các môi trường 9.1 Mảng Mảng được định nghĩa như sau: DIMENSION ( [, ]) a. Mảng một chiều Giả sử ta khai báo mảng A có 10 thành phần: DIMENSION A(10) Thứ tự truy cập mảng như sau: A(1), A(2), A(3), A(4),...,A(10) b. Mảng hai chiều DIMENSION B(2,4) Thứ tự truy cập mảng như sau: B(1,1), B(1,2), B(1,3), B(1,4) B(2,1), B(2,2), B(2,3), B(2,4) Ta có thể khai báo ngắn gọnT: DIMENSION A(10),B(2,4) Để gán giá trị ban đầu cho mảng ta dùng lệnh gán: A=0 hay STORE 0 TO A B='Tin học' hay STORE 'Tin học' TO B Điều đó có nghĩa là các thành phần của mảng A: A(1),...,A(10) đều bằng 0 v à các thành phần của mảng B: B(1,1),B(1,2) v.v..đều có cùng giá trị 'Tin học' Giả sử ta có mảng: DIMENSION M(2) STORE 'A' TO M(1) STORE 'B' TO M(2) DISPLAY MEMORY LIKE M Sau đó hiện lên: M Pub A ( 1) C "A" ( 2) C "B" Còn nếu: DIMENSION M(4) STORE 'A' TO M(1) STORE 'B' TO M(2) DISPLAY MEMORY LIKE M Sau đó hiện lên: M Pub A ( 1) C "A" ( 2) C "B" ( 3) L .F. ELEC Trang 112 TRUNG TÂM ĐÀO TẠO TRỰC TUYẾN - ĐẠI HỌC KINH DOANH & CÔNG NGHỆ H À NỘI ( 4) L .F. Hãy quan sát các ví dụ sau: DIMENSION M(4) STORE 'E' TO M(1) STORE 'F' TO M(2) STORE 'G' TO M(3) STORE 'H' TO M(4) DISPLAY MEMORY LIKE M M Pub A ( 1) C "E" ( 2) C "F" ( 3) C "G" ( 4) C "H" Còn nếu: DIMENSION M(2,3) DISPLAY MEMORY LIKE M M Pub A ( 1, 1) C "E" ( 1, 2) C "F" ( 1, 3) C "G" ( 2, 1) C "H" ( 2, 2) L .F. ( 2, 3) L .F. Như vậy khi mảng 2 chiều chuyển sang một chiều, th ì nội dung của mảng hai chiều được sao chép từ mảng một chiều theo trật tự trên. Ví dụ: DIMENSION ViDu(2,3) STORE 'Tạm biệt' TO ViDu(1,2) STORE 'Hello' TO ViDu(2,2) STORE 99 TO ViDu(6) STORE .T. TO ViDu(1) DISPLAY MEMORY LIKE ViDu Sau khi chạy sẽ có kết quả: VIDU Priv A ( 1, 1) L .T. ( 1, 2) C "Tạm biệt" ( 1, 3) L .F. ( 2, 1) L .F. ( 2, 2) C "Hello" ELEC Trang 113 TRUNG TÂM ĐÀO TẠO TRỰC TUYẾN - ĐẠI HỌC KINH DOANH & CÔNG NGHỆ H À NỘI ( 2, 3) N 99 ( 99.00000000) 9.2 Copy mảng Để copy nội dung của mảng a (nguồn) sang mảng b (đích) ta d ùng: =COPY (A,B) Ví dụ: set talk off clear dime a(4),b(4), c(5) a(1)=2 a(2)=5 a(3)=99 a(4)=1234 =ACOPY(a, b) ?B(1) ?B(2) ?B(3) ?B(4) =ACOPY(b,c) ?c(1) ?c(2) ?c(3) ?c(4) ?C(5) 9.3 Một số thuật toán về mảng a. Tìm max của mảng Giả sử ta tìm phần tử lớn nhất của mảng 20 thành phần. Ta lập trình như sau: Set talk off Clear Dimension A(20) A=0 For i=1 to 20 Input 'Vào phần tử A ( '+Str(i,2)+' )=' To A(i) Next Max=a(1) For i=2 to 20 If max<=a(i) max=a(i) next ?'Phần tử lớn nhất là:',max ELEC Trang 114 TRUNG TÂM ĐÀO TẠO TRỰC TUYẾN - ĐẠI HỌC KINH DOANH & CÔNG NGHỆ H À NỘI b. Tìm min của mảng Giả sử ta tìm phần tử nhỏ nhất của mảng 20 thành phần. Ta lập trình như sau: Set talk off Clear Dimension A(20) A=0 For i=1 to 20 Input 'Vào phần tử A ( '+Str(i,2)+' )=' To A(i) Next Min=a(1) For i=2 to 20 If min>=a(i) min=a(i) next ?'Phần tử nhỏ nhất là:',max c. Xếp mảng Giả sử ta xếp giảm dần các phần tử của mảng 20 th ành phần, ta lập trình như sau: Set talk off Clear Dimension A(20) A=0 For i=1 to 20 Input 'Vào phần tử A ( '+Str(i,2)+' )=' To A(i) Next for i=1 to 20 for j=i+1 to 19 if a(i)>a(j) tg=a(i) a(i)=a(j) a(j)=tg Endif 9.4 Chuyển bản ghi ra mảng hoặc biến nhớ Để dễ trình bày ta nên dựa vào một tệp CSDL, giả sử ta có tệp CSDL có t ên KHOIA.DBF như sau: STT SBDC HODEM TEN NGAYSINH KV DT TOAN LY HOA TONG TIEUSU 1 99A0001 Nguyễn Thị Hà 171279 1 01 6.5 5.0 5.5 17.0 2 99A0002 Trịnh Vĩnh Anh 280278 2 02 5.0 3.5 4.0 12.5 3 99A0003 Đỗ Văn Hùng 280679 3 03 7.0 5.5 6.0 18.5 4 99A0004 Trần Thanh Hải 011080 1 01 8.5 7.0 7.5 23.0 ELEC Trang 115 TRUNG TÂM ĐÀO TẠO TRỰC TUYẾN - ĐẠI HỌC KINH DOANH & CÔNG NGHỆ H À NỘI 5 99A0005 Phan Trọng Thanh 241280 1 5A 9.0 7.5 8.0 24.5 6 99A0006 Đàm Hữu Thắng 190581 1 5B 3.0 1.5 2.0 6.5 7 99A0007 Lê Thanh Hồng 171177 2 09 4.5 3.0 3.5 11.0 8 99A0008 Nguyễn Phi Chung 020979 2 08 5.5 4.0 4.5 14.0 9 99A0009 Trần Tuấn Bảo 090280 2 07 6.5 5.0 5.5 17.0 10 99A0010 Nguyễn Đình Thu 151179 2 06 7.0 5.5 6.0 18.5 11 99A0011 Nguyễn Văn Hoàng 100177 2 09 8.5 7.0 7.5 23.0 12 99A0012 Đinh Việt Hữu 020180 2 09 9.0 7.5 8.0 24.5 13 99A0013 Đỗ Nguyễn Chu 071180 2 04 10.0 8.5 9.0 27.5 14 99A0014 Lý Xuân Thanh 200880 2 04 2.5 1.0 1.5 5.0 15 99A0015 Phạm Quốc Bình 140975 2 02 4.5 3.0 3.5 11.0 16 99A0016 Đoàn Mạnh Khanh 030280 3 10 5.0 3.5 4.0 12.5 17 99A0017 Nguyễn Văn Khoa 031278 3 11 6.0 4.5 5.0 15.5 18 99A0018 Tạ Hồng An 081180 2 09 8.0 6.5 7.0 21 .5 19 99A0019 Đỗ Trọng Ân 201180 2 07 7.0 5.5 6.0 18.5 20 99A0020 Đỗ Đình Khải 190479 2 08 5.0 3.5 4.0 12.5 Trong đó các tên Trường như sauT: STT : Số thứ tự HODEM : Họ đệm NGAYSINH : Ngày sinh KV : Khu vực DT : Đối tượng TOAN : Điểm toán LY : Điểm lý HOA : Điểm hoá TONG : Tổng điểm TIEUSU : Tiểu sử Lệnh có dạng như sau: SCATTER [FIELDS | FIELDS LIKE | FIELDS EXCEPT ] TO | TO BLANK | MEMVAR Copy dữ liệu từ bản ghi hiện thời sang mảng hoặc sang các biến nhớ. SCATTER tự động tạo ra các biến nhớ hoặc mảng nếu chúng ch ưa tồn tại.  FIELDS Chỉ một số trường trong danh sách trường mới được Copy  FIELDS LIKE | FIELDS EXCEPT Chúng ta có thể copy các trường vào biến nhớ hoặc mảng bằng dùng từ khoá LIKE hoặc EXCEPT ELEC Trang 116 TRUNG TÂM ĐÀO TẠO TRỰC TUYẾN - ĐẠI HỌC KINH DOANH & CÔNG NGHỆ H À NỘI SCATTER FIELDS LIKE A*,P* TO myarray SCATTER FIELDS LIKE A*,P* EXCEPT PARTNO* TO myarray  TO Nội dung các trường được đưa vào mảng  TO BLANK Một mảng được tạo với các phần tử trống.  MEMVAR Chuyển nội dung bản ghi ra các biến nhớ (các biến n hớ mang tên trườngc) và viết như sau: m.SBDC, m.HODEM v.v.. Ví dụ1: set talk off clear use khoia copy to khoia1 use khoia1 Dimension A(10) do while not eof() scatter to a ?a(1),a(2),a(3),a(4),a(5),a(6),a(7),a(8),a(9),a(10) Skip Enddo Giả sử không khai báo mảng thì máy sẽ tự động tạo ra mảng để lưu bản ghi đó set talk off clear use khoia copy to khoia1 use khoia1 do while not eof() scatter to a ?a(1),a(2),a(3),a(4),a(5),a(6),a(7),a(8),a(9),a(10) Skip Enddo Ví dụ 2: chuyển nội dung bản ghi ra biến nhớ SET TALK OFF USE Khoia COPY TO Khoia1 USE Khoia1 SCATTER MEMVAR MEMO && cất dữ liệu cũ DEFINE WINDOW Win1 FROM 5,10 to 20,70 PANEL ELEC Trang 117 TRUNG TÂM ĐÀO TẠO TRỰC TUYẾN - ĐẠI HỌC KINH DOANH & CÔNG NGHỆ H À NỘI ACTIVATE WINDOW Win1 @ 1,3 SAY 'Số báo danh: ' GET m.sbdc @ 3,3 SAY 'Họ đệm : ' GET m.hodem @ 5,3 SAY 'Tên : ' GET m.ten @ 7,3 SAY 'Ngày sinh : ' GET m.Ngaysinh @ 7,18 SAY 'Khu vực : ' GET m.KV @ 9,13 SAY 'Tiểu sử : ' @ 9,23 EDIT m.Tieusu SIZE 3,26 @ 13,13 SAY 'ấn Escape để thay đổi' READ ? m.sbd, m.hodem, m.ten, m.ngaysinh, m.kv IF LASTKEY() != 27 GATHER MEMVAR WAIT WINDOW 'Cất sự thay đổi' NOWAIT ELSE WAIT WINDOW 'Không cất sự thay đổi' NOWAIT ENDIF DEACTIVATE WINDOW Win1 BROWSE USE 9.5 Chuyển dữ liệu từ mảng vào bản ghi GATHER FROM | MEMVAR [FIELDS | FIELDS LIKE | FIELDS EXCEPT ]  Lệnh GATHER để lưu dữ liệu từ mảng hoặc từ biến nhớ v ào bản ghi hiện thời.  FROM  Copy từ mảng   MEMVAR copy vào bản ghi từ biến nhớ  FIELDS Chỉ những trường liệt kê trong mới nhận dữ liệu vào FIELDS LIKE | FIELDS EXCEPT Ví dụ: GATHER FROM myarray FIELDS LIKE A*,P* GATHER FROM myarray FIELDS LIKE A*,P* EXCEPT PARTNO* ELEC Trang 118 TRUNG TÂM ĐÀO TẠO TRỰC TUYẾN - ĐẠI HỌC KINH DOANH & CÔNG NGHỆ H À NỘI Ví dụ: SET TALK OFF USE Khoia COPY TO Khoia1 USE Khoia1 SCATTER MEMVAR MEMO && save old values DEFINE WINDOW Win1 FROM 5,10 to 20,70 PANEL ACTIVATE WINDOW Wind1 @ 1,3 SAY 'Số báo danh: ' GET m.sbdc @ 3,3 SAY 'Họ đệm : ' GET m.hodem @ 5,3 SAY 'Tên : ' GET m.ten @ 7,3 SAY 'Ngày sinh : ' GET m.Ngaysinh @ 7,18 SAY 'Khu vực : ' GET m.KV @ 9,13 SAY 'Tiểu sử:' @ 9,23 EDIT m.Tieusu SIZE 3,26 @ 13,13 SAY 'ấn Escape để thay đổi' READ IF LASTKEY() != 27 GATHER MEMVAR WAIT WINDOW 'Cất sự thay đổi' NOWAIT ELSE WAIT WINDOW 'Không cất sự thay đổi' NOWAIT ENDIF DEACTIVATE WINDOW Wind1 BROWSE USE ELEC Trang 119 TRUNG TÂM ĐÀO TẠO TRỰC TUYẾN - ĐẠI HỌC KINH DOANH & CÔNG NGHỆ H À NỘI Chương 10: Một số lệnh hiệu chỉnh dữ liệu 10.1 Các tuỳ chọn cao cấp của lệnh BROWSE Lệnh BROWSE có dạng sau: BROWSE [FIELDS ] [FONT [, ]] [STYLE ] [FOR ] [FREEZE ] [KEY [, ]] [LEDIT] [REDIT] [LOCK ] [LPARTITION] [NOAPPEND] [NOCLEAR] [NODELETE] [NOEDIT | NOMODIFY] [NOLGRID] [NORGRID] [NOLINK] [NORMAL] [NOWAIT] [PARTITION ] [PREFERENCE ] [SAVE] [TIMEOUT ] [TITLE ] [VALID [ERROR ]] [WHEN ] [WIDTH ] [[WINDOW ] [IN [WINDOW] | IN SCREEN]] [COLOR SCHEME | COLOR ] BROWSE là một trong những lệnh mạnh của FoxPro. Sử dụng BROWSE để mở cửa sổ Browse và hiển thị các bản ghi của tệp cơ sở dữ liệu. Nếu như bạn cảm thấy cú pháp quá phức tạp thì nhiều khi chỉ cần gõ BROWSE là có thể hiệu chỉnh được các bản ghi. Nhưng muốn tận dụng được sức mạnh của nó bạn ELEC Trang 120 TRUNG TÂM ĐÀO TẠO TRỰC TUYẾN - ĐẠI HỌC KINH DOANH & CÔNG NGHỆ H À NỘI nên tuỳ từng tình huống cụ thể mà sử dụng các mệnh đề và từ khoá của lệnh. Sau đây là mô tả các mệnh đề và từ khoá của nó. 1. [FIELDS ] Mệnh đề [FIELDS ] định ngh ĩa các trường cần hiển thị, ví dụ: USE KHOIA BROWSE FIELD Hodem,ten,sbdc · · Nếu muốn một trường nào đó không được phép sửa ta thêm: R vào sau trường đó Ví dụ: USE KHOIA BROWSE FIELD Hodem,ten,sbdc :R Như vậy trường SBDC chỉ đọc mà không được phép sửa · · Có thể xác định độ rộng của trường đó như sau: USE KHOIA BROWSE FIELD Hodem,ten,sbdc :R :8 Ở trên trường SBDC chỉ đọc (:R) và có độ rộng 8 kí tự (:8) · · Giả sử ta khống chế trường SBDSO (Số báo danh số) chỉ đ ược sửa từ số báo danh 1 đến số báo danh 12, ta viết như sau: USE KHOIA BROWSE FIELD Hodem,ten,sbdso :V=(sbdso<13) :F · · Khi dùng tuỳ chọn: V và : F ở trên, nếu muốn có một thông báo lỗi ta viết như sau: USE KHOIA BROWSE FIELD Hodem, ten, sbdso :V=(sbdso<13) :F:E='Không đư ợc phép' · · Nếu muốn chỉ định một khoảng giá trị để hiệu chỉnh, giả sử chỉ đ ược sửa SBDSO (số được gõ vào thay cho số cũ) từ 12, 20 ta viết như sau: USE KHOIA BROWSE FIELD Hodem, ten, sbdso :B=12,20 · · Muốn hiển thị môt tên trường mới thay cho tên trường đã có ta gõ như sau: USE KHOIA BROWSE FIELD Hodem, ten, sbdso :H='So Bao Danh' · · Chỉ được sửa những bản ghi có SBDSO <12 ta g õ như sau: USE KHOIA BROWSE FIELD Hodem, ten, sbdso :W=SBDSO<12 2. [FONT [, ]] Khi chạy trong môi trường Windows thì là tên phông chữ (VnTime, VnTimeH v.v..) còn là cỡ phông, nếu không có tham số này, FoxPro sẽ dùng cỡ phông 10. Ví dụ: ELEC Trang 121 TRUNG TÂM ĐÀO TẠO TRỰC TUYẾN - ĐẠI HỌC KINH DOANH & CÔNG NGHỆ H À NỘI USE KHOIA BROWSE FIELD Hodem, ten, sbdso Font '.VnTime', 14 3. [STYLE ] Biểu thức ký tự xác định kiểu của phông (B= Béo, I=nghiêng v.v..) USE KHOIA BROWSE FIELD Hodem, ten, sbdso Font '.VnTime', 14 Style 'B' 4. [FOR ] Điều kiện để hiển thị các bản ghi, ví dụ: USE KHOIA BROWSE FIELD Hodem, ten, TongDiem For TongDiem >=16 5. [FREEZE ] Chỉ cho phép hiệu chỉnh trường C , ví dụ: USE KHOIA BROWSE FIELD Hodem, ten, TongDiem FREEZE TongDiem 6. [KEY [, ]] Mệnh đề KEY được dùng để giới hạn phạm vi các bản ghi được hiển thị, ví dụ: USE Khoia INDEX ON SBDSO TO SBDINDEX BROWSE KEY 1,40 Nghĩa là chỉ hiện các bản ghi có số báo danh từ 1 đến 40 USE Khoia INDEX ON Ten TO TenIndex BROWSE KEY 'A', 'N' Hiển thị những bản ghi có tên với chữ cái đầu từ A đến N USE Khoia INDEX ON Ten TO TenIndex BROWSE KEY 'A'' Hiển thị những bản ghi có tên với chữ cái đầu từ A 7. [LEDIT] [REDIT] [LEDIT] cho phép hiển thị dữ liệu dạng BROWSE [REDIT] cho phép chuyển sang hiển thị dạng lệnh EDIT hoặc CHANGE 8. [LOCK ] Cho phép cố định trường bên trái trong khi vẫn di chuyển trỏ sang phải. phải nhỏ hơn số lượng các trường hiện ra màn hình. USE KHOIA BROWSE FIELD Hodem, ten, TongDiem LOCK 2 9. [LPARTITION] Đưa trỏ sang vùng bên trái, ví dụ: USE KHOIA BROWSE PARTITION 40 LPARTITION ELEC Trang 122 TRUNG TÂM ĐÀO TẠO TRỰC TUYẾN - ĐẠI HỌC KINH DOANH & CÔNG NGHỆ H À NỘI Mệnh đề PARTITION 40 chia cửa sổ th ành hai phần, đường phân cách đứng nằm ở cột 40, bình thường trỏ nằm ở bên phải nhưng nếu có mệnh đề LPARTITION thì trỏ sẽ được đặt ở phần trái. 10. [NOAPPEND] Từ khoá NOAPPEND sẽ không cho phép ghép các bản ghi v ào sau tệp, ví dụ: USE KHOIA BROWSE FIELD Hodem, ten, TongDiem NOAPPEND 11. [NOCLEAR] Từ khoá NOCLEAR báo cho lệnh BROWSE để lại tr ên màn hình một ảnh của cửa sổ BROWSE sau khi thoát, ví dụ: USE KHOIA BROWSE FIELD Hodem, ten, TongDiem NOCLEAR 12. [NODELETE] Không cho xoá các bản ghi, ví dụ: USE KHOIA BROWSE FIELD Hodem, ten, TongDiem NODELETE 13. [NOEDIT | NOMODIFY] Loại bỏ việc hiệu chỉnh dữ liệu. USE KHOIA BROWSE FIELD Hodem, ten, TongDiem NOEDIT Hoặc: USE KHOIA BROWSE FIELD Hodem, ten, TongDiem NOMODIFY 14. [NOLGRID] [NORGRID] Không hiển thị đường kẻ dọc phân cách các trường của phân vùng bên trái hoặc bên phải, ví dụ: USE KHOIA BROWSE PARTITION 40 NOLGRID 15. NOLINK Từ khoá NOLINK báo cho lệnh BROWSE không nối kết các phân v ùng, nghĩa là khi ta di chuyển trỏ đến các bản ghi khác nhau ở phân v ùng này thì các bản ghi ở phân vùng kia vẫn nằm yên, ví dụ: USE KHOIA BROWSE PARTITION 40 NOLINK 16. [NORMAL] Nếu chỉ định từ khoá NORMAL thì cửa sổ BROWSE vẫn xuất hiện ở màn hình mặc dù có thể đang có một cửa sổ hoạt động, ví dụ: DEFINE WINDOW W1 FROM 1,2 TO 12,40 PANEL ACTIVATE WINDOW W1 USE KHOIA BROWSE ELEC Trang 123 TRUNG TÂM ĐÀO TẠO TRỰC TUYẾN - ĐẠI HỌC KINH DOANH & CÔNG NGHỆ H À NỘI Dữ liệu sẽ xuất hiện trong cửa sổ W1 v à cửa sổ BROWSE sẽ kết thừa các tính chất như màu, ZOOM, SIZE v.v.. của cửa sổ W1, con nếu: DEFINE WINDOW W1 FROM 1,2 TO 12,40 PANEL ACTIVATE WINDOW W1 USE KHOIA BROWSE NORMAL Thì dữ liệu sẽ xuất hiện ở màn hình (không phải trong W1) và nó kế thừa màu, ZOOM, SIZE v.v..của chính cửa sổ BROWSE. 17. [NOWAIT] Nếu có từ khoá NOWAIT, lệnh BROWSE sẽ hiển thị dữ liệu v à sau đó làm tiếp các lệnh trong chương trình mà không phải gõ CTRL +W hoặc CTRL +END, ví dụ: Set talk off Clear DEFINE WINDOW w1 FROM 1,2 TO 12,40 PANEL ACTIVATE WINDOW w1 USE KHOIA BROWSE WAIT 'ấn phím để tiếp tục' BROWSE NOWAIT &&sẽ hiển thị dữ liệu nhưng không dừng DEFINE WINDOW w2 FROM 14,20 TO 20,70 PANEL ACTIVATE WINDOW w2 FOR i=1 TO 1000 ?i,sin(i) NEXT CLEAR ALL 18. [PARTITION ] Tách cửa sổ BROWSE thành hai phân vùng, có đường ngăn cách tại cột . USE KHOIA BROWSE PARTITION 40 19. [PREFERENCE ] Từ khoá PREFERENCE báo cho lệnh BROWSE l ưu cất các thuộc tính và tuỳ chọn của cửa sổ BROWSE và tệp tin tài nguyên có tên , để sau đó dùng lại, ví dụ: USE KHOIA BROWSE FIELD HODEM,TEN, SBDC COLOR SCHEME 3 PREFERENCE File1 **** Thoát bằng CTRL +W******** **** Phục chế lại nguyên dạng ********* BROWSE PREFERENCE File1 20. [SAVE] ELEC Trang 124 TRUNG TÂM ĐÀO TẠO TRỰC TUYẾN - ĐẠI HỌC KINH DOANH & CÔNG NGHỆ H À NỘI Để lại trên màn hình cửa sổ BROWSE và các trường trước khi thoát, ví dụ: USE KHOIA BROWSE FIELD HODEM,TEN, SBDC SAVE 21. [TIMEOUT ] Từ khoá TIMEOUT báo cho lệnh BROWSE chờ T giây, ví dụ: USE KHOIA BROWSE FIELD HODEM,TEN, SBDC TIMEOUT 5 Chú ý: Chỉ dùng TIMEOUT trong chương trình. 22. [TITLE ] Đặt tiêu đề cho cửa sổ BROWSE, ví dụ: USE KHOIA BROWSE FIELD HODEM,TEN TITLE ' Thi khoi A' 23.[VALID [:F] [ERROR ]] Chỉ sửa dữ liệu khi thoả mãn , ví dụ: USE KHOIA BROWSE VALID KV0 ERROR 'Không đư ợc phép' Nghĩa là khi sửa trường KV (Khu vực), ta chỉ có thể g õ vào các số 1,2, 3 mà thôi, còn nếu gõ vào khác các số đó thì có thông báo lỗi . 24. [WHEN ] Chỉ hiệu chỉnh khi thoả mãn điều kiện USE KHOIA BROWSE WHEN KV0 25. [WIDTH ] Đặt độ rộng cho các trường, nếu độ rộng thực của trường lớn hơn thì nội dung trường sẽ được cuốn theo chiều ngang. USE KHOIA BROWSE WIDTH 10 26. [[WINDOW ] Cửa sổ BROWSE sẽ được hiện trong cửa sổ được định nghĩa trước đó.C DEFINE WINDOW W1 FROM 1,1 TO 20,40 PANEL USE KHOIA BROWSE WINDOW W1 27. [IN [WINDOW] | IN SCREEN]] Hiện ở một cửa sổ bên trong một cửa sổ khác, ví dụ: USE KHOIA DEFINE WINDOW WTo FROM 1,1 TO 20,40 PANEL DEFINE WINDOW WNho FROM 4,4 TO 15,30 PANEL ACTIVATE WINDOW Wto BROWSE WINDOW WNho In Wto 28. [COLOR SCHEME | COLOR ] Chỉ định lược đồ màu hoặc danh sách các thuộc tính màu. Thông thường COLOR SCHEME 10 là màu ngầm định.C ELEC Trang 125 TRUNG TÂM ĐÀO TẠO TRỰC TUYẾN - ĐẠI HỌC KINH DOANH & CÔNG NGHỆ H À NỘI USE KHOIA BROWSE COLOR SCHEME 5 Hoặc: USE KHOIA BROWSE COLOR 4 10.2 Các tuỳ chọn cao cấp của Lệnh CHANGE v à EDIT CHANGE [FIELDS ] [] [FOR ] [WHILE ] [FONT [, ]] [STYLE ] [FREEZE ] [KEY [, ]] [LEDIT] [REDIT] [LPARTITION] [NOAPPEND] [NOCLEAR] [NODELETE] [NOEDIT | NOMODIFY] [NOLINK] [NORMAL] [NOWAIT] [PARTITION ] [PREFERENCE ] [SAVE] [TIMEOUT ] [TITLE ] [VALID [:F] [ERROR ]] [WHEN ] [WIDTH ] [[WINDOW ] [IN [WINDOW] | IN SCREEN]] [COLOR SCHEME | COLOR ] Nếu không cung cấp [scope] thì ALL được thiết lập, mỗi mệnh đề và từ khoá khác như lệnh BROWSE. Lệnh EDIT hoàn toàn như lệnh CHANGE. 10.3 Các tuỳ chọn cao cấp của lệnh @...SAY...GET Lệnh có dạng tổng quát như sau: ELEC Trang 126 TRUNG TÂM ĐÀO TẠO TRỰC TUYẾN - ĐẠI HỌC KINH DOANH & CÔNG NGHỆ H À NỘI @ SAY [FUNCTION ] [PICTURE ] [SIZE , ] [FONT [, <expN3]] [STYLE ] [COLOR SCHEME | COLOR ] GET | [FUNCTION ] [PICTURE ] [FONT [, ]] [STYLE ] [ENABLE | DISABLE] [MESSAGE ] [[OPEN] WINDOW ] [RANGE [] [, ]] [SIZE , ] [VALID | [ERROR ]] [WHEN ] [COLOR SCHEME | COLOR ] READ 1. Dòng (row) và cột (column) nơi bắt đầu hiển thị dữ liệu, nếu dùng SET DEVICE TO PRINTER để đưa kết xuất ra máy in thì hàng có thể nằm trong phạm vi từ 0 ddến 32.768 và cột từ 0 đến 255. 2. là biểu thức bất kỳ, ví dụ: @10,12 SAY 'Chào bạn' @11,12 SAY 12*23 Phần chung cho cả SAY và GET 3. [FUNCTION ] Tạo khuôn dạng cho dữ liệu, biểu thức nhận các ký tự sau: a. Ký tự! Chuyển mọi ký tự viết thường thành viết hoa: @2,10 SAY 'Chào bạn ' FUNCTION '!' Khi hiển thị chữ 'Chào bạn' sẽ biến thành 'chào bạn'. b. Ký tự ^ Hiện thị các số theo dạng động: @12,10 SAY 1232*7654 FUNCTION '^' Sẽ hiển thị ở dòng 12 cột 10 số: .94279E+7 c. Ký tự $ ELEC Trang 127 TRUNG TÂM ĐÀO TẠO TRỰC TUYẾN - ĐẠI HỌC KINH DOANH & CÔNG NGHỆ H À NỘI Hiện thị dữ liệu theo dạng thức tiền tệ: @12,10 SAY 12*54 FUNCTION '$' Sẽ hiển thị kết quả: $648 d. Ký tự ( Bao các con số âm bằng các dấu ngoặc đơn: @12,10 SAY -112*54 FUNCTION '(' Sẽ hiển thịS: ( 6048) e. Ký tự A hoặc a Chỉ cho phép nhập các ký tự thuộc bảng chữ cái: Clear Ten=Space(7) @12,10 SAY 'Vào tên của ban? ' GET Ten FUNCTION 'A' READ ? Ten f. Ký tự B hoặc b Gióng thẳng hàng lề trái của trường, ví dụ USE KHOIA @12,10 SAY 'Vào họ đệm ? ' GET Hodem FUNCTION 'B' @13,10 SAY 'Vào tên ? ' GET Ten FUNCTION 'B' @14,10 SAY 'Vào điểm toán?' GET Toan FUNCTION 'B' READ g. Ký tự C Hiển thị ký tự CR sau một số dương: @14,10 SAY 1235 FUNCTION 'C' Kết quả: 1235 CR h. Ký tự D Hiển thị giá trị Date: @14,10 SAY 12345 FUNCTION 'D' Kết quả sẽ là:1/23/45 i. Ký tự E Hiển thị và nhập ngày tháng theo kiểu châu âu (ngày/Tháng /Năm): Clear A={} @14,10 SAY 'Vào dữ liệu dạng Date?' GET a FUNCTION 'E' ?a j. Ký tự I Canh văn bản nằm giữa: USE KHOIA @12,10 SAY 'Vào họ đệm ? ' GET Hodem FUNCTION 'I' @13,10 SAY 'Vào tên ? ' GET Ten FUNCTION 'I' @14,10 SAY 'Vào điểm toán?' GET Toan FUNCTION 'I' READ ELEC Trang 128 TRUNG TÂM ĐÀO TẠO TRỰC TUYẾN - ĐẠI HỌC KINH DOANH & CÔNG NGHỆ H À NỘI k. Ký tự J Dóng thẳng hàng bên phải: USE KHOIA @12,10 SAY 'Vào họ đệm ? ' GET Hodem FUNCTION 'J' @13,10 SAY 'Vào tên ? ' GET Ten FUNCTION 'J' @14,10 SAY 'Vào điểm toán?' GET Toan FUNCTION 'J' READ l. Ký tự K Nguyên cả trường được chọn (bôi đen) USE KHOIA @12,10 SAY 'Vào họ đệm ? ' GET Hodem FUNCTION 'K' @13,10 SAY 'Vào tên ? ' GET Ten FUNCTION 'K' @14,10 SAY 'Vào điểm toán?' GET Toan FUNCTION 'K' READ Nên dùng K khi ta định gõ lại toàn bộ nội dung của trường đó m. Ký tự L Hiển thị các chữ số 0 ở đầu thay vì dấu cách: A=123 @14,10 SAY 'Vào a =' GET a FUNCTION 'L' READ n. Ký tự M Lựa một giá trị trong USE KHOIA @12,10 SAY 'Vào khu vực? ' GET kv FUNCTION 'M 1,2,3' @13,10 SAY 'Vào ưu tiên?' GET ut FUNCTION 'M 1,2,3,4,5, 6,7,8,9,10,11' READ o. Ký tự S Cuốn duyệt theo chiều ngang trong khi sửa biến sau GET kiểu ký tự: p. Ký tự T Cắt bỏ dấu cách trước vào sau ra khỏi trường ký tự 2. [PICTURE ] a. Ký tự! Chuyển mọi ký tự viết thường thành viết hoa: @2,10 SAY 'chào bạn?' PICTURE '!!!!!

Các file đính kèm theo tài liệu này:

  • pdfgiao_trinh_visual_foxpro_6_0.pdf