共用查詢窗體的一種實現方法 X3

2021-05-25 14:30:22 字數 2235 閱讀 2542

大概步驟這樣:

1、新建乙個『資源集』起名『常用窗體』,其id我們預設為『cyct』。

2、在這個資源集下新建乙個『窗體』,起名『查詢窗體』,其id我們預設為『cxct』。

3、在這個查詢窗體上放上我們要用的控制項,比如我們放兩個datetimepicker,分別為datetimepicker1、datetimepicker2作為查詢條件的起、止時間,然後放上兩個button,分別為button1/button2在其caption上寫上『確定』、『取消』,並在button1的clike事件上寫上一句**:modalresult :=business.forms.controls.mrok;在button2的clike事件上寫上:close;

4、在『資源集』中寫入兩個函式

//取日期等變數的函式

function getvardate( var adatebegin,adateend:tdatetime):boolean;

varlform:tcxct;

begin

lform :=tcxct.create(nil);

with lform do

tryresult := showmodal=business.forms.controls.mrok;

if result then

begin

adatebegin := datetimepicker1.date;

adateend:= datetimepicker2.date;

end;

finally

free;

end;

end;

//傳入變數的函式

static function getpara:boolean;

varlform:tcxct;

begin

lform :=tcxct.create(nil);

with lform do

tryresult := showmodal=business.forms.controls.mrcancel;

if result then

begin

sysutils.abort;

end;

finally

free;

end;

end;

5、前提是我們已經做好了報表的功能窗體,現在我們要做到,在我們檢視這個報表功能之前會彈出我們剛才做的『查詢窗體』,選擇起止時間,經過過濾在報表的功能窗體上顯示我們想要的資料。

6、單擊報表的功能(非功能窗體),然後檢視其事件,在oncreate事件下寫入**:

procedure tcgddbbfunc.funccreate(sender: tobject);

varldate1,ldate2:tdatetime;

lsqlstr,ldate11,ldate22:string;

linfobroker:tinfobroker;

begin

linfobroker:=tinfobroker.create(self);

linfobroker.autobroker:=true;

linfobroker.autokind := tautokind.akshare;

linfobroker.bizclassref.bizurl.url:='biz:/kcxt/cgddxxinfo.info';

if cyct.tcyct.geta(ldate1,ldate2,ltype,lcode) then

begin

ldate11:='';

ldate22:='';

sysutils.datetimetostring(ldate11,'yyyy-mm-dd',ldate1);

sysutils.datetimetostring(ldate22,'yyyy-mm-dd',ldate2);

lsqlstr:='podate between '''+ldate11+''' and '''+ldate22+''''  ;

cgddxxinfo.tcgddxxinfo(linfobroker.info).datasetcgddsjj.sqlfilter:=lsqlstr;

cgddxxinfo.tcgddxxinfo(linfobroker.info).datasetcgddsjj.sqlfiltered:=true;

end else

begin

self.terminate;

end;

end;

編譯通過,執行,既可達到所要的效果。

搜尋 一種分詞方法的實現

加上有一句話,thisisabook,要將之分成合適的單詞,假設有乙個字典,這個字典包含單詞。我剛看到這個需求,第一反應是用搜尋中的分詞方式,最大匹配法,後來經過高人指點,說不用,只需要遇到正確的單詞就分出來,然後又想到了回溯法,再次經高人指點,回溯也不需要,只需要遞迴即可。下面是簡單的實現 供參考...

一種延遲方法呼叫的實現

原文 一種延遲方法呼叫的實現 需求場景 實現 定義任務介面 1inte ce itask 2 4 bool isrunning 5 void start 6 void stop 7 void run 8 定義延遲的資訊類 1class lazyitem 2 9 10public string key...

一種延遲方法呼叫的實現

原文 一種延遲方法呼叫的實現 需求場景 實現 定義任務介面 1inte ce itask 2 4 bool isrunning 5 void start 6 void stop 7 void run 8 定義延遲的資訊類 1class lazyitem 2 9 10public string key...