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

📄 modulebase.bas

📁 医院管理方面的例子
💻 BAS
字号:
Attribute VB_Name = "ModuleBase"
Option Explicit

Public PStrVer          As String           '系统版本 : 0-网络版;  1-单机版

Public PStrFlDLID       As String           '大类ID
Public PStrFlYPDW       As String           '药品单位
Public PStrFlZLDW       As String           '诊疗单位
Public PStrFlYPJX       As String           '药品剂型
Public PStrFlMZ         As String           '民族
Public PStrFlJG         As String           '籍贯
Public PStrFlGJ         As String           '国籍
Public PStrFlZY         As String           '职业
Public PStrFlHYZK       As String           '婚姻状况
Public PStrFlQQGX       As String           '亲情关系
Public PStrFlDZ         As String           '地址
Public PStrFlMZFP       As String           '门诊发票项目
Public PStrFlZYFP       As String           '住院发票项目
Public PStrFlZYMX       As String           '住院明细项目
Public PStrFlCWTJ       As String           '财务统计项目
Public PStrFlGHFL       As String           '挂号分类项目

Public PStrUserID       As String           '操作员编号
Public PStrUserName     As String           '操作员姓名
Public PStrCjyhbh       As String           '超级用户

Public PStrSqzID        As String           '社区站编号
Public PStrSqzMC        As String           '社区站名称

Public PStrSqzxID       As String           '社区中心编号
Public PStrSqzxMC       As String           '社区中心名称

Public PCnnHisDB        As ADODB.Connection '数据库连接

Sub Main()
    Dim ClassVerFlag    As cls_base_cnndb.ClassCnnDB
    Set ClassVerFlag = New cls_base_cnndb.ClassCnnDB

    Dim StrUserName     As String
    Dim StrDbName       As String
    Dim StrUserPwd      As String
    Dim StrServerName   As String
    Dim StrConDB        As String

    StrServerName = GetSetting("SqwszYpsfglXt", "ServerName", "ServerName")
    StrDbName = GetSetting("SqwszYpsfglXt", "DbName", "DbName")
    StrUserName = GetSetting("SqwszYpsfglXt", "UserName", "UserName")
    StrUserPwd = GetSetting("SqwszYpsfglXt", "UserPwd", "UserPwd")

    'DataEn.CnnWszDB.Open " User ID=" + StrUserName + ";       " _
                       & " Initial Catalog=" + StrDbName + "; " _
                       & " Pwd=" + StrUserPwd + ";            " _
                       & " Data Source=" + StrServerName + "  "
                       
    Dim AdoRsTmp    As ADODB.Recordset
    Set AdoRsTmp = New ADODB.Recordset
    AdoRsTmp.Open "SELECT sqzxid, sqzxmc, wszid, wszmc FROM base_wsz", PCnnHisDB, adOpenForwardOnly
    If Not (AdoRsTmp.EOF Or AdoRsTmp.BOF) Then
        PStrSqzxID = IIf(IsNull(AdoRsTmp.Fields("sqzxid")), "", AdoRsTmp.Fields("sqzxid"))
        PStrSqzxMC = IIf(IsNull(AdoRsTmp.Fields("sqzxmc")), "", AdoRsTmp.Fields("sqzxmc"))
        PStrSqzID = IIf(IsNull(AdoRsTmp.Fields("wszid")), "", AdoRsTmp.Fields("wszid"))
        PStrSqzMC = IIf(IsNull(AdoRsTmp.Fields("wszmc")), "", AdoRsTmp.Fields("wszmc"))
    End If
    AdoRsTmp.Close: Set AdoRsTmp = Nothing
    
End Sub

Public Sub ProCopyMhflexToMsflex(MhFlexSend As MSHFlexGrid, MsflexSend As MSFlexGrid)
    Dim IntRow  As Integer
    Dim IntCol  As Integer
    
    With MsflexSend
        .Rows = MhFlexSend.Rows
        .Cols = MhFlexSend.Cols
        For IntRow = 0 To .Rows - 1
            For IntCol = 0 To .Cols - 1
                .TextMatrix(IntRow, IntCol) = MhFlexSend.TextMatrix(IntRow, IntCol)
            Next IntCol
        Next IntRow
    End With
End Sub

Public Sub ProcAddCmbItem(CmbSend As ComboBox, AdoRsSend As ADODB.Recordset)
    CmbSend.Clear
    Do While Not AdoRsSend.EOF
        CmbSend.AddItem AdoRsSend.Fields(1)
        CmbSend.ItemData(CmbSend.NewIndex) = AdoRsSend.Fields(0)
        AdoRsSend.MoveNext
    Loop
    If CmbSend.ListCount > 0 Then CmbSend.ListIndex = CmbSend.ListCount - 1
End Sub

Public Function FunGetItemName(CmbTemp As ComboBox, SStrTemp As String) As String
    Dim IntTemp As Integer
    For IntTemp = 0 To CmbTemp.ListCount - 1
        If CStr(CmbTemp.ItemData(IntTemp)) = SStrTemp Then
            FunGetItemName = CmbTemp.List(IntTemp)
            Exit For
        End If
    Next IntTemp
End Function

