以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- [求助]可否直接引用组合统计的结果? (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=184503) |
-- 作者:明天的灵 -- 发布时间:2022/12/11 11:24:00 -- [求助]可否直接引用组合统计的结果? 在帮助的“组合多个统计结果”中 http://www.foxtable.com/webhelp/topics/2305.htm 表达式列计算 Tables("窗口1_Table1").DataSource = dt1 \'将统计结果绑定到Table With DataTables("窗口1_Table1").DataCols \'用表达式列计算库存数据 .Add("库存_数量",Gettype(Integer), "IsNull([进货_数量],0) - ISNULL([销售_数量],0) - ISNULL([退货_数量],0)") .Add("库存_金额",Gettype(Double), "[库存_数量] /[进货_数量] * [进货_金额]") End With 这段代码可否直接放在dt1(或dt2、dt3)的统计计算中? 例子中,库存数据是用窗口表控件的列,用表达式列根据进货、销售、库存计算得出。 而且实际应用中,没有窗口表控件,需要直接在内部函数中计算,可否直接引用组合统计的结果? 帮助后面有提到 Dim tbl As DataTable = dt1.TodataTable() 不过,不知道如何使用。
[此贴子已经被作者于2022/12/11 12:52:41编辑过]
|
-- 作者:有点蓝 -- 发布时间:2022/12/11 19:59:00 -- Dim tbl As DataTable = dt1.TodataTable() With tbl .DataCols \'用表达式列计算库存数据 .Add("库存_数量",Gettype(Integer), "IsNull([进货_数量],0) - ISNULL([销售_数量],0) - ISNULL([退货_数量],0)") .Add("库存_金额",Gettype(Double), "[库存_数量] /[进货_数量] * [进货_金额]") End With |
-- 作者:明天的灵 -- 发布时间:2022/12/11 20:19:00 -- 谢谢。还有,请问,如何把这个 tbl 数据库导出为XLS文件保存下来 |
-- 作者:有点蓝 -- 发布时间:2022/12/11 20:48:00 -- http://www.foxtable.com/webhelp/topics/1148.htm |
-- 作者:明天的灵 -- 发布时间:2022/12/11 21:02:00 -- 这个帮助也看过,上面是 Table 类型 而组合统计产生的tbl 是Datatable 类型,tbl 没有具体的表名称,不知道如何引用。 改为这样,还是出错 Dim tbl As DataTable = dt1.TodataTable() Dim Book As New XLS.Book \'定义一个Excel工作簿 Dim Sheet As XLS.Sheet = Book.Sheets(0) \'引用工作簿的第一个工作表 For c As Integer = 0 To tbl.DataCols.Count - 1 \'添加列标题 Sheet(0, c).Value = tbl.DataCols(c).Name Next For r As Integer = 0 To tbl.DataRows.Count - 1 \'填入数据 For c As Integer = 0 To tbl.DataCols.Count - 1 Sheet(r + 1, c).Value = tbl.DataRows(r)(c) Next Next \'打开工作簿 Book.Save("c:\\test.xls") Dim Proc As New Process Proc.File = "c:\\test.xls" Proc.Start() [此贴子已经被作者于2022/12/11 22:30:03编辑过]
|
-- 作者:有点蓝 -- 发布时间:2022/12/11 21:54:00 -- 麻烦把帮助认真看完 |
-- 作者:明天的灵 -- 发布时间:2022/12/11 22:35:00 -- 总算改出来了 Dim tbl As DataTable = dt1.TodataTable() Dim Nms(tbl.DataCols.Count) As String Dim Book As New XLS.Book \'定义一个Excel工作簿 Dim Sheet As XLS.Sheet = Book.Sheets(0) \'引用工作簿的第一个工作表 For c As Integer = 0 To tbl.DataCols.Count - 1 \'添加列标题 Sheet(0, c).Value = tbl.DataCols(c).Name nms(c) = tbl.DataCols(c).Name Next For r As Integer = 0 To tbl.DataRows.Count - 1 \'填入数据 For c As Integer = 0 To tbl.DataCols.Count - 1 Sheet(r + 1, c).Value = tbl.DataRows(r)(nms(c)) Next Next \'打开工作簿 Book.Save("c:\\test.xls") Dim Proc As New Process Proc.File = "c:\\test.xls" Proc.Start() [此贴子已经被作者于2022/12/11 22:59:34编辑过]
|