📄 mjianding.bas
字号:
pic.Print strTemp
'17
strTemp = JDData.JianDingYaLiCol(13) & JDData.JainDingYaLiColData(13)
pic.CurrentX = curx
pic.CurrentY = curY - curHeight + rowHeight * 16 + (rowHeight - pic.TextHeight(strTemp)) / 2
pic.Print strTemp
strTemp = JDData.JianDingYaLiCol(14) & JDData.JainDingYaLiColData(14)
pic.CurrentX = curx + colWidth * 2.5
pic.CurrentY = curY - curHeight + rowHeight * 16 + (rowHeight - pic.TextHeight(strTemp)) / 2
pic.Print strTemp
strTemp = JDData.JianDingYaLiCol(15) & JDData.JainDingYaLiColData(15)
pic.CurrentX = curx + colWidth * 5
pic.CurrentY = curY - curHeight + rowHeight * 16 + (rowHeight - pic.TextHeight(strTemp)) / 2
pic.Print strTemp
strTemp = JDData.JianDingYaLiCol(16) & JDData.JainDingYaLiColData(16)
pic.CurrentX = curx + colWidth * 7.5
pic.CurrentY = curY - curHeight + rowHeight * 16 + (rowHeight - pic.TextHeight(strTemp)) / 2
pic.Print strTemp
'绘制数据
For i = 1 To 11
For j = 1 To 9
'strTemp = i & j '替换为实际数据
strTemp = JDData.JianDingYaLiData(j, i)
Select Case i
Case 1
pic.CurrentX = curx + (colWidth * 0.5 - pic.TextWidth(strTemp)) / 2
pic.CurrentY = curY - curHeight + rowHeight * (j + 5) + (rowHeight - pic.TextHeight(strTemp)) / 2
Case Else
pic.CurrentX = curx + colWidth * (i - 1.5) + (colWidth - pic.TextWidth(strTemp)) / 2
pic.CurrentY = curY - curHeight + rowHeight * (j + 5) + (rowHeight - pic.TextHeight(strTemp)) / 2
End Select
pic.Print strTemp
Next
Next
pic.FontSize = oldFont
End Function
Function saveJianDianYali(strFile As String)
'**********************************************************************
'* 函数名称:saveJianDianYali
'* 函数描述:保存检定压力文件
'* 参数列表:SData检定压力文件, strFile文件名
'* 返 回:
'* 作 者:
'* 创建日期: 2008-03-10
'**********************************************************************
Dim ColNum As Integer, rowNum As Integer
Dim i As Integer, j As Integer
rowNum = UBound(JDData.JianDingYaLiData, 1)
ColNum = UBound(JDData.JianDingYaLiData, 2)
For i = 1 To ColNum
For j = 1 To rowNum
WriteINI "数据", "R" & i & "C" & j, JDData.JianDingYaLiData(j, i), strFile
Next
Next
ColNum = UBound(JDData.JianDingYaLiCol)
For i = 1 To ColNum
WriteINI "报表", JDData.JianDingYaLiCol(i), JDData.JainDingYaLiColData(i), strFile
'WriteINI "报表", SData.JianDingYaLiCol(i), CStr(i), StrFile
Next
End Function
Function ReadJianDianYali(strFile As String)
'**********************************************************************
'* 函数名称:saveJianDianYali
'* 函数描述:读取检定压力文件
'* 参数列表:strFile文件名
'* 返 回:SData检定压力数据
'* 作 者:
'* 创建日期: 2008-03-10
'**********************************************************************
On Error Resume Next
Dim ColNum As Integer, rowNum As Integer
Dim i As Integer, j As Integer
'setJianDingYaLiCol DData
rowNum = UBound(JDData.JianDingYaLiData, 1)
ColNum = UBound(JDData.JianDingYaLiData, 2)
For i = 1 To ColNum
For j = 1 To rowNum
JDData.JianDingYaLiData(j, i) = ReadIni("数据", "R" & i & "C" & j, strFile)
Next
Next
ColNum = UBound(JDData.JianDingYaLiCol)
For i = 1 To ColNum
JDData.JainDingYaLiColData(i) = ""
JDData.JainDingYaLiColData(i) = ReadIni("报表", JDData.JianDingYaLiCol(i), strFile)
'WriteINI "报表", SData.JianDingYaLiCol(i), CStr(i), StrFile
Next
JiSuanYaLi
End Function
Function saveJianDianYeMian(strFile As String)
'**********************************************************************
'* 函数名称:saveJianDianYali
'* 函数描述:保存检定液面文件
'* 参数列表:SData检定压力文件, strFile文件名
'* 返 回:
'* 作 者:
'* 创建日期: 2008-03-10
'**********************************************************************
Dim ColNum As Integer, rowNum As Integer
Dim i As Integer, j As Integer
Dim filenum As Integer
rowNum = UBound(YMData.JianDingYeMiandata, 1) - 1
filenum = FreeFile
Open strFile For Output As #filenum
Print #filenum, "数据"
For i = 0 To rowNum
Print #filenum, YMData.JianDingYeMiandata(i, 1) & "," & YMData.JianDingYeMiandata(i, 2)
Next
Close #filenum
WriteINI "报表", "第一点", YMData.DianYi, strFile
WriteINI "报表", "第五十点", YMData.DianWuShi, strFile
WriteINI "报表", "低频最大值", YMData.DiPinZuiDa, strFile
WriteINI "报表", "高频最大值", YMData.GaoPinZuiDa, strFile
ColNum = UBound(YMData.JianDingYeMianCol)
For i = 1 To ColNum
WriteINI "报表", YMData.JianDingYeMianCol(i), YMData.JianDianYeMianColData(i), strFile
Next
End Function
Function ReadJianDianYeMian(strFile As String)
'**********************************************************************
'* 函数名称:saveJianDianYali
'* 函数描述:读取检定液面文件
'* 参数列表:strFile文件名
'* 返 回:检定液面数据
'* 作 者:
'* 创建日期: 2008-03-10
'**********************************************************************
Dim ColNum As Integer, rowNum As Integer
Dim i As Integer, j As Integer
Dim filenum As Integer
Dim tempData() As String
Dim strTemp As String
'
'
rowNum = UBound(YMData.JianDingYeMiandata, 1) - 1
'
filenum = FreeFile
Open strFile For Input As #filenum
Line Input #filenum, strTemp
For i = 0 To rowNum
Line Input #filenum, strTemp
If strTemp = "[报表]" Then Exit For
tempData = Split(strTemp, ",")
YMData.JianDingYeMiandata(i, 1) = tempData(0)
YMData.JianDingYeMiandata(i, 2) = tempData(1)
Next
Close #filenum
YMData.DianYi = ""
YMData.DianYi = ReadIni("报表", "第一点", strFile)
YMData.DianWuShi = ""
YMData.DianWuShi = ReadIni("报表", "第五十点", strFile)
YMData.DiPinZuiDa = ""
YMData.DiPinZuiDa = ReadIni("报表", "低频最大值", strFile)
YMData.GaoPinZuiDa = ""
YMData.GaoPinZuiDa = ReadIni("报表", "高频最大值", strFile)
ColNum = UBound(YMData.JianDingYeMianCol)
'
For i = 1 To ColNum
YMData.JianDianYeMianColData(i) = ""
YMData.JianDianYeMianColData(i) = ReadIni("报表", YMData.JianDingYeMianCol(i), strFile)
'WriteINI "报表", SData.JianDingYaLiCol(i), CStr(i), StrFile
Next
End Function
Function ByteToYeMian(sByte() As Byte)
'**********************************************************************
'* 函数名称:byteToYeMian
'* 函数描述:字节转换为液面数据
'* 参数列表:sByte字节数据
'* 返 回:SData检定压力数据
'* 作 者:
'* 创建日期: 2008-03-10
'**********************************************************************
Dim i As Integer
Dim byteCount As Long
byteCount = UBound(sByte)
YMData.DiPinZuiDa = 0
YMData.GaoPinZuiDa = 0
For i = 0 To byteCount - 1 Step 2
YMData.JianDingYeMiandata(i \ 2, 1) = sByte(i)
YMData.JianDingYeMiandata(i \ 2, 2) = sByte(i + 1)
YMData.DiPinZuiDa = IIf(YMData.DiPinZuiDa < sByte(i), sByte(i), YMData.DiPinZuiDa)
YMData.GaoPinZuiDa = IIf(YMData.GaoPinZuiDa < sByte(i + 1), sByte(i + 1), YMData.GaoPinZuiDa)
Next
YMData.DianYi = ""
YMData.DianWuShi = ""
For i = 1 To 13
YMData.JianDianYeMianColData(i) = ""
Next
End Function
Function ByteToYali(sByte() As Byte)
'**********************************************************************
'* 函数名称:ByteToYali
'* 函数描述:字节转换压力数据
'* 参数列表:sByte字节数据
'* 返 回:SData检定压力数据
'* 作 者:
'* 创建日期: 2008-03-10
'**********************************************************************
Dim ColNum As Integer, rowNum As Integer
Dim i As Integer, j As Integer, k As Integer
Dim byteCount As Integer
Dim tempData() As String
setJianDingYaLiCol JDData
byteCount = UBound(sByte)
ReDim tempData((byteCount + 1) \ 2)
For i = 0 To byteCount
Debug.Print sByte(i)
Next
For i = 0 To byteCount Step 2
' tempData((i + 2) / 2) = (sByte(i) + sByte(i + 1) * 256) / 1024
tempData((i + 2) / 2) = Format((Trim(Str(sByte(i))) + Trim(Str(sByte(i + 1))) * 256) * 10 / 1024, "0.000")
Debug.Print ((i + 2) / 2) & "-" & tempData((i + 2) / 2)
Next
rowNum = UBound(JDData.JianDingYaLiData, 1)
ColNum = UBound(JDData.JianDingYaLiData, 2)
'需改进
For i = 1 To rowNum
JDData.JianDingYaLiData(i, 1) = (i - 1)
For j = 2 To ColNum - 4
k = (j \ 2 - 1)
If (j Mod 2) = 0 Then
JDData.JianDingYaLiData(i, j) = tempData((j - 2) * rowNum + i - (j \ 3))
Debug.Print (j - 2) * rowNum + i - (j \ 3)
Else
JDData.JianDingYaLiData(i, j) = tempData((j - 2) * rowNum + (rowNum - i) - (j - 3) \ 2)
Debug.Print (j - 2) * rowNum + (rowNum - i) - (j - 3) \ 2
End If
Next
Next
For i = 1 To 16
JDData.JainDingYaLiColData(i) = ""
Next
'*******计算
JiSuanYaLi
'*******
End Function
Public Sub setJianDingYeMianCol(CurData As JianDingYeMian) '标题
'**********************************************************************
'* 函数名称:setJianDingYeMianCol
'* 函数描述:设置液面检定报表字段
'* 参数列表:
'* 返 回:
'* 作 者:
'* 创建日期: 2008-03-10
'**********************************************************************
CurData.JianDingYeMianCol(1) = "液面面检定记录"
CurData.JianDingYeMianCol(2) = "使用单位:"
CurData.JianDingYeMianCol(3) = "标准信号源频率:" '5Hz"
CurData.JianDingYeMianCol(4) = "理论值:" '1m"
CurData.JianDingYeMianCol(5) = "比例(1:2.4)"
CurData.JianDingYeMianCol(6) = "检定人:"
CurData.JianDingYeMianCol(7) = "检定日期:"
CurData.JianDingYeMianCol(8) = "仪器编号:"
CurData.JianDingYeMianCol(9) = "标尺单位米(m)"
CurData.JianDingYeMianCol(10) = "实测值:"
CurData.JianDingYeMianCol(11) = "检定精度:"
CurData.JianDingYeMianCol(12) = "审核人:"
CurData.JianDingYeMianCol(13) = "证书编号:"
End Sub
Public Sub setJianDingYaLiCol(CurData As JianDingYaLi) '标题
'**********************************************************************
'* 函数名称:setJianDingYaLiCol
'* 函数描述:设置检定报表字段
'* 参数列表:
'* 返 回:
'* 作 者:
'* 创建日期: 2008-03-10
'**********************************************************************
'On Error Resume Next
Dim i As Integer
CurData.JianDingYaLiCol(1) = "送检单位:"
CurData.JianDingYaLiCol(2) = "证书编号:"
CurData.JianDingYaLiCol(3) = "仪器编号:"
CurData.JianDingYaLiCol(4) = "仪器型号:"
CurData.JianDingYaLiCol(5) = "测量范围:"
CurData.JianDingYaLiCol(6) = "制造厂家:"
CurData.JianDingYaLiCol(7) = "标准器编号:"
CurData.JianDingYaLiCol(8) = "测量范围: "
CurData.JianDingYaLiCol(9) = "准 确 度:"
CurData.JianDingYaLiCol(10) = "外观检查:"
CurData.JianDingYaLiCol(11) = "最大示值误差:"
CurData.JianDingYaLiCol(12) = "准确度:"
CurData.JianDingYaLiCol(13) = "检定人:"
CurData.JianDingYaLiCol(14) = "审核人:"
CurData.JianDingYaLiCol(15) = "检定温度:"
CurData.JianDingYaLiCol(16) = "检定日期:"
End Sub
Sub JiSuanYaLi()
Dim rowNum As Integer '行数
Dim i As Integer, j As Integer '
Dim ZuiDaWuCha As Single, ShiZhiWuCha As Single '最大误差,示值误差
'临时加载,临时减载,临时最大误差,临时示值误差,临时最大误差1,临时最大误差2
Dim tempSumJia As Single, tempSumJian As Single, tempZuiDaWuCha As Single, tempShiZhiWuCha As Single, tempData1 As Single, tempData2 As Single
rowNum = UBound(JDData.JianDingYaLiData, 1) '表示1维数据
ZuiDaWuCha = 0.0001
ShiZhiWuCha = 0.0001
For i = 1 To rowNum
tempSumJia = 0
tempSumJian = 0
tempZuiDaWuCha = 0
For j = 1 To 3 '一次,二次,三次
tempSumJia = tempSumJia + JDData.JianDingYaLiData(i, j * 2)
tempSumJian = tempSumJian + JDData.JianDingYaLiData(i, j * 2 + 1)
tempData1 = Abs(JDData.JianDingYaLiData(i, j * 2) - JDData.JianDingYaLiData(i, 1))
tempData2 = Abs(JDData.JianDingYaLiData(i, j * 2 + 1) - JDData.JianDingYaLiData(i, 1))
tempData1 = IIf(tempData1 > tempData2, tempData1, tempData2) '临时最大误差
tempZuiDaWuCha = IIf(tempZuiDaWuCha > tempData1, tempZuiDaWuCha, tempData1)
Next
JDData.JianDingYaLiData(i, 8) = Format(Round(tempSumJia / 3, 3), "0.000")
JDData.JianDingYaLiData(i, 9) = Format(Round(tempSumJian / 3, 3), "0.000")
JDData.JianDingYaLiData(i, 10) = Format(tempZuiDaWuCha, "0.000")
tempData = Round((tempZuiDaWuCha / 8) * 100, 3)
JDData.JianDingYaLiData(i, 11) = Format(tempData, "0.000")
ZuiDaWuCha = IIf(ZuiDaWuCha > tempZuiDaWuCha, ZuiDaWuCha, tempZuiDaWuCha)
ShiZhiWuCha = IIf(ShiZhiWuCha > tempData, ShiZhiWuCha, tempData)
Next
JDData.JainDingYaLiColData(11) = Format(ZuiDaWuCha, "0.000Mpa") '最大误差
JDData.JainDingYaLiColData(12) = Format(Round(ShiZhiWuCha, 2), "0.00") & "%" '示值误差,准确度
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -