Rss & SiteMap

Foxtable(狐表) http://www.foxtable.com

新一代数据库软件,完美融合Access、Foxpro、Excel、vb.net之优势,人人都能掌握的快速软件开发工具!
共8 条记录, 每页显示 10 条, 页签: [1]
[浏览完整版]

标题:[求助]代码出错

1楼
yyzlxc 发表于:2011/8/26 9:21:00
 
在一段代码中加了四条代码,用于计算月人均加工费的值,但运行出错,应该怎样改,请各位老师指教,谢谢!!

'按月分析

Dim sql As String

If _UserGroup = "填报" Then '定义用户组

    sql = "Select TOP 100 PERCENT 报表年月,日期,单位,Sum(加工费) As 加工费,Sum(投工) As 投工, Null as 月人均加工费 FROM {日报源表} WHERE 单位 = '" & _UserName & "' Group By 报表年月,日期,单位 ORDER BY 单位,日期,报表年月"

Else

    sql = "Select TOP 100 PERCENT 报表年月,日期,单位,Sum(加工费) As 加工费,Sum(投工) As 投工, Null as 月人均加工费 FROM {日报源表} Group By 报表年月,日期,单位 ORDER BY 单位,日期,报表年月"

End If

Dim b As New GroupTableBuilder("按月分析",sql,"SCGL")

b.Groups.AddDef("日期", DateGroupEnum.Year, "年")

b.Groups.AddDef("日期", "月")

b.Groups.AddDef("单位")

b.Totals.AddDef("加工费")

b.Totals.AddDef("投工",AggregateEnum.Average,"月均人数")

b.Totals.AddDef("月人均加工费" ,AggregateEnum.Average)

b.SamePeriodGrowth = True      '同比

b.CircleGrowth = True           '环比

b.Build()

MainTable = Tables("按月分析")

Dim r As Table = Tables("按月分析")

If r("月均人数" ) <> 0 Then

    r("月人均加工费" ) = r("加工费" )/r("月均人数" )

End If

DataTables("按月分析").DataCols("加工费").SetFormat("0.00")

DataTables("按月分析").DataCols("月均人数").SetFormat("0.00")

DataTables("按月分析").DataCols("月人均加工费").SetFormat("0.00")

Tables("按月分析").Cols("年").TextAlign = TextAlignEnum.Center

Tables("按月分析").Cols("月").TextAlign = TextAlignEnum.Center

Tables("按月分析").Cols("单位").TextAlign = TextAlignEnum.Center

Tables("按月分析").AutoSizeCols()

'打开表返回最末行

With Tables("按月分析")

    .Position = .Rows.Count - 1

End With

 

 

 


图片点击可在新窗口打开查看此主题相关图片如下:捕获.png
图片点击可在新窗口打开查看
2楼
狐狸爸爸 发表于:2011/8/26 9:29:00

你这点代码错得离谱了:

 

Dim r As Table = Tables("按月分析")
If r("月均人数" ) <> 0 Then
    r("月人均加工费" ) = r("加工费" )/r("月均人数" )
End If
 
我想应该是:

 

For Each r As Row in Tables("按月分析").Rows
      If r("月均人数" ) <> 0 Then
          r("月人均加工费" ) = r("加工费" )/r("月均人数" )
      End If

Next


 

3楼
yyzlxc 发表于:2011/8/28 12:10:00

谢谢狐爸老师的指教,代码修改好,也能执行,但是月人均加工费的同比和环比是空白,根据代码分析,在运算同比和环比时,月人均加工费还是空的,如何将同比和环比的运算,延迟到月人均加工费结果出来以后执行,请各位老师指教。谢谢!!

代码如下:

'按月分析
Dim sql As String
If _UserGroup = "填报" Then '定义用户组
    sql = "Select TOP 100 PERCENT 报表年月,日期,单位,Sum(加工费) As 加工费,Sum(投工) As 投工, Null as 月人均加工费 FROM {日报源表} WHERE 单位 = '" & _UserName & "' Group By 报表年月,日期,单位 ORDER BY 单位,日期,报表年月"
Else
    sql = "Select TOP 100 PERCENT 报表年月,日期,单位,Sum(加工费) As 加工费,Sum(投工) As 投工, Null as 月人均加工费 FROM {日报源表} Group By 报表年月,日期,单位 ORDER BY 单位,日期,报表年月"
End If
Dim b As New GroupTableBuilder("按月分析",sql,"SCGL")
b.Groups.AddDef("日期", DateGroupEnum.Year, "年")
b.Groups.AddDef("日期", "月")
b.Groups.AddDef("单位")
b.Totals.AddDef("加工费")
b.Totals.AddDef("投工",AggregateEnum.Average,"月均人数")
b.Totals.AddDef("月人均加工费" )
b.SamePeriodGrowth = True      '同比
b.CircleGrowth = True           '环比
b.Build()
MainTable = Tables("按月分析")
For Each r As Row In Tables("按月分析").Rows
      If r("月均人数" ) <> 0 Then
          r("月人均加工费" ) = r("加工费" )/r("月均人数" )
      End If
Next
DataTables("按月分析").DataCols("加工费").SetFormat("0.00")
DataTables("按月分析").DataCols("月均人数").SetFormat("0.00")
DataTables("按月分析").DataCols("月人均加工费").SetFormat("0.00")
Tables("按月分析").Cols("年").TextAlign = TextAlignEnum.Center
Tables("按月分析").Cols("月").TextAlign = TextAlignEnum.Center
Tables("按月分析").Cols("单位").TextAlign = TextAlignEnum.Center
Tables("按月分析").AutoSizeCols()
'打开表返回最末行
With Tables("按月分析")
    .Position = .Rows.Count - 1
End With

[此贴子已经被作者于2011-8-28 13:47:57编辑过]
4楼
yyzlxc 发表于:2011/8/29 8:29:00
能不能实现月人均加工费的同比和环比?请狐爸老师指教,谢谢!!
5楼
狐狸爸爸 发表于:2011/8/29 8:35:00
手工增加一列,手工编码进行环比和同比的计算机可
6楼
yyzlxc 发表于:2011/8/29 8:49:00

在帮助中是否有参考的章节。

7楼
狐狸爸爸 发表于:2011/8/29 8:51:00

这个没有,其实源流不复杂,环比就是同统计表找出上月的数据,和本月的数据一起计算出环比,然后写入新增加的列中。

 

 

增加列参考:

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

 

 

8楼
yyzlxc 发表于:2011/8/29 9:00:00
最好能搞一个范例,可以为初学者拓展思路,只是一个想法而已,请狐爸老师别见怪。谢谢狐爸老师。
共8 条记录, 每页显示 10 条, 页签: [1]

Copyright © 2000 - 2018 foxtable.com Tel: 4000-810-820 粤ICP备11091905号

Powered By Dvbbs Version 8.3.0
Processed in .04297 s, 2 queries.