如何生成污水厂自控报表

 新闻资讯     |      2024-01-12 10:26:36    |      小编

在污水厂或者自来水厂中每天需要生成日报表,对当日的数据进行统计分析计算,这个时候我们可以借助上位机安装SQL或者单独使用服务器安装SQL实现。在组态中通过每小时记录一次数据,将数据插入到SQL中。
一般需要插入的数据有:进水瞬时流量、进水累积流量、进水PH、进水COD、进水氨氮、进水总磷、进水总氮等,出水也包括以上数据。通过中控电脑或者服务器实现每小时存入SQL服务器中。然后我们可以通过EXCEL程序,使用VBA函数功能进行查询生成相应格式的报表
通过日报表我们能够查看一天中任意整点时候数据,也能查看一天进水的总进水量、总出水量。


 

部分代码如下:

 Sheet1.Range("b6:ap29").ClearContents

    '表格1的范围B7:AB30所在单元格之中的内容清除

    Sheet1.Cells(1, 1) = Years1 & "年" & Months1 & "月" & Days1 & "日"

    '表格1单元格2,17中填入日期

    'cnstr = "Provider=SQLOLEDB.1;Data Source=" & ";DATABASE=" & "mydata" & ";UID=" & "sa" & ";pwd=" & "pwt"

    cnstr = "DSN=DT_DSN;UID=sa;PWD=pwt"

    Set conn = New ADODB.Connection

    conn.Open cnstr

    

    '------------------------------------------------------sheet1

        '1A左1电厂直流电压

    str1 = "Select Date,Time,hour,DTime,data2  from data1"

    str1 = str1 & " where (Year(DTime)=" & Years1 & " And Month(DTime)="

    str1 = str1 & Months1 & "And Day(DTime)=" & Days1 & "  And datepart(minute,DTime)='0' and datepart(second,DTime)='0' ) order by DTime"

    '上面3行意思是从表格FloatTable中筛选列名为DataAndTime,Tagindex,Val的数据,并且只从中筛选日期的年份,月份,日份分别等于Years1,Months1,Days1,并且Tagindex=0并Status=U

    '(Status也是表格FloatTable中的一列列名),并且把查询出来的数据按DateAndTime值排序,实际上这里要查询的就是表格1中的第1列的数据,一天24小时的数据

    Set rs = New ADODB.Recordset

    rs.Open str1, conn, 1

    

     rs.MoveFirst

         '移动到查询结果的第1个数据

     If rs.RecordCount > 0 Then     'rs.Record.Count:数据记录总数。

     Hours1 = Hour(rs!DTime)

     End If

   

    '移动到查询结果的第1个数据

    '如果查询结果不为空,那么从查询结果的的第1个数据的日期数值中取得小时数(上一句已经移动到第1个数据了)

         Do While Not rs.EOF

            If Hour(rs!DTime) = Hours1 Then

                Sheet1.Cells(Hours1 + 6, 2) = rs!Data2