紫zi金jin橋qiao實shi時shi數shu據ju庫ku軟ruan件jian裏li預yu置zhi了le一yi些xie組zu件jian,分fen別bie實shi現xian不bu同tong的de特te定ding功gong能neng,在zai工gong程cheng組zu態tai的de時shi候hou,恰qia當dang利li用yong這zhe些xie組zu件jian來lai實shi現xian某mou些xie功gong能neng,會hui達da到dao事shi半ban功gong倍bei的de效xiao果guo。
紫金橋實時數據庫軟件裏預置的曆史查詢組件,能夠按照需求查找一段時間內的曆史數據,然後通過報表顯示出來或者供其他使用。
本示例是通過曆史查詢組件支持的函數,利用腳本對組件進行操作,關於組件支持的具體函數,可以去軟件幫助中查找,這裏不詳述。
下麵主要講解一下曆史查詢組件的具體使用。
功能是這樣的:首(shou)先(xian),將(jiang)要(yao)查(zha)詢(xun)曆(li)史(shi)的(de)位(wei)號(hao),添(tian)加(jia)到(dao)組(zu)件(jian)中(zhong),然(ran)後(hou)設(she)定(ding)要(yao)查(zha)詢(xun)曆(li)史(shi)的(de)起(qi)始(shi)時(shi)間(jian)和(he)結(jie)束(shu)時(shi)間(jian),再(zai)設(she)定(ding)要(yao)查(zha)詢(xun)的(de)相(xiang)鄰(lin)曆(li)史(shi)數(shu)據(ju)之(zhi)間(jian)的(de)時(shi)間(jian)間(jian)隔(ge),執(zhi)行(xing)查(zha)詢(xun)並(bing)把(ba)結(jie)果(guo)顯(xian)示(shi)到(dao)報(bao)表(biao)中(zhong),功(gong)能(neng)完(wan)成(cheng)。
在窗口中添加曆史查詢組件,並將組件命名為His1,同時需要使用一個報表進行配合使用,新建一個自由報表命名為Tab1,該報表用來顯示查詢的結果。
下圖是運行後查詢數據的畫麵:
下麵就來說一下各部分的腳本,腳本一共3部分,分別是‘添加位號’、‘開始檢索’按鈕中的腳本,還有一部分是曆史查詢組件中的‘事件腳本’。
首先來看‘添加位號’按鈕中的腳本,如下圖:
因為本例中使用的點名是有規律的,所以使用一個循環腳本一次全添加到曆史查詢組件中,其中主要是使用了曆史查詢組件的函數AddTag(),讀者可以根據自己的實際情況使用該函數向組件中動態的添加要查詢的點。
接下來是‘開始檢索’按鈕的腳本,如下圖:
這裏主要就是曆史查詢組件執行Start()函數,開始曆史檢索,但是由於函數參數需要,先計算出了指定時間範圍內要查找的曆史數據個數以及相鄰曆史的時間間隔。
最後一部分腳本是曆史查詢組件裏的‘事件腳本’,雙擊組件,在彈出窗口單機‘事件腳本’按鈕即進入腳本編輯框,在‘檢索完成時’選項卡裏麵,就是組件檢索完成曆史數據後要執行的腳本,如下圖:
cibufenqianliangduanfenbieshigenjuzhaxundaodelishishujugeshuyijishujudiandegeshu,laishezhibaobiaodexingshuhelieshu,zuihouyiduandexunhuanyujushibazhaxundaodeshujutianjiadaobaobiaozhong,diyicengxunhuanshianxingtianjia,xunhuanneidediyixingshiliyonglishizhaxunzujiandehanshuGetTimeText()取得該行曆史數據的時刻,第二層循環是按列添加,循環內的第一行使用GetTagName()函數取得每列的點名,添加到報表的表頭,第二行使用GetCell()取得每列在該行的曆史數據,然後添加到報表中。
以yi上shang就jiu是shi本ben例li中zhong曆li史shi查zha詢xun組zu件jian通tong過guo函han數shu的de使shi用yong,適shi合he需xu要yao查zha詢xun的de位wei號hao較jiao多duo並bing且qie位wei號hao名ming有you一yi定ding規gui律lv的de情qing況kuang,如ru果guo需xu要yao查zha詢xun的de位wei號hao較jiao少shao,可ke以yi直zhi接jie在zai曆li史shi查zha詢xun組zu件jian的de組zu態tai界jie麵mian直zhi接jie添tian加jia,然ran後hou直zhi接jie執zhi行xingStart()函數即可。
lingwai,benlizhongweilefangbianguancha,shezhilelishizhaxunzujianyunxingkejian,shijishanggaizujianmorenzaiyunxingzhuangtaishibuxianshide,yemeiyoubiyaoxianshi,zheyidiankeyizaizujiandezutaijiemianzhonggouxuanhuozhequxiao‘運行時可見’即可。
讀者如果有些函數不十分清楚,可以查看紫金橋實時數據庫的幫助文件。以後我們還會陸續推出其他組件的示例說明。