以多檔案的方式打開資料庫中的多個表(TPageControl每頁顯示一個表),為多個表建立一個共同的過濾器,可以在TPageControl的變化事件中把當前TPageControl頁面的資料表的資訊傳遞給過濾器,過濾器中,我如何知道是在為哪一個表過濾?
uj5u.com熱心網友回復:
不要想的那么復雜啊,不管哪個表那個過濾輸入框,始終只能有一個處于焦點狀態,簡而言之,1、加入每個tab上都有一個 條件輸入框
將所有dataset的onfilterrecord事件函式指向一個函式,然后在這個函式里面類似這樣寫:
//獲取當前處于激活狀態的輸入框
//獲取的方法有多種,可以利用規律名稱 比如 sheet1的角edit1,sheet2的叫edit2,
//那樣查找引數就可以用 ‘edit+inttostr(tpagecontrl.activesheet.index)來組合了
edit:=self.findcontrol('**);
//給當前dataset用關鍵字和關鍵欄位進行匹配
accpet:=pos(trim(edit.text),dataset.fieldbyname(‘欄位名’).asstring)>0 即可。
uj5u.com熱心網友回復:
onfilterrecord處理程序本身就有一個dataset引數,這個引數就是當前需要被過濾的dataset,如果是多個,你不用管它是哪一個,只要進行合適的accept回傳即可。需要注意的就是如果每個表欄位名不一樣需要做一下處理,但是如果連欄位型別都不一樣的話,基本上多個dataset用一個過濾器也是沒啥意義的。轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/86059.html
標籤:語言基礎/算法/系統設計
上一篇:如何提高軟體運行速度?
