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

📄 modcommon.bas

📁 VB6.0编写的医院影像系统
💻 BAS
📖 第 1 页 / 共 4 页
字号:
        .cboHospital.Text = rsRPT!SEND_HOSPITAL & vbNullString
        .cboSSection.Text = rsRPT!SEND_SECTION & vbNullString
        .cboSDoctor.Text = rsRPT!SEND_DOCTOR & vbNullString
        .txtREC_NO.Text = rsRPT!REC_NO & vbNullString
        .cboImageQuality.Text = rsRPT!IMAGE_QUALITY & vbNullString
        .txtSickAge.Text = rsRPT!Sick_Age & vbNullString
        .cboAgeUnit.Text = rsRPT!AGE_UNIT & vbNullString
        .txtUnit.Text = rsRPT!SICK_UNIT & vbNullString
        .txtFamily.Text = rsRPT!SICK_FAMILY & vbNullString
        .txtSickBirth.Value = rsRPT!SICK_BIRTH & vbNullString
        .cboSickClass.Text = rsRPT!SICK_CLASS & vbNullString
        .txtSickName.Text = rsRPT!SICK_NAME & vbNullString
        .cboSickSex.Text = rsRPT!SICK_SEX & vbNullString
        .cboINS_FRE.Text = rsRPT!INSTER_FREQUEN & vbNullString
        .txtSickBirth.Value = rsRPT!SICK_BIRTH & vbNullString
        USNO = rsRPT!US_NO & vbNullString
        Select Case .cboOrganName.Text
            Case "心脏"
                .txtDescribe.Text = rsRPT!VALUE1 & vbNullString & rsRPT!DESCRIBE & vbNullString
            Case Else
                .txtDescribe.Text = rsRPT!DESCRIBE & vbNullString
        End Select
        
        .txtUSTip(0).Text = rsRPT!US_TIP1 & vbNullString
        .txtUSTip(1).Text = rsRPT!US_TIP2 & vbNullString
        .txtUSTip(2).Text = rsRPT!US_TIP3 & vbNullString
        .txtUSTip(3).Text = rsRPT!US_TIP4 & vbNullString
        .txtUSTip(4).Text = rsRPT!US_TIP5 & vbNullString
        .txtUSTip(5).Text = rsRPT!US_TIP6 & vbNullString
        .txtUSTip(6).Text = rsRPT!US_TIP7 & vbNullString
        .txtUSTip(7).Text = rsRPT!US_TIP8 & vbNullString
        
    '        If .txtSickNo.Text = "" Then .txtSickBirth.Value = Account_BirthDay(.txtSickAge.Text, .cboAgeUnit.Text)
        
    End With
    
    '当此报告无动态视频时报告视频按钮不可用
    strSQL = "SELECT * FROM US_MEDIA WHERE FILE_TYPE = 'VIDEO' AND US_NO = '" & frmReport.txtUSNo & "'"
    Set rsRPT = OpenRS(strSQL, "Data")
    If rsRPT.RecordCount > 0 Then
        frmMain.atBarMain.Tools("ID_USViewVideo").Enabled = True
    Else
        frmMain.atBarMain.Tools("ID_USViewVideo").Enabled = False
    End If
    
End Function

Public Sub CenterForm(frm As Form)
    
    '-------------------
    '将一个Form移动
    '到屏幕的中央
    '-------------------
    
    frm.Move (Screen.width - frm.width) / 2, (Screen.height - frm.height) / 2
    If frm.Left < 0 Then frm.Left = 0
    If frm.Top < 0 Then frm.Top = 0
    
End Sub

Public Sub MaxForm(frm As Form)

    '---------------------
    '将一个Form的位置充满屏幕
    '---------------------
    
    frm.Move 0, 0, Screen.width, Screen.height
    
End Sub

Public Function SetDate(DateString As String) As String
    
    '---------------------
    '将一个字符串转换为合法的日期类型
    '---------------------
    
    Dim cTR As New TextReplace
    
    cTR.Text = DateString
    cTR.Replace ".", "-", False
    SetDate = cTR.Text
    
    Set cTR = Nothing
    
End Function

Public Function ImageFileToSoundFile(strSoundFileName As String) As String
    
    '----------------------------
    '将一个图象文件名获得对应的声音文件名
    '即文件主名+WAV,含路径
    '----------------------------
    
    '这里要求后缀为3
    ImageFileToSoundFile = Left(strSoundFileName, Len(strSoundFileName) - 3) & "WAV"
    
End Function

