VFP 愛用者社區 首頁 VFP 愛用者社區
本討論區為 Visual Foxpro 愛用者經驗交流的地方, 請多多利用"搜尋"的功能, 先查看看有無前例可循, 如果還有不懂的再發問. 部份主題有附加檔案, 須先註冊成為社區居民才可以下載.
 
 常見問題常見問題   搜尋搜尋   會員列表會員列表   會員群組會員群組   會員註冊會員註冊 
 個人資料個人資料   登入檢查您的私人訊息登入檢查您的私人訊息   登入登入

如何確定一個記錄是否為空

 
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> VFP 討論區
上一篇主題 :: 下一篇主題  
發表人 內容
Ruey



註冊時間: 2003-03-12
文章: 1698
來自: tunglo

第 1 樓

發表發表於: 星期三 八月 13, 2003 11:14 am    文章主題: 如何確定一個記錄是否為空 引言回覆

如何確定一個記錄是否為空
( 作者: 不詳 )


最後檢查日期: September 29, 1995

文號: Q137410

本文資訊應用於:
Microsoft FoxPro for Windows, versions 2.5, 2.5a, 2.5b, 2.6, 2.6a
Microsoft FoxPro for MS-DOS, versions 2.5, 2.5a, 2.5b, 2.6, 2.6a

概述
FoxPro 提供了檢查單個欄位內容是否為空白 (ISBLANK()) 或空 (EMPTY()) 的函數. 本文顯示如何使用這些函數來創建一個用戶定義函數 (UDF) 用於指明整個記錄是否為空白或空.

關於 ISBLANK() 函數的更多資訊, 請參見 FoxPro 幫助檔或以下 KB 文章:

文號: Q99095
標題: ISBLANK() 函數提供額外的 Null 值支援
文號: Q102453
標題: 如何測試空的字元變數


更多資訊
創建一個包含以下代碼的程式檔:


* 函數: IsBlankRec
*
* 參數: 數值型 | 字元型 - 可選
*
* 數值型運算式是要檢查的工作區號,
* 字元型運算式是要檢查的別名.

*
FUNCTION IsBlankRec
PARAMETER lAlias
PRIVATE llSeleBack, lnSeleBack, llResult, lcFieldName, I
llSeleBack = .F.
lnSeleBack = SELECT(0)
llResult = .T.
IF PARAMETERS() = 1
llSeleBack = .T.
SELECT (lAlias)
ENDIF
FOR I = 1 TO FCOUNT()
lcFieldName = FIELD(I)
IF ! ISBLANK( &lcFieldName )
llResult = .F.
EXIT
ENDIF
ENDFOR
IF llSeleBack
SELECT (lnSeleBack)
ENDIF
RETURN llResult


該函數測試傳入的數值型參數看是否需要改變工作區. 然後遍曆當前工作區中的所有欄位, 用 ISBLANK() 函數測試每一個欄位. 如果發現非空欄位則設置變數 llResult 為 .F. 並退出迴圈. 如果需要, 該程式返回到原始的工作區上並返回結果. 如果所有欄位都為空, 返回.T.

注意: 要測試一個空的記錄, 你可以修改以上函數名為 IsEmptyRec 並替換其中的以下代碼:


IF ! ISBLANK( &lcFieldName )

為:

IF ! EMPTY( &lcFieldName )
測試結果
將兩個函數放入一個 .prg 文件中.

在命令視窗, 打入以下命令( <myproc> 是第一步中創建的過程檔案名:
SET PROCEDURE TO <myproc> ADDI

打開 Customer.dbf 表.

在第一個記錄上, 在命令視窗中輸入以下命令:

? IsBlankRec(), IsEmptyRec()

結果是:

.F. .F.


在命令視窗打入 APPEND BLANK 命令並回車.

當游標在新記錄上時, 在命令視窗輸入以下命令:

? IsBlankRec(), IsEmptyRec()

結果是:

.T. .T.

修改新記錄在欄位 Ytdpurch, Lat 和 Long 中輸入 0 .

再在命令視窗中輸入以下命令:

? IsBlankRec(), IsEmptyRec()

結果為:

.F. .T.

結果不同是因為欄位 Ytdpurch, Lat 和 Long 包含了值 0. ISBLANK() 不認為包含零值的欄位為空格, 但 EMPTY() 認為它們為空.

_________________
#############################
快樂媽咪系列幸福宅配,喝十全雞湯~原來幸福那麼簡單!!

學會VFP使用者社區的搜尋,Code才會更有趣~
#############################
回頂端
檢視會員個人資料 發送私人訊息
從之前的文章開始顯示:   
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> VFP 討論區 所有的時間均為 台北時間 (GMT + 8 小時)
1頁(共1頁)

 
前往:  
無法 在這個版面發表文章
無法 在這個版面回覆文章
無法 在這個版面編輯文章
無法 在這個版面刪除文章
無法 在這個版面進行投票
無法 在這個版面附加檔案
無法 在這個版面下載檔案


Powered by phpBB © 2001, 2005 phpBB Group
正體中文語系由 phpbb-tw 維護製作