1. Trang chủ
  2. » Công Nghệ Thông Tin

Bài giảng Visual FoxPro - Chương 2 doc

31 1,3K 8

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 31
Dung lượng 575,08 KB

Nội dung

Cấu trúc lệnh trực tiếp của Foxpro có dạng: [Các tham số] ↵ Trong đó: - Động từ tiếng anh tương ứng với công việc cần làm; [Tham số] - Các tham số trong lệnh của fox có thể có, có thể

Trang 1

CHƯƠNG I: 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 Từ khóa, kí hiệu, Lệnh

1 Từ khóa (Key Word):

Là các từ mà Visual Foxpro đã sử dụng cho một mục đích nào đó Và người dùng không

được phép đặt tên trùng với từ khóa Tham khảo tài liệu về tất cả các khóa của Visual

Foxpro 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á đó, ví dụ từ khoá CREATE có thể chỉ cần viết Crea (Visual Foxpro không phân

biệt chữ hoa, chữ thường)

2 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 &&

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) - gọi

là Lệnh trực tiếp

• 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

Cấu trúc lệnh trực tiếp của Foxpro có dạng: <Động từ> [Các tham số] ↵

Trong đó: <Động từ> - Động từ tiếng anh (tương ứng với công việc cần làm);

[Tham số] - Các tham số trong lệnh của fox có thể có, có thể không, hoặc có thể có nhiều; trường hợp có nhiều tham số thì thứ tự các tham số này có thể không

4 SET DEFAULT TO <Path> -> Thiết lập đường dẫn mặc định

5 SET DATE <FRENCH | AMERICA> -> Thiết lập ngày tháng

II Kiểu dữ liệu

Đối tượng xử lý của V FOXPRO là dữ liệu, để quản lý và khai thác tốt các dữ liệu này,

Trang 2

tuỳ theo tính chất, V.FOXPRO phải chia dữ liệu thành nhiều kiểu dữ liệu khác

nhau

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 Các kiểu dữ liệu

trong Visual Foxpro gồm có: Character (Xâu kí tự), Date và DateTime (Ngày, giờ),

Currency (Tiền tệ), Logic, Numeric (Số); các kiểu chỉ dùng cho các trường của bảng gồm

có: Memo (Văn bản), General (Tổng hợp - ảnh)

1 Charater (C):

Chứa các số liệu là tổ hợp một số bất kỳ các ký tự ASCII Ví dụ: tên, họ hoặc là số

nhưng không có nhu cầu tính toán như số chứng minh, địa chỉ, số phòng,…

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ớ)

Là xâu ký tự a->z, A->Z, 0 ->9 và một số các ký tự khác như +.-,*, /, = …

Hằng xâu kí tự: Đặt trong dấu “”, ‘’, hoặc []; ví dụ “Hà nội”, ‘Việt nam’ hoặc [Visual Fox]

Các phép toán:

• +: Nối chuỗi 2 vào chuổi 1

• -: Nối 2 chuỗi nhưng huỷ bỏ các khoảng trắng trước và sau mỗi chuỗi

• $: Chứa ở trong (st1$st2 – st1 có trong st2 ->TRUE, ngược lại ->FALSE)

2 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 đến,

đó là những số nguyên dạng "yyyymmdd" khi hiển thị ra bên ngoài sẽ được chuyển

thành dạng ngày tháng bình thường như mm-dd-yy, dd-mm-yyyy, tuỳ theo yêu

cầu của người lập trình Độ dài cố định của dữ liệu kiểu ngày là 8 ký tự

• Kiểu ngày, giờ dùng 8 bytes để lưu trữ

• Hằng Date và DateTime: {^yyyy-mm-dd [hh[:mm[:ss]][alp]]}; ví dụ:

Trang 3

3 Currency

Kiểu tiền tệ (thực chất là kiểu số và thêm kí tự tiền $ hoặc ký tự bất kỳ khác) vào số đó

Kiểu này thường ít được sử dụng

4 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, đối tượng ưu tiên, Độ dài cố định của dữ liệu kiểu

lý luận là 1 ký tự

• Kiểu logíc, tập giá trị là Đúng hoặc Sai

• Hằng Logic: T ->TRUE đúng (hoặc t.); F ->FALSE sai (hoặc f.)

• Các phép toán: NOT, AND, OR

5 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, quản lý, Mỗi dữ liệu kiểu số chiếm tối đa 20 chữ số

gồm cả phần nguyên, phần thập phân và dấu chấm thập phân