Public Function ShowReportImage()
    
    '---------------------
    '显示报告对应的图片
    '---------------------
    
    '如果是"全部显示,则退出程序"
    If frmImageResult.Loaded = False Then Exit Function
    If frmImageResult.chkShowAll.Value = 1 Then Exit Function
    
    On Error GoTo ErrHandle
    
    Dim rsTemp As ADODB.Recordset
    Dim strFile As String
    Dim cIF As ImageFile
    
    Set rsTemp = OpenRS("SELECT * FROM US_MEDIA WHERE US_NO = '" & rsUS_ReportSick!US_NO & "' AND FILE_TYPE = 'IMAGE'", "Data")
    frmImageResult.IB.Clear
    If rsTemp.RecordCount > 0 Then
        Do While Not rsTemp.EOF
            strFile = rsTemp!FILE_NAME
            
            '在这里,对于从网络读取图象(即网络共享版本)或者从指定的目录读取图象(从备份中读取)时,
            '可以改变文件名的路径
            If Not FSO.FileExists(strFile) Then
'                strFile = ChangeFilePath(strFile, gstrImageDir)
                strFile = FindMediaFile(strFile, True, True)
            End If
            
            Set cIF = frmImageResult.IB.ImageFiles.Add(strFile)
            '如果加入cIF成功则可以进一步查找声音和是否打印的标志
            If Not cIF Is Nothing Then
                cIF.TagSave = True
                If rsTemp!SOUND_FILE_NAME & vbNullString <> vbNullString Then
                    cIF.SoundFile = rsTemp!SOUND_FILE_NAME
                    cIF.TagSound = True
                End If
                If rsTemp!Print Then cIF.TagPrint = True
            End If
            rsTemp.MoveNext
        Loop
        frmImageResult.IB.ShowImage
    End If
    
    Exit Function

ErrHandle:
    Exit Function
    
End Function

Public Function ShowAllReportImage()
    
    '----------------------
    '显示所有的报告图片
    '----------------------
    Dim rsReport As ADODB.Recordset
    Dim rsTemp As ADODB.Recordset
    Dim strFile As String
    Dim cIF As ImageFile
    
    frmImageResult.IB.Clear
    
    '为了避免在deUS的记录集移动时造成的图像闪烁,复制一个该记录集的克隆,但
    '注意要同时复制该记录集的Filter属性,否则记录数会不符
    Set rsReport = rsUS_ReportSick.Clone
    rsReport.Filter = rsUS_ReportSick.Filter
    
    With rsReport
        If .RecordCount = 0 Then Exit Function
        .MoveFirst
        frmImageResult.IB.Clear
        Do While Not .EOF
            Set rsTemp = OpenRS("SELECT * FROM US_MEDIA WHERE US_NO = '" & !US_NO & "' AND FILE_TYPE = 'IMAGE'", "Data")
            If rsTemp.RecordCount > 0 Then
                Do While Not rsTemp.EOF
                    strFile = rsTemp!FILE_NAME
                    Set cIF = frmImageResult.IB.ImageFiles.Add(strFile)
                    '如果加入cIF成功则可以进一步查找声音和是否打印的标志
                    If Not cIF Is Nothing Then
                        cIF.TagSave = True
                        If rsTemp!SOUND_FILE_NAME & vbNullString <> vbNullString Then
                            cIF.SoundFile = rsTemp!SOUND_FILE_NAME
                            cIF.TagSound = True
                        End If
                        If rsTemp!Print Then cIF.TagPrint = True
                    End If
                    rsTemp.MoveNext
                Loop
            End If
            .MoveNext
        Loop
        frmImageResult.IB.ShowImage
    End With
    
    '释放对象
    Set rsReport = Nothing
    Set rsTemp = Nothing
    
End Function

Public Function FindMediaFile(ByVal strFile As String, Optional bSearchNet As Boolean = False, Optional bSearchBackup As Boolean = False) As String

    '---------------------------------------
    '查询记录中文件的实际位置
    '查询的次序是:
    '1. 首先查询本文件是否存在(针对是文件名是全路径的情况);
    '2. 其次查询本机的媒体目录+文件名后的文件是否存在;
    '3. 其次查询网络媒体上传的路径+文件名后的文件是否存在;(可选)
    '4. 其次查询备份目录+文件名后的文件是否存在(可选);
    '以上若有一步得到了文件的存在,则返回此文件;否则返回一个Null字符串
    '
    '这样的处理对于图像的显示基本满足要求,但在查询结果中插入已存在文件后,保存时可能引起混淆
    '到时再对此情况加以处理
    '---------------------------------------
    
    Dim strFileName As String
    Dim strTemp As String
    
    strFileName = FSO.GetFileName(strFile)
    FindMediaFile = vbNullString
    
    'Setp1
    strTemp = strFile
    If FSO.FileExists(strTemp) Then
        FindMediaFile = strTemp
        Exit Function
    End If
         
    'Step2
    strTemp = MakePath(gstrImageDir) & strFileName
    If FSO.FileExists(strTemp) Then
        FindMediaFile = strTemp
        Exit Function
    End If
    
    'Step3
    If bSearchNet Then
        strTemp = MakePath(gstrServerImageDir) & strFileName
        If FSO.FileExists(strTemp) Then
            FindMediaFile = strTemp
            Exit Function
        End If
    End If
        
    'Step4
    If bSearchBackup Then
        strTemp = MakePath(gstrBackupDir) & strFileName
        If FSO.FileExists(strTemp) Then
            FindMediaFile = strTemp
            Exit Function
        End If
    End If

