📄 form1.frm
字号:
' Dim whichNumber As Integer
' Dim chr_time, chr_value As String
' Dim a As Date
' Dim b As Long
' If Button = 2 Then
' MSChart1.TwipsToChartPart X, Y, whichPart, whichSeries, whichNumber, 0, 0
' If whichNumber >= 1 Then
' b = Int((data(mhead + whichNumber - 1, 0) - Int(data(mhead + whichNumber - 1, 0))) * 3600)
' a = TimeSerial(Int(data(mhead + whichNumber - 1, 0)), 0, b)
' chr_value = data(mhead + whichNumber - 1, 1)
' If data(mhead + whichNumber - 1, 1) < 1 Then
' chr_value = "0" & chr_value
' End If
'
' If whichNumber - 1 >= 0 Then
'
' tipmschart1.CreateBalloon Me.MSChart1, 0, "时间:" & a, szBalloon, False, "数值:" & chr_value, etiInfo
' tipmschart1.SetHandle MSChart1
'
' End If
' End If
' End If
End Sub
Private Sub MSChart1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Dim whichPart As Integer, whichSeries As Integer
Dim whichNumber As Integer
Dim chr_value As String
Dim a As Date
Dim b As Integer
MSChart1.TwipsToChartPart X, Y, whichPart, whichSeries, whichNumber, 0, 0
MSChart1.AllowSeriesSelection = False
If whichNumber >= 1 Then
b = Int((data(mhead + whichNumber - 1, whichSeries - 1) - Int(data(mhead + whichNumber - 1, whichSeries - 1))) * 3600)
a = TimeSerial(Int(data(mhead + whichNumber - 1, whichSeries - 1)), 0, b)
chr_value = data(mhead + whichNumber - 1, whichSeries)
If data(mhead + whichNumber - 1, whichSeries) < 1 Then '把 .3 改为 0.3
chr_value = "0" & chr_value
End If
' Label2.Caption = "时间:" & a & " 数值:" & chr_value
If Text1.Visible = False Then
Text1.Visible = True
End If
Text1.Top = Y + MSChart1.Top - 200
Text1.Left = X + MSChart1.Left + 200
Text1.Text = "时间:" & a & " 数值:" & chr_value
End If
End Sub
Private Sub MSChart1_PointSelected(Series As Integer, DataPoint As Integer, MouseFlags As Integer, Cancel As Integer)
' Dim chr_time, chr_value As String
' Dim a As Date
' Dim b As Long
' b = Int((Data(DataPoint, 0) - Int(Data(DataPoint, 0))) * 3600)
' a = TimeSerial(Int(Data(DataPoint, 0)), 0, b)
' chr_value = Data(DataPoint, 1)
' If Data(DataPoint, 1) < 1 Then
' chr_value = "0" & chr_value
' End If
'
' MsgBox a & " " & chr_value
End Sub
Private Sub TRV_DblClick()
Dim h As Date
Dim sTemp, ctime, ch, cm, cs As String
Dim c1 As String
Dim time1, time2 As Long
time1 = timeGetTime
If Not TRV.SelectedItem Is Nothing Then
'只响应叶节点(没有孩子)
If TRV.SelectedItem.Children = 0 Then
trvkey = TRV.SelectedItem.key
'MsgBox "你选择的是:" & TRV.SelectedItem.key & " " & TRV.SelectedItem.Text, vbInformation
' sqlstr = "select * from xia_dayreport where ttid = '0115002020101' and left(tttime,10) = '2007-08-07' order by tttime"
'***********************************************************************************
'*把选中的对应煤矿的所有传感器写入子TREE
'***********************************************************************************
If Len(TRV.SelectedItem.key) = 9 Then
sqlstr = "select ttid,ttname from xia_config where mkid = '" & Right(TRV.SelectedItem.key, Len(TRV.SelectedItem.key) - 2) & "'"
rs.Open sqlstr, conn, adOpenStatic
m1 = rs.RecordCount
rs.Close
For j = 1 To m1
c1 = j
sqlstr = "select top " & c1 & " ttid,ttname from xia_config where mkid = '" & Right(TRV.SelectedItem.key, Len(TRV.SelectedItem.key) - 2) & "'"
rs.Open sqlstr, conn, adOpenStatic
rs.MoveLast
key1 = "K_" & rs.Fields("ttid").Value
keyname1 = rs.Fields("ttname").Value
Call AddChildNode(TRV.SelectedItem.key, key1, keyname1)
rs.Close
Next j
End If
'***********************************************************************************
'*把选中的对应传感器的值与时间写入动态数组data()
'***********************************************************************************
If Len(TRV.SelectedItem.key) = 13 Then
sTemp = Right(TRV.SelectedItem.key, 11)
sKey = Left(sTemp, 9) & "01" & Right(sTemp, 2)
'sKey = "0115002020106"
sqlstr = "select tttime,ttvalue from xia_dayreport where ttid = '" & sKey & "' and left(tttime,10) = '2007-08-07' order by tttime"
rs.Open sqlstr, conn, adOpenStatic
m = rs.RecordCount
mcount = m
mtemp = m
If m > 0 Then
ReDim data(m, 1)
ReDim temp(m, 1)
rs.MoveFirst
ctime = Right(rs.Fields("tttime").Value, 8) '取出最小时间
mintime = 24 * CDate(ctime)
minvalue = rs.Fields("ttvalue").Value
maxvalue = rs.Fields("ttvalue").Value
rs.MoveLast
ctime = Right(rs.Fields("tttime").Value, 8) '取出最大时间
maxtime = 24 * CDate(ctime)
rs.MoveFirst
For i = 0 To m - 1
ctime = Right(rs.Fields("tttime").Value, 8)
h = CDate(ctime)
data(i, 0) = 24 * h '取出小时数
data(i, 1) = rs.Fields("ttvalue").Value
If data(i, 1) < minvalue Then
minvalue = data(i, 1)
End If
If data(i, 1) > maxvalue Then
maxvalue = data(i, 1)
End If
rs.MoveNext
Next i
rs.Close
Call drawzx(0, mcount, mcount)
temp = data
mhead = 0
Toolbar1.Buttons.Item(2).Enabled = True
Toolbar1.Buttons.Item(4).Enabled = True
Else
rs.Close
End If ' end If m > 0 Then
End If ' end If Len(TRV.SelectedItem.key) = 13 Then
End If ' End If TRV.SelectedItem.Children = 0 Then
End If ' End If Not TRV.SelectedItem Is Nothing Then
time2 = timeGetTime
Label2.Caption = time2 - time1 & "毫秒 共有" & m & "条记录"
trvindex = TRV.SelectedItem.Index
End Sub
Private Sub Toolbar1_ButtonClick(ByVal Button As MSComCtlLib.Button)
Dim n As Integer
On Error Resume Next
Select Case Button.key
Case "绘制折线"
Call drawzx(mhead, mtemp, mcount)
Case "多折线"
Form3.Show
Case "传感器详细数据"
biaoge
Case "打印"
prt
Case "帮助"
'应做:添加 '帮助' 按钮代码。
MsgBox "添加 '帮助' 按钮代码。"
Case "退出"
Unload Form1
End Select
End Sub
'Public Sub drawzx(ByVal head As Integer, ByVal length As Integer, ByVal all_len As Integer)
'Dim ttdata() As Double
''Dim secdata(10, 1) As Double
'ReDim ttdata(length - 1, 1)
'For i = 0 To length - 1
' ttdata(i, 0) = Data(head + i, 0)
' ttdata(i, 1) = Data(head + i, 1)
'Next i
'setxianshi ("ze")
'
''For i = 0 To 10
'' secdata(i, 0) = i + 0.5
'' secdata(i, 1) = i / 2 + 0.1
''Next i
'
''Dim mydata(20, 1) As Double
'Dim j As Integer
'
''波形图外观设置
'With MSChart1
' .TitleText = "速度 m/min"
' .Plot.Axis(VtChAxisIdX).AxisTitle.Text = "时间"
' .Plot.Axis(VtChAxisIdY).AxisTitle.Text = "数值"
'' '设置图线的外观
' .Plot.SeriesCollection(1).Pen.Width = 1 '30
' .Plot.SeriesCollection(1).Pen.Style = VtPenStyleSolid
'' '设置XY轴
' .Plot.Axis(VtChAxisIdX).ValueScale.Auto = True
' .Plot.Axis(VtChAxisIdY).ValueScale.Auto = False
' '// 设置最大值
'' .Plot.Axis(VtChAxisIdX).ValueScale.Maximum = maxtime
'' If maxvalue > 1 Then
'' .Plot.Axis(VtChAxisIdY).ValueScale.Maximum = Round(maxvalue * 1.5, 0)
'' End If
'' If maxvalue > 0.1 Then
'' .Plot.Axis(VtChAxisIdY).ValueScale.Maximum = Round(maxvalue * 1.5, 1)
'' End If
'' If maxvalue > 0.01 Then
'' .Plot.Axis(VtChAxisIdY).ValueScale.Maximum = Round(maxvalue * 1.5, 2)
'' End If
''
'
' If maxvalue > 100 Then
' .Plot.Axis(VtChAxisIdY).ValueScale.Maximum = Round(maxvalue * 1.5)
' ElseIf maxvalue > 75 Then
' .Plot.Axis(VtChAxisIdY).ValueScale.Maximum = 100
' ElseIf maxvalue > 50 Then
' .Plot.Axis(VtChAxisIdY).ValueScale.Maximum = 75
' ElseIf maxvalue > 30 Then
' .Plot.Axis(VtChAxisIdY).ValueScale.Maximum = 50
' ElseIf maxvalue > 20 Then
' .Plot.Axis(VtChAxisIdY).ValueScale.Maximum = 30
' ElseIf maxvalue > 10 Then
' .Plot.Axis(VtChAxisIdY).ValueScale.Maximum = 20
' ElseIf maxvalue > 5 Then
' .Plot.Axis(VtChAxisIdY).ValueScale.Maximum = 10
' ElseIf maxvalue > 3 Then
' .Plot.Axis(VtChAxisIdY).ValueScale.Maximum = 5
' ElseIf maxvalue > 1 Then
' .Plot.Axis(VtChAxisIdY).ValueScale.Maximum = 3
' ElseIf maxvalue > 0.5 Then
' .Plot.Axis(VtChAxisIdY).ValueScale.Maximum = 1
' ElseIf maxvalue > 0.3 Then
' .Plot.Axis(VtChAxisIdY).ValueScale.Maximum = 0.5
' ElseIf maxvalue > 0.1 Then
' .Plot.Axis(VtChAxisIdY).ValueScale.Maximum = 0.3
' ElseIf maxvalue > 0.05 Then
' .Plot.Axis(VtChAxisIdY).ValueScale.Maximum = 0.1
' ElseIf maxvalue > 0.03 Then
' .Plot.Axis(VtChAxisIdY).ValueScale.Maximum = 0.05
' ElseIf maxvalue > 0.01 Then
' .Plot.Axis(VtChAxisIdY).ValueScale.Maximum = 0.03
' Else
' .Plot.Axis(VtChAxisIdY).ValueScale.Maximum = maxvalue * 1.5
' End If
'
'
'
'
'' '// 设置最小值
' .Plot.Axis(VtChAxisIdY).ValueScale.Minimum = 0
'' .Plot.Axis(VtChAxisIdX).ValueScale.Minimum = mintime
' '//
' '.Plot.Axis(VtChAxisIdX).ValueScale.MajorDivision = 6 'X轴主要网格数量
' .Plot.Axis(VtChAxisIdY).ValueScale.MajorDivision = 5 'Y轴主要网格数量
' ' .Plot.Axis(VtChAxisIdX).ValueScale.MinorDivision = 0 'X轴次要网格数量
' ' .Plot.Axis(VtChAxisIdY).ValueScale.MinorDivision = 0 'Y轴次要网格数量
' .Plot.Axis(VtChAxisIdX).AxisGrid.MajorPen.Style = VtPenStyleDotted
' .Plot.Axis(VtChAxisIdY).AxisGrid.MajorPen.Style = VtPenStyleDotted
'' MSChart1.ColumnCount = 2
'' MSChart1.RowCount = 380
' MSChart1.Plot.AutoLayout = False
' MSChart1.Plot.UniformAxis = False
' MSChart1.chartType = VtChChartType2dXY '设置图形为二维散点图
' MSChart1.ChartData = ttdata '数据
'
'End With
'End Sub
'
'
'Public Sub setxianshi(i As String)
'If i = "grid" Then
'VSPrinter1.Visible = False
'cmmset.Visible = False
'MSChart1.Visible = False
'VSFG1.Visible = True
'VSFG1.Top = 840
'VSFG1.Left = 2640
'End If
'If i = "ze" Then
'VSPrinter1.Visible = False
'cmmset.Visible = False
'MSChart1.Visible = True
'VSFG1.Visible = False
'MSChart1.Top = 840
'MSChart1.Left = 2640
'End If
'If i = "prt" Then
'VSPrinter1.Visible = True
'cmmset.Visible = True
'MSChart1.Visible = False
'VSFG1.Visible = False
'VSPrinter1.Top = 840
'VSPrinter1.Left = 2640
'End If
'
'
'End Sub
'
Private Sub TRV_KeyDown(KeyCode As Integer, Shift As Integer)
If MSChart1.Visible = True Then
' TRV.Nodes(trvindex).Selected = True
If KeyCode = 38 Then '放大图形
mtemp = Int(mtemp * 0.9)
mhead = mhead + Int((mtemp * 0.1) / 2)
End If
If KeyCode = 37 Then '左移图形
mhead = mhead + 20
End If
If KeyCode = 39 Then '左移图形
mhead = mhead - 20
End If
If KeyCode = 40 Then
mtemp = Int(mtemp * 1.1)
mhead = mhead - Int((mtemp * 0.1) / 2)
End If
If mtemp < 20 Then
mtemp = 20
End If
If mhead + mtemp > mcount Then '如头+长大于总长
mhead = mcount - mtemp
End If
If mhead < 0 Then '如头+长大于总长
mhead = 0
End If
If mtemp > mcount Then
mtemp = mcount
End If
Call drawzx(mhead, mtemp, mcount)
' Label3.Caption = mhead & "," & mtemp & "," & mcount
End If
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -