以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  自以为代码无懈可击,但数据就是错误,求助。  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=12188)

--  作者:lihe60
--  发布时间:2011/8/25 11:18:00
--  自以为代码无懈可击,但数据就是错误,求助。

求助:

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

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

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


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

--  作者:狐狸爸爸
--  发布时间:2011/8/25 11:52:00
--  

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

 

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

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

 


--  作者:lihe60
--  发布时间:2011/8/25 11:56:00
--  
我都找了两天的时间,诊断不出结果,才来求助的。
--  作者:狐狸爸爸
--  发布时间:2011/8/25 12:09:00
--  
我没有看出有啥不同的
--  作者:lihe60
--  发布时间:2011/8/25 13:04:00
--  
但结果不对呀。
--  作者:czy
--  发布时间:2011/8/25 13:15:00
--  
你的项目人家打不开啊
--  作者:客人
--  发布时间:2011/8/25 13:54:00
--  

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


 


--  作者:lihe60
--  发布时间:2011/8/25 14:25:00
--  
用的是内部数据源,提示是假提示,没有关系的。
--  作者:lihe60
--  发布时间:2011/8/25 14:50:00
--  
贺老师,会不会是bug呀?
--  作者:狐狸爸爸
--  发布时间: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编辑过]