以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- [求助]窗口中控件代码错误 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=43651) |
-- 作者:cqlwsam -- 发布时间:2013/12/12 12:36:00 -- [求助]窗口中控件代码错误 窗口中有控件“统计”,click代码如下: Dim cmb1 As WinForm.ComboBox=e.form.Controls("Cmb_kind") Dim cmb2 As WinForm.ComboBox= e.Form.Controls("Cmb_tongji") Dim txt As String= cmb1.Text Dim txt1 As String=cmb2.text Dim dtp1 As WinForm.DateTimePicker= e.Form.Controls("DateTimePicker1") Dim d1 As Date=dtp1.value Dim dtp2 As WinForm.DateTimePicker= e.Form.Controls("DateTimePicker2") Dim d2 As Date=dtp2.value Dim sql As String If e.Form.Controls("Rdo_dengji").checked=False And e.Form.Controls("Rdo_ruyuan").checked=False Then MessageBox.Show("为提高统计的准确性,请选择统计时段种类","提示",MessageBoxButtons.OK,MessageBoxIcon.warning) Return End If If d1=Nothing Then MessageBox.Show("为提高统计的准确性,请选择统计开始时间","提示",MessageBoxButtons.OK,MessageBoxIcon.warning) Return End If If d2=Nothing Then MessageBox.Show("为提高统计的准确性,请选择统计截止时间","提示",MessageBoxButtons.OK,MessageBoxIcon.warning) Return End If If txt="" Then MessageBox.Show("为提高统计的准确性,请选择患者种类","提示",MessageBoxButtons.OK,MessageBoxIcon.warning) Return End If If txt1="" Then MessageBox.Show("为提高统计的准确性,请选择统计项目","提示",MessageBoxButtons.OK,MessageBoxIcon.warning) Return End If If e.Form.Controls("Rdo_dengji").checked=True Then If txt="预约患者(登记时间)" Then sql="select * from {基本情况} where 登记日期>#d1# and 登记日期<#d2#" Else If txt="住院患者(登记时间)" Then sql="select * from {基本情况} where 情况说明=\'已入院\' and 登记日期>#d1# and 登记日期<#d2#" Else If txt="推迟入院(登记时间)" Then sql="select * from {基本情况} where 情况说明=\'推迟入院\' and 登记日期>#d1# and 登记日期<#d2#" Else If txt="失访患者(登记时间)" Then sql="select * from {基本情况} where 情况说明=\'无法联系\' and 登记日期>#d1# and 登记日期<#d2#" End If End If If e.Form.Controls("Rdo_ruyuan").checked=True Then If txt="入院患者(入院时间)" Then sql="select * from {基本情况} where 情况说明=\'已入院\' and 预约日期>#d1# and 预约日期<#d2#" Else If txt="预约患者(入院时间)" Then sql="select * from {基本情况} where (情况说明=\'已入院\' or 情况说明=\'\') And 预约日期>#d1# And 预约日期<#d2#" End If End If If e.form.Controls("Cmb_tongji").Text="性别" Then Dim g As New GroupTableBuilder("统计表1", sql) g.Caption = "性别统计" g.Groups.AddDef("性别", "", "性别") g.Totals.AddDef("姓名", AggregateEnum.Count,"","病例数") forms("统计图形").Open Forms("统计图形").Controls("Table1").Table.DataSource = g.BuildDataSource() Dim Chart As WinForm.Chart \'定义一个图表变量 Dim Series As WinForm.ChartSeries \'定义一个图系变量 Dim t As Table = Tables("统计图形_table1") \'定义一个变量t引用数据表 Chart= e.form.Controls("Chart1") \' 引用窗口中的图表 Chart.VisualEffect = True \'加上这一行,让你的图表更漂亮 Chart.ChartType = ChartTypeEnum.Pie \'图表1类型改为Bar(条形) Chart.SeriesList.Clear() For Each r As Row In t.Rows Series = Chart.SeriesList.Add() \'增加一个图系 Series.Length = 1 \'一个系列只能包括一个值 Series.Text = r("性别") & "(" & r("姓名") & ")" \'设置图系的标题 Series.Y(0) = r("姓名") \'指定值 Next Chart.LegendVisible = True \'显示图列 Chart.LegendCompass= CompassEnum.East \'图列显示在东方(右方) End If 代码运行提示错误,截图如下: 看看问题出在哪儿?谢谢!
|
-- 作者:cqlwsam -- 发布时间:2013/12/12 12:43:00 -- 前面不用各种条件,直接使用:sql=“select * from {基本情况}”就没有错误。 |
-- 作者:Bin -- 发布时间:2013/12/12 14:06:00 -- 条件不是这样拼接的 sql="select * from {基本情况} where (情况说明=\'已入院\' or 情况说明=\'\') And 预约日期>#" & d1 & "# And 预约日期<#" & d2 & "#"
|
-- 作者:cqlwsam -- 发布时间:2013/12/12 15:01:00 -- 我改了有出现了下图的错误。哎。拼接是我的软肋。 [此贴子已经被作者于2013-12-12 15:01:37编辑过]
|
-- 作者:Bin -- 发布时间:2013/12/12 15:06:00 -- 你后面不是又少一个 & 吗 |
-- 作者:cqlwsam -- 发布时间:2013/12/12 15:07:00 -- 呵呵。好哈哟! |
-- 作者:cqlwsam -- 发布时间:2013/12/12 15:19:00 -- 谢谢! |