以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  请帮助看一下,为何只统计开始日期的一个月的数值?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=28948)

--  作者:lyfxybc
--  发布时间:2013/2/23 14:02:00
--  请帮助看一下,为何只统计开始日期的一个月的数值?

请帮助看一下,为何只统计开始日期的一个月的数值?

 


此主题相关图片如下:21.jpg
按此在新窗口浏览图片

 

代码

Dim g As New sqlGroupTableBuilder("统计表1","坯布输入")
g.C
Dim dt1 As fxDataSource
g.Filter = " 日期 >= #" & e.Form.Controls("DateTimePicker22").Value & "# And 日期 <= #" & e.Form.Controls("DateTimePicker23").Value & "# And 双面= false"
g.Groups.AddDef("年")
g.Groups.AddDef("月")
g.Totals.AddDef("总长","单面_长度")
g.Totals.AddDef("织造车间扣分","单面_实际扣分")
g.Decimals = 2
g.FromServer = True
dt1 = g.BuildDataSource()

Dim g1 As New sqlGroupTableBuilder("统计表2","坯布输入")
g1.C
Dim dt2 As fxDataSource
g1.Filter = " 日期 >= #" & e.Form.Controls("DateTimePicker22").Value & "# And 日期 <= #" & e.Form.Controls("DateTimePicker23").Value & "# And 双面= True"
g1.Groups.AddDef("年")
g1.Groups.AddDef("月")
g1.Totals.AddDef("总长","双面_长度")
g1.Totals.AddDef("织造车间扣分","双面_实际扣分")
g1.Decimals = 2
g1.FromServer = True
dt2 = g1.BuildDataSource()

Dim g2 As New sqlGroupTableBuilder("统计表3","坯布输入")
g2.C
Dim dt3 As fxDataSource
g2.Filter = " 日期 >= #" & e.Form.Controls("DateTimePicker22").Value & "# And 日期 <= #" & e.Form.Controls("DateTimePicker23").Value & "#"
g2.Groups.AddDef("年")
g2.Groups.AddDef("月")
g2.Totals.AddDef("总长")
g2.Totals.AddDef("织造车间扣分")
g2.Decimals = 2
g2.FromServer = True
dt3 = g2.BuildDataSource()


Dim nms As String() = { "年","月"} \'指定连接列
dt1.Combine(nms,dt2,nms)
dt1.Combine(nms,dt3,nms) 
Tables("导航_Table14").DataSource = dt1 \'将统计结果绑定到Tabl
                   
With DataTables("导航_Table14").DataCols 
    .Add("单面_理论扣分",Gettype(Double))
    .Add("双面_理论扣分",Gettype(Double))
    .Add("单面_奖罚",Gettype(Double))
    .Add("双面_奖罚",Gettype(Double))
End With

 

              Dim r As Row = Tables("导航_Table14").Current                             
               Dim txt As WinForm.TextBox = e.Form.Controls("TextBox21")   \'单面扣分标准
                  r("单面_理论扣分")  = r("单面_长度") * txt.Text
               Dim txt1 As WinForm.TextBox = e.Form.Controls("TextBox22")  \'双面扣分标准

                  r("双面_理论扣分")  = r("双面_长度") * txt1.Text
               Dim txt2 As WinForm.TextBox = e.Form.Controls("TextBox23")  \'扣分标准单价

                  r("单面_奖罚")  = (r("单面_理论扣分") - r("单面_实际扣分"))* txt2.Text
                  r("双面_奖罚")  = (r("双面_理论扣分") - r("双面_实际扣分"))* txt2.Text

[此贴子已经被作者于2013-2-23 14:06:11编辑过]

--  作者:lin_hailun
--  发布时间:2013/2/23 14:23:00
--  
 是不是你12月份没有数据啊?
--  作者:lyfxybc
--  发布时间:2013/2/23 19:29:00
--  

有数据,因为2012-12-23——2013-01-22为1月份,2013-01-23——2013-02-22为2月份,

 

表中统计数据是正确的,第一行1月份,根据输入的数值计算了,第二行2月没有根据输入的数值计算。

[此贴子已经被作者于2013-2-23 19:31:43编辑过]

--  作者:双轨制
--  发布时间:2013/2/23 20:17:00
--  

能不能有个例子传上来测试啊?


--  作者:lyfxybc
--  发布时间:2013/2/24 0:22:00
--  

上传附件测试

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


--  作者:lin_hailun
--  发布时间:2013/2/25 12:39:00
--  
是否是你的数据没有保存?你的这个是统计后台数据库的。

--  作者:lyfxybc
--  发布时间:2013/2/25 13:11:00
--  

数据全部保存,前台表和数据库是一样的数据,为什么只统计开始日期的一个月,后面个月份就不统计,数据全在后台,上面发的例子改到前台表,统计结果也都是一样的。


--  作者:lin_hailun
--  发布时间:2013/2/25 13:57:00
--  
 你说的是这段代码没有执行吧?

               Dim r As Row = Tables("导航_Table14").Current                             
               Dim txt As WinForm.TextBox = e.Form.Controls("TextBox21")   \'单面扣分标准
                  r("单面_理论扣分")  = r("单面_长度") * txt.Text
               Dim txt1 As WinForm.TextBox = e.Form.Controls("TextBox22")  \'双面扣分标准

                  r("双面_理论扣分")  = r("双面_长度") * txt1.Text
               Dim txt2 As WinForm.TextBox = e.Form.Controls("TextBox23")  \'扣分标准单价

                  r("单面_奖罚")  = (r("单面_理论扣分") - r("单面_实际扣分"))* txt2.Text
                  r("双面_奖罚")  = (r("双面_理论扣分") - r("双面_实际扣分"))* txt2.Text


--  作者:lin_hailun
--  发布时间:2013/2/25 13:58:00
--  
 改一下。

For Each r As Row In Tables("导航_Table14").Rows
    Dim txt As WinForm.TextBox = e.Form.Controls("TextBox21")   \'单面扣分标准
    r("单面_理论扣分")  = r("单面_长度") * txt.Text
    Dim txt1 As WinForm.TextBox = e.Form.Controls("TextBox22")  \'双面扣分标准
   
    r("双面_理论扣分")  = r("双面_长度") * txt1.Text
    Dim txt2 As WinForm.TextBox = e.Form.Controls("TextBox23")  \'扣分标准单价
   
    r("单面_奖罚")  = (r("单面_理论扣分") - r("单面_实际扣分"))* txt2.Text
    r("双面_奖罚")  = (r("双面_理论扣分") - r("双面_实际扣分"))* txt2.Text
Next
[此贴子已经被作者于2013-2-25 13:58:29编辑过]

--  作者:lyfxybc
--  发布时间:2013/2/26 18:19:00
--  
非常谢谢,可以了