以文本方式查看主题
- Foxtable(狐表) (http://foxtable.com/bbs/index.asp)
-- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2)
---- 按年统计的时候是对的 但是复制到按月统计的时候就报错了 这是为什么呢 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=30712)
|
-- 作者:keeryq
-- 发布时间:2013/4/2 14:38:00
-- 按年统计的时候是对的 但是复制到按月统计的时候就报错了 这是为什么呢
为什么有错误呢?
\'--------------------------------生成统计表--------------------------\' Dim g As New CrossTableBuilder("统计表1", DataTables("课程信息"), "[培训时间] >= #1/1/" & e.sender.value & "# And [培训时间] <= #12/31/" & e.sender.value & "#") g.HGroups.AddDef("培训时间", "月") g.VGroups.AddDef("课程") g.Totals.AddDef("人天统计", "人天统计") g.Totals.AddDef("实际人数", "实际人数") g.VerticalProportion = True g.VerticalProporti \'交叉统计数据分析 g.Filter = "[培训时间] >= #1/1/" & e.sender.value & "# And [培训时间] <= #12/31/" & e.sender.value & "#" g.Build() \'-----------------------------------生成图表---------------------- Dim Chart As WinForm.Chart \'定义一个图表变量 Dim Series As WinForm.ChartSeries \'定义一个图系变量 Dim t As Table = Tables("统计表1") \'定义一个变量t引用数据表 Chart = e.Form.Controls("Chart1") \' 引用窗口中的图表 Chart.SeriesList.Clear() Chart.ChartType = ChartTypeEnum.Bar \'图表类型改为Bar(条形) Chart.DataSource = "统计表1" \'设置绑定表 chart.AxisX.Major = 1 Chart.AxisY.Major = 100 Chart.AxisY.Min = 0 \'指定Y轴的最小值 For Each c As Col In t.Cols If c.Caption.Contains("实际人数/") Then c.Visible = False End If c.DataCol.SetFormat("#,###") Next For Each r As Row In t.Rows For Each c As Col In t.Cols If c.Caption.Contains("人天统计/") Then r(c.name) =t(r.Index,c.Index-1)/t(r.Index,c.Index-3) End If Next Next For Each c As Col In t.Cols If c.Name <> "年" Then If c.Visible = True Then Series = Chart.SeriesList.Add() \'增加一个图系 Series.Text = c.Caption \'Name \'设置图系的标题 Series.X.DataField = "年" \'X轴绑定到产品列 Series.Y.DataField = c.Name \'设置Y轴的绑定列 Series.DataLabelText = "{#YVAL}" End If End If Next \'Chart.VisualEffect = True \'加上这一行,让你的图表更漂亮 Chart.LegendVisible = True \'显示图列 Chart.LegendCompass= CompassEnum.South \'图列显示在南方(底端) ChaRT.HeaderText = "实际人数-人天统计" Chart.AxisX.Text = "月份"
此主题相关图片如下:按月统计出错了.png

|
-- 作者:Bin
-- 发布时间:2013/4/2 14:42:00
--
因为你有某一个列 列名为空。。
|
-- 作者:keeryq
-- 发布时间:2013/4/2 14:54:00
-- 回复:(Bin)因为你有某一个列 列名为空。。
这个代码跟按年统计的代码一样的呀 只是多了筛选时间的条件!也不知道哪个列少呢
|
-- 作者:狐狸爸爸
-- 发布时间:2013/4/2 15:06:00
--
学会自己分析,找出是哪一行代码出错吗,然后分析原因,不能太依赖官方工程师:
http://www.foxtable.com/help/topics/1485.htm
|
-- 作者:keeryq
-- 发布时间:2013/4/2 15:24:00
-- 回复:(狐狸爸爸)学会自己分析,找出是哪一行代码出...
您说的有道理呀 但是这是我自己分析了一周还没分析出来啊!所以才来论坛问呀。来论坛问肯定是我没分析出来的呢,我自己分析出来的都已经自己解决了!!!
|
-- 作者:狐狸爸爸
-- 发布时间:2013/4/2 16:07:00
--
你真的按照4楼的方法分析了的话,那么就已经知道哪一行的代码出问题了。
For Each r As Row In t.Rows For Each c As Col In t.Cols If c.Caption.Contains("人天统计/") Then r(c.name) =t(r.Index,c.Index-1)/t(r.Index,c.Index-3) End If Next Next
遍历列,如果这一列是第一列,0-3 = -3, 存在位置为-3的列吗?
逻辑问题。
[此贴子已经被作者于2013-4-2 16:07:01编辑过]
|
-- 作者:keeryq
-- 发布时间:2013/4/2 16:19:00
-- 回复:(狐狸爸爸)你真的按照4楼的方法分析了的话,那...
我有改过这里的 一个-2 一个-4更不行 又改0 2 只是瞎改的 找表1也没确定是怎么排序的
|
-- 作者:keeryq
-- 发布时间:2013/4/2 17:15:00
-- 回复:(muhua)'r(c.name) =t(r.Index,c.Index-1)/t(...
像是这样做出来图表不显示,但怎么感觉像是这样做出来的只是一组数据呀
按年和按月是一样的程序呀 只不过按月是要按年筛选过的,我没运行一次程序就看看统计表1
然后把程序改成 r(c.name) =t(r.Index,c.Index-1)/t(r.Index,c.Index+1) 没有错误了就是不显示出数据
此主题相关图片如下:按年.png

此主题相关图片如下:按年筛选后.png

此主题相关图片如下:按月.png

|
-- 作者:keeryq
-- 发布时间:2013/4/2 17:27:00
-- 回复:(muhua)'r(c.name) =t(r.Index,c.Index-1)/t(...
哦啦 找到原因了 谢谢呀 还是用的-1和+1 没显示主要是里面的写错了!最然不明白为什么一样的代码为什么一个-1、-3和-1、+1 但是已经解决啦 还是谢谢你呀 谢谢!!!
|