以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]关于临时表自动销毁和.CreateFromTable无法设置主键的问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=159223)

--  作者:google78
--  发布时间:2020/12/17 17:54:00
--  [求助]关于临时表自动销毁和.CreateFromTable无法设置主键的问题
老大帮忙看一下吧,正在做一个基于企业微信的合同查询项目,这段是在做一个合同额的分段统计

Dim g As New GroupTableBuilder("htfdhz", DataTables("ht"))
g.Caption = "合同分段汇总"
g.Groups.AddDef("zjfd")
g.Totals.AddDef("F_252", AggregateEnum.Count, "数量")
g.Totals.AddDef("F_252", "金额")
g.SubTotal = True
g.GroupProportion = True
g.GrandProportion = True
g.Filter = flt & " And [F_275] <> \'\' and [F_696] = \'\'"
g.Build()

第一个问题,g.Build()中如果使用了True属性不生成table并自动销毁,后面.CreateFromDataTable时会出错,提示找不到数据表,这个怎么解决?挂在系统里一个临时表看着就难受.

Dim wb As New WeUI
        With wb.AddTable("","Table1")
            .Primarykey = "zjfd"
            .ActiveSheet = "menu"
            .CreateFromDataTable(DataTables("htfdhz"),False)

第二个问题,因为前面不能使用True属性,干脆这里使用了.CreateFromTable来生成表格,省的再手工添加合计行了.结果发现使用.CreateFromDataTable生成,.Primarykey是起作用的,如果使用.CreateFromTable,.Primarykey就无效了,怎么解决?

        End With
        With wb.AddActionSheet("","menu") \'设计菜单
            .Add("display", "查看详细").Attribute="" \'调用js函数
            .Add("mnuCancel","取消","",True)
        End With
wb.AppendHTML("<script src=\'./lib/table.js\'></script>") \'引入脚本文件
e.writestring(wb.Build)
[此贴子已经被作者于2020/12/17 17:57:05编辑过]

--  作者:google78
--  发布时间:2020/12/17 17:55:00
--  
\'<table id=\'table1\' name=\'table1\' class=\'fox_table fox_highligh_row fox_highligh_col\' data-fixed=\'1\' data-cols=\'5\' data-activesheet=\'menu\'>
\'<thead>
\'<tr><th data-idx=\'0\'>造价分段</th><th data-idx=\'1\'>数量</th><th data-idx=\'2\'>数量占比</th><th data-idx=\'3\'>金额</th><th data-idx=\'4\'>金额占比</th></tr>
\'</thead>
\'<tbody>
\'<tr data-key=\'02.大于等于5000万\'><td>02.大于等于5000万</td><td>2</td><td>0.82%</td><td>10547.67</td><td>19.60%</td></tr>
\'<tr data-key=\'03.大于等于3000万\'><td>03.大于等于3000万</td><td>1</td><td>0.41%</td><td>3200.00</td><td>5.95%</td></tr>
\'<tr data-key=\'04.大于等于2000万\'><td>04.大于等于2000万</td><td>1</td><td>0.41%</td><td>2000.00</td><td>3.72%</td></tr>
\'<tr data-key=\'05.大于等于1000万\'><td>05.大于等于1000万</td><td>10</td><td>4.08%</td><td>13986.18</td><td>25.99%</td></tr>
\'<tr data-key=\'06.大于等于500万\'><td>06.大于等于500万</td><td>13</td><td>5.31%</td><td>8894.26</td><td>16.53%</td></tr>
\'<tr data-key=\'07.大于等于400万\'><td>07.大于等于400万</td><td>4</td><td>1.63%</td><td>1817.26</td><td>3.38%</td></tr>
\'<tr data-key=\'08.大于等于300万\'><td>08.大于等于300万</td><td>5</td><td>2.04%</td><td>1830.66</td><td>3.40%</td></tr>
\'<tr data-key=\'09.大于等于200万\'><td>09.大于等于200万</td><td>13</td><td>5.31%</td><td>2988.78</td><td>5.55%</td></tr>
\'<tr data-key=\'10.大于等于100万\'><td>10.大于等于100万</td><td>31</td><td>12.65%</td><td>4313.03</td><td>8.02%</td></tr>
\'<tr data-key=\'11.大于等于50万\'><td>11.大于等于50万</td><td>35</td><td>14.29%</td><td>2638.85</td><td>4.90%</td></tr>
\'<tr data-key=\'12.小于50万\'><td>12.小于50万</td><td>130</td><td>53.06%</td><td>1587.29</td><td>2.95%</td></tr>
\'</tbody>
\'</table>

--  作者:google78
--  发布时间:2020/12/17 17:56:00
--  
\'<table id=\'table1\' name=\'table1\' class=\'fox_table fox_highligh_row fox_highligh_col\' data-fixed=\'1\' data-cols=\'5\' data-activesheet=\'menu\'>
\'<thead>
\'<tr><th data-idx=\'0\'>造价分段</th><th data-idx=\'1\'>数量</th><th data-idx=\'2\'>数量占比</th><th data-idx=\'3\'>金额</th><th data-idx=\'4\'>金额占比</th></tr>
\'</thead>
\'<tbody>
\'<tr><td>02.大于等于5000万</td><td>2</td><td>0.82%</td><td>10547.6689</td><td>19.60%</td></tr>
\'<tr><td>03.大于等于3000万</td><td>1</td><td>0.41%</td><td>3200</td><td>5.95%</td></tr>
\'<tr><td>04.大于等于2000万</td><td>1</td><td>0.41%</td><td>2000</td><td>3.72%</td></tr>
\'<tr><td>05.大于等于1000万</td><td>10</td><td>4.08%</td><td>13986.182</td><td>25.99%</td></tr>
\'<tr><td>06.大于等于500万</td><td>13</td><td>5.31%</td><td>8894.2639</td><td>16.53%</td></tr>
\'<tr><td>07.大于等于400万</td><td>4</td><td>1.63%</td><td>1817.2585</td><td>3.38%</td></tr>
\'<tr><td>08.大于等于300万</td><td>5</td><td>2.04%</td><td>1830.6628</td><td>3.40%</td></tr>
\'<tr><td>09.大于等于200万</td><td>13</td><td>5.31%</td><td>2988.7767</td><td>5.55%</td></tr>
\'<tr><td>10.大于等于100万</td><td>31</td><td>12.65%</td><td>4313.0344</td><td>8.02%</td></tr>
\'<tr><td>11.大于等于50万</td><td>35</td><td>14.29%</td><td>2638.8513</td><td>4.90%</td></tr>
\'<tr><td>12.小于50万</td><td>130</td><td>53.06%</td><td>1587.29</td><td>2.95%</td></tr>
\'<tr><td>总计</td><td>245</td><td>100.00%</td><td>53803.9885</td><td>100.00%</td></tr>
\'</tbody>
\'</table>

--  作者:有点蓝
--  发布时间:2020/12/17 20:10:00
--  
dim dt as datatable = g.Build(true)
……
.CreateFromDataTable(dt,False)

--  作者:google78
--  发布时间:2020/12/18 15:13:00
--  
明白了,最初也这样定义了一个datatable接收统计表,但是在生成表格时用了.CreateFromDataTable(datatables("dt"),False)导致失败了.