Dim d1,d2 As String
Dim kind,tongji As String
Dim sql As String
Dim str As String=Forms("住院患者预约系统").Controls("TextBox2").value
Dim n As Integer
Dim strs() As String
strs =str.replace(vbcr,"").Split(vblf)
For i As Integer = 0 To strs.Length - 1
If strs(i)>"" Then
strs(n) = strs(i)
n = n + 1
End If
Next
Dim dts(n-1) As fxDataSource
For i As Integer = 0 To n-1
Dim s() As String=strs(i).Split(";")
For j As Integer = 0 To s.Length-1
If s(j)<>"" Then
If s(j).Contains("统计项目") Then
Dim ss() As String=s(j).Split(";")
For Each s1 As String In ss
tongji=s1.split(":")(1).trim(".")
Next
End If
If s(j).contains("开始时间") Then
Dim ss() As String=s(j).Split(";")
For Each s1 As String In ss
If s1.split(":")(1)="无" Then
d1=""
Else
d1=s1.split(":")(1)
End If
Next
End If
If s(j).contains("截止时间") Then
Dim ss() As String=s(j).Split(";")
For Each s1 As String In ss
If s1.split(":")(1)="无" Then
d2=""
Else
d2=s1.split(":")(1)
End If
Next
End If
If s(j).contains("患者种类") Then
Dim ss() As String=s(j).Split(";")
For Each s1 As String In ss
kind=s1.split(":")(1).trim()
Next
End If
End If
Next
If d1="" Then
If d2="" Then
If kind="无" OrElse kind="预约患者(登记时间)" Then
sql="select * from {基本情况}"
Else If kind="住院患者(登记时间)" Then
sql="select * from {基本情况} where 情况说明='已入院'"
Else If kind="推迟入院(登记时间)" Then
sql="select * from {基本情况} where 情况说明='推迟入院'"
Else If kind="失访患者(登记时间)" Then
sql="select * from {基本情况} where 情况说明='无法联系'"
Else If kind="入院患者(入院日期)" Then
sql="select * from {基本情况} where 情况说明='已入院'"
Else If kind="预约患者(入院日期)" Then
sql="select * from {基本情况} where (情况说明<>'推迟入院'or 情况说明<>'无法联系')"
End If
Else
If kind="无" OrElse kind="预约患者(登记时间)" Then
sql="select * from {基本情况} where 登记日期<d2"
Else If kind="住院患者(登记时间)" Then
sql="select * from {基本情况} where 情况说明='已入院' and 登记日期<'" & d2 & "'"
Else If kind="推迟入院(登记时间)" Then
sql="select * from {基本情况} where 情况说明='推迟入院'and 登记日期<'" & d2 & "'"
Else If kind="失访患者(登记时间)" Then
sql="select * from {基本情况} where 情况说明='无法联系'and 登记日期<'" & d2 & "'"
Else If kind="入院患者(入院日期)" Then
sql="select * from {基本情况} where 情况说明='已入院'and 预约日期<'" & d2 & "'"
Else If kind="预约患者(入院日期)" Then
sql="select * from {基本情况} where (情况说明<>'推迟入院'or 情况说明<>'无法联系') and 预约日期<'" & d2 & "'"
End If
End If
Else
If d2="" Then
If kind="无" OrElse kind="预约患者(登记时间)" Then
sql="select * from {基本情况} where 登记日期>'" & d1 & "'"
Else If kind="住院患者(登记时间)" Then
sql="select * from {基本情况} where 情况说明='已入院' And 登记日期>'" & d1 & "'"
Else If kind="推迟入院(登记时间)" Then
sql="select * from {基本情况} where 情况说明='推迟入院'and 登记日期>'" & d1 & "'"
Else If kind="失访患者(登记时间)" Then
sql="select * from {基本情况} where 情况说明='无法联系'and 登记日期>'" & d1 & "'"
Else If kind="入院患者(入院日期)" Then
sql= "select * from {基本情况} where 情况说明='已入院'and 预约日期>'" & d1 & "'"
Else If kind="预约患者(入院日期)" Then
sql="select * from {基本情况} where (情况说明<>'推迟入院'or 情况说明<>'无法联系') and 预约日期>'" & d1 & "'"
End If
Else
If kind="无" OrElse kind="预约患者(登记时间)" Then
sql="select * from {基本情况} where 登记日期<'" & d2 & "' And 登记日期>'" & d1 & "'"
Else If kind="住院患者(登记时间)" Then
sql="select * from {基本情况} where 情况说明='已入院' and 登记日期<'" & d2 & "' And 登记日期>'" & d1 & "'"
Else If kind="推迟入院(登记时间)" Then
sql="select * from {基本情况} where 情况说明='推迟入院'and 登记日期<'" & d2 & "' And 登记日期>'" & d1 & "'"
Else If kind="失访患者(登记时间)" Then
sql="select * from {基本情况} where 情况说明='无法联系'and 登记日期<'" & d2 & "' And 登记日期>'" & d1 & "'"
Else If kind="入院患者(入院日期)" Then
sql= "select * from {基本情况} where 情况说明='已入院'and 预约日期<'" & d2 & "' And 预约日期>'" & d1 & "'"
Else If kind="预约患者(入院日期)" Then
sql="select * from {基本情况} where (情况说明<>'推迟入院'or 情况说明<>'无法联系') and 预约日期<'" & d2 & "' And 预约日期>'" & d1 & "'"
End If
End If
End If
MessageBox.Show("开始时间" & d1,"提示")
MessageBox.Show("截止时间" & d2,"提示")
MessageBox.Show("患者种类" & kind,"提示")
MessageBox.Show("统计项目" & tongji,"提示")
If t Then
sql=sql & "and 联系信息_省市='重庆市'"
End If
MessageBox.Show("sql:" & sql, "提示")
Dim g As New GroupTableBuilder("统计表" & i,sql,"li")
If t
g.Caption = "性别统计"
g.Groups.AddDef("性别", "", "性别")
g.Totals.AddDef("姓名", AggregateEnum.Count,"",kind & "病例数")
End If
If t Then
g.Caption="民族统计"
g.Groups.AddDef("民族","","民族")
g.Totals.AddDef("姓名",AggregateEnum.Count,"",kind & "病例数")
End If
If t Then
g.Caption="出生日期统计"
g.Groups.AddDef("出生日期", DateGroupEnum.month, "出生日期")
g.Totals.AddDef("姓名", AggregateEnum.Count, "",kind & "病例数")
End If
If t Then
g.Caption="登记日期统计"
g.Groups.AddDef("登记日期", DateGroupEnum.month, "登记日期")
g.Totals.AddDef("姓名", AggregateEnum.Count, "",kind & "病例数")
End If
If t Then
g.Caption="预约日期统计"
g.Groups.AddDef("预约日期", DateGroupEnum.month, "预约日期")
g.Totals.AddDef("姓名", AggregateEnum.Count, "",kind & "病例数")
End If
If t Then
g.Caption="预约科室统计"
g.Groups.AddDef("预约科室","","预约科室")
g.Totals.AddDef("姓名",AggregateEnum.Count,"",kind & "病例数")
End If
If t Then
g.Caption="登记年龄统计"
g.Groups.AddDef("登记年龄","","登记年龄")
g.Totals.AddDef("姓名",AggregateEnum.Count,"",kind & "病例数")
End If
If t Then
g.Caption="入院年龄统计"
g.Groups.AddDef("入院年龄","","入院年龄")
g.Totals.AddDef("姓名",AggregateEnum.Count,"",kind & "病例数")
End If
If t Then
g.Caption="疾病诊断统计"
g.Groups.AddDef("疾病诊断","","疾病诊断")
g.Totals.AddDef("姓名",AggregateEnum.Count,"",kind & "病例数")
End If
If t Then
g.Caption="患者来源地统计"
g.Groups.AddDef("联系信息_省市","患者来源地","联系信息_省市")
g.Totals.AddDef("姓名",AggregateEnum.Count,"",kind & "病例数")
End If
If t Then
g.Caption="患者来源地(本市)统计"
g.Groups.AddDef("联系信息_县市区","患者来源地(本市)","联系信息_县市区")
g.Totals.AddDef("姓名",AggregateEnum.Count,"",kind & "病例数")
End If
dts(i) = g.BuildDataSource()
Next
For i As Integer =1 To n-1
dts(0).Combine(tongji,dts(i),tongji)
Next
Tables("统计图形_Table1").DataSource = dts(0)