End Function

Public Sub PlaySound(strSoundFile As String)
    
    '------------
    '播放文件
    '------------
    Dim cMM As New Mmedia
    
    With cMM
        .Wait = True
        .mmOpen strSoundFile
        Screen.MousePointer = vbHourglass
        .mmPlay
        .mmClose
        Screen.MousePointer = vbNormal
    End With
    
End Sub

Public Sub PlaySoundAPI(strSoundFile As String)
    
    '--------------------------------
    '用API播放声音
    '--------------------------------
    
    sndPlaySound vbNullString, 0    '先停止当前声音的播放
    sndPlaySound DoubleQuote(strSoundFile), SND_ASYNC
    
End Sub

Public Function LenByte(str As String) As Integer
    
    '-------------------
    '测量字符串的字节数
    '-------------------
    
    Dim S1 As String
    
    S1 = StrConv(str, vbFromUnicode)
    LenByte = LenB(S1)
    
End Function

Public Function GetFirstString(str As String, strSplit As String) As String
    
    '-------------------------
    '获取以strSplit为分割的第一个字符串
    '-------------------------
    
    Dim i As Long
    
    i = InStr(1, str, strSplit)
    If i <> 0 Then
        GetFirstString = Left(str, i - 1)
    Else
        GetFirstString = vbNullString
    End If
    
End Function

Public Function GetLastString(str As String, strSplit As String, Optional IncludingSplit As Boolean = True) As String
    
    '-------------------------
    '获取以strSplit为分割的后一个字符串
    '-------------------------
    
    Dim i As Long
    
    i = InStr(1, str, strSplit)
    If i <> 0 Then
        If IncludingSplit Then
            GetLastString = Right(str, Len(str) - i + 1)
        Else
            GetLastString = Right(str, Len(str) - i + 1 - Len(strSplit))
        End If
    Else
        If IncludingSplit Then
            GetLastString = str
        Else
            GetLastString = vbNullString
        End If
    End If
    
End Function

Public Property Get AdminUser() As Boolean
    
    '-----------------------------
    '返回用户是否拥有管理员的权限
    '-----------------------------
    
    AdminUser = (UserType = "系统管理员" Or UserType = "超级管理员")
    
End Property

Public Function TrimDir(strDir) As String

    '---------------------------
    '去掉目录字符串最后的"\"字符
    '---------------------------
    
    If Right(strDir, 1) = "\" Then
        TrimDir = Left(strDir, Len(strDir) - 1)
    Else
        TrimDir = strDir
    End If
    
End Function

Public Function SingleQuote(str As String) As String
    
    '------------------------------
    '返回用单引号符包括的字符串
    '------------------------------
    SingleQuote = "'" & str & "'"

End Function

Public Function GetFilePath(strFullPathName As String) As String

    Dim i As Integer
    
    i = InStrRev(strFullPathName, "\")
    
    If i <> 0 Then GetFilePath = Left(strFullPathName, i)
    
End Function

Public Function DoubleQuote(str As String) As String
    
    '------------------------------
    '返回用双引号符包括的字符串
    '------------------------------
    DoubleQuote = """" & str & """"

End Function

Public Function GetFileName(strFullPathName As String) As String

    '-----------------------------
    '从完整文件路径中返回文件名
    '-----------------------------

    Dim i As Integer
    
    On Error GoTo ErrHandle

    i = InStrRev(strFullPathName, "\")
    If i <> 0 Then
        GetFileName = Mid(strFullPathName, i + 1)
        Exit Function
    End If
    
'    For i = Len(strFullPathName) To 1 Step -1
'        If Mid(strFullPathName, i, 1) = "\" Then
'            GetFileName = Mid(strFullPathName, i + 1)
'            Exit Function
'        End If
'    Next i
    
ErrHandle:
    GetFileName = strFullPathName
    
End Function

Public Function ChangeFilePath(strFile As String, strPathToSet As String) As String

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -