📄 formqxls.frm
字号:
blxuhao1(j%) = blxuhao(j%)
If Val(blxuhao1(j%)) = 99 Then Exit For
num1% = blxuhao1(j%)
If MaxY < Val(LiangC(1, num1%)) Then MaxY = Val(LiangC(1, num1%))
If MinY > Val(LiangC(0, num1%)) Then MinY = Val(LiangC(0, num1%))
Next
'========================
qxtitle = SysTitle & "参数曲线"
gridinit
readata
zby2 = MaxY: zby1 = MinY
If zby2 < zby1 Then
aa = zby1
zby1 = zby2
zby2 = aa
End If
'---------------------------
If MaxY = -9999 Then
Exit Sub
Else
zbx1 = 0: zbx2 = 24 * 60 / DataJg '横坐标点数2002-08-12
hzbx1
disp1
End If
End Sub
Private Sub Form_Unload(Cancel As Integer)
exit1_Click
End Sub
Private Sub Picture1_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single)
''''On Error Resume Next
Dim ptd
If y < zby1 Or y > zby2 Then Exit Sub
If x < zbx1 Or x > zbx2 Then Exit Sub
'-------------------------------------
ptd = Picture1.Point(x, y)
For i% = 0 To 7
If ptd = colorqx(i%) Then Exit For
Next
If i% >= 8 Then
lablexy.Visible = False
Exit Sub
End If
num1% = blxuhao1(i%)
ssc$ = AI_Nam(num1%) '
'----------------------
aa% = Int(x + 0.5)
xs% = aa% \ (60 / DataJg) '小时
fen% = DataJg * (aa% - xs% * (60 / DataJg)) '分
aaa$ = xs% & ":" + Format$(fen%, "00") & " h"
yy1 = Int(beishu(num1%) * (zby2 + zby1 - y)) / beishu(num1%)
bbb1$ = yy1 & DanWei(num1%) '+ "℃"
lablexy.Visible = True
lablexy.Caption = ssc$ + vbCrLf + " " + aaa$ + vbCrLf + " " + bbb1$
'--------------------------------
aax = x
aay = y + 0.8 * sty
If aay > zby2 Then
aax = aax + 0.4 * stx
aay = aay - 1.6 * sty
End If
lablexy.Move aax, aay
End Sub
Private Sub disp1()
Dim y1, y2 As Single
If pvtt(0, zbx2) = 0 Then
' zbx2 = zbx2 - 2
Else
' zbx2 = zbx2 - 1
End If
For qx% = 0 To 7
If blxuhao1(qx%) = 99 Then Exit For
For jj% = zbx1 To zbx2
y1 = pvtt(qx%, jj%)
y2 = pvtt(qx%, jj% + 1)
If y1 <> 9899 And y2 <> 9899 Then
y1 = zby2 + zby1 - y1
y2 = zby2 + zby1 - y2
If y1 <= zby2 And y2 <= zby2 Then 'y1,y2为负值 为错误值
Picture1.Line (jj%, y1)-(jj% + 1, y2), colorqx(qx%)
End If
End If
Next
Next
End Sub
Private Sub readata()
Dim lp2, lp3 As Integer
Dim ddd(95), lsv1
Dim dd() As String
Dim tt() As String
For i% = 0 To 7 '初始化
For j% = 0 To 1440
pvtt(i%, j%) = 9899
Next
Next
'============================ '2000-07-11
'Open filena3 For Input As #1
' Do While Not EOF(1)
' Input #1, zfc$ '打开文件读数据 @1655
' ddd(lp3) = zfc$
' lp3 = lp3 + 1
' '-------
' If zfc$ = "*" Then
' lp3 = 0
' lp2 = Val(Mid$(ddd(0), 2, 2)) * 60 + Val(Mid$(ddd(0), 4, 2))
' lp2 = lp2 \ DataJg
' For j% = 0 To 7
' If blxuhao1(j%) = 99 Then Exit For
' lsv1 = Val(ddd(2 + ztnum + 10 + blxuhao1(j%))) '时间,1+ztnum 个状态,10个流量累计,ai1,ai2,....
Set gConn = New ADODB.Connection '定义一个新的数据库连接,建立到数据源的连接
Set rs = New ADODB.Recordset
gConn.ConnectionString = "DSN=guolu;UID=sa;PWD=sa"
gConn.Open
' rs.Open "select " & bianl & " from wln", gConn, adOpenKeyset, adLockOptimistic
rs.Open "select wln.当前时间," & bianl & " from wln", gConn, adOpenKeyset, adLockOptimistic
Do While Not rs.EOF
For j = 0 To rs.Fields.Count - 1
If InStr(rs.Fields(0).Value, DATE13) Then
pvtt(0, lp2) = rs.Fields(1).Value
dd() = Split(rs.Fields(0).Value)
tt() = Split(dd(1), "-")
lp2 = Val(Mid$(dd(0), 2, 2)) * 60 + Val(Mid$(dd(0), 4, 2))
lp2 = lp2 \ DataJg
End If
Next j
rs.MoveNext
Loop
'Close #1
End Sub
Private Sub gridinit()
MSFlexGrid1.Cols = 6
For lp = 2 To 5
MSFlexGrid1.colwidth(lp) = 1400 '定义1-3列宽为1200缇(单位)
Next lp
MSFlexGrid1.colwidth(0) = 2750 '定义1-3列宽为1200缇(单位)
MSFlexGrid1.colwidth(1) = 2000 '定义1-3列宽为1200缇(单位)
For i% = 1 To MSFlexGrid1.Cols - 1 '居中对齐
MSFlexGrid1.ColAlignment(i%) = 3
Next i%
MSFlexGrid1.TextMatrix(0, 0) = " 量 名"
MSFlexGrid1.TextMatrix(0, 1) = "量 程"
MSFlexGrid1.TextMatrix(0, 2) = "下限报警"
MSFlexGrid1.TextMatrix(0, 3) = "上限报警"
MSFlexGrid1.TextMatrix(0, 4) = "单 位"
MSFlexGrid1.TextMatrix(0, 5) = "当前值"
MSFlexGrid1.Col = 0
For i% = 0 To 7
If blxuhao1(i%) = 99 Then Exit For
cc1% = blxuhao1(i%)
MSFlexGrid1.row = i% + 1
MSFlexGrid1.CellForeColor = colorqx(i%)
MSFlexGrid1.TextMatrix(i% + 1, 0) = AI_Nam(cc1%)
MSFlexGrid1.TextMatrix(i% + 1, 1) = LiangC(0, cc1%) & "~" & LiangC(1, cc1%)
MSFlexGrid1.TextMatrix(i% + 1, 2) = baojing(0, cc1%)
MSFlexGrid1.TextMatrix(i% + 1, 3) = baojing(1, cc1%)
MSFlexGrid1.TextMatrix(i% + 1, 4) = DanWei(cc1%)
MSFlexGrid1.TextMatrix(i% + 1, 5) = PvtAI(cc1%) '当前值
iik% = iik% + 1
Next
'----------------------------------
MSFlexGrid1.Width = 10635
aaa = (iik% - 1) * 220
MSFlexGrid1.Height = 470 + aaa
Me.Height = 6000 + aaa
End Sub
Private Sub printqx1_Click()
''''On Error Resume Next
x% = MsgBox("确实要打印 ?", 36, SysTitle)
If x% <> 6 Then Exit Sub
Call PrintQx(1, 2)
End Sub
Private Sub printset_Click()
'''On Error Resume Next
CommonDialog1.CancelError = True
CommonDialog1.ShowPrinter ' 显示 Color 公共对话框。
If Err = cdlCancel Then Exit Sub
PrintNum% = CommonDialog1.Copies
Printfx% = CommonDialog1.Orientation
Call PrintQx(PrintNum%, Printfx%)
End Sub
Private Sub prinview_Click()
'''On Error Resume Next
Picture3.Width = Me.Width - 200
Picture3.Height = Me.Height - 750
Picture3.Move 10, 10
If prinview.Caption = "打印预览(&V)" Then
prinview.Caption = "关闭预览(&V)"
Else
prinview.Caption = "打印预览(&V)"
Picture3.Visible = False
Exit Sub
End If
Picture3.Visible = True
Picture3.Cls
'---------------------------------------------------------------------------------
Picture3.Scale (-stx * 2.5 + zbx1, zby1 - 5 * sty)-(zbx2 + stx * 2, zby2 + 8 * sty) '设定标尺
For p = zby1 To zby2 Step sty
Picture3.Line (zbx1, p)-(zbx2, p), &HE0E0E0 '画横坐标线
Picture3.PSet (zbx1 - 1# * stx, p - sty / 6), &HFFFFFF
If zby2 > 100 Then
Picture3.Print Format$(zby2 + zby1 - p, "#000") '纵坐标
Else
Picture3.Print Format$(zby2 + zby1 - p, "#0.0#") '纵坐标
End If
Next p
Picture3.PSet (zbx1, zby1 - sty * 1), &HFFFFFF
aa% = Weekday(filena1)
Picture3.Print "数据日期:" & filena1 & " " & Week1(aa%) '打印日期
'================================
For q% = zbx1 To zbx2 Step stx
Picture3.Line (q%, zby1)-(q%, zby2), &HE0E0E0 '&H80000003 '纵坐标线
Next q%
For q% = zbx1 To zbx2 Step stx * 4
Picture3.Line (q%, zby1)-(q%, zby2), &H80000003
a1% = q% \ 12
a2% = (q% - a1% * 12) * 5
Picture3.PSet (q% - 0.4 * stx, zby2 + sty / 5), &HFFFFFF '横坐标值位置
Picture3.Print Format$(a1%, "00") + ":" + Format$(a2%, "00")
Next q%
Picture3.DrawWidth = 2
Picture3.Line (zbx1, zby2)-(zbx2, zby2), &H80000008
Picture3.Line (zbx1, zby1)-(zbx2, zby1), &H80000008
Picture3.Line (zbx1, zby2)-(zbx1, zby1), &H80000008
Picture3.Line (zbx2, zby2)-(zbx2, zby1), &H80000008
Picture3.DrawWidth = 1
'-------------------------------
Dim y1, y2 As Single
For qx% = 0 To 7
If blxuhao1(qx%) = 99 Then Exit For
For jj% = zbx1 To zbx2
y1 = Val(pvtt(qx%, jj%))
y2 = Val(pvtt(qx%, jj% + 1))
If y1 <> 9899 And y2 <> 9899 Then
y1 = zby2 + zby1 - y1: y2 = zby2 + zby1 - y2
Picture3.Line (jj%, y1)-(jj% + 1, y2), colorqx(qx%)
End If
Next
'----------标注--------------2001-12-28
X1 = zbx1 + stx * 10 * (qx% Mod 2) '2列
y1 = zby2 + Int(2 + qx% / 2) * sty * 0.8
Picture3.Line (X1, y1)-(X1 + 2 * stx, y1), colorqx(qx%)
y1 = y1 - sty / 5
Picture3.PSet (X1 + 2.5 * stx, y1), &HFFFFFF
Picture3.Print AI_Nam(blxuhao1(qx%)) & "(" & DanWei(blxuhao1(qx%)) & ")"
Next
Picture3.FontSize = 16
Picture3.PSet (zbx1 + 6 * stx, zby1 - sty * 3), &HFFFFFF
Picture3.Print qxtitle ' = SysTitle & "参数曲线"
Picture3.FontSize = 9
Picture3.PSet (zbx2 - 8 * stx, zby2 + sty * 3), &HFFFFFF
Picture3.Print "打印日期:" & Date$ & " " & Time$
End Sub
Private Sub Textzb_GotFocus(Index As Integer)
Textzb(Index).SelStart = 0
Textzb(Index).SelLength = Len(Textzb(Index).Text)
End Sub
Private Sub Timer1_Timer()
'couni = (couni + 1) Mod 4
'If couni = 1 Then
'readata'曲线移动
'zbx2 = 24 * 12 '前48小时
'zbx1 = 0
'hzbx1
'disp1
For i% = 0 To 7
If blxuhao1(i%) = 99 Then Exit For
MSFlexGrid1.TextMatrix(i% + 1, 5) = PvtAI(blxuhao1(i%))
Next
'End If
End Sub
Private Sub xsfw1_Click()
Textzb(0).Text = zby1
Textzb(1).Text = zby2
Picture2.Visible = True
End Sub
Private Sub xuanx_Click()
Unload Me
sel24.Show
End Sub
Private Sub PrintQx(PapeNum%, PapeFx%)
Printer.ColorMode = 2
Printer.ForeColor = &H80000008
Printer.Orientation = PapeFx% '1-纵向打印,2-横向打印
Printer.PaperSize = vbPRPSA4 'A4打印纸
'---------------------------------------------------------------------------------
Printer.Scale (-stx * 2.5 + zbx1, zby1 - 4 * sty)-(zbx2 + stx * 2, zby2 + 10 * sty) '设定标尺
For Pg% = 1 To PapeNum%
For p = zby1 To zby2 Step sty
Printer.Line (zbx1, p)-(zbx2, p), &H80000003
Printer.PSet (zbx1 - 1# * stx, p - sty / 6), &HFFFFFF
If zby2 > 100 Then
Printer.Print Format$(zby2 + zby1 - p, "#000") '纵坐标
Else
Printer.Print Format$(zby2 + zby1 - p, "#0.0#") '纵坐标
End If
Next p
Printer.PSet (zbx1, zby1 - sty * 3 / 4), &HFFFFFF
aa% = Weekday(filena1)
Printer.Print "数据日期:" & filena1 & " " & Week1(aa%) '打印日期
'================================
For q% = zbx1 To zbx2 Step stx
Printer.Line (q%, zby1)-(q%, zby2), &H80000003
Next q%
For q% = zbx1 To zbx2 Step stx * 4
Printer.Line (q%, zby1)-(q%, zby2), &H80000003
a1% = q% \ 12
a2% = (q% - a1% * 12) * 5
Printer.PSet (q% - 0.4 * stx, zby2 + sty / 5), &HFFFFFF '横坐标值位置
Printer.Print Format$(a1%, "00") + ":" + Format$(a2%, "00")
Next q%
Printer.DrawWidth = 3
Printer.Line (zbx1, zby2)-(zbx2, zby2), &H80000008
Printer.Line (zbx1, zby1)-(zbx2, zby1), &H80000008
Printer.Line (zbx1, zby2)-(zbx1, zby1), &H80000008
Printer.Line (zbx2, zby2)-(zbx2, zby1), &H80000008
Printer.DrawWidth = 1
'-------------------------------
Dim y1, y2 As Single
For qx% = 0 To 7
If blxuhao1(qx%) = 99 Then Exit For
For jj% = zbx1 To zbx2
y1 = Val(pvtt(qx%, jj%))
y2 = Val(pvtt(qx%, jj% + 1))
If y1 <> 9899 And y2 <> 9899 Then
y1 = zby2 + zby1 - y1: y2 = zby2 + zby1 - y2
Printer.Line (jj%, y1)-(jj% + 1, y2), colorqx(qx%)
End If
Next
'----------标注--------------2001-12-28
X1 = zbx1 + stx * 10 * (qx% Mod 2) '2列
y1 = zby2 + Int(2 + qx% / 2) * sty * 0.8
Printer.Line (X1, y1)-(X1 + 2 * stx, y1), colorqx(qx%)
y1 = y1 - sty / 5
Printer.PSet (X1 + 2.5 * stx, y1), &HFFFFFF
Printer.Print AI_Nam(blxuhao1(qx%)) & "(" & DanWei(blxuhao1(qx%)) & ")"
Next
Printer.FontSize = 16
Printer.PSet (zbx1 + 8 * stx, zby1 - sty * 2.2), &HFFFFFF
Printer.Print qxtitle ' = SysTitle & "参数曲线"
Printer.FontSize = 9
Printer.PSet (zbx2 - 6 * stx, zby2 + sty * 3), &HFFFFFF
Printer.Print "打印日期:" & Date$ & " " & Time$
Printer.EndDoc
Next
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -