Bài giảng Tin học ứng dụng - Chương IV: Hệ quản trị cơ sở dữ liệu Foxpro - Hà Văn Sang
- Thông tin về các đối tượng được quản lý thường lưu trữ dưới dạng bảng
- Các bảng thường gồm các dòng và các cột
- Mỗi cột phản ánh một tiêu thức cần quản lý hay còn gọi là thuộc tính của đối tượng
Trang 1
Trang 2
Trang 3
Trang 4
Trang 5
Trang 6
Trang 7
Trang 8
Trang 9
Trang 10
Tải về để xem bản đầy đủ
Bạn đang xem 10 trang mẫu của tài liệu "Bài giảng Tin học ứng dụng - Chương IV: Hệ quản trị cơ sở dữ liệu Foxpro - Hà Văn Sang", để tải tài liệu gốc về máy hãy click vào nút Download ở trên
Tóm tắt nội dung tài liệu: Bài giảng Tin học ứng dụng - Chương IV: Hệ quản trị cơ sở dữ liệu Foxpro - Hà Văn Sang
TIN HỌC ỨNG DỤNG 1 Hà Văn Sang Bộ môn: Tin học TC – KT Khoa: Hệ Thống Thông Tin Kinh tế - Học Viện Tài Chính Tel: 0982165568 Email: sanghv@hvtc.edu.vn Website: CHƯƠNG IV HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU FOXPRO 2 I. KHÁI NIỆM CHUNG 1. Cơ sở dữ liệu a. Tệp dữ liệu - Thông tin về các đối tượng được quản lý thường lưu trữ dưới dạng bảng 3 - Các bảng thường gồm các dòng và các cột - Mỗi cột phản ánh một tiêu thức cần quản lý hay còn gọi là thuộc tính của đối tượng - Mỗi dòng chứa thông tin về tất cả các thuộc tính của đối tượng. - Giao của dòng và cột là giá trị cụ thể của một thuộc tính 1. Cơ sở dữ liệu - Một bảng luôn chứa thông tin về một tập hợp các đối tượng cùng loại Ví dụ: danh sách sinh viên K41 STT HỌ TÊN NGÀY SINH GIỚI TÍNH ĐIỂM 4 1 Nguyễn Văn A 01/01/1985 Nam 9 2 Cao Đức Cẩm 12/07/1985 Nam 8 3 Lê Lan 23/12/1985 Nữ 9 .. ... .. .. .. - Khi lưu trữ trên máy, mỗi bảng như vậy được ghi thành một tệp dữ liệu 1. Cơ sở dữ liệu Vậy có thể hiểu: Tệp dữ liệu: là tệp chứa thông tin về các thuộc tính của các đối tượng cùng loại được lưu trên máy 5 - Mỗi đối tượng sẽ được quản lý trên một số thuộc tính nhất định. - Một bộ thông tin về tất cả các thuộc tính được gọi là một bản ghi dữ liệu (Record). - Thông tin về một thuộc tính chứa trong một phần của tệp gọi là một trường (Field). 1. Cơ sở dữ liệu Tệp dữ liệu = bảng Một bản ghi = một dòng Một trường = một cột 6 - Một trường được xác định bởi: • Tên trường • Kiểu trường • Độ rộng • Số chữ số thập phân 1. Cơ sở dữ liệu Tên trường (Field Name): Dùng để đặt tên và phân biệt các trường Qui tắc đặt tên trường trong Fox: 7 • Tên trường do người dùng đặt • Gồm các chữ cái, số, gạch nối và không quá 10 kí tự • Bắt đầu bởi chữ cái • Không phân biệt chữ hoa, chữ thường Ví dụ: STT, HoTen, Ngay_Sinh, DIEM 1. Cơ sở dữ liệu Kiểu trường (Type): Dùng để xác định kiểu thông tin chứa trong trường Các kiểu hay gặp trong Fox: 8 • Kiểu kí tự (character): thường viết tắt là C, gồm các: + Chữ cái + Chữ số không tính toán + Chữ số không tính tóan và các kí tự đặc biệt. Ví dụ: “Hoàng Hùng”, “37/CP”, “K412101” 1. Cơ sở dữ liệu • Kiểu số (Numeric): thường viết tắt là N, chứa các số có thể tính toán • Kiểu Ngày (Date): thường viết tắt là D, dùng để lưu ngày tháng năm cụ thể 9 • Kiểu Logic (Logical): thường viết tắt là L, dùng để lưu các thông tin có hai giá trị trái ngược nhau của một thuộc tính. .T. là đúng, .F. là sai Ví dụ: Giới tính nam><xuất 1. Cơ sở dữ liệu • Kiểu kí ức (Memo): thường viết tắt là M, là kiểu dữ liệu đặc biệt dùng để lưu các văn bản lớn có độ dài không cố định 10 Ví dụ: Tiểu sử, lý lịch của một cán bộ Thông số, lý lịch của một loại máy 1. Cơ sở dữ liệu Độ rộng (Width): Dùng để xác định số kí tự tối đa ghi trong trường Trong Fox: 11 • Kiểu kí tự (C) <=254 kí tự • Kiểu số (N) <=20 • Kiểu Ngày (D) = 8 • Kiểu Logic (L) = 1 • Kiểu kí ức (M) <=254 mở rộng 5000 1. Cơ sở dữ liệu Số chữ số thập phân (Dec): Đặc trưng riêng của trường số, xác định số chữ số thập phân được dùng Nếu số chữ số thập phân là 0 thì đó là số nguyên 12 Một số chú ý: • Mỗi bản ghi có độ dài không quá 4000 kí tự • Mỗi tệp có không quá 128 trường • Tệp dữ liệu của Fox có phần mở rộng là DBF I. KHÁI NIỆM CHUNG b. Cơ sở dữ liệu - Là tập hợp các tệp dữ liệu có quan hệ với nhau để cung cấp một hệ thống thông tin cho một mục tiêu hoặc một bài toán. 13 c. Cấu trúc tệp dữ liệu - Là một bảng để liệt kê các thông tin từng trường gồm có tên, loại, độ rộng I. KHÁI NIỆM CHUNG 2. Hệ quản trị cơ sở dữ liệu a. Khái niệm - Là một hệ thống các chương trình dùng để thao tác trên một cơ sở dữ liệu 14 b. Các thao tác - Cập nhập dữ liệu - Truy vấn dữ liệu. - Lưu trữ dữ liệu - Kết xuất thông tin c. Các hệ quản trị cơ sở dữ liệu - SQL Server, Oracle - Foxpro, Access .. II. Hệ QT CSDL Fox Giới thiệu - Fox là hệ quản trị cơ sở dữ liệu được sử dụng phổ biến trong các bài tóan quản lý kinh tế 15 - Fox được phát triển từ Foxbase đến Foxpro rồi đến Visual Foxpro theo hướng tương thích đi lên - Là bộ sản phẩm của hãng Microsoft - Muốn sử dụng chương trình phải cài đặt, với tệp khởi động là Foxpro.exe, Foxprow.exe, hoặc VFP.exe II. Hệ QT CSDL Fox 1. Làm quen với Fox a. Khởi động -Để khởi động Foxpro ta dùng một trong các cách Cách 1: Kích kép chuột tại biểu tượng Foxpro trên màn 16 hình giao tiếp Cách 2: Kích Start Programs mục tương ứng Tên chương trình Fox Cách 3: Từ RUN chọn đương dẫn tới tệp chương trình rồi nhấn OK 1. Làm quen với Fox Màn hình chính Thanh tiêu để Thanh thực đơn Cửa sổ lệnh 17 1. Làm quen với Fox Màn hình chính gồm - Thanh tiêu đề - Thanh thực đơn - Màn hình làm việc 18 - Cửa sổ lệnh (Command window): là nơi vào các lệnh của Fox dưới dạng văn bản Để bật tắt cửa sổ lệnh ta nhấn Ctrl + F2 hoặc chọn Window Command 1. Làm quen với Fox b. Thoát khỏi fox - Để thoát khỏi foxpro ta thực hiện: Cách 1: Nhấn tổ hợp phím ALT+ F4 19 Cách 2: Chọn menu File Exit Cách3: tại cửa sổ lệnh gõ Quit và nhấn Enter 1. Làm quen với Fox c. Hai chế độ làm việc Fox làm việc dưới hai chế độ sau: Chế độ hội thoại (dòng lệnh) 20 - Là chế độ mà các lệnh được đưa vào từ cửa sổ lệnh, sau khi nhấn Enter lệnh sẽ được thực hiện - Các lệnh không được lưu trên đĩa nên chỉ dùng để thực hiện các lệnh đơn giản, hoặc các lệnh chỉ dùng 1 lần 1. Làm quen với Fox Chế độ chương trình - Là chế độ ghép các lệnh thành một tệp chương trình và ghi lên đĩa với phần mở rộng là .PRG - Để tạo một chương trình: 21 Cách 1: dùng một hệ soạn thảo văn bản để viết các lệnh, rồi ghi với phần mở rộng là .prg Cách 2: tại cửa sổ lệnh gõ: MODIFY COMMAND Sau đó nhấn Ctrl + W để ghi lên đĩa - Để chạy một chương trình gõ: DO 2. Các yếu tố cơ bản của Fox a. Bộ kí tự - Bộ kí tự của fox chính là bộ kí tự trong bảng mã ASCII, gồm có: + 26 chữ cái a .. z, A .. Z 22 + 10 chữ số 0..9 + Các kí tự +, -, *, /, !, @, #, $, % ... n tại • Trường 1, 2 ..n là các trường cần thay thế giá trị • Biểu thức phải có kiểu phù hợp với kiểu của trường 87 Tác động: - Khi gặp lệnh này, Fox sẽ thay thế nội dung của các trường với giá trị của các biểu thức tương ứng - Chỉ có các bản ghi nằm trong phạm vi và thỏa mãn biểu thức logic mới chịu tác động của lệnh Chú ý: - Dữ liệu do máy thay thế tự động nên phải cẩn thận khi dùng lệnh 3.3 Lệnh xem sửa tệp dữ liệu Ví dụ: Use QLSV REPL ALL DTB WITH 0, PL WITH “ ” USE 88 - Nhập 10 vào điểm môn 2 của sinh viên có tên Trần Anh Use QLSV REPL D2 with 10 FOR Ten=“Anh” .AND. Hodem=“Trần” Hoặc LOCATE FOR Ten=“Anh” .AND. Hodem=“Trần” REPL D2 with 10 3.3 Lệnh xem sửa tệp dữ liệu Tính điểm trung bình theo công thức DTB = (D1x2 + D2x3)/5 Phân loại: - Giỏi nếu ĐTB >=8.0 - Khá nếu 8.0>ĐTB>=7.0 89 - TB nếu 7>ĐTB >=5.0 REPL ALL DTB with (D1*2 + D2*3)/5 - Yếu nếu TB<5.0 REPL ALL PL with “Giỏi” FOR DTB>=8.0 REPL PL with “Khá” FOR DTB>=7.0 .AND. DTB<8.0 REPL PL with “Tb” FOR DTB>=5.0 .AND. DTB<7.0 REPL PL with “Yếu” FOR DTB<5.0 3.4 Lệnh thêm bớt bản ghi a. Lệnh INSERT - Tác dụng: Dùng để chèn một bản ghi vào một vị trí bất kỳ trong tệp - Dạng lệnh 90 INSERT [BEFORE] [BLANK] - Tác động: Lệnh sẽ cho chèn vào tệp 1 bản ghi, cụ thể: +Nếu có BEFORE thì chèn vào trước bản ghi hiện thời +Nếu không có BEFORE thì chèn vào sau bản ghi hiện thời 3.4 Lệnh thêm bớt bản ghi + Nếu có BLANK sẽ tự động chèn 1 bản ghi rỗng Nếu là kiểu C nhận giá trị là các khoảng trống Nếu là kiểu N nhận giá trị 0 Nếu là kiểu L nhận giá trị .F. 91 Nếu là kiểu D nhận giá trị ../../.... + Nếu không có BLANK sẽ chèn bản ghi sau đó cho người dùng nhập dữ liệu Chú ý: Lệnh này ít được dùng vì máy phải thực hiện ghi chép lại tệp nên tốc độ rất chậm 3.4 Lệnh thêm bớt bản ghi Ví dụ: chèn 1 bản ghi số 50 vào tệp QLSV Use QLSV GO 50 INSERT BEFORE 92 - Nhập dữ liệu cho bản ghi Hoặc cách 2: Go 50 INSERT BEFORE BLANK REPL Ten WITH “Anh”, Hodem WITH “Trần” 3.4 Lệnh thêm bớt bản ghi b. Lệnh DELETE - Tác dụng: Dùng để đánh dấu xóa các bản ghi trong tệp đang mở - Dạng lệnh 93 DELETE [Phạm vi] [FOR ] Trong đó: phạm vi ngầm định là bản ghi hiện thời - Tác động: Fox sẽ đánh dấu xóa các bản ghi thuộc phạm vi thỏa mãn biểu thức logic 3.4 Lệnh thêm bớt bản ghi Ví dụ: đánh dấu xóa sinh viên khóa 39 Use QLSV DELETE ALL FOR LEFT(Lop,2)=’39’ USE 94 Đánh dấu xóa bản ghi số 49 USE QLSV GO 49 DELETE USE 3.4 Lệnh thêm bớt bản ghi c. Lệnh RECALL - Tác dụng: Dùng để hủy việc đánh dấu xóa các bản ghi trong tệp đang mở - Dạng lệnh 95 RECALL [Phạm vi] [FOR ] Trong đó: phạm vi ngầm định là bản ghi hiện thời - Tác động: Fox sẽ hủy bỏ việc đánh dấu xóa các bản ghi thuộc phạm vi thỏa mãn biểu thức logic 3.4 Lệnh thêm bớt bản ghi Ví dụ: bỏ đánh dấu xóa sinh viên khóa 39 Use QLSV RECALL ALL FOR LEFT(Lop,2)=’39’ USE 96 Hủy bỏ đánh dấu xóa bản ghi số 49 USE QLSV GO 49 RECALL USE 3.4 Lệnh thêm bớt bản ghi d. Lệnh PACK - Tác dụng: Dùng để loại bỏ các bản ghi đã bị đánh dấu xóa ra khỏi tệp - Dạng lệnh 97 PACK - Tác động: Fox sẽ xóa hẳn các bản ghi bị đánh dấu xóa khỏi tệp, và không thể phục hồi 3.4 Lệnh thêm bớt bản ghi e. Lệnh ZAP - Tác dụng: Xóa bỏ toàn bộ các bản ghi trong tệp đang mở - Dạng lệnh 98 ZAP - Tác động: Fox sẽ xóa tất cả các bản ghi trong tệp và chỉ để lại cấu trúc của tệp. Lệnh này tương đương với việc đánh dấu xóa tất cả rồi Pack nhưng tốc độ thì nhanh hơn. 3.5 Sắp xếp và tìm kiếm - Sắp xếp và tìm kiếm là công việc thường gặp trong quá trình xử lý của máy tính - Để tìm kiếm được nhanh trước hết ta phải sắp xêp dữ liệu - Trước khi sắp xếp ta phải xác định được: 99 Trường cần sắp xếp hay còn gọi là khóa Sắp xếp theo thứ tự tăng hay giảm Trường nào được ưu tiên sắp trước Có phân biệt chữ hoa hay thường không? 3.5 Sắp xếp và tìm kiếm a. Lệnh INDEX (tạo chỉ mục) Tệp chỉ dẫn: - Là tệp được sử dụng để chỉ dẫn cho tệp dữ liệu gốc - Phục vụ cho công việc tìm kiếm dữ liệu 100 - Gồm 2 trường: trường chỉ dẫn và số hiệu bản ghi - Các bản ghi trong tệp dữ liệu có sử dụng tệp chỉ dẫn được sắp xếp theo thứ tự tăng dần của trường chỉ dẫn 3.5 Sắp xếp và tìm kiếm a. Lệnh INDEX (tạo chỉ mục) -Tác dụng: - Dùng tạo ra một tệp chỉ dẫn để sắp xếp tệp đang mở theo thứ tự tăng dần của khóa sắp xêp - Dạng lệnh: 101 INDEX ON TO [FOR ] Trong đó: -BT: là biểu thức bất kỳ dùng làm khóa sắp xếp -Tentep: là tên tệp chỉ dẫn với đuôi ngầm định .idx 3.5 Sắp xếp và tìm kiếm - Tác động: Lệnh sẽ tạo ra tệp chỉ dẫn có tên là để sắp xếp các bản ghi của tệp đang mở theo thứ tự tăng dần của khóa là BT 102 Nếu các bản ghi có cùng giá trị khóa sắp xếp thì fox sẽ sắp xếp các bản ghi theo trật tự đã có Nếu có FOR thì chỉ những bản ghi thỏa mãn bt logic mới được coi là có mặt trong tệp và tham gia sắp xếp 3.5 Sắp xếp và tìm kiếm - Ví dụ: Trong tệp QLSV ta sắp xếp điểm trung bình INDEX ON DTB TO cdDTB FOR DTB >=5 103 Tệp gốc # DTB 1 5.0 2 7.5 3 4.3 4 7.5 5 6.0 Tệp chỉ dẫn # DTB 1 5.0 5 6.0 2 7.5 4 7.5 3.5 Sắp xếp và tìm kiếm - Ví dụ 1: In danh sách lớp 41.21.01 theo tứ tự Abc của tên USE QLSV 104 INDEX ON ten+hodem TO vd1 FOR Lop=“41.21.01” LIST TO PRINTER USE 3.5 Sắp xếp và tìm kiếm - Ví dụ 2: In danh sách khóa 41 xếp theo lớp, cùng lớp xếp theo điểm trung bình tăng dần USE QLSV INDEX ON LOP + STR(DTB,5,2) TO vd2 FOR 105 LEFT(Lop,2)=“41” DISP all TO PRINTER Use Để sắp xếp DTB giảm dần ta làm như sau INDEX ON – DTB To cdDTB 3.5 Sắp xếp và tìm kiếm - Ví dụ 3: In danh sách khóa 41 xếp theo lớp, cùng lớp xếp theo ngày sinh tăng dần USE QLSV INDEX ON LOP + STR(YEAR(NS),4) + 106 STR(MONTH(NS),2) + STR(DAY(NS),2) TO vd3 FOR LEFT(Lop,2)=“41” DISP ALL TO PRINTER Use Lưu ý: Khi sắp xếp theo một trường thì viết tên trường sau ON, nhiều trường thì biến tất cả thành kiểu xâu để ghép 3.5 Sắp xếp và tìm kiếm b. Lệnh SORT (sắp xếp) -Tác dụng: - Dùng sắp xếp các bản ghi trong tệp đang mở và gửi kết quả sang tệp mới 107 - Dạng lệnh: SORT TO ON [/A|/D][/C] [,trường 2 [/A | /D][/C]..] [FIELDS ] [FOR ] 3.5 Sắp xếp và tìm kiếm - Tác động: Lệnh sẽ sắp xếp các bản ghi dựa theo khóa là các trường Nếu có /A thì sắp xếp tăng dần (ngầm định là /A) 108 Nếu có /D thì sắp xếp giảm dần Nếu có /C thì không phân biệt chữ hoa, chữ thường Kết quả được lưu vào tệp mới có tên là tentep Nếu có FIELDS thì chỉ có các trường trong ds trường mới được gửi sang tệp kết quả Nếu có FOR thì chỉ các bản ghi thỏa mãn mới được sắp xếp 3.5 Sắp xếp và tìm kiếm - Lưu ý: Không đặt tên tệp kết quả trùng với tệp gốc Không sắp xếp trường kí ức và trường logic Sau khi sắp xếp, muốn xem kết quả phải mở tệp kết quả 109 Lệnh Sort có tốc độ chậm hơn so với lệnh Index Có nhiều lệnh không thực hiện được trên tệp xếp bằng lệnh Sort 3.5 Sắp xếp và tìm kiếm - Ví dụ 1: In danh sách toàn trường theo khóa, lớp, điểm trung bình USE QLSV SORT TO VD1 ON LOP, DTB/D 110 USE VD1 LIST TO PRINTER USE 3.5 Sắp xếp và tìm kiếm - Ví dụ 2: In danh sách lớp 41.21.01 với tên đã được xếp theo alphabe USE QLSV SORT TO VD2 ON TEN/AC, HODEM/AC FOR 111 LOP=“41.21.01” USE VD2 LIST TO PRINTER USE 3.5 Sắp xếp và tìm kiếm c. Lệnh LOCATE -Tác dụng: - Dùng để tìm kiếm và định vị con trỏ đến bản ghi thỏa mãn điều kiện nào đó - Dạng lệnh: 112 LOCATE FOR Lệnh sẽ duyệt tuần tự từ đầu tệp để tìm bản ghi đầu tiên thỏa mãn biểu thức logic - Tác động: Nếu thấy sẽ đặt con trỏ tại bản ghi đó Nếu không thấy sẽ đặt con trỏ tại bản ghi EOF 3.5 Sắp xếp và tìm kiếm - Ví dụ 1: Tìm sinh viên có mã là “HTC123” USE QLSV LOCATE FOR MASV=“HTC123” 113 DISPLAY USE Tìm sinh viên nữ sinh ngày 20/10/1985 USE QLSV LOCATE FOR .NOT. GT .AND. NS={20/10/1985} DISPLAY 3.5 Sắp xếp và tìm kiếm d. Lệnh SEEK và FIND -Tác dụng: - Dùng để tìm kiếm nhanh 1 bản ghi trên tệp đã sắp xếp bằng lệnh Index - Dạng lệnh: 114 SEEK FIND Biểu thức của lệnh SEEK phải là kiểu xâu - Trong đó: Biểu thức của lệnh FIND là biểu thức bất kỳ 3.5 Sắp xếp và tìm kiếm - Ví dụ 1: Tìm sinh viên có mã là “HTC123” USE QLSV LOCATE FOR MASV= “HTC123” DISPLAY 115 USE SEEK “HTC123” DISPLAY USE INDEX ON MASV TO CDMASV USE QLSV 3.6 Lệnh tính toán a. Lệnh COUNT -Tác dụng: - Dùng để đếm số bản ghi trên tệp - Dạng lệnh: 116 COUNT [TO ] [FOR ] Biến: là biến nhớ dùng để lưu kết quả sau khi đếm - Trong đó: 3.6 Lệnh tính toán -Tác động: - Lệnh sẽ đếm số bản ghi thỏa mãn biểu thức logic và gửi kết quả vào biến - Nếu không có TO thì hiện kết quả lên màn hình nếu ở chế độ SET TALK ON 117 Để in kết quả lên màn hình ta dùng lệnh: ? ?? 3.6 Lệnh tính toán - Ví dụ 1: Tính tỷ lệ khá giỏi của khóa 41 USE QLSV COUNT TO TSO FOR LEFT(LOP,2)=’41’ 118 COUNT TO TGIOI FOR LEFT(LOP,2)=’41’ .AND. DTB>=8.0 COUNT TO TKHA FOR LEFT(LOP,2)=’41’ .AND. DTB>=7.0 .AND. DTB<8.0 ?’Tỷ lệ sv giỏi: ’, TGIOI/TSO *100, ‘%’ ?’Tỷ lệ sv khá: ’, TKHA/TSO *100, ‘%’ 3.6 Lệnh tính toán b. Lệnh SUM -Tác dụng: Dùng để tính tổng các trường số trên tệp - Dạng lệnh: 119 SUM [phạm vi] [ds biểu thức] [TO ] [FOR ] Phạm vi ngầm định là tất cả các bản ghi - Trong đó: Ds biểu thức gồm các trường số cần tính tổng, ngầm định là mọi trường số Ds biến là các biến lưu kết quả sau khi tính tổng 3.6 Lệnh tính toán -Tác động: - Lệnh duyệt từ đầu tệp tới cuối tệp để tính tổng các trường số trên các bản ghi - Sau đó gửi kết quả vào các biến 120 - Trường hợp có FOR thì chỉ có những bản ghi thỏa mãn biểu thức logic mới được tính tổng -Ví dụ: Tệp dữ liệu quản lý vật tư có cấu trúc như sau: Thuộc tính Name Type Width Loại Lp L 1 .T. (Nhập) Số phiếu Sp C 5 Ngày lập Nl D 8 Nội dung ND C 30 Tên vật tư TENVT C 15 121 Mã vật tư MAVT C 6 Đơn vị tính DVT C 4 Khối lượng KL N 10 Đơn giá DG N 10 Số tiền ST N 12 Mã kho MAKH C 2 3.6 Lệnh tính toán - Ví dụ 1: Tính tổng khối lượng, số tiền nhập xi măng mã “XM30” trong quí I năm 2006 USE QLVT 122 SUM KL, ST TO TKL, TST FOR LP .AND. MAVT=“XM30” .AND. MONT(NL)<4 .AND. YEAR(NL) =2006 ?’ Tổng khối lượng: ‘, TKL ?’ Tổng số tiền: ‘, TST 3.6 Lệnh tính toán - Ví dụ 2: Giả sử có 2 loại đơn vị tính là KG và Tấn chưa chuẩn hóa, yêu cầu tính tổng khối lượng xi măng XM30 còn lại trong các kho Các bước: 123 - Đổi đơn vị từ tấn sang kg (khối lượng, đơn giá) - Tính tổng nhập - Tính tổng xuất - Kết quả bằng tổng nhập – tổng xuất 3.6 Lệnh tính toán - Ví dụ 2: USE QLVT REPL DVT WITH “KG”, KL WITH KL*1000 , DG WITH DG/1000 124 FOR DVT=“TẤN” SUM KL TO TN FOR LP .AND. MAVT=“XM30” SUM KL TO TX FOR .NOT. LP .AND. MAVT=“XM30” ?’Còn lại là: ‘, Tn-Tx 3.6 Lệnh tính toán c. Lệnh AVERAGE -Tác dụng: Dùng để tính trung bình cộng các trường số trên tệp - Dạng lệnh: 125 AVERAGE [ds biểu thức] [TO ] [FOR ] - Trong đó: Ds biểu thức gồm các trường số cần tính trung bình cộng, ngầm định là mọi trường số Ds biến là các biến lưu kết quả sau khi tính trung bình cộng 3.6 Lệnh tính toán -Tác động: - Lệnh duyệt từ đầu tệp tới cuối tệp để tính trung bình cộng các trường số trên các bản ghi - Sau đó gửi kết quả vào các biến 126 - Trường hợp có FOR thì chỉ có những bản ghi thỏa mãn biểu thức logic mới được tính bình quân -Ví dụ: Tính khối lượng bình quân của vật tư có mã XM30: USE QLVT AVER KL TO KLBQ FOR MAVT=“XM30” ?KLBQ 3.6 Lệnh tính toán d. Lệnh TOTAL -Tác dụng: Dùng để tính tổng trên các nhóm con các bản ghi của tệp Nhóm bản ghi: 127 - Là các bản ghi thỏa mãn: 1. Liên tiếp nhau 2. Cùng tiêu thức phân nhóm MAVT TENVT KL ST 01 Sắt 3 5 02 Gạch 5 8 01 Sắt 6 2 6 MAVT TENVT KL ST 01 Sắt 3 5 01 Sắt 6 2 6 02 Gạch 5 8 Để phân nhóm ta sắp xếp (Index) 3.6 Lệnh tính toán - Dạng lệnh: TOTAL ON To [FIELDS ] [FOR ] - Trong đó: 128 : là biểu thức bất kỳ dùng làm tiêu thức phân nhóm : là tên của tệp kết quả (.dbf) : là tên các trường số cần tính tổng, ngầm định là tất cả các trường số có trong tệp 3.6 Lệnh tính toán - Tác động: Fox sẽ duyệt các bản ghi từ đầu tới cuối tệp để chia các bản ghi thành các nhóm căn cứ vào: + Vị trí trên tệp + Tiêu thức phân nhóm 129 Sau đó tính tổng các trường số trên từng nhóm bản ghi và gửi kết quả của mỗi nhóm vào một bản ghi của tệp dữ liệu kết quả Trường hợp có FOR thì chỉ bản ghi thỏa mãn mới được tính tổng 3.6 Lệnh tính toán - Nhận xét: Tệp ghi kết quả có: + Cấu trúc giống tệp ban đầu + Số bản ghi bằng số nhóm con 130 + Giá trị ở trường được tính tổng là tổng nhóm tương ứng + Giá trị ở trường không được tính tổng là giá trị của trường nằm trên bản ghi đầu tiên của nhóm Vậy khác nhau giữa sum và total là: Sum tính tổng trên một nhóm bản ghi cụ thể Total tính tổng trên nhiều nhóm bản ghi 3.6 Lệnh tính toán - Ví dụ 1: Báo cáo tổng khối lượng, tổng số tiền từng loại vật tư trong kho Các bước: 131 - Sắp xếp vật tư theo từng nhóm INDEX - Tính tổng các nhóm TOTAL - Mở tệp kết quả - Hiển thị kết quả 3.6 Lệnh tính toán USE QLVT INDEX ON MAVT TO VD1.IDX FOR LP TOTAL ON MAVT TO KQ1.DBF FIELDS KL, ST 132 USE KQ1 LIST FIELDS MAVT, TENVT, KL, ST USE 3.6 Lệnh tính toán - Ví dụ 2: Báo cáo tồn kho từng loại vật tư (đơn vị đã chuẩn hóa) Các bước: 133 - Gán KL của chứng từ xuất là số âm - Tính tổng các nhóm TOTAL - Mở tệp kết quả - Hiển thị kết quả - Sắp xếp vật tư theo từng nhóm INDEX 3.6 Lệnh tính toán USE QLVT REPL KL WITH –KL FOR .NOT. LP INDEX ON MAVT TO VD2.IDX 134 TOTAL ON MAVT TO KQ2.DBF FIELDS KL USE KQ2 LIST FIELDS MAVT, TENVT, KL USE 3.6 Lệnh tính toán - Ví dụ 3: Tính tổng số tiền từng loại vật tư trong từng kho của tháng 9 năm 2006 Các bước: 135 - Sắp xếp vật tư theo từng nhóm INDEX - Tính tổng các nhóm TOTAL - Mở tệp kết quả - Hiển thị kết quả 3.6 Lệnh tính toán USE QLVT INDEX ON MAVT+MAKH TO VD3.IDX FOR LP .AND. MONT(NL)=9 .AND. YEAR(NL)=2006 136 TOTAL ON MAVT+MAKH TO KQ3.DBF FIELDS ST USE KQ3 LIST FIELDS MAVT, TENVT, ST USE
File đính kèm:
- bai_giang_tin_hoc_ung_dung_chuong_iv_he_quan_tri_co_so_du_li.pdf