天天看點

intouch報表資料的擷取

    在熟悉Intouch項目有一段時間了,也做有相關的三個項目,關于Intouch的一些報表資料的采集,也有了自己一定的看法(主要還是因為自己是野路子)今天就把我常用的一種制作思路,提供給大家。(僅供參考哈)

   由于個人原因,轉入中控行業也有點時間了,為了解決項目的實際需求,也看了一些intouch相關報表的制作思路。特此結合自身實際項目需求總結如下:

基本思路:

  SQL Server+時間腳本+綁定清單。

1.具體來講,首先需要有SQL Server資料庫(後者其他的關系型資料庫)。然後,建立資料庫,以及相應的資料表。當然一般的表的結構都是如下結構:

資料庫中的結構---->綁定清單中的對應結構

date----->$datestring

time(0)----->$timestring

其他的資料就看實際需求啦。

2.建好表之後,就是利用windows 下ODBC建立資料庫與自己開發的報表(或第三方報表)連接配接,Intouch編寫應用程式腳本

啟動時:

ResultCode=SQLConnect(ConnectionID,"Provider=SQLOLEDB;Data  Source=HP-PC;InitialCatalog=HQ;User ID=sa;Password=; ");
           

至此,intouch<---->SQL SERVER<----->報表的通路已經打通。

3.建立通道後,進入本部落格的正題,采集資料。

a.以系統變量$Hour為變化點:

ResultCode=SQLInsert(ConnectionID,"裝置運作日報表","RiYunXing");
           

注:RiYunXing代表intouch中綁定清單的名字,裝置運作日報表代表這資料庫中表對應的名字。

b.在需求變化中,并不是每次都是以每小時整點記錄一次資料,比如采集雨量是以五分鐘記錄一次,考驗智商的時候到了:

$MINUTE
IF ($Minute MOD 5==0) THEN
ResultCode=SQLInsert(ConnectionID,"液位雨量日報表","YeWeiYuLiang");
           

Bingo,利用$Minute為變化因子,加上取餘操作,做到了每五分鐘采集一次。

c.然後需求又更新了,怎麼做到每兩個半小時一次采集(如:8:30,10:30等等),要來大招了:

$TimeString
IF ($Hour MOD 2==0 and $Minute MOD 30==0 and $Second==0) then
ResultCode=SQLInsert(ConnectionID,"運作日報表","RiYunXing");
ENDIF;
           

最後這個,基本上能随心所欲,想幾點記錄就幾點記錄,想記錄幾次,你隻管說。

然後一個,野路子版本的資料采集功能報表記錄功能就完成了。

當然。。。。。技術趕不上變化,需求在變,技術也在變,人也要更加努力适應變化,是以,恒不變者,變化也。(吐槽)

下一步重點:

關于資料展示,大屏,曲線,備注這塊(前端,json,背景)未完待續。。。

繼續閱讀