Foxtable(狐表)用户栏目专家坐堂 → 求助:如何利用代码生成当前月每天的经营额 消费人数 人均消费的数值


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

主题:求助:如何利用代码生成当前月每天的经营额 消费人数 人均消费的数值

帅哥哟,离线,有人找我吗?
李孝春
  11楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2472 积分:17346 威望:0 精华:0 注册:2013/1/31 0:03:00
回复:(有点甜) 数据问题,自己检测。  发帖心情 Post By:2014/7/13 10:56:00 [只看该作者]

好的 那上述代码有点甜老师是放在哪个地方的呢?
我现在全部是放在一个按钮事件里 可以不?还是必须分开单独一个一个的实现三个查询表之后 再来实现统计表2

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/7/13 10:59:00 [只看该作者]

以下是引用李孝春在2014-7-13 10:56:00的发言:
好的 那上述代码有点甜老师是放在哪个地方的呢?
我现在全部是放在一个按钮事件里 可以不?还是必须分开单独一个一个的实现三个查询表之后 再来实现统计表2

 

代码放在一个按钮里面,直接生成统计表2


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


加好友 发短信
等级:九尾狐 帖子:2472 积分:17346 威望:0 精华:0 注册:2013/1/31 0:03:00
回复:(有点甜)以下是引用李孝春在2014-7-13 10:56:...  发帖心情 Post By:2014/7/13 11:00:00 [只看该作者]

好的 感谢有点甜老师  我在操作看看

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


加好友 发短信
等级:九尾狐 帖子:2472 积分:17346 威望:0 精华:0 注册:2013/1/31 0:03:00
回复:(有点甜)以下是引用李孝春在2014-7-13 10:56:...  发帖心情 Post By:2014/7/13 11:28:00 [只看该作者]

有点甜老师
找到问题所在的原因了  新增的数据 必须关闭项目后再次打开才能生成 统计数据表2中的数据  
有没有办法 及时增加及时统计呢?不用关闭项目再次打开项目。

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/7/13 11:29:00 [只看该作者]

以下是引用李孝春在2014-7-13 11:28:00的发言:
有点甜老师
找到问题所在的原因了  新增的数据 必须关闭项目后再次打开才能生成 统计数据表2中的数据  
有没有办法 及时增加及时统计呢?不用关闭项目再次打开项目。

 

你把数据保存才会统计的。

 

Datatables.Save


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


加好友 发短信
等级:九尾狐 帖子:2472 积分:17346 威望:0 精华:0 注册:2013/1/31 0:03:00
回复:(有点甜)以下是引用李孝春在2014-7-13 11:28:...  发帖心情 Post By:2014/7/13 11:52:00 [只看该作者]

有点甜老师 解决了数据问题之后
现在还有一个关键问题没有解决
那就是 我月报表中会根据当前月自动生成当前月份的所有天数 在统计表中没有实现
该统计表代码只是生成当前数据中有的天数 而不是当前月所有的天数

自动生成每月多少天的代码如下
Dim mon As Integer = Date.Today.Month
Dim days As Integer = Date.DaysInMonth(Date.Today.Year,Date.Today.Month)
Dim s As String
For j As Integer = 1 To days
    s + = "' ' As " & mon & "月" & j & "日,"
Next


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/7/13 11:55:00 [只看该作者]

 那你就动态加入没有的日期列。

 

 循环1-31,没有对应日期列的话,就动态加入一列。


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


加好友 发短信
等级:九尾狐 帖子:2472 积分:17346 威望:0 精华:0 注册:2013/1/31 0:03:00
回复:(有点甜) 那你就动态加入没有的日期列。...  发帖心情 Post By:2014/7/13 12:16:00 [只看该作者]

学习学习一下 期待有点甜老师指导 交叉统计功能还是第一次用呢

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/7/13 12:26:00 [只看该作者]

Dim d As Date = new Date(Date.Today.Year, Date.Today.Month, 1)

Dim jb As New SQLJoinTableBuilder("查询表1","消费信息")
jb.AddCols("订单编号","就餐时间")
jb.AddExp("数量","就餐人数")
jb.AddExp("分类","'就餐人数'")
jb.Filter = "就餐时间 >= #" & d & "# and 就餐时间 < #" & d.AddMonths(1) & "#"


Dim jb1 As New SQLJoinTableBuilder("查询表1","消费信息")
jb1.AddTable("消费信息","订单编号","消费明细","订单编号")
jb1.AddCols("{消费信息}.订单编号","就餐时间",True)
jb1.AddExp("数量","Sum(累计消费)")
jb1.AddExp("分类","'消费总额'")
jb1.Filter = "就餐时间 >= #" & d & "# and 就餐时间 < #" & d.AddMonths(1) & "#"

Dim jb2 As New SQLJoinTableBuilder("查询表1","消费信息")
jb2.AddTable("消费信息","订单编号","消费明细","订单编号")
jb2.AddCols("{消费信息}.订单编号","就餐时间",True)
jb2.AddExp("数量","Sum(累计消费/就餐人数)")
jb2.AddExp("分类","'人均消费'")
jb2.Filter = "就餐时间 >= #" & d & "# and 就餐时间 < #" & d.AddMonths(1) & "#"

jb.Union(jb1,True)
jb.Union(jb2,True)


Dim g As New CrossTableBuilder("统计表2",jb.BuildSql)
g.HGroups.AddDef("订单编号")
g.HGroups.AddDef("分类")
g.VGroups.AddDef("就餐时间", "{0}月")
g.VGroups.AddDef("就餐时间", DateGroupEnum.Day, "{0}日")
g.Totals.AddDef("数量", "数量")
g.Build()

Dim t As Table = Tables("统计表2")
Dim cwidth As String = "订单编号|98|分类|98"
For i As Integer = 1 To Date.DaysInMonth(d.Year, d.Month)
    If t.Cols.Contains(d.Month & "月_" & i & "日") = False Then
        t.DataTable.DataCols.Add(d.Month & "月_" & i & "日", Gettype(Date))
    End If
    cwidth &= "|" & d.Month & "月_" & i & "日" & "|98"
Next
t.SetColVisibleWidth(cwidth)
MainTable = t


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


加好友 发短信
等级:九尾狐 帖子:2472 积分:17346 威望:0 精华:0 注册:2013/1/31 0:03:00
回复:(有点甜)Dim d As Date = new Date(Date.Toda...  发帖心情 Post By:2014/7/13 12:38:00 [只看该作者]

有点甜老师 代码运行之后 会生成当前数据 但是随后就又快速生成了当前月的所有天数 抹掉了生成的数据 全部为零

经过调试
下面的代码需要纠正一下
Dim t As Table = Tables("统计表2")
Dim cwidth As String = "订单编号|98|分类|98"
For i As Integer = 1 To Date.DaysInMonth(d.Year, d.Month)
    If t.Cols.Contains(d.Month & "月_" & i & "日") = False Then
        t.DataTable.DataCols.Add(d.Month & "月_" & i & "日", Gettype(Date))
    End If
    cwidth &= "|" & d.Month & "月_" & i & "日" & "|98"
Next
t.SetColVisibleWidth(cwidth)
MainTable = t
[此贴子已经被作者于2014-7-13 13:32:01编辑过]

 回到顶部
总数 21 上一页 1 2 3 下一页