Foxtable(狐表)用户栏目专家坐堂 → 数据统计


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

主题:数据统计

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


加好友 发短信
等级:超级版主 帖子:110744 积分:563646 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/7/29 10:11:00 [显示全部帖子]

字典添加了重复的键,调试

    For i As Integer = d.Day To d2.Day
        e.DataRow(i) = Nothing
        Dim dc As DataCol = e.DataTable.DataCols(i)
msgbox(dc.Caption & "--" & dc.Name)
        dict.Add(dc.Caption, dc.Name)
    Next
[此贴子已经被作者于2023/7/29 10:10:54编辑过]

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


加好友 发短信
等级:超级版主 帖子:110744 积分:563646 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/7/29 11:19:00 [显示全部帖子]

还是要继续2楼的调试,看看msgbox(dc.Caption & "--" & dc.Name)弹出的列标题是什么

下面的列标题又是什么?
    For Each dr As DataRow In dt.DataRows
        Dim cn As String = format(dr("领用日期"), "yyyy-MM-dd")
msgbox(cn)
        If dict.ContainsKey(cn) Then
            e.DataRow(dict(cn)) = dr("领用数量")
        End If
    Next

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


加好友 发短信
等级:超级版主 帖子:110744 积分:563646 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/7/29 11:45:00 [显示全部帖子]

自己想办法改为一样

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


加好友 发短信
等级:超级版主 帖子:110744 积分:563646 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/7/29 13:19:00 [显示全部帖子]

还是基础没学好

方法1、

For i As Integer = d.Day To d2.Day
    dtb.AddDef(format(new date(d.year,d.month,i), "yyyy_MM_dd"), GetType(Date))
Next
……
    For Each dr As DataRow In dt.DataRows
        Dim cn As String = format(dr("领用日期"), "yyyy_MM_dd")

2、

do while d <=  d2
    dtb.AddDef(format(d, "yyyy_MM_dd"), GetType(Date))
d=d.adddays(1)
loop
……
    For Each dr As DataRow In dt.DataRows
        Dim cn As String = format(dr("领用日期"), "yyyy_MM_dd")

3、
    For Each dr As DataRow In dt.DataRows
        Dim cn As String = dr("领用日期").day

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


加好友 发短信
等级:超级版主 帖子:110744 积分:563646 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/7/29 14:21:00 [显示全部帖子]

调试方法前面都有,自行调试

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


加好友 发短信
等级:超级版主 帖子:110744 积分:563646 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/7/29 14:51:00 [显示全部帖子]

建表的时候也没有使用标题啊,直接使用列名不行吗,为什么要使用列标题

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


加好友 发短信
等级:超级版主 帖子:110744 积分:563646 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/7/30 20:31:00 [显示全部帖子]

去掉字典

Dim b As New SQLGroupTableBuilder("统计表1", "油类切消液明细")
b.C
b.Groups.AddDef("使用设备")
b.Groups.AddDef("材料编码")
b.Groups.AddDef("领用日期", DateGroupEnum.None)
b.Totals.AddDef("领用数量")
b.Filter = "使用设备 = '" & e.DataRow("使用设备") & "'"
Dim dt As DataTable = b.Build(True)
For Each dr As DataRow In dt.DataRows
    Dim cn As String = format(dr("领用日期"), "yyyy-MM-dd")
    If e.datatable.datacols.Contains(cn) Then
        e.DataRow(cn) = dr("领用数量")
    End If
Next

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


加好友 发短信
等级:超级版主 帖子:110744 积分:563646 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/7/30 21:54:00 [显示全部帖子]

看看添加列的时候应该使用什么类型的列

Add(ColumnName, GetType(Type))
Add(ColumnName, GetType(Type), Expression)
Add(ColumnName, GetType(Type), Expression, Caption)
Add(ColumnName, GetType(Type), MaxLength)
Add(ColumnName, GetType(Type), MaxLength, Expression)
Add(ColumnName, GetType(Type), MaxLength, Expression, Caption)

后三个语法是针对字符列的。
 

参数说明:

  • Name
    新增列的名称
     
  • Type
    新增列的数据类型,需要配合GetType关键字来获得数据类型,例如GetType(String)表示字符型,GetType(Boolean)表示逻辑型。


dtb.AddDef(format(d, "yyyy-MM-dd"), GetType(Date))这里应该使用什么类型?
[此贴子已经被作者于2023/7/30 21:53:49编辑过]

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


加好友 发短信
等级:超级版主 帖子:110744 积分:563646 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/7/30 22:20:00 [显示全部帖子]

正常啊,代码都是随便找个地方写的就这样了。把表事件代码放到按钮里,这种代码就不适合在表事件处理

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


加好友 发短信
等级:超级版主 帖子:110744 积分:563646 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/7/30 23:06:00 [显示全部帖子]

使用文字详细说明一下要做什么功能吧?

 回到顶部
总数 19 1 2 下一页