以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  合计模式的合计行小数点位数  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=160120)

--  作者:zkshgm
--  发布时间:2021/1/21 12:11:00
--  合计模式的合计行小数点位数
图片点击可在新窗口打开查看
请问老师,我用DataTableBuilder生成了一个临时表,并借助 GrandTotal属性设置了合计模式,可合计行(重量列)的小数点后只有两位,如果希望小数点后保留三位如何修改呢?


--  作者:有点蓝
--  发布时间:2021/1/21 13:40:00
--  
我测试没有问题,请上传实例说明。注意先设置位数,再合计

Dim dtb As New DataTableBuilder("统计")
dtb.AddDef("产品", Gettype(String), 32)
dtb.AddDef("客户", Gettype(String), 32)
dtb.AddDef("数量", Gettype(Integer))
dtb.AddDef("金额", Gettype(Double))
Dim t As Table = e.Form.Controls("Table1").Table
t.datasource = dtb.BuildDataSource()
Dim dt As DataTable = t.DataTable
For i As Integer = 1 To 5
    Dim dr As DataRow = dt.addnew
    dr("金额") = i * 10.12
Next
dt.DataCols("金额").Decimals = 3
dt.DataCols("金额").SetFormat("0.000")

t.Cols("金额").GrandTotal = True
t.GrandTotal = True \'显示合计模式

--  作者:zkshgm
--  发布时间:2021/1/21 14:44:00
--  
老师,我的原代码是下面这样的,没发现哪有问题啊
\'\'\'
e.Form.BaseForm.Close
e.Form.BaseForm.Opacity = 0
If Not Tables.Contains("temp入库单") Then
    Dim dtb As New DataTableBuilder("temp入库单")
    dtb.AddDef("入库日期", Gettype(Date))
    dtb.AddDef("内外销", Gettype(String), 5)
    dtb.AddDef("发票号", Gettype(String), 30)
    dtb.AddDef("客户", Gettype(String), 20)
    dtb.AddDef("客户PO", Gettype(String), 35)
    dtb.AddDef("客户PN", Gettype(String), 80)
    dtb.AddDef("订单批号", Gettype(String), 16)
    dtb.AddDef("产品尺寸", Gettype(String), 85)
    dtb.AddDef("磁性能", Gettype(String), 20)
    dtb.AddDef("覆盖层", Gettype(String), 15)
    dtb.AddDef("重量", Gettype(Double), "", "重量_(kg)")
    dtb.AddDef("数量", Gettype(Integer))
    dtb.AddDef("含税采购价", Gettype(Double), "", "含税单价_(RMB)")
    dtb.AddDef("含税金额", Gettype(Double), "", "含税金额_(RMB)")
    dtb.AddDef("所属部门", Gettype(String), 10)
    dtb.AddDef("开票名称", Gettype(String), 6)
    dtb.AddDef("备注", Gettype(String), 100)
    dtb.Build()
    With Tables("temp入库单")
        .SetColVisibleWidth(Tables("成本入库").GetColVisibleWidth())
        .Cols("入库日期").TextAlign = TextAlignEnum.Center
        .Cols("内外销").TextAlign = TextAlignEnum.Center
        .Cols("所属部门").TextAlign = TextAlignEnum.Center
        .DataTable.DataCols("重量").Decimals = 3
        .DataTable.DataCols("重量").SetFormat("0.000")
        .DataTable.DataCols("含税采购价").SetFormat("0.0000")
        .DataTable.DataCols("含税金额").SetFormat("0.00")
        .Cols("重量").GrandTotal = True
        .Cols("含税金额").GrandTotal = True
        .GrandTotal = True
    End With
End If
Forms("成本入库单").Open()
MainTable= Tables("temp入库单")


--  作者:有点蓝
--  发布时间:2021/1/21 14:47:00
--  
请上传实例看看
--  作者:zkshgm
--  发布时间:2021/1/21 22:11:00
--  
老师,我明白了,是列宽不够。把列拉宽就可以了