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


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

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

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


加好友 发短信
等级:狐神 帖子:6887 积分:43621 威望:0 精华:0 注册:2009/3/2 14:07:00
自以为代码无懈可击,但数据就是错误,求助。  发帖心情 Post By:2011/8/25 11:18:00 [显示全部帖子]

求助:

按如截图设置参数,按“打印”,出现一个图表。

紧接着,不关闭窗口,将“统计项目”由“业务员”换成“项目名称”,再按打印,数据有问题,连按几次,每次数据不一样,不知是为什么?

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目2.rar


图片点击可在新窗口打开查看此主题相关图片如下:未命名.gif
图片点击可在新窗口打开查看
[此贴子已经被作者于2011-8-25 12:07:21编辑过]

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


加好友 发短信
等级:狐神 帖子:6887 积分:43621 威望:0 精华:0 注册:2009/3/2 14:07:00
  发帖心情 Post By:2011/8/25 11:56:00 [显示全部帖子]

我都找了两天的时间,诊断不出结果,才来求助的。

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


加好友 发短信
等级:狐神 帖子:6887 积分:43621 威望:0 精华:0 注册:2009/3/2 14:07:00
  发帖心情 Post By:2011/8/25 13:04:00 [显示全部帖子]

但结果不对呀。

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


加好友 发短信
等级:狐神 帖子:6887 积分:43621 威望:0 精华:0 注册:2009/3/2 14:07:00
  发帖心情 Post By:2011/8/25 14:25:00 [显示全部帖子]

用的是内部数据源,提示是假提示,没有关系的。

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


加好友 发短信
等级:狐神 帖子:6887 积分:43621 威望:0 精华:0 注册:2009/3/2 14:07:00
  发帖心情 Post By:2011/8/25 14:50:00 [显示全部帖子]

贺老师,会不会是bug呀?

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


加好友 发短信
等级:狐神 帖子:6887 积分:43621 威望:0 精华:0 注册:2009/3/2 14:07:00
  发帖心情 Post By:2011/8/25 15:04:00 [显示全部帖子]

我需要的是:“统计项目”或“排列顺序”的选项改变,业务员或项目名称不会重复和遗漏。

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


加好友 发短信
等级:狐神 帖子:6887 积分:43621 威望:0 精华:0 注册:2009/3/2 14:07:00
  发帖心情 Post By:2011/8/25 15:39:00 [显示全部帖子]

以下是引用狐狸爸爸在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编辑过]

统计项目或排列顺序改变了,数据错误是很明显:就是数据有重复或遗漏。


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


加好友 发短信
等级:狐神 帖子:6887 积分:43621 威望:0 精华:0 注册:2009/3/2 14:07:00
  发帖心情 Post By:2011/8/25 16:10:00 [显示全部帖子]

我找了两天时间,都找不出原因。窗口中表格的数据有重复或遗漏。

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


加好友 发短信
等级:狐神 帖子:6887 积分:43621 威望:0 精华:0 注册:2009/3/2 14:07:00
  发帖心情 Post By:2011/8/25 16:10:00 [显示全部帖子]

If e.Form.controls("前十名").checked=True
    DataTables("经营报表").LoadTop = "" & e.Form.controls("名次").text & ""
    DataTables("经营报表").LoadOrder = "" & sx & " Desc"
    DataTables("经营报表").Load
End If
If e.Form.controls("后十名").checked=True
    DataTables("经营报表").LoadTop = "" & e.Form.controls("名次").text & ""
    DataTables("经营报表").LoadOrder = "" & sx & ""
    DataTables("经营报表").Load
End If
If e.Form.controls("全部").checked=True
    DataTables("经营报表").LoadTop = "100 Percent"
    DataTables("经营报表").LoadOrder = "" & sx & ""
    DataTables("经营报表").Load
End If
如果没有这段代码,数据是对的。问题出在这里。
[此贴子已经被作者于2011-8-25 16:11:09编辑过]

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


加好友 发短信
等级:狐神 帖子:6887 积分:43621 威望:0 精华:0 注册:2009/3/2 14:07:00
  发帖心情 Post By:2011/8/25 16:13:00 [显示全部帖子]

我不是懒,确实找不出原因呀。我都整整花了两天的时间。

 回到顶部
总数 12 1 2 下一页