PB setfilter函式詳解

2021-07-10 13:53:39 字數 2161 閱讀 4507

標籤: filter

string

integer

null

指令碼資料庫

2012-05-16 16:33

3233人閱讀收藏

舉報

pb 函式積累(6)

作者同類文章x

知識點(做專案)(60)

作者同類文章x

函式作用:為datawindow或者datastore指定資料過濾規則。通常在呼叫該函式前使用函式retrieve將資料檢索到客戶端,該函式可以決定檢索到客戶端的這些資料哪些可以顯示,哪些不能顯示。該函式對客戶端的資料進行操作,和後台資料庫沒有任何關係。在設定完過濾規則後使用函式retrieve檢索資料是不合理的,每次設定過濾規則後都檢索資料,這樣的執行效率很低。需要注意的是,該函式緊緊是設定過濾規則,並不進行過濾。函式filter是進行過濾的,使用最近設定好的過濾規則對資料進行過濾。

函式語法:integer dwcontrol.setfilter ( string format )

ldwcontrol:要為其設定過濾規則的datawindow、datastore或者下拉子資料視窗控制項的名稱;

lformat:作為過濾規則的表示式,該表示式的返回值應該是boolean型別,或者是true、或者是false。如果表示式返回值為null,則在執行函式filter時自動彈出對話方塊讓使用者指定過濾規則。在表示式中可以使用資料視窗物件函式、列名、列號、數字、字串等。如果用到了列號,則應該以『#』開頭、後面緊跟數字來表示。多個條件可以使用邏輯運算子進行聯結,乙個非常良好的習慣是每個條件都應該使用括號。這樣既可以保證表示式的清晰,又可以避免一些bug。後面的**例項中會講到。

返 回值:數字型別,1表示執行成功,-1表示執行失敗。該函式的返回值沒有多大意義,很少在程式中使用該返回值。

**例項:

例1:使用列名進行過濾。

string ls_filter

ls_filter = "cust_qty > 100 and cust_code >30"

dw_employee.setfilter(ls_filter)

dw_employee.filter( )

例2:必須使用括號的情況。下面的指令碼在邏輯上看起來沒有什麼問題:

string ls_filter

ls_filter = 「name like 『張%』 and article_title like 『%計算機%』」

dw_1.setfilter()

dw_1.filter()

實際上,上面的程式是不能正確執行的。將過濾規則作如下改動就可以了:

ls_filter = 「(name like 『張%』) and (article_title like 『%計算機%』)」

例3:取消過濾規則。下面兩個語句都能實現:

語句1:dw_1.setfilter(「」)

語句2:dw_1.setfilter(「1=1」)

例4:下面的語句在執行時可以讓使用者自己指定過濾規則:

string ls_null

setnull(ls_null)

dw_1.setfilter(ls_null)

dw_1.filter()

例5:下面指令碼可以判斷資料視窗中是否有主鍵重複的資料。假設資料視窗中的主鍵是dept_id:

string ls_fieldname//主鍵名稱

long ll_rc//資料視窗中總的資料行數

ls_fieldname = "dept_id"

dw_1.setfilter("1=1")//取消過濾規則,顯示全部的資料

dw_1.filter()//過濾

ll_rc = dw_1.rowcount()//儲存資料行數

dw_1.setsort(ls_fieldname + " a")//用主鍵進行排序

dw_1.sort()

//下面語句是核心語句。該過濾規則的含義是:只顯示相鄰行不同的資料。

dw_1.setfilter(ls_fieldname + " <> " + ls_fieldname + "[-1] or getrow() =1")

dw_1.filter()

if dw_1.rowcount() < ll_rc then

messagebox("提示",ls_fieldname + "列中存在重複的資料!",stopsign!)

end if

mod函式詳解

我們知道,mod函式是乙個求餘函式,其格式為 mod nexp1,nexp2 即是兩個數值表示式作除法運算後的餘數。那麼 兩個同號整數求餘與你所知的兩個正數求餘完全一樣 即兩個負整數與兩個正整數的演算法一樣 一 兩個異號整數求餘 1.函式值符號規律 餘數的符號 mod 負,正 正 mod 正,負 負...

CDC PatBlt 函式詳解。

函式功能 該函式使用當前選入指定裝置環境中的刷子繪製給定的矩形區域。通過使用給出的光柵操作來對該刷子的顏色和表面顏色進行組合。函式原型 bool patblt hdc hdc,int nxleft,int nyleft,int nwidth,int nheight,dword dwrop 引數 hd...

php header 函式詳解

一 作用 php只是以http協議將html文件的標頭送到瀏覽器,告訴瀏覽器具體怎麼處理這個頁面,至於傳送的內容則需要熟悉一下http協議了,與php無關了,可參照http www.w3.org protocols rfc2616 rfc2616。傳統的標頭一定包含下面三種標頭之一,並只能出現一次。...