Foxtable(狐表)用户栏目专家坐堂 → 占比如何导出


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

主题:占比如何导出

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


加好友 发短信
等级:七尾狐 帖子:1505 积分:9756 威望:0 精华:0 注册:2014/12/18 16:12:00
占比如何导出  发帖心情 Post By:2022/3/18 17:52:00 [只看该作者]

If CurrentTable.name.contains("出入库") Then
    Dim g As New GroupTableBuilder("统计每个物料总金额", DataTables("出入库"))
    g.Caption = "统计每个物料总金额"
    g.Groups.AddDef("物料编号")
    g.Totals.AddDef("金额")
    g.GrandProportion = True
    g.Decimals = 2
    g.Build()
    MainTable = Tables("统计每个物料总金额")
End If

上面这个按钮产生的结果,我想用下面的代码导入到另一个数据表,但是 “占比” 这列数据无法导出,出现提示: 占比 不属于表 '统计每个物料总金额'。请问下面的代码要怎样修改?

For Each r As Row In Tables("统计每个物料总金额").rows
    Dim dr2 As DataRow = DataTables("库存分析").Find("物料编号 = '" & r("物料编号") & "'")
    If dr2 IsNot Nothing Then
    Else
        Dim dr3 As Row = Tables("库存分析").AddNew()
        dr3("物料编号") = r("物料编号")
        dr3("金额") = r("金额")
        dr3("占比") = r("占比")
        dr3("录入员核对") = True
    End If
Next

 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107153 积分:545014 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/3/19 9:01:00 [只看该作者]

生成统计表后,打开表结构看真正的列名:http://www.foxtable.com/webhelp/topics/0193.htm
[此贴子已经被作者于2022/3/19 9:01:13编辑过]

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


加好友 发短信
等级:七尾狐 帖子:1505 积分:9756 威望:0 精华:0 注册:2014/12/18 16:12:00
  发帖心情 Post By:2022/3/19 19:01:00 [只看该作者]

    Dim Ttlamt2 As Single = Tables("出入库").Compute("sum(不含税金额)")
    Dim mth2() As String = DataTables("出入库").GetComboListString("出入年月",Tables("出入库").filter).Split("|")
    Dim months2 As Integer = mth2.length
    Dim filter2 As String = Tables("出入库").filter
    If filter2 > "" Then  filter2 = filter2  & " and "
        Dim Products2 As List(Of String) = DataTables("出入库").GetValues("物料编号",filter2 & " 出入原因 ='" & "出库-客户出货" & "' and 来源 ='" & "自做" & "' ") 
        For Each sss2 As String In Products2
            Dim dr912 As Row = Tables("库存分析").AddNew()
            dr912("物料编号") = sss2
            Dim amt2 As Single = Tables("出入库").Compute("sum(不含税金额)","物料编号 ='" & sss2 & "'")
            dr912("金额") = amt2
            dr912("占比") = amt2 / ttlamt2
            Dim lines2 As Integer = Tables("出入库").Compute("count(物料编号)","物料编号 ='" & sss2 & "'")
            dr912("行数") = lines2
            dr912("月数") = months2
            dr912("每月行数") = lines2 / months2
        Next

上面这段代码是希望从“出入库”这个数据表统计数据并将结果放入“库存分析”那个数据表。但是在执行时总是出现提示:

.NET Framework 版本:4.0.30319.42000
Foxtable 版本:2022.1.30.2
错误所在事件:表,库存分析,DataColChanged
详细错误信息:
调用的目标发生了异常。
列“占比”不属于表 出入库。

“库存分析”那个表是有“占比”这列的,但是我并没有去执行 “库存分析” 的 DataColChanged 事件啊。


 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107153 积分:545014 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/3/20 19:59:00 [只看该作者]

上面代码有给"库存分析"表赋值呀。不管是手工输入,还是使用代码赋值,或者是其它事件影响。只要"库存分析"表的数据发生任何变化都会触发 DataColChanged 事件

 回到顶部