Foxtable(狐表)用户栏目专家坐堂 → [求助]关于通过日报计算生成月报,在对月报中的数据计算生成年报


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

主题:[求助]关于通过日报计算生成月报,在对月报中的数据计算生成年报

美女呀,离线,留言给我吧!
atropos
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:10 积分:167 威望:0 精华:0 注册:2020/9/2 14:29:00
[求助]关于通过日报计算生成月报,在对月报中的数据计算生成年报  发帖心情 Post By:2020/11/2 9:39:00 [只看该作者]

 

设有ABC三个厂区,需要填写日报

日报格式如下

厂区-日期(年--日)-数据1-数据2-数据3-数据4((数据2-数据3/数据1))

 

需要根据日报分别生成3个厂区的月报,月报中包含二次计算数据,

月报格式如下:

厂区(X1-12月)的数据

厂区---SUN(数据1-AVG(数据1-AVG(数据2-((AVG数据1-AVG数据2/AVG数据1

 

在根据月报,以及手填月报数据E F G

生成年度分析报

厂区(1-12月)

厂区---手填数据E-AVG(数据1/手填数据E-(【AVG数据1-AVG数据2/AVG数据1/手填数据E

 

最后对ABC 三个厂区的每年12个月的数据进行同比环比

 

设计思路,目前试了三类方法:

1.新建一张表达式的正式月表,通过表达式对日报表进行计算;目前的问题是,不能自动按月求和,只能根据加载的数据,通过表达式计算,每次只能产生一条数据;

2.新建一张年度运行表的正式表,通过统计分组计算每月的数据,在通过命令填写进年度表,在通过两张表联合,将运行数据与填写数据加在一起生成一张新表; 问题是:每次都要先统计,在转填,如果日报有变化,转填的表数据不会自动更新,如果数据量较大,会引起误差;并且在测试阶段,总有两行数据会新增而不是重复填写,出现了BUG;

3.通过SQL查询日报,生成1-12月,但是无法对含有表达式的列进行查询;

4.通过统计分组的方法尝试生成临时的月报统计表,但是有计算列的总是在最后一栏,无法与前面同类型的列合并;

Dim g As New GroupTableBuilder("统计表1", DataTables("污水厂月运行报表"))

g.Caption = "统计表1"

g.Groups.AddDef("厂区编号")

g.Groups.AddDef("日期", DateGroupEnum.Year, "")

g.Groups.AddDef("日期", "")

 

 

 

g.Totals.AddDef("处理水量")

g.Totals.AddDef("处理水量", AggregateEnum.Average)

 

g.Totals.AddDef("CODjin","COD_月进水总和")

g.Totals.AddDef("CODchu","COD_月出水总和")        

g.Totals.AddDef("CODjin",AggregateEnum.Average,"COD_进水平均")        

g.Totals.AddDef("CODchu",AggregateEnum.Average,"COD_出水平均")

 

g.Totals.AddDef("BOD5jin")        

g.Totals.AddDef("BOD5jin",AggregateEnum.Average)        

g.Totals.AddDef("BOD5jin",AggregateEnum.Max)        

g.Totals.AddDef("BOD5jin",AggregateEnum.Min)

g.Totals.AddDef("BOD5chu")        

g.Totals.AddDef("BOD5chu",AggregateEnum.Average)        

g.Totals.AddDef("BOD5chu",AggregateEnum.Max)        

g.Totals.AddDef("BOD5chu",AggregateEnum.Min)

g.Totals.AddDef("厂区用电")        

g.Totals.AddDef("厂区用电",AggregateEnum.Average)        

g.Totals.AddDef("厂区用电",AggregateEnum.Max)        

g.Totals.AddDef("厂区用电",AggregateEnum.Min)

g.Totals.AddDef("湿污泥量")        

g.Totals.AddDef("湿污泥量",AggregateEnum.Average)        

g.Totals.AddDef("湿污泥量",AggregateEnum.Max)        

g.Totals.AddDef("湿污泥量",AggregateEnum.Min)

g.Totals.AddDef("污泥含水率")

g.Totals.AddDef("污泥含水率",AggregateEnum.Average)        

g.Totals.AddDef("污泥含水率",AggregateEnum.Max)        

g.Totals.AddDef("污泥含水率",AggregateEnum.Min)

g.Totals.AddDef("绝干污泥量")        

g.Totals.AddDef("绝干污泥量",AggregateEnum.Average)        

g.Totals.AddDef("绝干污泥量",AggregateEnum.Max)        

g.Totals.AddDef("绝干污泥量",AggregateEnum.Min)

g.Totals.AddDef("碳源A")        

g.Totals.AddDef("碳源A",AggregateEnum.Average)        

g.Totals.AddDef("碳源A",AggregateEnum.Max)        

g.Totals.AddDef("碳源A",AggregateEnum.Min)

 

 

g.FromServer = True

g.Build()

 

DataTables("统计表1").DataCols.Add("COD_去除率",Gettype(Double),"(COD_月进水总和 - COD_月出水总和)/ COD_月出水总和")

DataTables("统计表1").DataCols("COD_去除率").SetFormat("#0.00%")

MainTable = Tables("统计表1")

'Tables("窗口1_Table1").DataSource = g.BuildDataSource()

 

 

通过哪种方式更能实现我的需求,请老师指导。

 

 

 

 

 

 

 


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


加好友 发短信
等级:超级版主 帖子:106680 积分:542589 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/11/2 9:58:00 [只看该作者]

日报实时统计,参考:http://www.foxtable.com/webhelp/topics/1472.htm

月报和年报,通过分组统计生成即可。

临时列可以自行移动到合适的位置:http://www.foxtable.com/webhelp/topics/0587.htm

 回到顶部
美女呀,离线,留言给我吧!
atropos
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:10 积分:167 威望:0 精华:0 注册:2020/9/2 14:29:00
  发帖心情 Post By:2020/11/2 10:25:00 [只看该作者]

 并没有解决问题,因为我需要 从日报中统计后的数据 进行二次计算 才能生成 需要的月报,而不是系统纯统计的月报,临时列不止一列,如果每次都手动调整,并没有达到节约时间的目的,反而更加繁琐,也不利于使用

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


加好友 发短信
等级:超级版主 帖子:106680 积分:542589 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/11/2 10:47:00 [只看该作者]

可以全部都改实时统计,至于需要什么二次计算,那是您的业务要求,自己写代码计算即可

 回到顶部
美女呀,离线,留言给我吧!
atropos
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:10 积分:167 威望:0 精华:0 注册:2020/9/2 14:29:00
  发帖心情 Post By:2020/11/2 11:02:00 [只看该作者]

以下是引用有点蓝在2020/11/2 10:47:00的发言:
可以全部都改实时统计,至于需要什么二次计算,那是您的业务要求,自己写代码计算即可

您的意思是采用实时统计,每个月用实时统计生成一条数据,然后在用一个表根据这个实时数据来计算,最后手动记录12个月的实时+计算数据?


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


加好友 发短信
等级:超级版主 帖子:106680 积分:542589 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/11/2 11:08:00 [只看该作者]

差不多了

 回到顶部