GroupTableBuilder生成表错误错误!!!!缺少某些项目.........我郁闷啊.....个人损失几百元.....
执行代码如下:
Dim cmd as new sqlcommand
Dim dt as datatable
cmd.CommandText = "select 住院ID,项目,规格,类别,单位,单价,用量*天数 AS 用量,round(单价*用量*天数,2) AS 金额 from {H_YIZ} where 住院ID = '200919501'"
dt = cmd.ExecuteReader()
Dim g As New GroupTableBuilder("清单",dt)
g.Groups.AddDef("住院ID")
g.Groups.AddDef("类别")
g.Groups.AddDef("项目")
g.Groups.AddDef("规格")
g.Groups.AddDef("单位")
g.Groups.AddDef("单价")
g.Totals.AddDef("用量")
g.Totals.AddDef("金额")
g.Build()
生成表缺少几项....
单独执行红色部分SQL语句项目不缺少....
此主题相关图片如下:001.jpg
[此贴子已经被作者于2009-4-13 11:38:04编辑过]
我测试没有发现问题。
[此贴子已经被作者于2009-4-13 11:05:39编辑过]
老爹,你直接执行SQL代码看看...相当于原表和SQL生成的表一样的..为什么再分组统计会缺少类别为手术的那几项?跟SQL语句无关.....
[此贴子已经被作者于2009-4-13 11:16:54编辑过]
我查出来了,问题出在单位列,你的单位列有空白单元格,统计的时候,分组列是不能为空的,分组列为空的不统计进来。
如何解决此类问题?或者曲线解决?
[此贴子已经被作者于2009-4-13 11:22:27编辑过]
1.代替是不能的,我已经把分组列锁定....操作人员不能设定为空值...
2.最好是能改改程序咯....
分组列里有空值是很正常的啊...
贺老师的意思是你做程序时设一个字符为空,比如用一个"零"字或是"无"字做为空,如果单位="",那就自动改成:"零"或"无"
[此贴子已经被作者于2009-4-13 13:23:57编辑过]
以下是引用狐狸爸爸在2009-4-13 12:07:00的发言:
1、你在看看能不能用一个字符代替空值
2、我看看能不能改一下程序。
这个问题怎么样了?老爹,能解决吗?
sql不会! 就你上面的例子代码改成:没问题了~
MainTable = Tables("H_YIZ")
for i as integer = 0 to datatables("H_YIZ").DataRows.count-1
if currenttable(i,"单位") = "" then
currenttable(i,"单位") = "^_^"
end if
next
Dim g As New GroupTableBuilder("清单1",DataTables("H_YIZ"))
g.Groups.AddDef("住院ID")
g.Groups.AddDef("类别")
g.Groups.AddDef("项目")
g.Groups.AddDef("规格")
g.Groups.AddDef("单位")
g.Groups.AddDef("单价")
g.Totals.AddDef("用量")
g.Totals.AddDef("天数")
g.Build()
With DataTables("清单1")
.DataCols.Add("余额", GetType(Double), "[单价] * [用量] * [天数]")
End With
for i as integer = 0 to datatables("H_YIZ").DataRows.count-1
if currenttable(i,"单位") = "^_^" then
currenttable(i,"单位") = ""
end if
next
MainTable = Tables("清单1")