『壹』 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的數據窗口中不顯示重復的記錄,例如按身份證號顯示全部不重復的記錄.(不要以身份證號建立主鍵)
這個問題不是pb的問題,而是sql語句的問題。
請使用group by定義你的查詢分組
參考sql教材吧。
『叄』 關於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 的數據窗口報表 的過濾問題,怎麼使用pos函數進行過濾
設置一個filter
這個不用pos
在cb中回clicked()寫:答
string ls_filter
ls_filter= "contract_no like '%-%'"
dw_3.setfilter(ls_filter)
dw_3.filter()