Foxtable(狐表)用户栏目专家坐堂 → [求助]代码出错


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

主题:[求助]代码出错

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


加好友 发短信
等级:七尾狐 帖子:1525 积分:10580 威望:0 精华:0 注册:2008/9/24 11:16:00
[求助]代码出错  发帖心情 Post By: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楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47448 积分:251054 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By: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


 


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


加好友 发短信
等级:七尾狐 帖子:1525 积分:10580 威望:0 精华:0 注册:2008/9/24 11:16:00
  发帖心情 Post By: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编辑过]

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


加好友 发短信
等级:七尾狐 帖子:1525 积分:10580 威望:0 精华:0 注册:2008/9/24 11:16:00
  发帖心情 Post By:2011/8/29 8:29:00 [只看该作者]

能不能实现月人均加工费的同比和环比?请狐爸老师指教,谢谢!!

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


加好友 发短信
等级:管理员 帖子:47448 积分:251054 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/8/29 8:35:00 [只看该作者]

手工增加一列,手工编码进行环比和同比的计算机可

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


加好友 发短信
等级:七尾狐 帖子:1525 积分:10580 威望:0 精华:0 注册:2008/9/24 11:16:00
  发帖心情 Post By:2011/8/29 8:49:00 [只看该作者]

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


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


加好友 发短信
等级:管理员 帖子:47448 积分:251054 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/8/29 8:51:00 [只看该作者]

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

 

 

增加列参考:

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

 

 


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


加好友 发短信
等级:七尾狐 帖子:1525 积分:10580 威望:0 精华:0 注册:2008/9/24 11:16:00
  发帖心情 Post By:2011/8/29 9:00:00 [只看该作者]

最好能搞一个范例,可以为初学者拓展思路,只是一个想法而已,请狐爸老师别见怪。谢谢狐爸老师。

 回到顶部