• Float (F): Dùng để biểu diễn số là các số có dấu chấm động như: 2.03e5 (2.03

x105), thường được sử dụng trong các chương trình thuộc lĩnh vực khoa học kỹ

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ự, như

khen thưởng, lý kịch, quá trình công tác, Độ dài khai báo là 10 nhưng nội dung thực sự

của kiểu ghi nhớ là tuỳ ý, 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à FPT (FoxPro Text)

7 General

• Kiểu kí ức, dùng 4 byte để ánh xạ đến 1 file khác có phần mở rộng là fpt Kiểu này

cho phép lưu 1 đối tượng bất kỳ như file văn bản, file word, file excel, file ảnh và

thường được sử dụng để lưu trữ file ảnh

• Kiểu hình ảnh - Ficture (P): Dữ liệu lưu dưới dạng hình ảnh BMP, thường

được dùng trong các chương trình "quản lý nhân sự", "nhận dạng",

III Các phép toán

a Phép toán số học: được thực hiện trên các dữ liệu kiểu số, gồm các phép toán:

Trang 4

Độ ưu tiên các phép toán theo thứ tự đã nêu ở trên, 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

b Phép toán chuỗi: Dùng để xử lý các dữ liệu kiểu chuỗi

• Phép toán ghép nối (+): dùng để ghép 2 chuỗi cạnh nhau, kết quả của phép toán là

một dữ liệu kiểu chuỗi

o Ví dụ: Trung tâm' + 'Tin học' -> 'Trung tâm Tin học'

• Phép toán ghép nối (-): dùng để ghép 2 chuỗi cạnh nhau và di chuyển các dấu

cách ở chuỗi thứ nhất (nếu có) ra cuối chuỗi tạo thành

o Ví dụ: 'Trung tâm ' - ' 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 Kết quả

của phép toán có kiểu logic

o Ví dụ: 'ab' $ "ABab" cho giá trị T nhưng 'ab $ "AaBb" cho giá trị F

c 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

Ví dụ:

• {01/08/2003} - {05/09/2003} -> - 35

• {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}+ 10 -> {11/08/2003}

{01/08/2003}- 20 -> {12/07/2003}

Chú ý: Hai dữ liệu kiểu ngày không thể cộng (+) cho nhau

Một số không thể trừ (-) với một dữ liệu kiểu ngày

Trang 5

Việc diễn tả thứ tự ngày (D), tháng (M), 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

(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

(2) SET CENTURY ON|OFF: Quy ước năm có một dữ liệu dạng ngày được biểu diễn

theo dạng hai số (mặc định) hay dạng bốn số Nếu SET CENTURY ON thì năm được

biểu diễn theo dạng bốn con số, nếu SET CENTURY OFF (dạng mặc định) thì năm

được biểu diễn theo dạng hai con số

(3) Lệnh SET MARK TO <bthức C>: để ấn định ký tự phân cách ngày tháng, 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

d 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

• Hai dữ liệu kiểu số được so sánh dựa theo biểu diễn của chúng trên trục số

• Hai dữ liệu kiểu ngày được so sánh dựa theo biểu diễn của chúng theo chiều của

thời gian Trong kiểu logic, Visual FoxPro quy ước: T.<.F

• 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, nếu bằng nhau thì

so sánh tiếp

Ví dụ: 'ABCD' < 'ABCE' -> T 'a' < 'A' -> F

• Trường hợp hai chuỗi có độ dài khác nhau, thì việc so sánh dựa vào việc thiết lập

môi trường SET EXACT ON/OFF, nghĩa là:

o Nếu SET EXACT ON thì 'AB' = 'AB ' -> F

o Nếu SET EXACT OFF thì 'ABCD' = 'AB' -> T

e Phép toán logic: Visual FoxPro có 3 phép toán logic: NOT; AND; OR NOT hay ! :

Trang 6

phủ định của toán hạng theo sau

• AND : cho giá trị T nếu cả hai toán hạng đều T

• OR : cho giá trị F nếu cả hai toán hạng đều F

IV Toán hạng

Toán hạng là các dữ liệu tham gia vào các phép toán Ví dụ: del=b^2 - 4*a*c thì b,2,4,a,c

là các toán hạng

V 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 Hằng cũng được xác định qua tên, kiểu và phạn vi tác động của nó Trừ kiểu dữ liệu

memo thì mỗi kiểu dữ liệu đều có hằng của nó

• Khai báo hằng: Visual Foxpro dùng từ khoá #DEFINE <Tênhằng> <Giá trị> để khai

báo hằng 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

• Hằng kiểu số: như -2.5, 100, 4.14

• Hằng kiểu chuỗi: hằng loại nầy phải để trong hai dấu " " hoặc ' ' hoặc [ ], có độ

dài tối đa không quá 253 kí tự

o Tên biến: Dài không quá 254 kí tự, có thể dùng các chữ cáI, chữ số, 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á)

