Foxtable(狐表)用户栏目专家坐堂 → 自以为代码无懈可击,但数据就是错误,求助。


  共有13343人关注过本帖树形打印复制链接

主题:自以为代码无懈可击,但数据就是错误,求助。

帅哥哟,离线,有人找我吗?
狐狸爸爸
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/8/25 11:52:00 [显示全部帖子]

你是老狐狸啦,如果统计不对,不会有别的原因,只能是合成的统计条件有误。

 

用下面的方法跟踪分析,不要太被动:

http://www.foxtable.com/help/topics/1485.htm

 


 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/8/25 12:09:00 [显示全部帖子]

我没有看出有啥不同的

 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/8/25 15:00:00 [显示全部帖子]

自己去分析吧,第一次这么分析,看看填充的结果对不对:

 

Dim xm As String=e.Form.controls("cb1").value
Dim sx As String=e.Form.controls("cb2").value

If vars("起始日期")=Nothing Or vars("截止日期")=Nothing
    MessageBox.Show("请设置起始日期和截止日期!")
    Return
End If

DataTables("经营报表").Loadfilter = "[_Identify] is not null"
DataTables("经营报表").Load()
DataTables("经营报表").DeleteFor("")
DataTables("经营报表").save()
'定义变量及赋值
Dim t As Table=Tables("" & e.Form.name & "_table1")
t.cols("业务员").visible=False
t.cols("项目名称").visible=False
t.cols(xm).visible=True

Dim s,s0,filter,filter1,filter2 As String
'生成临时表
Dim cmd As New SQLCommand
Dim dt,dt1,dt2,dt3,dt4,dt5 As DataTable
'cmd.C
cmd.CommandText = "SELECT DISTINCT " & xm & ",币种 From {数据库} where " & filter & " 单据类型 like '%销售%'"
dt = cmd.ExecuteReader()

Tables("窗口1_Table1") = dt

 

如果对,第二次这么分析,看看Filler得到的数据对不对:

 

Dim xm As String=e.Form.controls("cb1").value
Dim sx As String=e.Form.controls("cb2").value

If vars("起始日期")=Nothing Or vars("截止日期")=Nothing
    MessageBox.Show("请设置起始日期和截止日期!")
    Return
End If

DataTables("经营报表").Loadfilter = "[_Identify] is not null"
DataTables("经营报表").Load()
DataTables("经营报表").DeleteFor("")
DataTables("经营报表").save()
'定义变量及赋值
Dim t As Table=Tables("" & e.Form.name & "_table1")
t.cols("业务员").visible=False
t.cols("项目名称").visible=False
t.cols(xm).visible=True

Dim s,s0,filter,filter1,filter2 As String
'生成临时表
Dim cmd As New SQLCommand
Dim dt,dt1,dt2,dt3,dt4,dt5 As DataTable
'cmd.C
cmd.CommandText = "SELECT DISTINCT " & xm & ",币种 From {数据库} where " & filter & " 单据类型 like '%销售%'"
dt = cmd.ExecuteReader()

Dim f As New Filler
f.SourceTable = dt '指定数据来源
f.SourceCols = "" & xm & ",币种" '指定数据来源列
f.DataTable = DataTables("经营报表") '指定数据接收表
f.DataCols = "" & xm & ",币种" '指定数据接收列
f.ExcludeExistValue=True
f.ExcludeNullValue=True
f.Fill() '填充数据

Tables("窗口1_Table1")  = DataTables("经营报表")

 

一步一步去分析,找出问题出在哪一步,再分析具体的原因。

 

这种问题,别人帮不了你的,因为只有你自己清楚正确的数据是什么,你需要的是什么。

 

[此贴子已经被作者于2011-8-25 15:00:10编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/8/25 15:49:00 [显示全部帖子]

如果找出了问题出在哪个环节,就应该做个简单的例子来直入主题,来再现这个错误,让人一看就明白。

 

抛弃窗口,直接写一段能在命令窗口执行的代码,说明哪一行数据不应该出现,什么数据应该出现却没有出现。

 

自己做好该做的工作,不要偷懒。


 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/8/25 16:26:00 [显示全部帖子]

意思是前面的代码执行后,“经营报表”已经有正确的数据?

 

那就说明Load有问题,单独将现在的“经营报表”表传上来,测试最后合成的Load代码即可。


 回到顶部