Public Function FunGetDateTime() As String  '获取系统时间
    
    Dim AdoRsDateTime As ADODB.Recordset
    Set AdoRsDateTime = New ADODB.Recordset
    
    If PStrVer = "0" Then
        AdoRsDateTime.Open "SELECT GetDate() ", PCnnHisDB, adOpenDynamic
        FunGetDateTime = Format(CStr(AdoRsDateTime.Fields(0)), "yyyy-mm-dd hh:mm:ss")
        AdoRsDateTime.Close: Set AdoRsDateTime = Nothing
    Else
        FunGetDateTime = Format(CStr(Now), "yyyy-mm-dd hh:mm:ss")
    End If
    
End Function

Public Function FunGetLsh() As String  '获取流水号
    
    Dim StrDateTime As String
    Dim AdoRsLsh    As ADODB.Recordset
    Set AdoRsLsh = New ADODB.Recordset
    
    StrDateTime = FunGetDateTime
    
    If PStrVer = "0" Then
        AdoRsLsh.Open " SELECT lsh FROM base_lsh " _
                    & "  WHERE czyid='" + PStrUserID + "' AND CONVERT(Char(10),czsj,21)='" + Format(StrDateTime, "yyyy-mm-dd") + "' ", PCnnHisDB, adOpenDynamic
    End If
    
    If PStrVer = "1" Then
        AdoRsLsh.Open " SELECT lsh FROM base_lsh " _
                    & " WHERE czyid='" + PStrUserID + "' AND Format(czsj,'yyyy-mm-dd')='" + Format(StrDateTime, "yyyy-mm-dd") + "' ", PCnnHisDB, adOpenDynamic

    End If
        
'    '启动事务
'    PcnnHisDb.BeginTrans
    
    If (AdoRsLsh.EOF Or AdoRsLsh.BOF) Or IsNull(AdoRsLsh.Fields(0)) Then
        FunGetLsh = Format(StrDateTime, "yyyymmdd") & Format(PStrUserID, "000") & "001"
        PCnnHisDB.Execute "INSERT INTO base_lsh(czsj,czyid,lsh) VALUES('" + StrDateTime + "','" + PStrUserID + "',1)"
    Else
        FunGetLsh = Format(StrDateTime, "yyyymmdd") & Format(PStrUserID, "000") & Format(AdoRsLsh.Fields(0), "000")
        If PStrVer = "0" Then
            PCnnHisDB.Execute " Update base_lsh SET lsh = lsh + 1 " _
                            & " WHERE czyid = '" + PStrUserID + "' AND CONVERT(Char(10),czsj,21)='" + Format(StrDateTime, "yyyy-mm-dd") + "' "
        Else
            PCnnHisDB.Execute " Update base_lsh SET lsh = lsh + 1 " _
                            & " WHERE czyid = '" + PStrUserID + "' AND Format(czsj,'yyyy-mm-dd')='" + Format(StrDateTime, "yyyy-mm-dd") + "' "
        End If
        
    End If
    AdoRsLsh.Close: Set AdoRsLsh = Nothing
    
    '判断事务状态
'    If CBool(PcnnHisDb.State And adStateExecuting) Then
'        PcnnHisDb.Cancel
'        PcnnHisDb.RollbackTrans
'        MsgBox "产生流水号失败,请重试。", vbCritical, "提示"
'        FunGetLsh = ""
'    Else
'        PcnnHisDb.CommitTrans
'    End If
End Function

Public Sub ProTxtGetFocus(TxtSend As TextBox)
     TxtSend.BackColor = &HFFC0C0
End Sub
Public Sub ProTxtLostFocus(TxtSend As TextBox)
     TxtSend.BackColor = &HFFFFFF
End Sub

Public Sub ProCmbGetFocus(CmbSend As ComboBox)
     CmbSend.BackColor = &HFFC0C0
End Sub
Public Sub ProCmbLostFocus(CmbSend As ComboBox)
     CmbSend.BackColor = &HFFFFFF
End Sub

Public Sub ProcAdoRsToMsFlex(SAdoRs As ADODB.Recordset, MsFlex As MSFlexGrid)
    
    Dim IntRow  As Integer, IntCol  As Integer
    
    With MsFlex
        .Clear
        If Not (SAdoRs.EOF Or SAdoRs.BOF) Then SAdoRs.MoveLast: SAdoRs.MoveFirst
        
        '字段
        .Rows = SAdoRs.Fields.Count
        .Cols = SAdoRs.RecordCount + 1
        For IntRow = 0 To SAdoRs.Fields.Count - 1
            .TextMatrix(IntRow, 0) = IIf(IsNull(SAdoRs.Fields(IntRow).Name), "", Trim(SAdoRs.Fields(IntRow).Name))
        Next IntRow
        .ColWidth(0) = 1500
        
        '记录
        IntCol = 1
        Do While Not SAdoRs.EOF
            For IntRow = 0 To SAdoRs.Fields.Count - 1
                .TextMatrix(IntRow, IntCol) = IIf(IsNull(SAdoRs.Fields(IntRow)), "", Trim(SAdoRs.Fields(IntRow)))
            Next IntRow
            IntCol = IntCol + 1
            SAdoRs.MoveNext
        Loop
    
        '行编辑
        For IntRow = 0 To .Rows - 1
            .RowHeight(IntRow) = 300
        Next IntRow
        
        '列编辑
        For IntCol = 0 To .Cols - 1
            .ColWidth(IntCol) = 1200
            .ColAlignment(IntCol) = 4
        Next IntCol
    End With
End Sub

⌨️ 快捷键说明

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