o Kiểu: Các kiểu dữ liệu kể trên trừ kiểu General Kiểu của biến trong Visual

Foxpro có thể thay đổi Visual FoxPro hiểu kiểu của biến là kiểu của giá trị

mà nó đang mang Số lượng tối đa của biến được phép sử dụng là 2048 biến

o Visual FoxPro chia biến làm 3 loại:

o Biến bộ nhớ: Gọi chung là biến, do người sử dụng tạo ra trong bộ nhớ, khi không sử dụng nữa có thể giải phóng để tiết kiệm bộ nhớ

Ví dụ: hsl = 3.12 ngaysinh = {01/01/88}

Trang 7

o Biến hệ thống: Được tạo ra ngay từ khi khởi động Visual FoxPro Có tên

bắt đầu bằng dấu gạch nối ( _ ) thường được sử dụng trong vấn đề in ấn, người sử dụng không thể giải phóng biến loại này

o Biến trường: Tên các trường trong tập tin CSDL , nó chỉ có ý nghĩa khi tập

tin chứa nó được mở ra để sử dụng 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

• Phạm vi tác động của biến phụ thuộc vào vị trí mà nó được khai báo Ví dụ

Trong ví dụ trên: Biến A có tác động trong toán bộ chương trình chính, chương trình con 1

và chương trình con 2; Biến C chỉ có tác động trong chương trình con 2; Biến B có tác

động trong chương trình con 1, 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)

• Khai báo biến: Trong Visual Foxpro thực ra không có khái niệm khai báo biến (như

trong PASCAL) mà các biến sẽ được sinh ra khi thực hiện lệnh gán (=) hoặc lệnh STORE

Ví dụ

o a=150 -> Tạo ra biến có tên là a, kiểu là số

o STORE ”Visual Foxpro“ TO monhoc -> Tạo ra biến monhoc, 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ớ

Visual Foxpro dùng lệnh RELEASE <tenbien> để xoá bỏ các biến Ví dụ RELEASE a;

RELEASE monhoc

Trang 8

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

VII 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 đó

Các hàm này thường cho ra một giá trị, 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ả Về hình thức, 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ố, các đối số này đặt cách nhau bởi dấu phẩy 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

Ví dụ: Date ( ): cho biết ngày tháng năm hệ thống

Sqrt(x): căn bậc 2 của x

Có 2 loại hàm: Hàm có sẵn của Visual FoxPro và hàm tự tạo do người sử dụng tạo ra

Trong phần này sẽ giới thiệu một số hàm do Visual Foxpro cung cấp

1 Hàm xâu kí tự

1 ALLTRIM(st), LTRIM(st), RTRIM(st)

2 LEFT(st,n), RIGHT(st,2), SUBSTRING(st,p,n)

Trang 9

4 Hàm tự tạo của người sử dụng

Cú pháp

FUNCTION <Tenham> [PARAMETER <danh sách các tham số>]

