以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]组合后提示列“_销售”不属于表  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=157835)

--  作者:lgj716330
--  发布时间:2020/10/30 12:20:00
--  [求助]组合后提示列“_销售”不属于表
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.foxdb

麻烦将代码直接贴这里,版本低打不开

--  作者:有点蓝
--  发布时间:2020/10/30 13:37:00
--  
到命令窗口执行代码

……
dt2.Combine("总公司",dt,"总公司")  \'将销售统计数据组合到进货统计数据
dt2.show("统计表2")

然后打开表结构查看真正的列名

--  作者:lgj716330
--  发布时间:2020/10/30 16:32:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.foxdb

还有点小问题,麻烦看下


[此贴子已经被作者于2020/10/30 17:39:46编辑过]

--  作者:有点蓝
--  发布时间:2020/10/31 9:15:00
--  
……
Tables("窗口1_Table1").DataSource = dt2 \'将统计结果绑定到Table
Dim t As Table = Tables("窗口1_Table1")
Dim prds As List(of String()) = DataTables("表A").GetValues("事业部|金额")
For Each c1 As String() In prds
    \'t.DataTable.DataCols.Add(c1 & "_销售",Gettype(Double))
    For Each c As Col In t.Cols
        If c.Caption = c1(0) & "_销售"
            t.DataTable.ReplaceFor(c.Name,c1(1))
            Exit For
        End If
    Next
Next

--  作者:lgj716330
--  发布时间:2020/10/31 19:46:00
--  
 下载信息  [文件大小:   下载次数: ]
点击浏览该文件:管理项目1.foxdb

用msgbox("金额_" & (i*10+11))、msgbox("金额_" & (i+1))显示列名都是对的,为什么“费用占比”算出来是0呢
[此贴子已经被作者于2020/10/31 19:48:10编辑过]

--  作者:有点蓝
--  发布时间:2020/11/1 20:27:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1(2).zip


--  作者:lgj716330
--  发布时间:2020/11/2 9:03:00
--  
有点蓝老师,把代码贴一下不,版本低打不开,谢谢
--  作者:有点蓝
--  发布时间:2020/11/2 10:00:00
--  
Dim t As Table = Tables("窗口1_Table1")
Dim Dict As new Dictionary(of String,String)
For Each c As Col In t.Cols
    If c.Caption > "" Then
        dict.Add(c.Caption,c.Name)
    End If
Next

Dim prds As List(of String()) = DataTables("表A").GetValues("金额|事业部")
For Each c1 As String() In prds
    If dict.ContainsKey("销售_" & c1(1))
        t.DataTable.ReplaceFor(dict("销售_" & c1(1)),c1(0))
        For Each r As Row In t.Rows
            r("费用占比_" & c1(1)) = r(dict("费用_" & c1(1)))/r(dict("销售_" & c1(1)))
        Next
    End If
Next