當前位置:自動化網>智慧工廠門戶>應用案例>按月更新行數的組態王月報表實現方法

          按月更新行數的組態王月報表實現方法

          發布時間:2019-09-24 15:42   類型:基礎知識   人瀏覽


          摘要:本文利用組態王報表系統的報表向導工具建立的月報表,針對該月報表不能根據月份變化其行數的問題,提出了一種利用腳本命令語言來處理該問題的方法,使得月報表能根據不同的大小月份及是否閏年等情況呈現相應的行數。


          關鍵字:組態王   月報表   命令語言


          Abstract: In this paper, a monthly report, based on the Report Wizard of the Kingview, is set up. In view of the problem that the monthly report can not vary it's rows according to the different months, a method of using the script command language to deal with the problem is proposed so that the monthly report can show corresponding rows according to the different months and whether or not a leap year.


          Keywords: Kingview   Monthly Report   Command Language


          1 引言


          組態王自帶的報表向導工具,可以方便的生成日報表、月報表等,但其自帶的報表向導建立的月報表存在當利用按鈕切換不同月份時,其報表行數不跟隨月份的大、小月(天數不同)變化的問題,比如選擇查詢起始時間為某年的3月,則為31天,應有31行數據,若換為2月或者4月等小于31天的月份,該表并不能自動變化月報表行數,以至于更改月份后的月報表末尾幾行仍舊是3月份的內容。


          基于此,本論文提出了一種利用腳本命令語言通過對月報表的月份以及年份進行腳本編程處理來解決該問題的方法,使月報表可以根據月份的大小及是否閏年改變相應行數以適應月份的變化。


          2 改良前月報表組態及運行


          首先,利用報表向導組態報表畫面[1],觀察利用本文所述方式改良前的月報表在切換不同月份時的運行結果。


          組態過程為:工具箱選擇報表窗口元件,在畫面中繪制報表,點擊報表灰色空白處,彈出報表設計對話框,可設計報表控件名以及表格的行數及列數。點擊報表,在彈出的報表工具箱中點擊向右箭頭“->”,打開報表向導,第一步是添加變量,本文項目暫不添加變量,點擊下一步,彈出報表屬性對話框,設置如下圖1,類型為月報表,時間間隔默認為1天。


           

          1 報表屬性設置


          畫面中組態一個報表起始時間設置按鈕,編輯其彈起時的命令語言為:ReportSetStartTime("Report0");[2]利用該按鈕設置日期時間。注意:月報表從每月的1號開始記錄,所以日期應選擇每個月的1號。


          運行調試,首先選擇一個大月份,比如3月,然后再選擇一個小月份比如4月,最后選擇2月,觀察運行情況,需要把表格拖到底觀察如圖2所示。



           

          3

           

          4

           

          2

          2 改良前月報表運行結果



          通過上述實驗結果看到,當選擇3月份,數據行數到331日;當改變為4月份后,該月天數為30天,觀察到331日的那一行數據還在;當改變為2月份后,該月天數為28天,觀察到多余的三行數保留了4月和3月選擇過后的數據,這樣的結果不利于報表的保存及查看,本文將對此給出相應的解決方案。


          3 解決方案


          3.1  技術路線


          當通過報表起始時間設置按鈕選擇了起始時間為某個月的第一天后,該設置值在報表中呈現的方式是一個包含年月日時分秒的字符型數據,每天一行數據填寫在報表中,從而生成月報表。解決方案將利用日期時間的第一行數據(即每個月1號的數據),通過腳本編程處理,實現月報表行數的隨月變化。


          3.2  解決方案


          (1) 利用ReportGetCellString函數,取出第一天的日期及時間,保存該字符串

          (2) 利用StrRightStrLeft函數從上述字符串中取出年和月的信息,并利用函數StrToReal將年和月轉化為Real類型。參考腳本如下[2](腳本中用到的變量請自行建立):

          \\本站點\xuanze1=ReportGetCellStrin

          g("Report0",2,1);

          \\本站點\xuanzeyue1=StrRight(StrLef

          t(\\本站點\xuanze1,7),2);

          \\本站點\xuanzeyue=StrToReal(xuanze

          yue1);

          \\本站點\xuanze1=StrLeft( \\本站點

          \xuanze1,4);

          \\本站點\xuanze=StrToReal(xuanze1);

          (3) 實型月份及年份數據用于判斷大、小月及平、閏年來獲得每月的天數,從而控制月報表的行數

          l 135781012月份,天數為31

          l 46911月份,天數為30

          l 2月份,平年時28天,閏年時29

          注意,本文中所做示例的報表,有一行表頭月報表,因此總行數需外加一行表頭,即上述天數+1,數據都是從第2行開始,參考腳本如下[2](腳本中用到的變量請自行建立):


          if(\\本站點\xuanzeyue==1||\\本站點\xuanzeyue==3||\\本站點\xuanzeyue==5||\\本站點\xuanzeyue==7||\\本站點\xuanzeyue==8||\\本站點\xuanzeyue==10||\\本站點\xuanzeyue==12)

          {ReportSetRows("Report0",32);}

          if(\\本站點\xuanzeyue==4||\\本站點\xuanzeyue==6||\\本站點\xuanzeyue==9||\\本站點\xuanzeyue==11)

          {ReportSetRows("Report0",31);}

          if(\\本站點\xuanzeyue==2)

          {    if((xuanze%4==0&&xuanze%100!=0)||(xuanze%400==0))

              {平閏="閏年";

               ReportSetRows("Report0",30);}

               else

              {平閏="平年";

               ReportSetRows("Report0",29);}

          }


          改良后運行結果

          首先選擇一個大月份,比如3月,再選擇一個小月份比如4月,第三步選擇一個平年的2月,最后選擇一個閏年的2月,觀察改良后月報表結果如下圖3所示,同樣需要把表格拖到底觀察。



             

          3月)           (4月)          (平年2月)       (閏年2月)

          3 改良后月報表運行結果


          由上述結果可知,年份不同,月份不同,導致的天數不同,從而月報表在運行狀態下的行數也不同,實現了預期結果。

          5 結束語

          本論文通過對月報表年份及月份的腳本處理,完全實現了月報表的天數(行數)隨月份不同實時改變的目標,為組態王人機界面月報表的實現方法提供了新的思路,可供工程人員參考。

          參考文獻

          [1] 工業控制組態軟件應用技術.北京理工大學出版社

          [2] 組態王6.55函數手冊.北京亞控科技發展有限公司

          本文地址:http://m.xznet110.com:8002/apply/d_1o1a0ocpq17d1_1.html

          拷貝地址

          版權聲明:版權歸中國自動化網所有,轉載請注明出處!

          留言反饋
          • 評價:

          • 關于:

          • 聯系人:

          • 聯系電話:

          • 聯系郵箱:

          • 需求意向:

          • 驗證碼:

            看不清楚?

          • 在線咨詢
          主站蜘蛛池模板: 亚洲另类第一页| 国产主播在线播放| 一级毛片免费播放男男| 欧美一级特黄乱妇高清视频| 午夜私人影院免费体验区| 欧美人与动性xxxxbbbb| 天天欲色成人综合网站| 久久久久久亚洲精品不卡| 欧美妇乱xxxxx视频| 免费午夜扒丝袜www在线看| 视频一区在线播放| 国产精品久久久久久网站 | 美女张开腿黄网站免费| 国产欧美日韩另类| 91视频免费网址| 婷婷六月久久综合丁香76| 久久久久黑人强伦姧人妻| 欧洲肉欲K8播放毛片| 亚洲精品成人a在线观看| 精品少妇人妻av一区二区| 国产又爽又黄又无遮挡的激情视频| 5555在线播放免费播放| 女人自慰AA大片| 中文字幕乱理片免费完整的| 日韩午夜在线视频不卡片| 亚洲国产成人va在线观看网址| 狠狠色成人综合首页| 啊灬啊灬别停啊灬用力啊免费| 香港三级绝色杨贵妃电影| 国产精品久久自在自线观看| 99久久精品费精品国产| 小小影视日本动漫观看免费| 久久97久久97精品免视看秋霞 | 做a的视频免费| 老师你的兔子好软水好多的车视频| 国产欧美久久一区二区| 69无人区卡一卡二卡| 大香焦伊人久久| 一区二区免费电影| 我的极品岳坶34章| 久久国产精品只做精品|