(Các 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

VIII 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, hàm, biến, phép toán, dấu

ngoặc tròn Sau khi tính toán biểu thức sẽ cho một trị duy nhất Trị của biểu thức thuộc

về một trong 4 kiểu: N, C, D, L Một biểu thức có thể rất phức tạp, 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

4 Các phép logic: NOT, AND, 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

Bên trái tính trước, bên phải tính sau

IX Từ khoá

Từ khoá là những từ được Visual FoxPro sử dụng vào một mục đích riêng, người sử dụng

không được đặt tên trùng với các từ khoá này Thông thường từ khoá là những động từ

của lệnh thực hiện Nếu từ khoá có nhiều hơn 4 ký tự thì khi sử dụng chỉ cần ghi 4 ký tự

đầu

Trang 10

Ví dụ: Câu lệnh MODIFY COMMAND LUONG.PRG có 2 từ khoá là

MODIFY và COMMAND có thể viết gọn là: MODI COMM LUONG.PRG

X Lệnh và chương trình

Lệnh là những yêu cầu để thực hiện một nhiệm vụ nào đó Lệnh trong Visual FoxPro

thường là một động từ, cũng có trường hợp là một kí hiệu như: ! ?, Tập hợp các

lệnh nhằm đạt được một mục tiêu đề ra gọi là chương trình

Trong Visual FoxPro có 3 cách để ban hành lệnh:

a 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 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 Cách

này thường dùng trong những tính toán đơn giản để kiểm tra kết quả của lệnh

b Dùng menu:

Lệnh được ban hành bằng cách kích hoạt menu tương ứng, sau khi thi hành xong câu

lệnh cũng được lưu lại trên cửa sổ lệnh 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 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 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

Để thực hiện chương trình này, tại cửa sổ lệnh đưa câu lệnh DO <tên file.PRG> 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ự

Trang 11

BÀI 2: XÂY DỰNG PROJECT

I 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

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, khi đó giao diện New của VS Foxpro xuất

hiện

• Tiếp đến chọn File type = Project (Mặc định)

• Chọn New file để tạo một Project trống

• Chọn Wizard để tạo một Project theo một trong các mẫu

thiết kế sẵn của Microsoft

• 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, tiếp chọn chọn Save

• Kết thúc việc tạo mới, cửa sổ Project Manager xuất hiện (xem phần tiếp theo) cho phép quản lý, làm việc với Project này

II 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, Free Tables, Queries

• Documents: Forms, Reports, Labels

• Class

• Code: Program, API Libraries, Applications

• Other: Menu, Text file, Other file

Trang 12

2-Các nút chức năng trong cửa sổ Project Manager

ADD THÊM CÁC THÀNH PHẦN VÀO PROJECT

PROJECTT MODIFY SỬA CẤU TRÚC CỦA MỘT THÀNH PHẦN

TRONGG PROJECTT BROWSE XEM VÀ SỬA DỮ LIỆU CỦA CÁC BẢNG HAY

TRUYY VẤNN REMOVE LOẠI BỎ MỘT THÀNH PHẦN TRONG

PROJECTT

Trang 13

BÀI 3: XÂY DỰNG DATABASE VÀ CÁC TABLES

I Giới thiệu

Bảng dữ liệu (gọi tắt là bảng) là nơi lưu trữ dữ liệu và nó đóng một vai trò quan trọng trong

các bài toán quản lý Xuất phát từ việc phân tích yêu cầu, 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, đáp ứng các yêu cầu đặt ra là một công việc

khá phức tạp, đòi hỏi phải có kiến thức và kinh nghiệm trong lĩnh vực cụ thể đó

II Tạo Database

1 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, 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ở

• Chọn New Database để tạo một database trống

• Visual Foxpro sẽ yêu cầu nhập vào tên Database (file có phần mở rộng là DBC), rồi chọn Save để ghi lại Khi đó giao diện Database designer xuất hiện như hình 2

• 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, mỗi quan hệ giữa các bảng ) trong csdl

Hình 1 - Hộp thoại New database

Trang 14

2 Sửa đổi Database

• Trong Project Manager, chọn Tab Data, 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)

• Chọn Database cần sửa (vì trong một Project có thể có nhiều hơn một Database) rồi

chọn lệnh Modify, khi đó cửa sổ Database designer xuất hiện

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

• Trong Project Manager, chọn Tab Data, tiếp đến chọn mục Database

• Chọn lệnh Add, khi đó sẽ xuất hiện cửa số open file (hình 3) cho phép chúng ta chọn

csdl cần thêm vào

Hình 3 - Hộp thoại Open file (Select Database)

Trang 15

4 Loại bỏ một Database khỏi Project

Khi không cần dùng một Database nào đó, chúng ta có thể loại bỏ Database đó khỏi Project

Hình 4 - Hộp thoại Remove Database

• Chọn Remove (khỏi Project) nếu không muốn xoá hẳn Database này; chọn Delete

nếu muốn xoá hẳn Database này; chọn Cancel khi muốn huỷ bỏ thao tác này

III Bảng dữ liệu (Table)

1 Khái niệm

Bảng dữ liệu chứa dữ liệu theo dạng dòng và cột, mỗi dòng được gọi là một mẫu tin

(record), mỗi cột được gọi là một trường (field) của bảng

Một số công việc cần làm khi làm việc các tables:

• Xác định các Field cần thiết có trong table

• Loại dữ liệu, tạo tiêu đề diễn giải, giá trị mặc định cho từng field

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

• 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

Ngày đăng: 05/08/2014, 19:21

HÌNH ẢNH LIÊN QUAN

Hình 3 - Hộp thoại Open file (Select Database) - Bài giảng Visual FoxPro - Chương 2 doc
Hình 3 Hộp thoại Open file (Select Database) (Trang 14)
Hình 5 - New table - Bài giảng Visual FoxPro - Chương 2 doc
Hình 5 New table (Trang 17)

TỪ KHÓA LIÊN QUAN

w