『壹』 pb中過濾條件expression types must match的問題
嗯~是你寫的抄過濾條件中的襲表達式有問題,數據類型有誤,比如你定義了long ll_count
卻賦字元型的值給他:ll_count = 『』好好檢查下你的變數類型和賦值類型,或者屬性類型和變數類型,能找到問題所在
// =======================================
你把setfilter中的條件改為:dw_selected.setfilter("課程分配數據表_班級='- 1'")試試
『貳』 銆愭眰鍔┿憄b 鏁版嵁紿楀彛涓鏌愪竴瀛楁電殑dropdown鍐呭圭瓫閫
鏂規硶錛氬亣璁炬暟鎹紿楀彛涓篸w_1,itemchanged浜嬩歡涓錛
if dwo.name='闀囧瓧孌靛悕' then
datawindowchild ld_child
dw_1.getchild('鏉戝瓧孌',ld_child)
ld_child.settransobject(sqlca)
ld_child.retrieve(dwo,data)
end if
娉ㄦ槑錛沝ropdown dw涓瑕佽劇疆媯緔㈠弬鏁幫紝涔¢晣瑕佹湁涓瀹氱殑鍏寵仈錛屾湰浜虹敤涓婄駭鍒嗙被鏉ュ仛鍖哄垎銆傚叿浣撻棶棰樿繕瑕佷綘鍏蜂綋瀵瑰緟錛
『叄』 請問在pb的數據窗口中怎麼對日期型的數據進行過濾,請舉例說明。謝謝~~!
先給你個函數來,字元型轉日期型自的函數:
參數string uodate,返回date型,你可以根據自己的需要改成datetime型
return date(left(uodate,4)+'-'+mid(uodate,5,2)+'-'+mid(uodate,7,2))
再來一個日期型轉字元型的函數:
參數:date rq【日期】,time sj【時間】
return string(year(rq))+right(('00'+string(month(rq))),2)+right(('00'+string(day(rq))),2)+right(('00'+string(hour(sj))),2)+right(('00'+string(minute(sj))),2)+right(('00'+string(second(sj))),2)
以上是全局函數,你自己可以改成非全局的,看你自己。
你將你的編輯框中的字元型日期轉換成日期型的,然後就可以setfilter了。
ls_sql="欄位名>date('" + ls_time + "')"
要這么寫才行!
我在設計資料庫的時候一般都不會用日期型的欄位,所有欄位都盡量用字元型的!
『肆』 pb數據窗口下拉過濾
要操作 DataWindowChild,你下拉的也是一個DW
用GetChild函數取得DataWindowChild
然後和普通的DW一樣,filter 就可以了
例 dw_1 下的內 test 列的容 ddlb
DataWindowChild dwc_1
dw_1.getchild("test",dwc_1)
dwc_1.setfilter("過濾表達式")
dwc_1.filter()
『伍』 pb數據過濾問題
datawindowchild dwc
dw_1.getchild("子數據窗口列名",dwc)
dwc.settransobject(sqlca)
dwc就是子數據窗口了,把他當成數據窗口操作就可以了,setsqlselect(),setfilter()這些函數都可以用
dwc.retrieve()
dwc.setfilter("部門=『01")
dwc.filter()
『陸』 PB數據窗口中 用setfilter() 多個條件過濾怎麼寫
」set
filter
to「是抄在資料庫(表)中條件查襲找語句的前一部分,在"
to
"
後面還需要加上」條件「才是完整語句,如:
set
filter
to
數學>=90
&&查找資料庫(表)中數學成績大於等於90分的同學。
主要用於篩選符合條件的記錄(欄位)。
『柒』 關於pb多條件過濾的問題,急!!!
用拼寫where 條件的方法.以下是思路和例子.
思路:首先得到數據窗口的原始數據源sql語句.譬如你要對dw_1的數據進行多條件過濾.就在事件中寫:
string ls_sql
ls_sql = dw_1.getsqlselct()//此時ls_sql變數得到dw_1的sql語句.
然後將條件拼成一個and 語句 例子:
譬如年齡欄位,性別欄位和班級欄位.(這只是個例子,希望你能明白意思,然後為你所用)
分別為age,sex,class
此時用戶已經選完了這三個條件的值(此處可以多種方法實現.1讓用戶直接輸入。單行編輯框 2。多選框。3.下拉列表框.等等)
譬如用戶選擇的是age = 24,sex = 1(1-為男,0為女),class = 2
此時拼串!
例子:
string ls_sql,ls_sql_new,ls_condition
string ls_age,ls_sex,ls_class
ls_sql = dw_1.getsqlselect()//得到默認的數據窗口sql語句。
ls_age = '24'
ls_sex ='1'
ls_class ='2'
ls_condition =" age='"+ls_age+"' and sex = '"+ls_sex +"' and class = '"+ls_class+"'"//條件拼寫完成
ls_sql_new = ls_sql +" where "+ ls_condition //這里注意拼寫的時候where 後面 and 前後都要加個空格!
dw_1.setsqlselect(ls_sql_new)//將拼成的串 設置成新的數據窗口sql語句 此時就是多個過濾條件的結果!
『捌』 pb中如何通過FILTER()函數過濾和清除過濾
FILTER()函數過濾和清除過濾方法如下:
dw.setfilter(" name = 'lily' ")
dw.filter() // 查找名字叫lily的數據
dw.setfilter("")
dw.filter() //取消過慮
如果有多個過濾條件 ,可通過and連接起來一起執行:
string DWfilter2
DWfilter2 = "cust_qty > 100 and cust_code >30"
dw_Employee.SetFilter(DWfilter2)
dw_Employee.Filter( )
『玖』 PB過濾怎麼實現
三種常用方式:
1、使用setfilter()設置過濾參數,filter()執行過濾。
2、設置新建資料庫窗口的時候設置retrieve()參數,retrieve時調用。
3、動態修改資料庫窗口的sqlselect參數。