⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mjianding.bas

📁 地面测试仪
💻 BAS
📖 第 1 页 / 共 2 页
字号:
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 + -