frmjbqctj.frm
来自「本系统可用于医院和专业体检中心的健康体检管理」· FRM 代码 · 共 1,259 行 · 第 1/4 页
FRM
1,259 行
' '计算男性人数
' strSQL = strSQL & " and SEX='男'"
' Set rsTemp = New ADODB.Recordset
' rsTemp.Open strSQL, GCon, adOpenForwardOnly, adLockReadOnly
' mlngBRCount_Male = rsTemp(0)
' rsTemp.Close
' '女性人数
' mlngBRCount_Female = mlngBRCount - mlngBRCount_Male
'计算共选择了多少种病患
For i = 1 To lvwBH.ListItems.Count
If lvwBH.ListItems(i).Checked = True Then
mintBHCount = mintBHCount + 1
End If
Next i
If mintBHCount = 0 Then
'如果没有记录,清空图表控件的显示
With MSChart1
.ColumnCount = 1
.RowCount = 1
' .RowLabel = "无"
.ShowLegend = False
End With
GoTo ExitLab
End If
'如果有选择的病患
ReDim arrResult(1 To 8, 1 To 3) '共分为8个年龄段
ReDim arrBHMC(1 To mintBHCount)
ReDim arrBHJYDMID(1 To mintBHCount)
ReDim m_lngSelectedPersons(1 To mintBHCount)
ReDim m_lngSelectedPersons_Male(1 To mintBHCount)
ReDim m_lngSelectedPersons_Female(1 To mintBHCount)
K = 1
With lvwBH
For i = 1 To .ListItems.Count
If .ListItems(i).Checked = True Then
arrBHMC(K) = .ListItems(i)
arrBHJYDMID(K) = Mid(.ListItems(i).Key, 2)
m_lngSelectedPersons(K) = GetCountFromSpecifyIll(.ListItems(i).SubItems(1), _
arrBHMC(K), strCondition)
DoEvents
If m_lngSelectedPersons(K) > 0 Then
m_lngSelectedPersons_Male(K) = GetCountFromSpecifyIll(.ListItems(i).SubItems(1), _
arrBHMC(K), strCondition & " and SEX='男'")
m_lngSelectedPersons_Female(K) = m_lngSelectedPersons(K) - m_lngSelectedPersons_Male(K)
End If
K = K + 1
DoEvents
End If
Next i
End With
K = 1
DoEvents
ShowBHList
If lvwJG.ListItems.Count > 0 Then
Set lvwJG.SelectedItem = lvwJG.ListItems(1)
End If
lvwJG_Click
'标识已进行过查询
mblQuery = True
GoTo ExitLab
ErrMsg:
Status = SetError(Err.Number, Err.Description, Err.Source)
ErrMsg Status
ExitLab:
Me.MousePointer = vbDefault
End Sub
Private Sub dtpEnd_Click()
mblQuery = False
End Sub
Private Sub dtpStart_Click()
mblQuery = False
End Sub
Private Sub Form_Load()
'刷新单位显示
RefreshTJDW
'显示全部疾病
OptAll.Value = True
mblQuery = False
'初始化日期为最近一周
dtpEnd.Value = Date
dtpStart.Value = DateAdd("d", -6, Date)
End Sub
Private Sub lvwJG_Click()
Dim intBHNumber As Integer
Me.MousePointer = vbHourglass
'清空MSCchart1的显示
' With MSChart1
' .ColumnCount = 2
' .RowCount = 1
' .ShowLegend = False
' End With
If lvwJG.SelectedItem Is Nothing Then GoTo ExitLab
intBHNumber = CInt(Mid(lvwJG.SelectedItem.Key, 7))
ShowChart (intBHNumber)
GoTo ExitLab
ExitLab:
Me.MousePointer = vbDefault
End Sub
Private Sub OptAll_Click()
refreshBH 0
mblQuery = False
End Sub
Private Sub OptCJB_Click()
refreshBH 2
mblQuery = False
End Sub
Private Sub OptJB_Click()
refreshBH 1
mblQuery = False
End Sub
Private Sub refreshBH(ByVal intType As Integer)
Dim strSQL As String
Dim rstemp As ADODB.Recordset
Dim itemX As ListItem
lvwBH.ListItems.Clear
Set rstemp = New ADODB.Recordset
strSQL = "select * from DM_ZJJY,SET_KSSZ" _
& " where DM_ZJJY.KSID=SET_KSSZ.KSID and"
If intType = 0 Then '全部病患
strSQL = strSQL & " (SFJB=1 or SFCJB=1)"
ElseIf intType = 1 Then '疾病
strSQL = strSQL & " SFJB=1"
ElseIf intType = 2 Then '常见病
strSQL = strSQL & " SFCJB=1"
End If
'排序
strSQL = strSQL & " order by SET_KSSZ.SXH,JYMC"
rstemp.Open strSQL, GCon, adOpenStatic, adLockReadOnly
If rstemp.RecordCount > 0 Then
rstemp.MoveFirst
Do While Not rstemp.EOF
Set itemX = lvwBH.ListItems.Add(, "W" & rstemp("JYDMID"), rstemp("DMValue"))
itemX.SubItems(1) = rstemp("KSID")
rstemp.MoveNext
Loop
End If
GoTo ExitLab
ExitLab:
'
End Sub
Private Sub RefreshTJDW()
Dim strSQL As String
Dim rstemp As ADODB.Recordset
Dim i As Integer
strSQL = "select YYID,DWMC" _
& " from YY_TJDJ,SET_DW" _
& " where YY_TJDJ.DWID=SET_DW.DWID" _
& " order by JLRQ desc"
Set rstemp = New ADODB.Recordset
rstemp.Open strSQL, GCon, adOpenKeyset, adLockOptimistic
CmbTJDW.Clear
If rstemp.RecordCount > 0 Then
CmbTJDW.AddItem "" '首先添加一个空行,便于用户修改
ReDim arrYYID(rstemp.RecordCount)
'添加已经预约过的团体
rstemp.MoveFirst
For i = 1 To rstemp.RecordCount
CmbTJDW.AddItem rstemp("DWMC")
CmbTJDW.ItemData(CmbTJDW.NewIndex) = i
arrYYID(i) = rstemp("YYID") 'YYID字段太长,ItemData属性无法存放,只能存入数组
rstemp.MoveNext
Next
rstemp.Close
Set rstemp = Nothing
End If
End Sub
'获得在inYYID中,dateStart到dateEnd 时间内,一定年龄段内,总检结论中有instrBHMX疾病的人(男或女,若inSex为空,则是全部)的数目,如inYYID为空,则只统计时间段内的人数
Private Function getJBCount(ByVal inYYID As String, ByVal instrBHMC As String, _
dateStart As Date, dateEnd As Date, inSEX As String, _
inAgeStart As Integer, inAgeEnd As Integer) As Long
Dim rstemp As ADODB.Recordset
Dim strSQL As String
strSQL = "select Count(GUID) from DATA_ZJJL" _
& " where GUID in(" _
& "select GUID from SET_GRXX" _
& " where TJRQ between '" & dateStart & "' and '" & dateEnd & "'" _
& " and AGE between " & inAgeStart & " and " & inAgeEnd
'是否团体
If inYYID <> "" Then
strSQL = strSQL & " and YYID='" & inYYID & "'"
End If
'是否包含性别
If inSEX <> "" Then
strSQL = strSQL & " and SEX='" & inSEX & "'"
End If
strSQL = strSQL & ")" _
& " and DATA_ZJJL.JLValue like '%" & instrBHMC & "%'"
Set rstemp = New ADODB.Recordset
rstemp.Open strSQL, GCon, adOpenForwardOnly, adLockReadOnly
getJBCount = rstemp(0)
rstemp.Close
End Function
'在lvwJG中显示病患的人数清单
Private Sub ShowBHList()
Dim i As Integer
Dim strYYID As String
Dim itmTemp As ListItem
Dim lngTemp As Long
lvwJG.ListItems.Clear
If CmbTJDW.Text = "" Then
strYYID = ""
Else
strYYID = arrYYID(CmbTJDW.ListIndex)
End If
For i = 1 To mintBHCount
'病患名称
Set itmTemp = lvwJG.ListItems.Add(, "W" & arrBHJYDMID(i) & i, arrBHMC(i))
'选择相关组合的总人数
itmTemp.SubItems(1) = CStr(m_lngSelectedPersons(i))
'添加患此病的总人数
lngTemp = getJBCount(strYYID, arrBHMC(i), dtpStart.Value, dtpEnd.Value, "", 0, 150)
itmTemp.SubItems(2) = lngTemp
'添加患此病的百分比
itmTemp.SubItems(3) = GetRatio(lngTemp, m_lngSelectedPersons(i))
'添加患此病的0-29男性人数
lngTemp = getJBCount(strYYID, arrBHMC(i), dtpStart.Value, dtpEnd.Value, "男", 0, 29)
itmTemp.SubItems(4) = lngTemp
'添加患此病的0-29男性百分比
itmTemp.SubItems(5) = GetRatio(lngTemp, m_lngSelectedPersons_Male(i))
'添加患此病的0-29女性人数
lngTemp = getJBCount(strYYID, arrBHMC(i), dtpStart.Value, dtpEnd.Value, "女", 0, 29)
itmTemp.SubItems(6) = lngTemp
'添加患此病的0-29女性百分比
itmTemp.SubItems(7) = GetRatio(lngTemp, m_lngSelectedPersons_Female(i))
'添加患此病的30-39男性人数
lngTemp = getJBCount(strYYID, arrBHMC(i), dtpStart.Value, dtpEnd.Value, "男", 30, 39)
itmTemp.SubItems(8) = lngTemp
'添加患此病的30-39男性百分比
itmTemp.SubItems(9) = GetRatio(lngTemp, m_lngSelectedPersons_Male(i))
'添加患此病的30-39女性人数
lngTemp = getJBCount(strYYID, arrBHMC(i), dtpStart.Value, dtpEnd.Value, "女", 30, 39)
itmTemp.SubItems(10) = lngTemp
'添加患此病的30-39女性百分比
itmTemp.SubItems(11) = GetRatio(lngTemp, m_lngSelectedPersons_Female(i))
'添加患此病的40-49男性人数
lngTemp = getJBCount(strYYID, arrBHMC(i), dtpStart.Value, dtpEnd.Value, "男", 40, 49)
itmTemp.SubItems(12) = lngTemp
'添加患此病的40-49男性百分比
itmTemp.SubItems(13) = GetRatio(lngTemp, m_lngSelectedPersons_Male(i))
'添加患此病的40-49女性人数
lngTemp = getJBCount(strYYID, arrBHMC(i), dtpStart.Value, dtpEnd.Value, "女", 40, 49)
itmTemp.SubItems(14) = lngTemp
'添加患此病的40-49女性百分比
itmTemp.SubItems(15) = GetRatio(lngTemp, m_lngSelectedPersons_Female(i))
'添加患此病的50-59男性人数
lngTemp = getJBCount(strYYID, arrBHMC(i), dtpStart.Value, dtpEnd.Value, "男", 50, 59)
itmTemp.SubItems(16) = lngTemp
'添加患此病的50-59男性百分比
itmTemp.SubItems(17) = GetRatio(lngTemp, m_lngSelectedPersons_Male(i))
'添加患此病的50-59女性人数
lngTemp = getJBCount(strYYID, arrBHMC(i), dtpStart.Value, dtpEnd.Value, "女", 50, 59)
itmTemp.SubItems(18) = lngTemp
'添加患此病的50-59女性百分比
itmTemp.SubItems(19) = GetRatio(lngTemp, m_lngSelectedPersons_Female(i))
'添加患此病的60-69男性人数
lngTemp = getJBCount(strYYID, arrBHMC(i), dtpStart.Value, dtpEnd.Value, "男", 60, 69)
itmTemp.SubItems(20) = lngTemp
'添加患此病的60-69男性百分比
itmTemp.SubItems(21) = GetRatio(lngTemp, m_lngSelectedPersons_Male(i))
'添加患此病的60-69女性人数
lngTemp = getJBCount(strYYID, arrBHMC(i), dtpStart.Value, dtpEnd.Value, "女", 60, 69)
itmTemp.SubItems(22) = lngTemp
'添加患此病的60-69女性百分比
itmTemp.SubItems(23) = GetRatio(lngTemp, m_lngSelectedPersons_Female(i))
'添加患此病的70-79男性人数
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?