Foxtable(狐表)用户栏目专家坐堂 → 在交叉统计设置中复制代码 不能直接使用吗?


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

主题:在交叉统计设置中复制代码 不能直接使用吗?

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/10/19 12:11:00 [显示全部帖子]

 看21楼,如果还有问题,做个大数据量的例子发上来测试。

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/10/23 9:56:00 [显示全部帖子]

 

For Each cus As String In dt.GetValues("日期", "日期 is not null")

 

或者

 

For Each cus As String In dt.GetValues("日期", "len(日期) >= 8")


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/10/23 14:06:00 [显示全部帖子]

 回复25楼,做个例子发上来测试。

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/10/23 15:45:00 [显示全部帖子]

Dim cmd As new SQLCommand
cmd.commandText = "Select  领取人, format(日期,'yyyy年MM月') as 日期, {登记表}.设备ID号 As 设备ID号 From {订单} Left JOIN {登记表} ON {登记表}.[设备ID号] = {订单}.[设备ID号]"
Dim dt As DataTable = cmd.ExecuteReader
Dim dtb As New DataTableBuilder("统计")
dtb.AddDef("日期", Gettype(String))
Dim v = e.form.Controls("CheckedComboBox1").value
Dim prds As new List(of String)
Dim str As String = "未领取,报废,返修A厂"
If v > "" Then
    prds.AddRange(v.split(","))
Else
    prds = DataTables("订单").GetValues("领取人", "领取人 not in ('" & str.replace(",", "','") & "')")
    prds.Insert(0, "返修A厂")
    prds.Insert(0, "报废")
    prds.Insert(0, "未领取")
End If
For Each prd As String In prds
    dtb.AddDef(prd & "_领取数量", Gettype(Integer))
    dtb.AddDef(prd & "_使用数量", Gettype(Integer))
    dtb.AddDef(prd & "_剩余数量", Gettype(Integer))
Next
dtb.Build()
For Each cus As String In dt.GetValues("日期", "len(日期) >= 8")
    Dim dr As DataRow = DataTables("统计").AddNew()
    dr("日期") = cus
    Dim d As Date = new Date(cus.Substring(0,4), cus.SubString(5,2), 1)
    Dim filter As String = "日期 = '" & cus & "'"
    For Each prd As String In prds
        dr(prd & "_领取数量") = dt.Compute("Count(领取人)",filter & " And [领取人] = '" & prd & "'")
        dr(prd & "_使用数量") = dt.Compute("Count(领取人)",filter & " And [领取人] = '" & prd & "' and 设备ID号 is not null")
    Next
Next
MainTable= Tables("统计")

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/11/6 16:44:00 [显示全部帖子]

以下是引用zchlln在2017/11/6 16:19:00的发言:
如果我想实现取值和计数这两个功能呢 知道他领取的都是哪些设备 我看Compute支持计算方面的 我想取值应该用哪个?

 

Dim cmd As new SQLCommand
cmd.commandText = "Select  领取人, format(日期,'yyyy年MM月') as 日期, {登记表}.设备ID号 As 设备ID号 From {订单} Left JOIN {登记表} ON {登记表}.[设备ID号] = {订单}.[设备ID号]"
Dim dt As DataTable = cmd.ExecuteReader
Dim dtb As New DataTableBuilder("统计")
dtb.AddDef("日期", Gettype(String))
Dim v = e.form.Controls("CheckedComboBox1").value
Dim prds As new List(of String)
Dim str As String = "未领取,报废,返修A厂"
If v > "" Then
    prds.AddRange(v.split(","))
Else
    prds = DataTables("订单").GetValues("领取人", "领取人 not in ('" & str.replace(",", "','") & "')")
    prds.Insert(0, "返修A厂")
    prds.Insert(0, "报废")
    prds.Insert(0, "未领取")
End If
For Each prd As String In prds
    dtb.AddDef(prd & "_领取数量", Gettype(Integer))
    dtb.AddDef(prd & "_使用数量", Gettype(Integer))
    dtb.AddDef(prd & "_剩余数量", Gettype(Integer))
    dtb.AddDef(prd & "_值", Gettype(String))
Next
dtb.Build()
For Each cus As String In dt.GetValues("日期", "len(日期) >= 8")
    Dim dr As DataRow = DataTables("统计").AddNew()
    dr("日期") = cus
    Dim d As Date = new Date(cus.Substring(0,4), cus.SubString(5,2), 1)
    Dim filter As String = "日期 = '" & cus & "'"
    For Each prd As String In prds
        dr(prd & "_领取数量") = dt.Compute("Count(领取人)",filter & " And [领取人] = '" & prd & "'")
        dr(prd & "_使用数量") = dt.Compute("Count(领取人)",filter & " And [领取人] = '" & prd & "' and 设备ID号 is not null")
        dr(prd & "_值") = dt.GetComboListString("设备id号", filter & " And [领取人] = '" & prd & "' and 设备ID号 is not null")
       
    Next
Next
MainTable= Tables("统计")


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/11/7 14:38:00 [显示全部帖子]

修改这句代码可以设置列的字符数

 

dtb.AddDef(prd & "_值", Gettype(String),999)

 

其余问题截图说明,没看懂。


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/11/7 15:41:00 [显示全部帖子]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:统计演示.table


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/11/8 14:41:00 [显示全部帖子]

例子,我测试没问题。

 

如果你的是外部数据源,看看 http://www.foxtable.com/webhelp/scr/2344.htm

 


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/11/8 15:06:00 [显示全部帖子]

Dim cmd As new SQLCommand
cmd.ConnectionName = "数据源"
cmd.commandText = "Select  领取人, format(入库日期,'yyyy年MM月') as 入库日期, {登记表}.设备ID号 As 设备ID号 From {库存表} Left JOIN {登记表} ON {登记表}.[设备ID号] = {库存表}.[设备ID号]"
Dim dt As DataTable = cmd.ExecuteReader
vars("dt") = dt
[此贴子已经被作者于2017/11/8 15:06:21编辑过]

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/11/13 9:44:00 [显示全部帖子]

这样

 

dr(prd & "_剩余设备号") = dt.GetComboListString("设备id号", filter & " And [领取人] = '" & prd & "'")

 

或者这样

 

dr(prd & "_剩余设备号") = dt.GetComboListString("设备id号", filter & " And [领取人] = '" & prd & "' and 设备ID号 is not null")


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