Tìm trong:Webe-CHÍP

Bộ gõ (kiểu Vni/Telex/Viqr)Tắt (Alt+T)Mở (Alt+M)

 
Trang chủ ĐÓ HỎI, ĐÂY TRẢ LỜI TT 368

Kiểm tra nhập liệu trong Visual Foxpro

Đó hỏi: Trong Visual Foxpro em đang thiết kế form để nhập liệu. Cần viết câu lệnh gì để chương trình hiển thị thông báo lỗi khi xảy ra trường hợp trùng khóa chính do lỗi nhập liệu? <hongtho_tv@>

Đây trả lời: 
Để bạn tham khảo, tôi trình bày một phương pháp đơn giản, sử dụng những gì có sẵn của Visual Foxpro (VFP). Giả sử bạn cần thiết kế form để nhập liệu cho tập tin KH_Code.DBF. Tập tin này có field Ma_KH được xem là khóa chính. Trong VFP, bạn chọn Tools > Wizards > Form. Trong hộp thoại Wizard selection, chọn mục Form wizard, bấm OK. Trong hộp thoại Step 1 – Select Fields, chọn Free Tables ở mục Databases and tables, bấm nút […] để mở bảng KH_Code. Bạn chọn các field (trong danh sách Available Fields) cần hiển thị trên form (ví dụ: Ma_KH và Ten_KH) bằng cách bấm kép vào tên field.
Bấm Next để chuyển sang hộp thoại kế tiếp. Trong hộp thoại này, bạn lại bấm Next để chấp nhận kiểu form mặc định và chuyển sang hộp thoại kế tiếp.
Tiếp tục bấm Next để chuyển sang hộp thoại Finish. Trong hộp thoại này, chọn Save form and modify it in the Form Designer, rồi bấm Finish để lưu form và mở form để sửa đổi (hình 1). Form vừa tạo có nhóm các nút lệnh do chính VFP tạo ra, nên thủ tục xử lý các tình huống Click của chúng đều được mặc định.
Chọn View > Data Environment. Trong cửa sổ Data Environment (hình 2), bấm kép vào vùng trống để mở cửa sổ soạn thảo mã lệnh cho Data Environment, lần lượt gõ vào thủ tục xử lý tình huống OpenTables (đoạn mã 1) và CloseTables (đoạn mã 2) của DataEnvironment.
Tiếp theo, bấm kép vào nhóm các nút lệnh để mở cửa sổ soạn thảo mã lệnh cho form. Sử dụng combo box Object và Procedure để gõ vào thủ tục xử lý tình huống Click của nút lệnh cmdAdd (đoạn mã 3) và nút lệnh cmdDelete (đoạn mã 4).

Đoạn mã 1

SELECT 0 ‘ Tạo danh sách các mã khách hàng có rồi
CREATE CURSOR curListKH (Ma_KH C(7))
INDEX ON Ma_KH TAG Ma_KH
APPEND FROM D:\VisualFoxpro9\KiemTraNhapTrungKhoaChinh\KH_Code.DBF

Đoạn mã 2

IF USED("curListKH") ‘ Xóa danh sách trước khi kết thúc
USE IN curListKH
ENDIF

Đoạn mã 3

IF "Save"$ This.Caption ‘ Vì nút lệnh Add và Save sử dụng chung
IF SEEK(ThisForm.MA_KH1.Value, "curListKH")
=MESSAGEBOX("Ma KH co roi!",0+16)
ThisForm.MA_KH1.SetFocus
‘ Ma_KH1 là text box nhận dữ liệu cho Ma_KH
RETURN
ENDIF
SELECT curListKH
APPEND BLANK
‘ Thêm mã khách hàng vào danh sách tra cứu
REPLACE Ma_KH WITH ThisForm.MA_KH1.Value
SELECT KH_Code
ENDIF
=DODEFAULT()
‘ Thực thi mã lệnh mặc định của nút lệnh

Đoạn mã 4

SELECT curListKH
SEEK ThisForm.MA_KH1.Value
DELETE
‘ Xóa mã khách hàng khỏi danh sách tra cứu
SELECT KH_Code
=DODEFAULT()
‘ Thực thi mã lệnh mặc định của nút lệnh

Hình 1: Form cần thiết kế

Hình 2: Cửa sổ Data Environment

CHƯƠNG CAN CHÍP

Internet Explorer 7 hay báo lỗi

Đó hỏi:
1. Máy tính của tôi cài Windows Vista, tôi đã lỡ tay xóa mất biểu tượng giỏ rác ở Desktop, giờ không biết phải phục hồi từ đâu?
2. Tôi dùng hai trình duyệt Web: Internet Explorer 7 của Windows Vista và Mozilla Firefox. Không biết tại sao khi mở cùng lúc nhiều cửa sổ Internet Explorer thì bình thường, tuy nhiên khi đóng một trong các cửa sổ đó đi thì có báo lỗi “INTERNET EXPLORER HAS STOPPED WORKING: A problem caused the program to stop working correctly. Windows will close the program and notìy you if solution is available.” , rồi đóng tất cả các cửa sổ trình duyệt và chạy cửa sổ mới lại từ đầu. Vậy máy bị lỗi gì? Cách Khắc phục như thế nào? <thanhhuyen1976@>

Đây trả lời: 
1. Để lấy lại biểu tượng giỏ rác, bạn nhấp chuột phải vào Desktop chọn Personalize->Change Desktop Icon (ở góc phải cửa sổ), chọn Recycle Bin nhấn OK.

2. Hiện tượng trên do trình duyệt Internet Explorer bị lỗi và máy tính bị nhiễm virus hoặc malware. Bạn hãy làm theo các bước sau:
Bước 1 : Tiến hành cập nhật Windows tại địa chỉ Website (http://windowsupdate.microsoft.com/).
Bước 2 : Dùng chương trình Windows Defender quét virus toàn bộ hệ thống.

Khai Trí

[Đầu trang]